When my chrome extension loads on chrome startup, everything seems to be ok and chrome.extension.getBackgroundPage() returns the right value (lunched from popup.js). But aft
According to the referenced page (Difference between Event and Background Page) there is a better option to get the background while still using Event Page :
If your extension uses, extension.getBackgroundPage, switch to runtime.getBackgroundPage instead. The newer method is asynchronous so that it can start the event page if necessary before returning it.
This worked well for me, just do your job in the asynchronous callback, which receives the background page as a function parameter.
Here is the specification of the method runtime.getBackgroundPage