Infocatcher / Private_Tab

Adds private tabs, restartless extension for Firefox (20.0+) and SeaMonkey (2.17+)
https://addons.mozilla.org/addon/private-tab/
Other
86 stars 20 forks source link

Spams syslog with messages #212

Open JGjorgji opened 8 years ago

JGjorgji commented 8 years ago

I'm on Fedora 23 with Firefox 44, when this extension is enabled it spams the syslog extensively with messages even when no private tabs are in use. I tried explicitly disabling debug in about:config but it doesn't do anything.

Some example log messages:


Feb 23 11:46:47 serenity firefox.desktop[3924]: TrackingProtection.enabled@chrome://browser/content/browser.js:10051:13
Feb 23 11:46:47 serenity firefox.desktop[3924]: onSecurityChange@chrome://browser/content/browser.js:10091:9
Feb 23 11:46:47 serenity firefox.desktop[3924]: XULBrowserWindow.onSecurityChange@chrome://browser/content/browser.js:15314:5
Feb 23 11:46:47 serenity firefox.desktop[3924]: callListeners@chrome://browser/content/tabbrowser.xml:501:24
Feb 23 11:46:47 serenity firefox.desktop[3924]: _callProgressListeners@chrome://browser/content/tabbrowser.xml:516:13
Feb 23 11:46:47 serenity firefox.desktop[3924]: mTabProgressListener/<._callProgressListeners@chrome://browser/content/tabbrowser.xml:571:22
Feb 23 11:46:47 serenity firefox.desktop[3924]: mTabProgressListener/<.onSecurityChange@chrome://browser/content/tabbrowser.xml:834:1
Feb 23 11:47:07 serenity firefox.desktop[3924]: WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts).
Infocatcher commented 8 years ago

These logs should comes from browser itself... With extensions.privateTab.debug = false all internal debug logs will be disabled.

JGjorgji commented 8 years ago

The setting is set to false by default i even tried setting it to false manually and the behavior persists.

Disabling this addon also makes the messages stop immediately.

Infocatcher commented 8 years ago

Private Tab may triggers some internal warnings (i.e. in internal console, Ctrl+Shift+J), but I don't know, why this comes into syslog.

JGjorgji commented 8 years ago

I'm not sure exactly why it's writing to the syslog (can't find a setting), I'm curious too but it's not a bad practice. The problem is when there are excessive error messages for everyday use.

I believe this has caused a huge number of writes (I have and SSD on my laptop so it's relevant there), while disabling the syslog logging is a solution I'd prefer if i didn't have to and the cause got fixed.

rnc commented 8 years ago

I am seeing this on Fedora 24, Firefox 47.0.1, PrivateTab 0.1.9.1. A lot of messages are dumped into $HOME/.xsession-errors. I have extensions.privateTab.debug set to false. For example

TrackingProtection.enabled@chrome://browser/content/browser-trackingprotection.js:49:13
onSecurityChange@chrome://browser/content/browser-trackingprotection.js:89:9
XULBrowserWindow.onSecurityChange@chrome://browser/content/browser.js:4460:5
callListeners@chrome://browser/content/tabbrowser.xml:494:24
_callProgressListeners@chrome://browser/content/tabbrowser.xml:509:13
updateCurrentBrowser@chrome://browser/content/tabbrowser.xml:1085:15
onselect@chrome://browser/content/browser.xul:1:44
set_selectedIndex@chrome://global/content/bindings/tabbox.xml:668:13
set_selectedPanel@chrome://global/content/bindings/tabbox.xml:687:13
set_selectedIndex@chrome://global/content/bindings/tabbox.xml:403:15
set_selectedItem@chrome://global/content/bindings/tabbox.xml:435:34
_selectNewTab@chrome://global/content/bindings/tabbox.xml:480:11
onxblmousedown@chrome://global/content/bindings/tabbox.xml:802:11
WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts).
pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14
rnc commented 8 years ago

I have just tried a new clean profile with no other extensions. I see the same problem (although it logged to console as its not the default profile) e.g. it logged over 200 lines just from opening a single tab.

WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts).
pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14
privateTab.isPrivateWindow@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:4035:20
privateTab.isPrivateContent@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:4039:11
privateTab.updateWindowTitle@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:3756:16
privateTab.initWindow/<@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:454:4
WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts).
pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14
privateTab.isPrivateWindow@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:4035:20
privateTab.isPrivateContent@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:4039:11
privateTab.dragStartHandler@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:1838:43
privateTab.handleEvent@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:154:38
WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts).
pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14
privateTab.isPrivateWindow@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:4035:20
privateTab.isPrivateContent@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:4039:11
before@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:3956:23
wrapper@chrome://privatetab/content/patcher.jsm:36:16
TrackingProtection.enabled@chrome://browser/content/browser-trackingprotection.js:49:13
onSecurityChange@chrome://browser/content/browser-trackingprotection.js:89:9
XULBrowserWindow.onSecurityChange@chrome://browser/content/browser.js:4460:5
callListeners@chrome://browser/content/tabbrowser.xml:494:24
_callProgressListeners@chrome://browser/content/tabbrowser.xml:509:13
updateCurrentBrowser@chrome://browser/content/tabbrowser.xml:1085:15
onselect@chrome://browser/content/browser.xul:1:44
set_selectedIndex@chrome://global/content/bindings/tabbox.xml:668:13
set_selectedPanel@chrome://global/content/bindings/tabbox.xml:687:13
set_selectedIndex@chrome://global/content/bindings/tabbox.xml:403:15
set_selectedItem@chrome://global/content/bindings/tabbox.xml:435:34
set_selectedTab@chrome://global/content/bindings/tabbox.xml:114:15
set_selectedTab@chrome://browser/content/tabbrowser.xml:2821:11
loadOneTab@chrome://browser/content/tabbrowser.xml:1470:15
openLinkIn@chrome://browser/content/utilityOverlay.js:358:5
openUILinkIn@chrome://browser/content/utilityOverlay.js:196:3
BrowserOpenTab@chrome://browser/content/browser.js:1862:3
privateTab.openNewPrivateTab@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:2396:4
privateTab.handleCommand@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:2106:45
privateTab.handleCommandFromEvent@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:2092:3
privateTab.commandHandler@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:2064:3
privateTab.handleEvent@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/rnc/.mozilla/firefox/0a2yutj0.WebEx/extensions/privateTab@infocatcher.xpi!/bootstrap.js:159:38

