Closed Bug 1368193 Opened 7 years ago Closed 6 years ago

Evernote Web Clipper add-on un-lazifying tabs

Categories

(WebExtensions :: General, defect)

55 Branch
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: caspy77, Unassigned)

References

Details

Since bug 906076 landed on Nightly, I expected my startup to be much faster but it hasn't been.

I searched the browser console on my most recent session and found the following two entries:

=======

12:05:38.456 [bug 1345098] Lazy browser prematurely inserted via 'messageManager' property access:
getter@chrome://browser/content/tabbrowser.xml:2126:45
getMessageManagerForRecipient@resource://gre/modules/ExtensionParent.jsm:227:7
receiveMessage@resource://gre/modules/ExtensionParent.jsm:193:22
_callHandlers/responses<@resource://gre/modules/MessageChannel.jsm:587:16
_callHandlers@resource://gre/modules/MessageChannel.jsm:585:21
_handleMessage/deferred.promise<@resource://gre/modules/MessageChannel.jsm:645:7
_handleMessage@resource://gre/modules/MessageChannel.jsm:642:24
receiveMessage@resource://gre/modules/MessageChannel.jsm:165:5
init@chrome://toggle-gifs/content/content.js?1494003916082:987:12
@chrome://toggle-gifs/content/content.js?1494003916082:1001:1
@chrome://toggle-gifs/content/content.js?1494003916082:6:2
_createPreloadBrowser@chrome://browser/content/tabbrowser.xml:1914:13
_handleNewTab@chrome://browser/content/tabbrowser.xml:6471:11
addTab/<@chrome://browser/content/tabbrowser.xml:2332:17
waitForSyncCallback@resource://services-common/async.js:98:7
makeSpinningCallback/callback.wait@resource://services-common/async.js:168:27
promiseSpinningly@resource://services-common/async.js:234:12
observe@resource://services-sync/engines/bookmarks.js:979:11
observe@resource://services-common/observers.js:132:7
notify@resource://services-common/observers.js:89:5
onStartup@resource://services-sync/service.js:323:7
@resource://services-sync/service.js:1399:1
lazyImport/getter/<@resource://services-sync/main.js:19:7
ensureLoaded@jar:file:///C:/Program%20Files/Nightly/omni.ja!/components/Weave.js:80:5
notify@jar:file:///C:/Program%20Files/Nightly/omni.ja!/components/Weave.js:138:13
 1 tabbrowser.xml:2126:23

====

12:05:46.283 [bug 1345098] Lazy browser prematurely inserted via 'messageManager' property access:
getter@chrome://browser/content/tabbrowser.xml:2126:45
getMessageManagerForRecipient@resource://gre/modules/ExtensionParent.jsm:227:7
receiveMessage@resource://gre/modules/ExtensionParent.jsm:193:22
_callHandlers/responses<@resource://gre/modules/MessageChannel.jsm:587:16
_callHandlers@resource://gre/modules/MessageChannel.jsm:585:21
_handleMessage/deferred.promise<@resource://gre/modules/MessageChannel.jsm:645:7
_handleMessage@resource://gre/modules/MessageChannel.jsm:642:24
receiveMessage@resource://gre/modules/MessageChannel.jsm:165:5
waitForSyncCallback@resource://services-common/async.js:98:7
makeSpinningCallback/callback.wait@resource://services-common/async.js:168:27
onNotify@resource://services-sync/service.js:816:7
WrappedNotify@resource://services-sync/util.js:161:21
WrappedLock@resource://services-sync/util.js:117:16
WrappedCatch@resource://services-sync/util.js:92:16
login@resource://services-sync/service.js:832:12
sync/<@resource://services-sync/service.js:1055:14
WrappedCatch@resource://services-sync/util.js:92:16
sync@resource://services-sync/service.js:1051:5
waitForSyncCallback@resource://services-common/async.js:98:7
makeSpinningCallback/callback.wait@resource://services-common/async.js:168:27
promiseSpinningly@resource://services-common/async.js:234:12
observe@resource://services-sync/engines/bookmarks.js:979:11
observe@resource://services-common/observers.js:132:7
notify@resource://services-common/observers.js:89:5
onStartup@resource://services-sync/service.js:323:7
@resource://services-sync/service.js:1399:1
lazyImport/getter/<@resource://services-sync/main.js:19:7
ensureLoaded@jar:file:///C:/Program%20Files/Nightly/omni.ja!/components/Weave.js:80:5
notify@jar:file:///C:/Program%20Files/Nightly/omni.ja!/components/Weave.js:138:13
 1 tabbrowser.xml:2126:23

======

Both seem to mention Weave.js and sync. So I'm guessing Sync is implicated in delazifying tabs.  One of the entries indicates "214 repeats".

