Completely empty pages on SeaMonkey



  • This would be a bug report. As the topic says, I'm getting nothing but a white blank page everywhere on SeaMonkey w/ Javascript on.

    SM 2.24 and 2.26 and probably on 2.27 too when it gets released.


  • Banned

    Are cookies disabled by any chance?



  • No, shouldn't be; cleaned on exit though.



  • This is probably localStorage.

    I think we need this as one of the initializers:

    try {
      window.localStorage;
    } catch (err) {
      // Spit out message asking them to enable localStorage or disable JS
    }
    

  • Banned

    We don't need localStorage for anon access, that is crazytown, we just need to fix that.



  • These three errors are found in the error console, FWIW:

    Timestamp: 13/06/2014 09:33:32
    Error: SyntaxError: missing ) after argument list
    Source File: http://what.thedailywtf.com/assets/application-59156dc69edfc0d66ba18b32ff938dd1.js
    Line: 13, Column: 60
    Source Code:
         <img src="'),t.buffer.push(f(s.unbound.call(e," width="33" class="logo-small"smallLogoUrl",{hash:{},hashTypes:{},ha
    
    Timestamp: 13/06/2014 09:33:32
    Error: TypeError: Discourse.Route is undefined
    Source File: ttp://what.thedailywtf.com/t/completely-empty-pages-on-seamonkey/856
    Line: 229
    
    
    Timestamp: 13/06/2014 09:33:33
    Error: syntax error
    Source File: ttp://what.thedailywtf.com/logs/report_js_error
    Line: 1, Column: 1
    Source Code:
    OK
    

    (I'm only allowed two links per post. Even though all of them link to the forum...)

    (And am I really supposed to escape my own HTML? :<)


  • Banned

    I just tried 2.2.6 and it seems to be working. Do you have any custom setup going on?



  • Plenty, but I'll be damned if I remember what I've done.

    It was on two installations, one on BSD and one on Windows. The configs diverge some. My prefs.js is 360 lines on *nix, but a lot of it are silly settings such as print settings.

    Lessee...

    // common lines between the two installations in prefs.js
    user_pref("app.update.enabled", false);
    user_pref("browser.cache.disk.enable", false);
    user_pref("browser.cache.disk.smart_size.enabled", false);
    user_pref("browser.cache.disk.smart_size.first_run", false);
    user_pref("browser.download.manager.showAlertOnComplete", false);
    user_pref("browser.fixup.alternate.enabled", false);
    user_pref("browser.formfill.enable", false);
    user_pref("browser.places.smartBookmarksVersion", 4);
    user_pref("browser.rights.1.shown", true);
    user_pref("browser.tabs.tooltippreview.enable", false);
    user_pref("browser.urlbar.formatting.enabled", false);
    user_pref("browser.urlbar.showSearch", false);
    user_pref("browser.zoom.full", false);
    user_pref("dom.w3c_touch_events.expose", false);
    user_pref("extensions.getAddons.databaseSchema", 5);
    user_pref("extensions.installedDistroAddon.inspector@mozilla.org", true);
    user_pref("extensions.installedDistroAddon.{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}", true);
    user_pref("extensions.installedDistroAddon.{f13b157f-b174-47e7-a34d-4815ddfdfeb8}", true);
    user_pref("extensions.pendingOperations", false);
    user_pref("extensions.shownSelectionUI", true);
    user_pref("extensions.update.enabled", false);
    user_pref("general.useragent.compatMode.firefox", false);
    user_pref("general.warnOnAboutConfig", false);
    user_pref("keyword.enabled", false);
    user_pref("mailnews.quotingPrefs.version", 1);
    user_pref("network.cookie.lifetimePolicy", 2);
    user_pref("network.cookie.prefsMigrated", true);
    user_pref("plugins.hide_infobar_for_missing_plugin", true);
    user_pref("pref.advanced.cache.disable_button.clear_disk", false);
    user_pref("privacy.popups.remove_blacklist", false);
    user_pref("privacy.popups.showBrowserMessage", false);
    user_pref("services.sync.clients.lastSync", "0");
    user_pref("services.sync.clients.lastSyncLocal", "0");
    user_pref("services.sync.globalScore", 0);
    user_pref("services.sync.migrated", true);
    user_pref("services.sync.nextSync", 0);
    user_pref("services.sync.tabs.lastSync", "0");
    user_pref("services.sync.tabs.lastSyncLocal", "0");
    user_pref("signon.rememberSignons", false);
    user_pref("storage.vacuum.last.index", 1);
    user_pref("toolkit.scrollbox.smoothScroll", false);
    user_pref("toolkit.zoomManager.zoomValues", "0.5,0.75,0.9,1,1.2,1.5,2");
    user_pref("view_source.wrap_long_lines", true);
    user_pref("xpinstall.whitelist.add", "");
    user_pref("xpinstall.whitelist.add.36", "");
    
    # why do comments inside code blocks turn out like this =/
    

    Prefs.js should only record lines that diverge from the default but gosh, I don't remember setting more than ten of those.

    I'll go try with a clean profile soon.



  • Oh, I seem to have found something: the proxy. (privoxy+squid.)


  • Banned

    @hhaamu said:

    why do comments inside code blocks turn out like this

    I fixed that for you, see the faq entries about formatting code.



  • Anyway, privoxy seems to be doing something.

    Jun 13 07:21:09.896 7f832f8b3700 Re-Filter: filtering what.thedailywtf.com/t/completely-empty-pages-on-seamonkey/856/8 (size 50819) with 'img-reorder' produced 3 hits (new size 50819).
    
    Jun 13 07:21:11.655 7f83308b5700 Re-Filter: filtering what.thedailywtf.com/assets/application-59156dc69edfc0d66ba18b32ff938dd1.js (size 948685) with 'img-reorder' produced 7 hits (new size 948685).
    

    The 'img-reorder' filter reorders the attributes into a 'canonical' order so the other regexes (that are searching for some more serious things) can match better. And the filter is matching JS code. Lovely.

    I guess it's best to turn that specific filter off (for this site).



  • Turned the filter off. Everything seems to be working now.

    I previously tested without the proxy but it seems I only pressed ctrl-R instead of ctrl-shift-R to reload and it still displayed the empty page so I discounted it. So basically privoxy was corrupting the JS file, and the browser still had the corrupted version cached, and this happened.

    The three offending regexps in question are:

    s|<img\s+?([^>]*)\ssrc\s*=\s*(['"])([^>\\\2]+)\2|<img src=$2$3$2 $1|siUg
    s|<img\s+?([^>]*)\ssrc\s*=\s*([^'">\\\s]+)|<img src=$2 $1|sig
    s|(<img[^>]+height)\s*=\s*|$1=|sig
    
    s|<img (src=(?:(['"])[^>\\\\2]*\2\|[^'">\\\s]+?))([^>]*)\s+width\s*=\s*((["']?)\d+?\5)(?=[\s>])|<img $1 width=$4$3|siUg
    

    It was somewhat of a misconfiguration on my end, but you can probably defend against this by not having an <img string anywhere in the JS code. Use the DOM to insert them or something. If you want. Not sure it's worth it. (Really, this is the first time for me privoxy has turned out to be the culprit, in six+ years of use.)


  • Discourse touched me in a no-no place

    I like that you've found this, and don't like that it's happening. Another one for the code-nausea file…


  • Banned


Log in to reply