Temporary workaround to avoid the spam to $HOME/$USER/.xsession-errors was to add &> /home/$USER/.xsession-firefox.log to /usr/bin/firefox

borama commented 7 years ago

I also suffer from this issue. After one week of browsing, I found out that Firefox created over 250 000 lines in the system log which is unacceptable to me (and I temporarily use the workaround of redirecting stderr in a Firefox runner script).

I tried to look a bit deeper into the issue and the logging seems to be generated by this code in the Firefox source. The code uses the dump() method which, if I get the docs correctly, indeed ignores the logging settins in about:config:

dump() is also available to XPCOM components implemented in JavaScript, even though window is not the global object in components. It is also explicitly made available in sandboxes. However, this use of dump is not affected by the preference mentioned below -- it will always be shown. It is therefore advisable to either check this preference yourself or use a debugging preference of your own to make sure you don't send lots of debugging content to a user's console when they might not be interested in it at all. Note that dump output from XPCOM components goes to stderr, while dump called elsewhere will output to stdout.

Most of the logged lines are actually a stack trace that seems to point to bootstrap.js code of this extension, in my case, it points to the folowing:

WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts).
pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14
privateTab.isPrivateWindow@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/matous/.mozilla/firefox/svtpgfrl.default/extensions/privateTab@infocatcher.xpi!/bootstrap.js:4333:20
privateTab.isPrivateContent@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/matous/.mozilla/firefox/svtpgfrl.default/extensions/privateTab@infocatcher.xpi!/bootstrap.js:4338:11

Now, the warning suggests that isContentWindowPrivate method should be used instead of isWindowPrivate (the Firefox code mentions yet another preferred method - isBrowserPrivate), but I am unable to dig deeper now as my knowledge of the Firefox extensions coding is almost none... Perhaps this might help someone else?

Infocatcher commented 7 years ago

May be will help browser.dom.window.dump.enabled = false (this is default value, at least on Windows).

Now, the warning suggests that isContentWindowPrivate method should be used instead of isWindowPrivate (the Firefox code mentions yet another preferred method - isBrowserPrivate)

All should be fine with non-remote content windows, isContentWindowPrivate() is just the same, but without check (and without warning message). And isBrowserPrivate() will use state of parent browser window, so useless for private tabs.

borama commented 7 years ago

May be will help browser.dom.window.dump.enabled = false (this is default value, at least on Windows).

@Infocatcher I also have this set to false, so unfortunately this won't help.