<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>149008</bug_id>
          
          <creation_ts>2015-09-09 13:46:24 -0700</creation_ts>
          <short_desc>meteomedia.com hangs in private browsing mode when trying to use DOMStorage</short_desc>
          <delta_ts>2015-09-09 23:00:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Other</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>http://www.meteomedia.com/meteo/canada/alberta/calgary</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Florian Bruhin">webkit.org</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1124682</commentid>
    <comment_count>0</comment_count>
    <who name="Florian Bruhin">webkit.org</who>
    <bug_when>2015-09-09 13:46:24 -0700</bug_when>
    <thetext>When visiting http://www.meteomedia.com/meteo/canada/alberta/calgary and private browsing mode is turned on, I get a hang with different stacktraces:

    #0  0x00007f1fce550e9f in pthread_getspecific ()
       from /usr/lib/libpthread.so.0
    #1  0x00007f1fcefbc87f in WTF::fastRealloc(void*, unsigned long) ()
       from /usr/lib/libjavascriptcoregtk-1.0.so.0
    #2  0x00007f1fcefe883b in WTF::StringImpl::reallocate(WTF::PassRefPtr&lt;WTF::StringImpl&gt;, unsigned int, unsigned char*&amp;) ()
       from /usr/lib/libjavascriptcoregtk-1.0.so.0
    #3  0x00007f1fcefe1760 in void WTF::StringBuilder::reallocateBuffer&lt;unsigned char&gt;(unsigned int) () from /usr/lib/libjavascriptcoregtk-1.0.so.0
    #4  0x00007f1fcefe1b5e in WTF::StringBuilder::append(unsigned char const*, unsigned int) () from /usr/lib/libjavascriptcoregtk-1.0.so.0
    #5  0x00007f1fced1bf4d in JSC::StackFrame::toString(JSC::ExecState*) ()
       from /usr/lib/libjavascriptcoregtk-1.0.so.0
    #6  0x00007f1fced1c2b5 in JSC::Interpreter::stackTraceAsString(JSC::ExecState*, WTF::Vector&lt;JSC::StackFrame, 0ul, WTF::CrashOnOverflow&gt;) ()
       from /usr/lib/libjavascriptcoregtk-1.0.so.0
    #7  0x00007f1fceea2e52 in JSC::VM::throwException(JSC::ExecState*, JSC::JSValue) () from /usr/lib/libjavascriptcoregtk-1.0.so.0
    ...

    #0  0x00007f1fcee9f395 in JSC::JSFunction::name(JSC::ExecState*) ()
       from /usr/lib/libjavascriptcoregtk-1.0.so.0
    #1  0x00007f1fcee9f747 in JSC::JSFunction::calculatedDisplayName(JSC::ExecState*) () from /usr/lib/libjavascriptcoregtk-1.0.so.0
    #2  0x00007f1fcee9f8b0 in JSC::getCalculatedDisplayName(JSC::ExecState*, JSC::JSObject*) () from /usr/lib/libjavascriptcoregtk-1.0.so.0
    #3  0x00007f1fced1bc99 in JSC::StackFrame::toString(JSC::ExecState*) ()
       from /usr/lib/libjavascriptcoregtk-1.0.so.0
    #4  0x00007f1fced1c2b5 in JSC::Interpreter::stackTraceAsString(JSC::ExecState*, WTF::Vector&lt;JSC::StackFrame, 0ul, WTF::CrashOnOverflow&gt;) ()
       from /usr/lib/libjavascriptcoregtk-1.0.so.0
    #5  0x00007f1fceea2e52 in JSC::VM::throwException(JSC::ExecState*, JSC::JSValue) () from /usr/lib/libjavascriptcoregtk-1.0.so.0
    ...

    (with QtWebKit):

    #0  0x00007ffff57682c8 in JSC::Interpreter::getStackTrace(JSC::VM*, WTF::Vector&lt;JSC::StackFrame, 0ul, WTF::CrashOnOverflow&gt;&amp;, unsigned long) () from /usr/lib/libQt5WebKit.so.5
    #1  0x00007ffff57688da in ?? () from /usr/lib/libQt5WebKit.so.5
    #2  0x00007ffff5893741 in JSC::throwError(JSC::ExecState*, JSC::JSValue) () from /usr/lib/libQt5WebKit.so.5
    ...

This only seems to happen in private browsing mode, and is triggered after a few seconds of scrolling and window resizing.

I can reproduce this with Midori - version information:

    Version numbers in brackets show the version used at runtime.

    Command line midori
    Midori 0.5.10 ((null)) Midori
    GTK+ 2.24.27 (2.24.28)	Glib 2.44.0 (2.44.1)
    WebKitGTK+ 2.4.8 (2.4.9)	libSoup 2.50.0
    cairo 1.14.2 (1.14.2)	libnotify No
    gcr 3.15.92	granite No

I unfortunately can&apos;t easily test with a nightly build right now (sorry!) - but let me know if this can&apos;t be reproduced, then I&apos;ll continue to investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124847</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-09-09 23:00:03 -0700</bug_when>
    <thetext>I can reproduce with Safari 8 on Mac.

This happens because the web site tries to use either localStorage or sessionStorage (I didn&apos;t check which one), and gets into an infinite loop as that raises an exception.

We should probably stop raising exceptions, and provide a fake non-persistent storage when in private browsing.

rdar://problem/16684636
rdar://problem/19197190</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>