Open Bug 1345532 Opened 7 years ago Updated 2 years ago

[e10s] "TabOpen" and "TabClose" events are executed when entering or leaving new Responsive Design Mode

Categories

(DevTools :: Responsive Design Mode, defect, P3)

52 Branch
defect

Tracking

(Not tracked)

People

(Reporter: 684sigma, Unassigned)

References

(Blocks 1 open bug, )

Details

I have a problem with Firefox Beta 52. It doesn't happen in Firefox ESR 45.
Sometimes Tab counter extension changes total number of tabs if I don't even open/close any tabs.
It happens unpredictably, however, I noticed one specific scenario when it happens

1. Install https://addons.mozilla.org/en-US/firefox/addon/tab-counter/
2. Open Responsive Design Mode

Result: number of tabs displayed by Tab counter extension increases by 1, then decreases by 1
Expected: number of tabs should not change
Blocks: e10s-addons
Status: UNCONFIRMED → NEW
Has STR: --- → yes
Component: Untriaged → Extension Compatibility
Ever confirmed: true
Summary: Regression Tab counter extension changes total number of tabs if I don't open/close any tabs sometimes → [e10s] Tab counter extension spring the total number when start new Responsive Design Mode
I guess it happens only with the new RDM (e10s on).
More information regarding this bug.
The root cause is when I Responsive Design Mode, it sends irrelevant events to extensions.

As you can see from source code, Tab counter extension listens for "TabOpen" and "TabClose" events, so this is proof that Responsive Design Mode sends extra events to extensions, and therefore it's not a bug of the extension.
https://addons.mozilla.org/en-US/firefox/files/browse/409212/file/chrome/content/tabcounter.js#L20

Further proofs. Execute the following 2 lines of code in browser console, then open Responsive Design Mode:
gBrowser.tabContainer.addEventListener("TabOpen", function(){console.log('open!!!')}, false);
gBrowser.tabContainer.addEventListener("TabClose", function(){console.log('close!!!')}, false);
As a result, "TabOpen" and "TabClose" events will be logged in console. Not extension bug.
(Do not expect any sufficient knowledge of JS from me)
Summary: [e10s] Tab counter extension spring the total number when start new Responsive Design Mode → [e10s] Tab counter extension spring the total number when start new Responsive Design Mode (extra "TabOpen" and "TabClose" events are sent to extensions)
No longer blocks: e10s-addons
Component: Extension Compatibility → Developer Tools: Responsive Design Mode
Summary: [e10s] Tab counter extension spring the total number when start new Responsive Design Mode (extra "TabOpen" and "TabClose" events are sent to extensions) → Tab counter extension spring the total number when start new Responsive Design Mode (extra "TabOpen" and "TabClose" events are sent to extensions)
Summary: Tab counter extension spring the total number when start new Responsive Design Mode (extra "TabOpen" and "TabClose" events are sent to extensions) → [e10s] "TabOpen" and "TabClose" events are executed when entering or leaving new Responsive Design Mode
Keywords: regression
OS: Unspecified → All
Hardware: Unspecified → All
I don't see a clear way to avoid this currently.  New RDM does in fact use a temporary tab when toggling, so the events are doing their job correctly.  We go to some lengths to hide this tab jumping process from the browser's UI, but add-ons don't have a good way to know about it yet.

It would be nice to improve toggling RDM so that add-ons aren't receiving these confusing signals, but it also seems low priority to me.

Regression tracking doesn't seem useful here since it's an aspect of how new RDM functions.
Keywords: regression
Priority: -- → P3
Product: Firefox → DevTools
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.