I've just had a restart since then but instead says "579 repeats"
Additionally, I have a different one here that's 279 repeats:
======
17:21:51.976 [bug 1345098] Lazy browser prematurely inserted via 'messageManager' property access:
getter@chrome://browser/content/tabbrowser.xml:2194:45
getMessageManagerForRecipient@resource://gre/modules/ExtensionParent.jsm:231:7
receiveMessage@resource://gre/modules/ExtensionParent.jsm:197:22
_callHandlers/responses<@resource://gre/modules/MessageChannel.jsm:591:16
_callHandlers@resource://gre/modules/MessageChannel.jsm:589:21
_handleMessage/deferred.promise<@resource://gre/modules/MessageChannel.jsm:649:7
_handleMessage@resource://gre/modules/MessageChannel.jsm:646:24
receiveMessage@resource://gre/modules/MessageChannel.jsm:163:5
init@chrome://toggle-gifs/content/content.js?1495837295590:987:12
@chrome://toggle-gifs/content/content.js?1495837295590:1001:1
@chrome://toggle-gifs/content/content.js?1495837295590:6:2
 1 tabbrowser.xml:2194:23
======

Toggle Gifs ("Toggle animated GIFs") is one of my addons.

Shall I file a new bug for each type of these messages?
I think that the nested event loops that Sync uses are a red herring here. We should ignore anything from "waitForSyncCallback" and below, since that stuff is all unrelated due to the nesting of event loops.

That leaves us with:

getter@chrome://browser/content/tabbrowser.xml:2126:45
getMessageManagerForRecipient@resource://gre/modules/ExtensionParent.jsm:227:7
receiveMessage@resource://gre/modules/ExtensionParent.jsm:193:22
_callHandlers/responses<@resource://gre/modules/MessageChannel.jsm:587:16
_callHandlers@resource://gre/modules/MessageChannel.jsm:585:21
_handleMessage/deferred.promise<@resource://gre/modules/MessageChannel.jsm:645:7
_handleMessage@resource://gre/modules/MessageChannel.jsm:642:24
receiveMessage@resource://gre/modules/MessageChannel.jsm:165:5
init@chrome://toggle-gifs/content/content.js?1494003916082:987:12
@chrome://toggle-gifs/content/content.js?1494003916082:1001:1
@chrome://toggle-gifs/content/content.js?1494003916082:6:2
_createPreloadBrowser@chrome://browser/content/tabbrowser.xml:1914:13
_handleNewTab@chrome://browser/content/tabbrowser.xml:6471:11
addTab/<@chrome://browser/content/tabbrowser.xml:2332:17

This looks like the toggle-gifs add-on causing this problem - it's trying to access the message manager of the preloaded about:newtab that's opened after a new tab is opened.

getter@chrome://browser/content/tabbrowser.xml:2126:45
getMessageManagerForRecipient@resource://gre/modules/ExtensionParent.jsm:227:7
receiveMessage@resource://gre/modules/ExtensionParent.jsm:193:22
_callHandlers/responses<@resource://gre/modules/MessageChannel.jsm:587:16
_callHandlers@resource://gre/modules/MessageChannel.jsm:585:21
_handleMessage/deferred.promise<@resource://gre/modules/MessageChannel.jsm:645:7
_handleMessage@resource://gre/modules/MessageChannel.jsm:642:24
receiveMessage@resource://gre/modules/MessageChannel.jsm:165:5

This one seems to be in response to a message from a content process, but is also add-on related.

This might _all_ be Toggle Animated GIFs.
Blocks: 1345098
Are you seeing this if you disable Toggle Animated GIFs?
Blocks: lazytabs
No longer blocks: 1345098
Component: Tabbed Browser → Add-ons
Flags: needinfo?(caspy77)
Product: Firefox → Tech Evangelism
Summary: Sync may be un-lazifying tabs. → Toggle animated GIFs add-on un-lazifying tabs
Version: 55 Branch → Firefox 55
I disabled Toggle Animated GIFs and restarted and still got the following: 

18:46:28.262 [bug 1345098] Lazy browser prematurely inserted via 'messageManager' property access:
getter@chrome://browser/content/tabbrowser.xml:2194:45
getMessageManagerForRecipient@resource://gre/modules/ExtensionParent.jsm:231:7
receiveMessage@resource://gre/modules/ExtensionParent.jsm:197:22
_callHandlers/responses<@resource://gre/modules/MessageChannel.jsm:591:16
_callHandlers@resource://gre/modules/MessageChannel.jsm:589:21
_handleMessage/deferred.promise<@resource://gre/modules/MessageChannel.jsm:649:7
_handleMessage@resource://gre/modules/MessageChannel.jsm:646:24
receiveMessage@resource://gre/modules/MessageChannel.jsm:163:5
 1 tabbrowser.xml:2194:23

