<?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>54884</bug_id>
          
          <creation_ts>2011-02-21 09:05:57 -0800</creation_ts>
          <short_desc>plugins/get-url-with-javascript-destroying-plugin.html crashing on Windows since it was added</short_desc>
          <delta_ts>2011-02-21 10:39:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://build.webkit.org/results/Windows%207%20Release%20(Tests)/r79222%20(9584)/results.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, LayoutTestFailure, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>54863</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>jhoneycutt</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>354621</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-21 09:05:57 -0800</bug_when>
    <thetext>plugins/get-url-with-javascript-destroying-plugin.html has been crashing on Windows since it was added in r79157. run-webkit-tests is falsely saying that the test immediately following this one is crashing. But plugins/get-url-with-javascript-destroying-plugin.html is the culprit; if you run it on its own it crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354622</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-21 09:06:15 -0800</bug_when>
    <thetext>Here&apos;s the backtrace:


 	ntdll.dll!_RtlpWaitForCriticalSection@4()  + 0x5b bytes	
 	ntdll.dll!_RtlEnterCriticalSection@4()  + 0x46 bytes	
&gt;	JavaScriptCore.dll!WTF::Mutex::lock()  Line 290 + 0xc bytes	C++
 	WebKit.dll!WTF::Locker&lt;WTF::Mutex&gt;::Locker&lt;WTF::Mutex&gt;(WTF::Mutex &amp; lockable={...})  Line 38 + 0x20 bytes	C++
 	WebKit.dll!WTF::HashTable&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt;,WTF::RefPtr&lt;WebCore::PluginStream&gt;,WTF::IdentityExtractor&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt;,WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt;,WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt;,WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt; &gt;::invalidateIterators()  Line 1054	C++
 	WebKit.dll!WTF::HashTable&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt;,WTF::RefPtr&lt;WebCore::PluginStream&gt;,WTF::IdentityExtractor&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt;,WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt;,WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt;,WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt; &gt;::add&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt;,WTF::RefPtr&lt;WebCore::PluginStream&gt;,WTF::IdentityHashTranslator&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt;,WTF::RefPtr&lt;WebCore::PluginStream&gt;,WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt; &gt; &gt;(const WTF::RefPtr&lt;WebCore::PluginStream&gt; &amp; key=0x06cac300 {m_resourceRequest={...} m_resourceResponse={...} m_client=0x06c80bb8 ...}, const WTF::RefPtr&lt;WebCore::PluginStream&gt; &amp; extra=0x06cac300 {m_resourceRequest={...} m_resourceResponse={...} m_client=0x06c80bb8 ...})  Line 634	C++
 	WebKit.dll!WTF::HashTable&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt;,WTF::RefPtr&lt;WebCore::PluginStream&gt;,WTF::IdentityExtractor&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt;,WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt;,WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt;,WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt; &gt;::add(const WTF::RefPtr&lt;WebCore::PluginStream&gt; &amp; value=0x06cac300 {m_resourceRequest={...} m_resourceResponse={...} m_client=0x06c80bb8 ...})  Line 317 + 0x2b bytes	C++
 	WebKit.dll!WTF::HashSet&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt;,WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt;,WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::PluginStream&gt; &gt; &gt;::add(const WTF::RefPtr&lt;WebCore::PluginStream&gt; &amp; value=0x06cac300 {m_resourceRequest={...} m_resourceResponse={...} m_client=0x06c80bb8 ...})  Line 180 + 0x10 bytes	C++
 	WebKit.dll!WebCore::PluginView::performRequest(WebCore::PluginRequest * request=0x053858d0)  Line 488 + 0x1c bytes	C++
 	WebKit.dll!WebCore::PluginView::requestTimerFired(WebCore::Timer&lt;WebCore::PluginView&gt; * timer=0x06c80c48)  Line 508	C++
 	WebKit.dll!WebCore::Timer&lt;WebCore::PluginView&gt;::fired()  Line 100 + 0x29 bytes	C++
 	WebKit.dll!WebCore::ThreadTimers::sharedTimerFiredInternal()  Line 112 + 0xf bytes	C++
 	WebKit.dll!WebCore::ThreadTimers::sharedTimerFired()  Line 91	C++
 	WebKit.dll!WebCore::TimerWindowWndProc(HWND__ * hWnd=0x00130af6, unsigned int message=49590, unsigned int wParam=0, long lParam=0)  Line 103 + 0x8 bytes	C++
 	user32.dll!_InternalCallWinProc@20()  + 0x28 bytes	
 	user32.dll!_UserCallWinProcCheckWow@32()  + 0xb7 bytes	
 	user32.dll!_DispatchMessageWorker@8()  + 0xdc bytes	
 	user32.dll!_DispatchMessageW@4()  + 0xf bytes	
 	DumpRenderTree.exe!runTest(const std::basic_string&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt; &gt; &amp; testPathOrURL=&quot;c:\Documents and Settings\Adam Roben\dev\WebKit\OpenSource\LayoutTests\plugins\get-url-with-javascript-destroying-plugin.html&quot;)  Line 993 + 0xf bytes	C++
 	DumpRenderTree.exe!main(int argc=2, char * * argv=0x050febc8)  Line 1370 + 0x28 bytes	C++
 	DumpRenderTree.exe!__tmainCRTStartup()  Line 597 + 0x17 bytes	C
 	kernel32.dll!_BaseProcessStart@4()  + 0x23 bytes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354624</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-21 09:07:13 -0800</bug_when>
    <thetext>Presumably the call to ScriptController::executeScript in PluginView::performRequest caused the plugin to be deleted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354632</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-21 09:23:36 -0800</bug_when>
    <thetext>We could probably fix this by reffing the PluginView inside requestTimerFired. But that feels icky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354633</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-21 09:24:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/9030864&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354641</commentid>
    <comment_count>5</comment_count>
      <attachid>83174</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-21 09:40:16 -0800</bug_when>
    <thetext>Created attachment 83174
