Closed Bug 1444510 Opened 6 years ago Closed 6 years ago

TypeError: this._browserBindingProperties is undefined

Categories

(Firefox :: Tabbed Browser, defect)

60 Branch
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Firefox 61
Tracking Status
firefox-esr52 --- unaffected
firefox58 --- unaffected
firefox59 --- unaffected
firefox60 --- fixed
firefox61 --- fixed

People

(Reporter: Oriol, Assigned: dao)

References

Details

(Keywords: regression)

Attachments

(1 file, 1 obsolete file)

1.24 KB, application/x-xpinstall
Details
Attached file tabbox-failure.xpi (obsolete) —
Go to about:config and set these preferences:

    extensions.legacy.enabled = true
    extensions.allow-non-mpc-extensions = true
    xpinstall.signatures.required = false

Install the attached add-on, restart Firefox

Open the browser console, there is this error:

TypeError: this._browserBindingProperties is undefined
	_insertBrowser chrome://browser/content/tabbrowser.js:2041:1
	getRelatedElement chrome://browser/content/tabbrowser.xml:912:11
	set_selectedIndex chrome://global/content/bindings/tabbox.xml:382:31
	tabs_XBL_Constructor chrome://global/content/bindings/tabbox.xml:251:13
	init chrome://browser/content/tabbrowser.js:33:25
	get chrome://browser/content/browser.js:157:5
	getObjectTag jar:file:///C:/Program%20Files/Mozilla%20Firefox/Test/omni.ja!/components/multiprocessShims.js:118:1
	interposeProperty jar:file:///C:/Program%20Files/Mozilla%20Firefox/Test/omni.ja!/components/multiprocessShims.js:139:45
	<anonymous> chrome://tabbox-failure/content/overlay.xul:3:1

I know legacy add-ons are no longer supported but its code is only this manifest:

    content tabbox-failure chrome/content/
    overlay chrome://browser/content/browser.xul chrome://tabbox-failure/content/overlay.xul

and this overlay:

    <?xml version="1.0" encoding="UTF-8"?>
    <overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
      <script>window.addEventListener("load", () => {})</script>
    </overlay>

This should not produce any tabbox error.

Regression window: https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=d93c5f3b88c5ae767e67370e336eb4b8b26b9d9a&tochange=f27d7eca013d66027d9579a619899fdda5fa4dbc

I suspect this is an incompatibility with the multiprocess shim, which is being removed in bug 1443983, so maybe this will be enough.
Flags: needinfo?(dao+bmo)
In fact, before bug 1442398 I get errors like this instead:

TypeError: this.tabbrowser is undefined

<anonymous> chrome://browser/content/tabbrowser.xml:143:9
	tabs_XBL_Constructor chrome://global/content/bindings/tabbox.xml:241:1
	TabBrowser chrome://browser/content/tabbrowser.js:31:25
	<anonymous> chrome://browser/content/browser.js:148:46
	get resource://gre/modules/XPCOMUtils.jsm:194:21
	getObjectTag jar:file:///C:/Program%20Files/Mozilla%20Firefox/Test/omni.ja!/components/multiprocessShims.js:118:1
	interposeProperty jar:file:///C:/Program%20Files/Mozilla%20Firefox/Test/omni.ja!/components/multiprocessShims.js:139:45
	<anonymous> chrome://tabbox-failure/content/overlay.xul:3:1

Regression window: https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=4bd1219880f9c3bcbc6136160003d6fbb51655cd&tochange=562966f195b0f071cf1d973f7b4fd51ec8594343
Blocks: 1442651
Sorry, I don't have time to debug your add-on. Do you you have steps to reproduce without installing an overlay add-on?
Flags: needinfo?(dao+bmo)
I will try to find other STR, but the addon is tiny, the only JS it contains is this single line:

    window.addEventListener("load", () => {})