=====

18:46:54.903 [bug 1345098] Lazy browser prematurely inserted via 'messageManager' property access:
getter@chrome://browser/content/tabbrowser.xml:2194:45
getMessageManagerForRecipient@resource://gre/modules/ExtensionParent.jsm:231:7
receiveMessage@resource://gre/modules/ExtensionParent.jsm:197:22
_callHandlers/responses<@resource://gre/modules/MessageChannel.jsm:591:16
_callHandlers@resource://gre/modules/MessageChannel.jsm:589:21
_handleMessage/deferred.promise<@resource://gre/modules/MessageChannel.jsm:649:7
_handleMessage@resource://gre/modules/MessageChannel.jsm:646:24
receiveMessage@resource://gre/modules/MessageChannel.jsm:163:5
waitForSyncCallback@resource://services-common/async.js:98:7
makeSpinningCallback/callback.wait@resource://services-common/async.js:168:27
onNotify@resource://services-sync/service.js:816:7
WrappedNotify@resource://services-sync/util.js:161:21
WrappedLock@resource://services-sync/util.js:117:16
WrappedCatch@resource://services-sync/util.js:92:16
login@resource://services-sync/service.js:832:12
sync/<@resource://services-sync/service.js:1055:14
WrappedCatch@resource://services-sync/util.js:92:16
sync@resource://services-sync/service.js:1051:5
waitForSyncCallback@resource://services-common/async.js:98:7
makeSpinningCallback/callback.wait@resource://services-common/async.js:168:27
promiseSpinningly@resource://services-common/async.js:234:12
observe@resource://services-sync/engines/bookmarks.js:991:11
observe@resource://services-common/observers.js:132:7
notify@resource://services-common/observers.js:89:5
onStartup@resource://services-sync/service.js:323:7
@resource://services-sync/service.js:1399:1
lazyImport/getter/<@resource://services-sync/main.js:19:7
ensureLoaded@jar:file:///C:/Program%20Files/Nightly/omni.ja!/components/Weave.js:80:5
notify@jar:file:///C:/Program%20Files/Nightly/omni.ja!/components/Weave.js:117:11
 1 tabbrowser.xml:2194:23
Flags: needinfo?(caspy77)
I have restarted in safe mode and there are no "premature" notifications in the browser console.
:-/
(In reply to Caspy7 from comment #5)
> I have restarted in safe mode and there are no "premature" notifications in
> the browser console.
> :-/

It would seem that there are other add-ons that are also triggering this in your profile. You can probably work out which ones by enabling/disabling them and bisecting them that way.
Alternatively, it's possible that the WebExtension APIs themselves are causing the browsers to be injected.
So, I actually spent a bunch of time on this yesterday before it was suggested but was too tired to articulate, and also trying to make sense of things.

I bisected, which is harder and longer when there's multiple addons causing the issue (and you've got a long list).

For future and documentation's sake, here's the list of addons which seem to all be able to run without issue: 
Better Reader, Clippings, Dorando keyconfig, Download Youtube videos as MP4, Duplicate in tab context menu, Emoji Keyboard, Gecko Profiler, Google search link fix, Imagus, keyword search, Menu Wizard, Min vid, Open with, Pulse, Reddit comment collapser, snoozetabs, Session Manager, Stylish, Toggle Animated GIFs

Note that despite being blamed earlier, Toggle Animated GIFs doesn't seem to be a cause.

I found that the two responsible in my main profile were Evernote Web Clipper and Reddit Enhancement Suite.

I tried testing in a fresh profile and Evernote Web Clipper still gave the same results. Frustratingly however Reddit Enhancement Suite did not trigger un-lazifying tabs.  I then made sure to log in to reddit and *tried* to make sure my settings were transferred over from my default profile via its files (not sure if I was fully successful) and the issue still did not present.
To synopsize:

Evernote Web Clipper and Reddit Enhancement Suite both un-lazify tabs in my main profile.
I can only reproduce Evernote Web Clipper doing so in a fresh profile.
Summary: Toggle animated GIFs add-on un-lazifying tabs → Evernote Web Clipper add-on un-lazifying tabs
Mass-closing bugs that relate to legacy versions of add-ons or are otherwise no longer worth tracking. Please comment if you think this bug should be reopened.

Sorry for the bugspam. Made you look, though!
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
Component: Add-ons → General
Product: Tech Evangelism → WebExtensions
Version: Firefox 55 → 55 Branch
You need to log in before you can comment on or make changes to this bug.