Chrome document seems to have a bit more info and an example on background pages.
The explanation from Chrome:
Background Pages
A background page will be generated by the extension system that
includes each of the files listed in the scripts property.
If you need to specify HTML in your background page, you can do that
using the page property instead.
The explanation from MDN:
background
If you specify only "scripts", then an empty page will be created for
your scripts to run in.
If you need some particular content in the page, you can define your
own page using the "page" option.
If you use this property, you can still specify background scripts
using "scripts" if you want, but you can also include your own scripts
from the page, just like in a normal web page.
Update
Understanding Google Chrome
Extensions
Background Pages
Background Pages come in two flavours: with markup or without markup.
Background pages are the controllers of our application and exist
through all the time our application is alive. They can be consumed by
any tab at any time as long as the Background Page has registered an
event listener. You can go to the Extensions section in the Setting
part of Chrome and you will see a page that lives there.
Background pages usually just have either javascript inside them
(which might as well be markupless) or iframes that help bootstrap
some evals for applications. If you specify the background page as an
html, they will be rendered as that, but if you just specify scripts
in the "background" option of the manifest file, Google Chrome will
generate one for you. Currently, I just use one option over the other
to organize my scripts.
How to use it In the manifest file, you either specify an .html page under the page directive inside the "background" option, or under
the scripts directive in the same option. You can set up this as an
array.
When to use it I find background pages useful in 3 scenarios:
- When multiple tabs consume your application and you need to have a common gateway for the interaction.
- When you need communication between your content script and a page action/browser action for any reason.
- When you need a specific task made in the background.