Protect the PluginView when evaluating javascript: URLs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354648</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-02-21 09:49:44 -0800</bug_when>
    <thetext>Committed r79231: &lt;http://trac.webkit.org/changeset/79231&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354650</commentid>
    <comment_count>7</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-02-21 09:55:57 -0800</bug_when>
    <thetext>*** Bug 54863 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83174</attachid>
            <date>2011-02-21 09:40:16 -0800</date>
            <delta_ts>2011-02-21 09:44:01 -0800</delta_ts>
            <desc>Protect the PluginView when evaluating javascript: URLs</desc>
            <filename>bug-54884-20110221124017.patch</filename>
            <type>text/plain</type>
            <size>2179</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzkyMjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMGQwMDQ5MGJhNTdlMmQz
MWM4MmE2NzIwMjU1YWM5MmYxZjM0OTg1Li45YWMxODY0NTA0NjhlZjk5MjM4ZTYxZTg4NDY5OWU0
OGFlZjA4ZDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMjEgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCisgICAgICAgIFByb3RlY3QgdGhlIFBsdWdpblZp
ZXcgd2hlbiBldmFsdWF0aW5nIGphdmFzY3JpcHQ6IFVSTHMKKworICAgICAgICBGaXhlcyA8aHR0
cDovL3dlYmtpdC5vcmcvYi81NDg4ND4gPHJkYXI6Ly9wcm9ibGVtLzkwMzA4NjQ+CisgICAgICAg
IHBsdWdpbnMvZ2V0LXVybC13aXRoLWphdmFzY3JpcHQtZGVzdHJveWluZy1wbHVnaW4uaHRtbCBj
cmFzaGluZyBvbiBXaW5kb3dzIHNpbmNlIGl0IHdhcworICAgICAgICBhZGRlZAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBlcmZvcm1SZXF1ZXN0KTog
UHJvdGVjdCB0aGUgUGx1Z2luVmlldywgbm90IGp1c3QgaXRzIHBhcmVudCBmcmFtZSwKKyAgICAg
ICAgd2hlbiBldmFsdWF0aW5nIGphdmFzY3JpcHQ6IFVSTHMuCisKIDIwMTEtMDItMDggIEFudG9u
IE11aGluICA8YW50b25tQGNocm9taXVtLm9yZz4KIAogICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
QmFydGggYW5kIEFsZXhleSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAppbmRleCA5ZTE5ZTNlYmZjNDUwOTgzNzQwYTg2NGMwOTJlZGNiZDJhZmM1YTA1Li4x
MmVjYjg2NDE0MzlkM2NlNDMyM2U3MjkxMjk2MDE0OTY0MDJlNGM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTQ2OCwxNSArNDY4LDE1IEBAIHZvaWQgUGx1Z2luVmll
dzo6cGVyZm9ybVJlcXVlc3QoUGx1Z2luUmVxdWVzdCogcmVxdWVzdCkKICAgICAvLyBhbmQgdGhp
cyBoYXMgYmVlbiBtYWRlIHN1cmUgaW4gOjpsb2FkLgogICAgIEFTU0VSVCh0YXJnZXRGcmFtZU5h
bWUuaXNFbXB0eSgpIHx8IG1fcGFyZW50RnJhbWUtPnRyZWUoKS0+ZmluZCh0YXJnZXRGcmFtZU5h
bWUpID09IG1fcGFyZW50RnJhbWUpOwogICAgIAotICAgIC8vIEV4ZWN1dGluZyBhIHNjcmlwdCBj
YW4gY2F1c2UgdGhlIHBsdWdpbiB2aWV3IHRvIGJlIGRlc3Ryb3llZCwgc28gd2Uga2VlcCBhIHJl
ZmVyZW5jZSB0byB0aGUgcGFyZW50IGZyYW1lLgotICAgIFJlZlB0cjxGcmFtZT4gcGFyZW50RnJh
bWUgPSBtX3BhcmVudEZyYW1lOworICAgIC8vIEV4ZWN1dGluZyBhIHNjcmlwdCBjYW4gY2F1c2Ug
dGhlIHBsdWdpbiB2aWV3IHRvIGJlIGRlc3Ryb3llZCwgc28gd2Uga2VlcCBhIHJlZmVyZW5jZSB0
byBpdC4KKyAgICBSZWZQdHI8UGx1Z2luVmlldz4gcHJvdGVjdG9yKHRoaXMpOwogICAgIFNjcmlw
dFZhbHVlIHJlc3VsdCA9IG1fcGFyZW50RnJhbWUtPnNjcmlwdCgpLT5leGVjdXRlU2NyaXB0KGpz
U3RyaW5nLCByZXF1ZXN0LT5zaG91bGRBbGxvd1BvcHVwcygpKTsKIAogICAgIGlmICh0YXJnZXRG
cmFtZU5hbWUuaXNOdWxsKCkpIHsKICAgICAgICAgU3RyaW5nIHJlc3VsdFN0cmluZzsKIAogI2lm
IFVTRShKU0MpCi0gICAgICAgIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSA9IHBhcmVudEZyYW1l
LT5zY3JpcHQoKS0+Z2xvYmFsT2JqZWN0KHBsdWdpbldvcmxkKCkpLT5nbG9iYWxFeGVjKCk7Cisg
ICAgICAgIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSA9IG1fcGFyZW50RnJhbWUtPnNjcmlwdCgp
LT5nbG9iYWxPYmplY3QocGx1Z2luV29ybGQoKSktPmdsb2JhbEV4ZWMoKTsKICNlbGlmIFVTRShW
OCkKICAgICAgICAgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlID0gMDsgLy8gTm90IHVzZWQgd2l0
aCBWOAogI2VuZGlmCg==
</data>
<flag name="review"
          id="74934"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>