Probably what should be debugged instead is the multiprocess shim.
Ah, I hadn't realized that the add-on you provided was reduced to the bare minimum. Thanks for that. So yeah, that line shouldn't be a problem. Is it actually still a problem after bug 1443983?
I don't know, there is no Nightly update yet. And at first I had some problems updating rust to compile latest revision manually, seems it's working now and it should finish in about 10 minutes.
OK so my build does not show this error but this could be due to some mozconfig difference or something, so I will wait for the next Nightly update before closing this.
Attached file tabbox-failure.xpi
After bug 1443983 there is no error using doing window.addEventListener.
But I get the error if I reference gBrowser.
So I'm attaching an updated add-on.
Now the stack trace is

TypeError: this._browserBindingProperties is undefined
	_insertBrowser chrome://browser/content/tabbrowser.js:2035:1
	getRelatedElement chrome://browser/content/tabbrowser.xml:912:11
	set_selectedIndex chrome://global/content/bindings/tabbox.xml:382:31
	tabs_XBL_Constructor chrome://global/content/bindings/tabbox.xml:251:13
	init chrome://browser/content/tabbrowser.js:31:25
	get chrome://browser/content/browser.js:157:5
	<anonymous> chrome://tabbox-failure/content/overlay.xul:3:1
Attachment #8957674 - Attachment is obsolete: true
Depends on: 1444625
Can you still reproduce after bug 1444625?
No, but now I get

TypeError: right-hand side of 'in' should be an object, got undefined
	_insertBrowser chrome://browser/content/tabbrowser.js:2044:1
	getRelatedElement chrome://browser/content/tabbrowser.xml:930:11
	set_selectedIndex chrome://global/content/bindings/tabbox.xml:382:31
	tabs_XBL_Constructor chrome://global/content/bindings/tabbox.xml:251:13
	get tabContainer chrome://browser/content/tabbrowser.js:235:32
	get tabs chrome://browser/content/tabbrowser.js:240:5
	init chrome://browser/content/tabbrowser.js:31:5
	get chrome://browser/content/browser.js:157:5
	<anonymous> chrome://tabbox-failure/content/overlay.xul:3:1

Should I file another bug?
chrome://browser/content/tabbrowser.js:31:5 is this line:

    this.mCurrentTab = this.tabs[0];

so I guess bug 1444694 may help.
(In reply to Oriol Brufau [:Oriol] from comment #9)
> No, but now I get
> 
> TypeError: right-hand side of 'in' should be an object, got undefined
> 	_insertBrowser chrome://browser/content/tabbrowser.js:2044:1
> 	getRelatedElement chrome://browser/content/tabbrowser.xml:930:11
> 	set_selectedIndex chrome://global/content/bindings/tabbox.xml:382:31
> 	tabs_XBL_Constructor chrome://global/content/bindings/tabbox.xml:251:13
> 	get tabContainer chrome://browser/content/tabbrowser.js:235:32
> 	get tabs chrome://browser/content/tabbrowser.js:240:5
> 	init chrome://browser/content/tabbrowser.js:31:5
> 	get chrome://browser/content/browser.js:157:5
> 	<anonymous> chrome://tabbox-failure/content/overlay.xul:3:1
> 
> Should I file another bug?

Bug 1443849 should fix this.
Depends on: 1443849
Should be fixed now.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
OK, so now

 1. gBrowser is undefined at the beginning
 2. window.addEventListener("load", listener) works
 3. gBrowser is defined after that event

By the way, latest developer edition (60.0b2) is in an horrible state in which using window.addEventListener completely breaks the tabbar unless extensions.interposition.enabled is disabled. So please make sure bug 1443983 and bug 1443849 land on developer edition as soon as possible.
(In reply to Oriol Brufau [:Oriol] from comment #13)
> OK, so now
> 
>  1. gBrowser is undefined at the beginning
>  2. window.addEventListener("load", listener) works
>  3. gBrowser is defined after that event

Yep, that's how it should work now.

> By the way, latest developer edition (60.0b2) is in an horrible state in
> which using window.addEventListener completely breaks the tabbar unless
> extensions.interposition.enabled is disabled. So please make sure bug
> 1443983 and bug 1443849 land on developer edition as soon as possible.

Bug 1443983 landed before the merge, so it should be in 60. I can look into uplifting bug 1443849 after it baked some time in Nightly.
Assignee: nobody → dao+bmo
Target Milestone: --- → Firefox 60
Target Milestone: Firefox 60 → Firefox 61
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: