<?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>148182</bug_id>
          
          <creation_ts>2015-08-19 12:39:04 -0700</creation_ts>
          <short_desc>PDFPlugin&apos;s scrollableArea container is not properly unregistered when page is going into the PageCache</short_desc>
          <delta_ts>2016-02-17 13:27:23 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1118970</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-08-19 12:39:04 -0700</bug_when>
    <thetext>WebKit is crashing when a some pages (those containing PluginViews, but perhaps others) are restored from the PageCache. This is happening because the FrameView holds onto a set of pointers to ScrollableAreas, but those render elements no longer exist when the page is revived from the cache.

To correct this, we must clear out these ScrollableArea pointers when the page goes into the PageCache. When the page is reconstituted from the cache, the layout pass will rebuild the set of ScrollableAreas that were in this container originally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118971</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-08-19 12:41:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/21969170&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118997</commentid>
    <comment_count>2</comment_count>
      <attachid>259396</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-08-19 13:37:22 -0700</bug_when>
    <thetext>Created attachment 259396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119077</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-08-19 16:06:08 -0700</bug_when>
    <thetext>Committed r188659: &lt;http://trac.webkit.org/changeset/188659&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119251</commentid>
    <comment_count>4</comment_count>
      <attachid>259396</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-20 09:03:16 -0700</bug_when>
    <thetext>Comment on attachment 259396
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=259396&amp;action=review

&gt; Source/WebCore/ChangeLog:9
&gt; +        Must be tested manually going back and forth in history several times.

We have plenty of layout tests for PageCache. Why cannot we write one for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165173</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-16 10:48:25 -0800</bug_when>
    <thetext>Reopening. I&apos;m rolling out because this caused bug 153404.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165174</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-16 10:49:08 -0800</bug_when>
    <thetext>Rolled out in https://trac.webkit.org/r196641.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165383</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-16 16:14:20 -0800</bug_when>
    <thetext>PDFPlugin::destroy() already has a call to frameView-&gt;removeScrollableArea(), so why doesn&apos;t this always work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165401</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-16 16:35:13 -0800</bug_when>
    <thetext>Oh this is the usual page cache mess where we remove it from the wrong FrameView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165428</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-16 17:51:26 -0800</bug_when>
    <thetext>So the real issue is that PDFPlugin invalidates the assumption that a page in the page cache is &quot;frozen&quot; and won&apos;t try to access the Frame etc. This is because it gets torn down under this stack, after going into the page cache:

* thread #1: tid = 0xd65515, 0x000000010e95a0cf WebKit`WebKit::PDFPlugin::destroy(this=0x0000000125d391d8) + 63 at DeprecatedPDFPlugin.mm:1104, queue = &apos;com.apple.main-thread&apos;, stop reason = breakpoint 14.1
  * frame #0: 0x000000010e95a0cf WebKit`WebKit::PDFPlugin::destroy(this=0x0000000125d391d8) + 63 at DeprecatedPDFPlugin.mm:1104
    frame #1: 0x000000010ebcbb6a WebKit`WebKit::Plugin::destroyPlugin(this=0x0000000125d391d8) + 26 at Plugin.cpp:101
    frame #2: 0x000000010ec4af59 WebKit`WebKit::PluginView::destroyPluginAndReset(this=0x0000000126033a40) + 265 at PluginView.cpp:357
    frame #3: 0x000000010ec4ace2 WebKit`WebKit::PluginView::~PluginView(this=0x0000000126033a40) + 322 at PluginView.cpp:342
    frame #4: 0x000000010ec4b015 WebKit`WebKit::PluginView::~PluginView(this=0x0000000126033a40) + 21 at PluginView.cpp:331
    frame #5: 0x000000010ec4b0f9 WebKit`WebKit::PluginView::~PluginView(this=0x0000000126033a40) + 25 at PluginView.cpp:331
    frame #6: 0x0000000114e564b3 WebCore`WTF::RefCounted&lt;WebCore::Widget&gt;::deref(this=0x0000000126033a48) + 83 at RefCounted.h:146
    frame #7: 0x00000001156be3ea WebCore`void WTF::derefIfNotNull&lt;WebCore::Widget&gt;(ptr=0x0000000126033a40) + 58 at PassRefPtr.h:42
    frame #8: 0x00000001156be3a9 WebCore`WTF::RefPtr&lt;WebCore::Widget&gt;::~RefPtr(this=0x0000000125183d70) + 41 at RefPtr.h:59
    frame #9: 0x00000001156bbb75 WebCore`WTF::RefPtr&lt;WebCore::Widget&gt;::~RefPtr(this=0x0000000125183d70) + 21 at RefPtr.h:59
    frame #10: 0x0000000116cae775 WebCore`WTF::KeyValuePair&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WebCore::FrameView*&gt;::~KeyValuePair(this=0x0000000125183d70) + 21 at HashTraits.h:168
    frame #11: 0x0000000116cae745 WebCore`WTF::KeyValuePair&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WebCore::FrameView*&gt;::~KeyValuePair(this=0x0000000125183d70) + 21 at HashTraits.h:168
    frame #12: 0x0000000116cae6d4 WebCore`WTF::HashTable&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WTF::KeyValuePair&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WebCore::FrameView*&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WebCore::FrameView*&gt; &gt;, WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt;, WTF::HashMap&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WebCore::FrameView*, WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt;, WTF::HashTraits&lt;WebCore::FrameView*&gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt; &gt;::deallocateTable(table=0x0000000125183d00, size=8) + 84 at HashTable.h:1139
    frame #13: 0x0000000116cae4ae WebCore`WTF::HashTable&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WTF::KeyValuePair&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WebCore::FrameView*&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WebCore::FrameView*&gt; &gt;, WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt;, WTF::HashMap&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WebCore::FrameView*, WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt;, WTF::HashTraits&lt;WebCore::FrameView*&gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt; &gt;::~HashTable(this=0x00007fff5141c098) + 62 at HashTable.h:359
    frame #14: 0x0000000116cae465 WebCore`WTF::HashTable&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WTF::KeyValuePair&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WebCore::FrameView*&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WebCore::FrameView*&gt; &gt;, WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt;, WTF::HashMap&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WebCore::FrameView*, WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt;, WTF::HashTraits&lt;WebCore::FrameView*&gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt; &gt;::~HashTable(this=0x00007fff5141c098) + 21 at HashTable.h:356
    frame #15: 0x0000000116cae445 WebCore`WTF::HashMap&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WebCore::FrameView*, WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt;, WTF::HashTraits&lt;WebCore::FrameView*&gt; &gt;::~HashMap(this=0x00007fff5141c098) + 21 at HashMap.h:36
    frame #16: 0x0000000116cadb95 WebCore`WTF::HashMap&lt;WTF::RefPtr&lt;WebCore::Widget&gt;, WebCore::FrameView*, WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::Widget&gt; &gt;, WTF::HashTraits&lt;WebCore::FrameView*&gt; &gt;::~HashMap(this=0x00007fff5141c098) + 21 at HashMap.h:36
    frame #17: 0x0000000116cab8d3 WebCore`WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets(this=0x00007fff5141c190) + 403 at RenderWidget.cpp:69
    frame #18: 0x0000000115179a5c WebCore`WebCore::WidgetHierarchyUpdatesSuspensionScope::~WidgetHierarchyUpdatesSuspensionScope(this=0x00007fff5141c190) + 108 at RenderWidget.h:43
    frame #19: 0x00000001151782d5 WebCore`WebCore::WidgetHierarchyUpdatesSuspensionScope::~WidgetHierarchyUpdatesSuspensionScope(this=0x00007fff5141c190) + 21 at RenderWidget.h:40
    frame #20: 0x0000000117029ebb WebCore`WebCore::Style::detachRenderTree(current=0x0000000125f5f280, detachType=NormalDetach) + 315 at StyleTreeResolver.cpp:615
    frame #21: 0x000000011702afc7 WebCore`WebCore::Style::detachRenderTree(element=0x0000000125f5f280) + 23 at StyleTreeResolver.cpp:939
    frame #22: 0x0000000115ab05d7 WebCore`WebCore::HTMLPlugInImageElement::prepareForDocumentSuspension(this=0x0000000125f5f280) + 55 at HTMLPlugInImageElement.cpp:318
    frame #23: 0x00000001154aa6ee WebCore`WebCore::Document::suspend(this=0x0000000125ec2bc0, reason=PageCache) + 222 at Document.cpp:4625
    frame #24: 0x00000001150475c4 WebCore`WebCore::CachedFrame::CachedFrame(this=0x00000001259e6f78, frame=0x000000012516e000) + 964 at CachedFrame.cpp:163

Note that we now put pages with plug-ins into the page cache (which probably triggered this bug).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165433</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-16 18:06:38 -0800</bug_when>
    <thetext>rdar://problem/24679436</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165435</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-16 18:16:22 -0800</bug_when>
    <thetext>Actually this is bad teardown stack:

* thread #1: tid = 0xd6f547, 0x0000000109056155 WebKit`WebKit::PDFPlugin::destroy(this=0x000000012054eb10) + 197 at DeprecatedPDFPlugin.mm:1113, queue = &apos;com.apple.main-thread&apos;, stop reason = breakpoint 18.1
  * frame #0: 0x0000000109056155 WebKit`WebKit::PDFPlugin::destroy(this=0x000000012054eb10) + 197 at DeprecatedPDFPlugin.mm:1113
    frame #1: 0x00000001092c7b6a WebKit`WebKit::Plugin::destroyPlugin(this=0x000000012054eb10) + 26 at Plugin.cpp:101
    frame #2: 0x0000000109346f59 WebKit`WebKit::PluginView::destroyPluginAndReset(this=0x000000011fe90740) + 265 at PluginView.cpp:357
    frame #3: 0x0000000109346ce2 WebKit`WebKit::PluginView::~PluginView(this=0x000000011fe90740) + 322 at PluginView.cpp:342
    frame #4: 0x0000000109347015 WebKit`WebKit::PluginView::~PluginView(this=0x000000011fe90740) + 21 at PluginView.cpp:331
    frame #5: 0x00000001093470f9 WebKit`WebKit::PluginView::~PluginView(this=0x000000011fe90740) + 25 at PluginView.cpp:331
    frame #6: 0x000000010f5594b3 WebCore`WTF::RefCounted&lt;WebCore::Widget&gt;::deref(this=0x000000011fe90748) + 83 at RefCounted.h:146
    frame #7: 0x000000010fdc13ea WebCore`void WTF::derefIfNotNull&lt;WebCore::Widget&gt;(ptr=0x000000011fe90740) + 58 at PassRefPtr.h:42
    frame #8: 0x000000010fdc13a9 WebCore`WTF::RefPtr&lt;WebCore::Widget&gt;::~RefPtr(this=0x00007fff56d2bee0) + 41 at RefPtr.h:59
    frame #9: 0x000000010fdbeb75 WebCore`WTF::RefPtr&lt;WebCore::Widget&gt;::~RefPtr(this=0x00007fff56d2bee0) + 21 at RefPtr.h:59
    frame #10: 0x00000001101ae9ac WebCore`WebCore::HTMLPlugInElement::defaultEventHandler(this=0x000000012075c280, event=0x00000001201a17f8) + 412 at HTMLPlugInElement.cpp:235
    frame #11: 0x00000001101b61a8 WebCore`WebCore::HTMLPlugInImageElement::defaultEventHandler(this=0x000000012075c280, event=0x00000001201a17f8) + 296 at HTMLPlugInImageElement.cpp:756
    frame #12: 0x000000010fd9ed96 WebCore`WebCore::callDefaultEventHandlersInTheBubblingOrder(event=0x00000001201a17f8, path=0x00007fff56d2c020) + 102 at EventDispatcher.cpp:134
    frame #13: 0x000000010fd9e4e1 WebCore`WebCore::EventDispatcher::dispatchEvent(origin=0x000000012075c280, event=0x00000001201a17f8) + 881 at EventDispatcher.cpp:239
    frame #14: 0x0000000110f1003d WebCore`WebCore::Node::dispatchEvent(this=0x000000012075c280, event=0x00000001201a17f8) + 29 at Node.cpp:2108
    frame #15: 0x000000010fdb090f WebCore`WebCore::EventHandler::keyEvent(this=0x000000011f76c000, initialKeyEvent=0x00007fff56d2c4a8) + 1519 at EventHandler.cpp:3054
    frame #16: 0x0000000111a37682 WebCore`WebCore::UserInputBridge::handleKeyEvent(this=0x00007fda18e106a0, keyEvent=0x00007fff56d2c4a8, inputSource=User) + 466 at UserInputBridge.cpp:170

and this happens when we navigate inside handling a key event:

* thread #1: tid = 0xd7189e, 0x000000011602ac4f WebCore`WebCore::FrameLoader::commitProvisionalLoad(this=0x000000012596e0a0) + 47 at FrameLoader.cpp:1726, queue = &apos;com.apple.main-thread&apos;, stop reason = breakpoint 17.1
  * frame #0: 0x000000011602ac4f WebCore`WebCore::FrameLoader::commitProvisionalLoad(this=0x000000012596e0a0) + 47 at FrameLoader.cpp:1726
    frame #1: 0x000000011602fbf2 WebCore`WebCore::FrameLoader::loadProvisionalItemFromCachedPage(this=0x000000012596e0a0) + 290 at FrameLoader.cpp:3211
    frame #2: 0x0000000116029828 WebCore`WebCore::FrameLoader::continueLoadAfterNavigationPolicy(this=0x000000012596e0a0, request=0x00007fff50c47b70, formState=PassRefPtr&lt;WebCore::FormState&gt; @ 0x00007fff50c47690, shouldContinue=true, allowNavigationToInvalidURL=Yes) + 1080 at FrameLoader.cpp:3058
    frame #3: 0x0000000116037e9e WebCore`WebCore::FrameLoader::loadWithDocumentLoader(this=0x00007fff50c47dc8, request=0x00007fff50c47b70, formState=&lt;unavailable&gt;, shouldContinue=true)::$_4::operator()(WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool) const + 94 at FrameLoader.cpp:1446
    frame #4: 0x0000000116037e20 WebCore`void std::__1::__invoke_void_return_wrapper&lt;void&gt;::__call&lt;WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::FormState&gt;, WebCore::AllowNavigationToInvalidURL)::$_4&amp;, WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool&gt;(WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::FormState&gt;, WebCore::AllowNavigationToInvalidURL)::$_4&amp;&amp;&amp;, WebCore::ResourceRequest const&amp;&amp;&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;&amp;&amp;, bool&amp;&amp;) [inlined] decltype(__f=0x00007fff50c47dc8, __args=0x00007fff50c47b70, __args=0x00007fff50c47850, __args=0x00007fff50c477e7)::$_4&amp;&gt;(fp)(std::__1::forward&lt;WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool&gt;(fp0))) std::__1::__invoke&lt;WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::FormState&gt;, WebCore::AllowNavigationToInvalidURL)::$_4&amp;, WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool&gt;(WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::FormState&gt;, WebCore::AllowNavigationToInvalidURL)::$_4&amp;&amp;&amp;, WebCore::ResourceRequest const&amp;&amp;&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;&amp;&amp;, bool&amp;&amp;) + 107 at __functional_base:415
    frame #5: 0x0000000116037db5 WebCore`void std::__1::__invoke_void_return_wrapper&lt;void&gt;::__call&lt;WebCore::FrameLoader::loadWithDocumentLoader(__args=0x00007fff50c47dc8, __args=0x00007fff50c47b70, __args=0x00007fff50c47850, __args=0x00007fff50c477e7)::$_4&amp;, WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool&gt;(WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::FormState&gt;, WebCore::AllowNavigationToInvalidURL)::$_4&amp;&amp;&amp;, WebCore::ResourceRequest const&amp;&amp;&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;&amp;&amp;, bool&amp;&amp;) + 101 at __functional_base:440
    frame #6: 0x0000000116037d1c WebCore`std::__1::__function::__func&lt;WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::FormState&gt;, WebCore::AllowNavigationToInvalidURL)::$_4, std::__1::allocator&lt;WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::FormState&gt;, WebCore::AllowNavigationToInvalidURL)::$_4&gt;, void (WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool)&gt;::operator(this=0x00007fff50c47dc0, __arg=0x00007fff50c47b70, __arg=0x00007fff50c47850, __arg=0x00007fff50c477e7)(WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;&amp;&amp;, bool&amp;&amp;) + 92 at functional:1407
    frame #7: 0x00000001170be187 WebCore`std::__1::function&lt;void (WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool)&gt;::operator(this=0x00007fff50c47dc0, __arg=0x00007fff50c47b70, __arg=&lt;unavailable&gt;, __arg=true)(WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool) const + 87 at functional:1793
    frame #8: 0x00000001170bd779 WebCore`WebCore::PolicyCallback::call(this=0x00007fff50c47b70, shouldContinue=true) + 137 at PolicyCallback.cpp:95
    frame #9: 0x00000001170bede5 WebCore`WebCore::PolicyChecker::continueAfterNavigationPolicy(this=0x000000012596d000, policy=PolicyUse) + 677 at PolicyChecker.cpp:204
    frame #10: 0x00000001170c23de WebCore`WebCore::PolicyChecker::checkNavigationPolicy(this=0x00007fff50c47f98, action=PolicyUse)&gt;)::$_1::operator()(WebCore::PolicyAction) const + 30 at PolicyChecker.cpp:121
    frame #11: 0x00000001170c23af WebCore`void std::__1::__invoke_void_return_wrapper&lt;void&gt;::__call&lt;WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&amp;, WebCore::DocumentLoader*, WTF::PassRefPtr&lt;WebCore::FormState&gt;, std::__1::function&lt;void (WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool)&gt;)::$_1&amp;, WebCore::PolicyAction&gt;(WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&amp;, WebCore::DocumentLoader*, WTF::PassRefPtr&lt;WebCore::FormState&gt;, std::__1::function&lt;void (WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool)&gt;)::$_1&amp;&amp;&amp;, WebCore::PolicyAction&amp;&amp;) [inlined] decltype(__f=0x00007fff50c47f98, __args=0x00007fff50c47f2c)&gt;)::$_1&amp;&gt;(fp)(std::__1::forward&lt;WebCore::PolicyAction&gt;(fp0))) std::__1::__invoke&lt;WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&amp;, WebCore::DocumentLoader*, WTF::PassRefPtr&lt;WebCore::FormState&gt;, std::__1::function&lt;void (WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool)&gt;)::$_1&amp;, WebCore::PolicyAction&gt;(WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&amp;, WebCore::DocumentLoader*, WTF::PassRefPtr&lt;WebCore::FormState&gt;, std::__1::function&lt;void (WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool)&gt;)::$_1&amp;&amp;&amp;, WebCore::PolicyAction&amp;&amp;) + 79 at __functional_base:415
    frame #12: 0x00000001170c2390 WebCore`void std::__1::__invoke_void_return_wrapper&lt;void&gt;::__call&lt;WebCore::PolicyChecker::checkNavigationPolicy(__args=0x00007fff50c47f98, __args=0x00007fff50c47f2c)&gt;)::$_1&amp;, WebCore::PolicyAction&gt;(WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&amp;, WebCore::DocumentLoader*, WTF::PassRefPtr&lt;WebCore::FormState&gt;, std::__1::function&lt;void (WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool)&gt;)::$_1&amp;&amp;&amp;, WebCore::PolicyAction&amp;&amp;) + 48 at __functional_base:440
    frame #13: 0x00000001170c232c WebCore`std::__1::__function::__func&lt;WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&amp;, WebCore::DocumentLoader*, WTF::PassRefPtr&lt;WebCore::FormState&gt;, std::__1::function&lt;void (WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool)&gt;)::$_1, std::__1::allocator&lt;WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&amp;, WebCore::DocumentLoader*, WTF::PassRefPtr&lt;WebCore::FormState&gt;, std::__1::function&lt;void (WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool)&gt;)::$_1&gt;, void (WebCore::PolicyAction)&gt;::operator(this=0x00007fff50c47f90, __arg=0x00007fff50c47f2c)(WebCore::PolicyAction&amp;&amp;) + 60 at functional:1407
    frame #14: 0x000000010f6bfc8c WebKit`std::__1::function&lt;void (WebCore::PolicyAction)&gt;::operator(this=0x00007fff50c47f90, __arg=PolicyUse)(WebCore::PolicyAction) const + 44 at functional:1793
    frame #15: 0x000000010f6bb35c WebKit`WebKit::WebFrame::didReceivePolicyDecision(this=0x00007f969b7035d0, listenerID=10, action=PolicyUse, navigationID=6, downloadID=(m_downloadID = 0)) + 332 at WebFrame.cpp:246
    frame #16: 0x000000010f6c6b14 WebKit`WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(this=0x00007f969d103f80, navigationAction=0x00007fff50c48540, request=0x000000012623a750, prpFormState=PassRefPtr&lt;WebCore::FormState&gt; @ 0x00007fff50c483d8, function=WebCore::FramePolicyFunction @ 0x00007fff50c48680)&gt;) + 2196 at WebFrameLoaderClient.cpp:829
    frame #17: 0x00000001170bea8b WebCore`WebCore::PolicyChecker::checkNavigationPolicy(this=0x000000012596d000, request=0x000000012623a750, loader=0x000000012623a280, formState=PassRefPtr&lt;WebCore::FormState&gt; @ 0x00007fff50c48850, function=WebCore::NavigationPolicyDecisionFunction @ 0x00007fff50c48c30)&gt;) + 1531 at PolicyChecker.cpp:120
    frame #18: 0x0000000116028f07 WebCore`WebCore::FrameLoader::loadWithDocumentLoader(this=0x000000012596e0a0, loader=0x000000012623a280, type=Back, prpFormState=PassRefPtr&lt;WebCore::FormState&gt; @ 0x00007fff50c49508, allowNavigationToInvalidURL=Yes) + 1735 at FrameLoader.cpp:1445
    frame #19: 0x0000000116025445 WebCore`WebCore::FrameLoader::loadDifferentDocumentItem(this=0x000000012596e0a0, item=0x00000001259bf0c8, loadType=Back, cacheLoadPolicy=MayAttemptCacheOnlyLoadForFormSubmissionItem) + 373 at FrameLoader.cpp:3279
    frame #20: 0x0000000116030945 WebCore`WebCore::FrameLoader::loadItem(this=0x000000012596e0a0, item=0x00000001259bf0c8, loadType=Back) + 165 at FrameLoader.cpp:3368
    frame #21: 0x000000011614f030 WebCore`WebCore::HistoryController::recursiveGoToItem(this=0x00000001259f23f0, item=0x00000001259bf0c8, fromItem=0x00000001297c33e8, type=Back) + 96 at HistoryController.cpp:747
    frame #22: 0x000000011614edf1 WebCore`WebCore::HistoryController::goToItem(this=0x00000001259f23f0, targetItem=0x00000001259bf0c8, type=Back) + 401 at HistoryController.cpp:320
    frame #23: 0x000000011701fa76 WebCore`WebCore::Page::goToItem(this=0x0000000125801c00, item=0x00000001259bf0c8, type=Back) + 198 at Page.cpp:436
    frame #24: 0x00000001157b93c9 WebCore`WebCore::BackForwardController::goBack(this=0x00000001259f7050) + 73 at BackForwardController.cpp:86
    frame #25: 0x000000010f806b07 WebKit`WebKit::WebPage::performNonEditingBehaviorForSelector(this=0x00007f969e007e10, selector=0x0000000126182540, event=0x00000001259a02a8) + 1287 at WebPageMac.mm:554
    frame #26: 0x000000010f806100 WebKit`WebKit::WebPage::executeKeypressCommandsInternal(this=0x00007f969e007e10, commands=0x00000001259a0320, event=0x00000001259a02a8) + 912 at WebPageMac.mm:250
    frame #27: 0x000000010f806fed WebKit`WebKit::WebPage::handleEditingKeyboardEvent(this=0x00007f969e007e10, event=0x00000001259a02a8) + 797 at WebPageMac.mm:293
    frame #28: 0x000000010f6b3191 WebKit`WebKit::WebEditorClient::handleKeyboardEvent(this=0x00007f969d102ba0, event=0x00000001259a02a8) + 33 at WebEditorClientMac.mm:66
    frame #29: 0x0000000115e12e72 WebCore`WebCore::Editor::handleKeyboardEvent(this=0x0000000125975c00, event=0x00000001259a02a8) + 66 at Editor.cpp:189
    frame #30: 0x0000000115e803a1 WebCore`WebCore::EventHandler::defaultKeyboardEventHandler(this=0x000000012596c000, event=0x00000001259a02a8) + 97 at EventHandler.cpp:3221
    frame #31: 0x0000000116fdf541 WebCore`WebCore::Node::defaultEventHandler(this=0x000000012595a780, event=0x00000001259a02a8) + 241 at Node.cpp:2175
    frame #32: 0x000000011627d99c WebCore`WebCore::HTMLPlugInElement::defaultEventHandler(this=0x000000012595a780, event=0x00000001259a02a8) + 396 at HTMLPlugInElement.cpp:234
    frame #33: 0x00000001162851a8 WebCore`WebCore::HTMLPlugInImageElement::defaultEventHandler(this=0x000000012595a780, event=0x00000001259a02a8) + 296 at HTMLPlugInImageElement.cpp:756
    frame #34: 0x0000000115e6dd96 WebCore`WebCore::callDefaultEventHandlersInTheBubblingOrder(event=0x00000001259a02a8, path=0x00007fff50c4a020) + 102 at EventDispatcher.cpp:134
    frame #35: 0x0000000115e6d4e1 WebCore`WebCore::EventDispatcher::dispatchEvent(origin=0x000000012595a780, event=0x00000001259a02a8) + 881 at EventDispatcher.cpp:239
    frame #36: 0x0000000116fdf03d WebCore`WebCore::Node::dispatchEvent(this=0x000000012595a780, event=0x00000001259a02a8) + 29 at Node.cpp:2108
    frame #37: 0x0000000115e7f90f WebCore`WebCore::EventHandler::keyEvent(this=0x000000012596c000, initialKeyEvent=0x00007fff50c4a4a8) + 1519 at EventHandler.cpp:3054
    frame #38: 0x0000000117b06682 WebCore`WebCore::UserInputBridge::handleKeyEvent(this=0x00007f969d1017f0, keyEvent=0x00007fff50c4a4a8, inputSource=User) + 466 at UserInputBridge.cpp:170
    frame #39: 0x000000010f7b648d WebKit`WebKit::handleKeyEvent(keyboardEvent=0x00007fff50c4a708, page=0x0000000125801c00) + 221 at WebPage.cpp:2138
    frame #40: 0x000000010f7b6342 WebKit`WebKit::WebPage::keyEvent(this=0x00007f969e007e10, keyboardEvent=0x00007fff50c4a708) + 162 at WebPage.cpp:2150</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165453</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-16 18:29:05 -0800</bug_when>
    <thetext>Fragile fix:
diff --git a/Source/WebCore/html/HTMLPlugInElement.cpp b/Source/WebCore/html/HTMLPlugInElement.cpp
index 57a532e98da402bc737b54e8f6494fc791e23133..f22d93b4464406f83b9425278b21256c662d8be4 100644
--- a/Source/WebCore/html/HTMLPlugInElement.cpp
+++ b/Source/WebCore/html/HTMLPlugInElement.cpp
@@ -225,12 +225,14 @@ void HTMLPlugInElement::defaultEventHandler(Event* event)
             return;
     }
 
-    RefPtr&lt;Widget&gt; widget = downcast&lt;RenderWidget&gt;(*renderer).widget();
-    if (!widget)
-        return;
-    widget-&gt;handleEvent(event);
-    if (event-&gt;defaultHandled())
-        return;
+    {
+        RefPtr&lt;Widget&gt; widget = downcast&lt;RenderWidget&gt;(*renderer).widget();
+        if (!widget)
+            return;
+        widget-&gt;handleEvent(event);
+        if (event-&gt;defaultHandled())
+            return;
+    }
     HTMLFrameOwnerElement::defaultEventHandler(event);
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165665</commentid>
    <comment_count>13</comment_count>
      <attachid>271575</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-17 12:14:39 -0800</bug_when>
    <thetext>Created attachment 271575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165667</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-17 12:15:28 -0800</bug_when>
    <thetext>To reproduce this bug:
1. Load a page with a link to a long (scrollable) pdf
2. Click the link
3. Use Command-Left Arrow to go back.

Crashes under GuardMalloc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165672</commentid>
    <comment_count>15</comment_count>
      <attachid>271575</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-02-17 12:23:51 -0800</bug_when>
    <thetext>Comment on attachment 271575
Patch

r=me. Thank you for figuring out the *true* fix to this problem!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165710</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-17 13:27:23 -0800</bug_when>
    <thetext>https://trac.webkit.org/r196717</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259396</attachid>
            <date>2015-08-19 13:37:22 -0700</date>
            <delta_ts>2016-02-17 12:07:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148182-20150819133718.patch</filename>
            <type>text/plain</type>
            <size>2675</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODY0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA4LTE5ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbGFibGUgYXJlYSBj
b250YWluZXIgaXMgbm90IHByb3Blcmx5IGNsZWFyZWQgd2hlbiBwYWdlIGlzIGdvaW5nIGludG8g
dGhlIFBhZ2VDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4MTgyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMTk2OTE3MD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNdXN0IGJlIHRlc3RlZCBt
YW51YWxseSBnb2luZyBiYWNrIGFuZCBmb3J0aCBpbiBoaXN0b3J5IHNldmVyYWwgdGltZXMuCisK
KyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZEZyYW1lOjpDYWNoZWRGcmFtZSk6IENsZWFyIHRoZSBjYWNoZWQgU2Nyb2xsYWJsZUFyZWFz
IGZyb20gdGhlIEZyYW1lVmlldy4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNsZWFyU2Nyb2xsYWJsZUFyZWFzKTogQWRkZWQuCisg
ICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKwogMjAxNS0wOC0xOCAgRmlsaXAgUGl6bG8gIDxm
cGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgYWxsIHVzZXMgb2Ygc3RkOjptdXRl
eC9zdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSB3aXRoIFdURjo6TG9jay9XVEY6OkNvbmRpdGlvbgpJ
bmRleDogU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAJKHJldmlzaW9uIDE4ODYz
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNzcsNiArMTc3LDggQEAgQ2FjaGVkRnJhbWU6OkNhY2hlZEZyYW1lKEZyYW1lJiBm
cmFtZSkKICAgICBpZiAobV9pc0NvbXBvc2l0ZWQgJiYgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5z
aG91bGRDbGVhckJhY2tpbmdTdG9yZXMoKSkKICAgICAgICAgZnJhbWUudmlldygpLT5jbGVhckJh
Y2tpbmdTdG9yZXMoKTsKIAorICAgIGZyYW1lLnZpZXcoKS0+Y2xlYXJTY3JvbGxhYmxlQXJlYXMo
KTsKKwogICAgIC8vIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjYW4gc2V0IHVw
IGEgbGF5b3V0IHRpbWVyIG9uIHRoZSBGcmFtZVZpZXcsIHNvIGNsZWFyIHRpbWVycyBhZnRlciB0
aGF0LgogICAgIGZyYW1lLmNsZWFyVGltZXJzKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAJKHJldmlzaW9uIDE4ODYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUxOSw2ICs0NTE5LDEyIEBAIGJvb2wgRnJhbWVW
aWV3Ojpjb250YWluc1Njcm9sbGFibGVBcmVhKFMKICAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJl
YXMgJiYgbV9zY3JvbGxhYmxlQXJlYXMtPmNvbnRhaW5zKHNjcm9sbGFibGVBcmVhKTsKIH0KIAor
dm9pZCBGcmFtZVZpZXc6OmNsZWFyU2Nyb2xsYWJsZUFyZWFzKCkKK3sKKyAgICBpZiAobV9zY3Jv
bGxhYmxlQXJlYXMpCisgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWFzLT5jbGVhcigpOworfQorCiB2
b2lkIEZyYW1lVmlldzo6c2Nyb2xsYWJsZUFyZWFTZXRDaGFuZ2VkKCkKIHsKICAgICBpZiAoYXV0
byogcGFnZSA9IGZyYW1lKCkucGFnZSgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJ
KHJldmlzaW9uIDE4ODYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ1OCw2ICs0NTgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCByZW1vdmVTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSopOwogICAgIGJvb2wg
Y29udGFpbnNTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSopIGNvbnN0OwogICAgIGNvbnN0
IFNjcm9sbGFibGVBcmVhU2V0KiBzY3JvbGxhYmxlQXJlYXMoKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbGFibGVBcmVhcy5nZXQoKTsgfQorICAgIHZvaWQgY2xlYXJTY3JvbGxhYmxlQXJlYXMoKTsK
IAogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDaGlsZChXaWRnZXQmKSBvdmVycmlkZTsKIAo=
</data>
<flag name="review"
          id="284567"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271575</attachid>
            <date>2016-02-17 12:14:39 -0800</date>
            <delta_ts>2016-02-17 12:23:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148182-20160217121419.patch</filename>
            <type>text/plain</type>
            <size>10121</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2NjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThjYTcwZjE2ZTA0YjU1
ZDcyNDBhZGU0Y2ViNzRiNWQ2ZTBmMGE2MS4uYWM5ZTQ4ZWI1NGRmYWE4NTQxMjA1Yjg5ZmNlMWFi
NmExNGMwODU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTAyLTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBERlBsdWdpbidz
IHNjcm9sbGFibGVBcmVhIGNvbnRhaW5lciBpcyBub3QgcHJvcGVybHkgdW5yZWdpc3RlcmVkIHdo
ZW4gcGFnZSBpcyBnb2luZyBpbnRvIHRoZSBQYWdlQ2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODE4MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV2hlbiBoYW5kbGluZyBDb21tYW5k
LWFycm93IGtleSB3aGlsZSBzaG93aW5nIGEgc2Nyb2xsYWJsZSBQREYsIHRoZSB0aW1pbmcgb2Yg
UERGUGx1Z2luCisgICAgICAgIHRlYXJkb3duIGFuZCBuYXZpZ2F0aW9uIGNvdWxkIHJlc3VsdCBp
biBQREZQbHVnaW46OmRlc3Ryb3koKSBnZXR0aW5nIHRoZSB3cm9uZyBGcmFtZVZpZXcsCisgICAg
ICAgIHNvIHRoZSBvbGQgRnJhbWVWaWV3IHdhcyBsZWZ0IHdpdGggYSBzdGFsZSBwb2ludGVyIGlu
IGl0cyBzY3JvbGxhYmxlQXJlYVNldC4KKworICAgICAgICBGaXggdGhpcyBieSBhZGRpbmcgYW4g
ZXhwbGljaXQgd2lsbERldGF0Y2hSZW5kZXJlcigpIHdoaWNoIGlzIGNhbGxlZCBvbiB0aGUgcGx1
Z2luCisgICAgICAgIGJlZm9yZSB0aGUgRnJhbWUgZ2V0cyBhIG5ldyBGcmFtZVZpZXcuCisKKyAg
ICAgICAgQWxzbyBuYXJyb3cgdGhlIHNjb3BlIG9mIHRoZSBSZWZQdHI8V2lkZ2V0PiBpbiBIVE1M
UGx1Z0luRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcigpCisgICAgICAgIHNvIHRoYXQgdGhl
IFdpZGdldCBpcyBub3Qga2VwdCBhbGl2ZSBvdmVyIGEgcG9zc2libGUgbmF2aWdhdGlvbi4KKwor
ICAgICAgICBJIHdhcyB1bmFibGUgdG8gbWFrZSBhbiBhdXRvbWF0ZWQgdGVzdCwgYmVjYXVzZSBy
ZXByb2R1Y2luZyB0aGUgYnVnIHJlcXVpcmVzIGhhbmRsaW5nCisgICAgICAgIGEgQ29tbWFuZC1h
cnJvdyBrZXkgZXZlbnQgaW4gYSB3YXkgdGhhdCB0aGUgbGFzdCByZWYgdG8gYSBXaWRnZXQgaXMg
aGVsZCBvdmVyIHRoZSBldmVudAorICAgICAgICBoYW5kbGluZywgYW5kIHRoaXMgd2Fzbid0IHBv
c3NpYmxlIGluIGFuIGlmcmFtZS4KKworICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhh
bmRsZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJz
KToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXdCYXNlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5WaWV3QmFzZTo6d2lsbERldGF0Y2hSZW5kZXJlcik6CisgICAgICAgICogc3R5bGUv
U3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmRldGFjaFJl
bmRlclRyZWUpOiBEcml2ZS1ieSBudWxscHRyLgorCiAyMDE2LTAyLTE2ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEV2ZXJ5IFJlbmRlckxheWVyIHNo
b3VsZCBub3QgaGF2ZSB0byByZW1vdmUgaXRzZWxmIGZyb20gdGhlIHNjcm9sbGFibGVBcmVhIHNl
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IGQ2NTAxZjIxNjAwMjdkNDM3NjA5Njk2N2U5MGRkMDc5ZDMzYzg0YjAu
LmIzOTNkM2E3OGI3YTM5YTRhMWMzODk0ODU1ZjQxZDZhYWJiYWRmNTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMyBAQAorMjAxNi0wMi0xNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KKworICAgICAgICBQREZQbHVnaW4ncyBzY3JvbGxhYmxlQXJlYSBjb250YWluZXIg
aXMgbm90IHByb3Blcmx5IHVucmVnaXN0ZXJlZCB3aGVuIHBhZ2UgaXMgZ29pbmcgaW50byB0aGUg
UGFnZUNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDgxODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAg
CisgICAgICAgIFdoZW4gaGFuZGxpbmcgQ29tbWFuZC1hcnJvdyBrZXkgd2hpbGUgc2hvd2luZyBh
IHNjcm9sbGFibGUgUERGLCB0aGUgdGltaW5nIG9mIFBERlBsdWdpbgorICAgICAgICB0ZWFyZG93
biBhbmQgbmF2aWdhdGlvbiBjb3VsZCByZXN1bHQgaW4gUERGUGx1Z2luOjpkZXN0cm95KCkgZ2V0
dGluZyB0aGUgd3JvbmcgRnJhbWVWaWV3LAorICAgICAgICBzbyB0aGUgb2xkIEZyYW1lVmlldyB3
YXMgbGVmdCB3aXRoIGEgc3RhbGUgcG9pbnRlciBpbiBpdHMgc2Nyb2xsYWJsZUFyZWFTZXQuCisK
KyAgICAgICAgRml4IHRoaXMgYnkgYWRkaW5nIGFuIGV4cGxpY2l0IHdpbGxEZXRhdGNoUmVuZGVy
ZXIoKSB3aGljaCBpcyBjYWxsZWQgb24gdGhlIHBsdWdpbgorICAgICAgICBiZWZvcmUgdGhlIEZy
YW1lIGdldHMgYSBuZXcgRnJhbWVWaWV3LgorCisgICAgICAgIEFsc28gbmFycm93IHRoZSBzY29w
ZSBvZiB0aGUgUmVmUHRyPFdpZGdldD4gaW4gSFRNTFBsdWdJbkVsZW1lbnQ6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoKQorICAgICAgICBzbyB0aGF0IHRoZSBXaWRnZXQgaXMgbm90IGtlcHQgYWxpdmUg
b3ZlciBhIHBvc3NpYmxlIG5hdmlnYXRpb24uCisKKyAgICAgICAgSSB3YXMgdW5hYmxlIHRvIG1h
a2UgYW4gYXV0b21hdGVkIHRlc3QsIGJlY2F1c2UgcmVwcm9kdWNpbmcgdGhlIGJ1ZyByZXF1aXJl
cyBoYW5kbGluZworICAgICAgICBhIENvbW1hbmQtYXJyb3cga2V5IGV2ZW50IGluIGEgd2F5IHRo
YXQgdGhlIGxhc3QgcmVmIHRvIGEgV2lkZ2V0IGlzIGhlbGQgb3ZlciB0aGUgZXZlbnQKKyAgICAg
ICAgaGFuZGxpbmcsIGFuZCB0aGlzIHdhc24ndCBwb3NzaWJsZSBpbiBhbiBpZnJhbWUuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4uaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW06Cisg
ICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6d2lsbERldGF0Y2hSZW5kZXJlcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW46
OndpbGxEZXRhdGNoUmVuZGVyZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6d2lsbERldGF0Y2hSZW5k
ZXJlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaDoKKwogMjAx
Ni0wMi0xNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IFVzZSBwaWRfdCBldmVyeXdoZXJlLCBpbnN0ZWFkIG9mIFBsYXRmb3JtUHJvY2Vzc0lkZW50aWZp
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKaW5kZXggNTdhNTMy
ZTk4ZGE0MDJiYzczN2I1NGU4ZjY0OTRmYzc5MWUyMzEzMy4uNjdlYWMyYTg3OGM3NDAxZmFjYWU1
MjBhZGQ2ZWRlMjUzM2Q5ZmZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5jcHAKQEAgLTIyNSwxMiArMjI1LDE1IEBAIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIFJlZlB0cjxXaWRnZXQ+IHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldpZGdldD4o
KnJlbmRlcmVyKS53aWRnZXQoKTsKLSAgICBpZiAoIXdpZGdldCkKLSAgICAgICAgcmV0dXJuOwot
ICAgIHdpZGdldC0+aGFuZGxlRXZlbnQoZXZlbnQpOwotICAgIGlmIChldmVudC0+ZGVmYXVsdEhh
bmRsZWQoKSkKLSAgICAgICAgcmV0dXJuOworICAgIC8vIERvbid0IGtlZXAgdGhlIHdpZGdldCBh
bGl2ZSBvdmVyIHRoZSBkZWZhdWx0RXZlbnRIYW5kbGVyIGNhbGwsIHNpbmNlIHRoYXQgY2FuIGRv
IHRoaW5ncyBsaWtlIG5hdmlnYXRlLgorICAgIHsKKyAgICAgICAgUmVmUHRyPFdpZGdldD4gd2lk
Z2V0ID0gZG93bmNhc3Q8UmVuZGVyV2lkZ2V0PigqcmVuZGVyZXIpLndpZGdldCgpOworICAgICAg
ICBpZiAoIXdpZGdldCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgd2lkZ2V0LT5oYW5k
bGVFdmVudChldmVudCk7CisgICAgICAgIGlmIChldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50OjpkZWZh
dWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggMjY2NTgxNzc0NWFmNzczMGRiOWM2MTllMzdk
ZmJhMjFhNzI2MzAyYi4uZmQ2NDg2NjFiNDIwM2VmOWVjMjU3ZmMwZmVjYWNhYzRlN2ZlOTQzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBA
IC0yNzIsNiArMjcyLDEwIEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6d2lsbERldGFj
aFJlbmRlcmVycygpCiAgICAgICAgIHNldE5lZWRzV2lkZ2V0VXBkYXRlKHRydWUpOwogICAgIH0K
IAorICAgIFdpZGdldCogd2lkZ2V0ID0gcGx1Z2luV2lkZ2V0KFBsdWdpbkxvYWRpbmdQb2xpY3k6
OkRvTm90TG9hZCk7CisgICAgaWYgKGlzPFBsdWdpblZpZXdCYXNlPih3aWRnZXQpKQorICAgICAg
ICBkb3duY2FzdDxQbHVnaW5WaWV3QmFzZT4oKndpZGdldCkud2lsbERldGF0Y2hSZW5kZXJlcigp
OworCiAgICAgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3QmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3QmFzZS5oCmluZGV4IGViYjZlMGNmZGE3MmJh
ODgzY2Q5NWU5NzRiNDc1ZDlkOTI2OWVjYTYuLmVjM2JiMDE4NTdmNjE0NjQ0MDRhMTg2ZGNkMGI5
MDdmMWY4Mjk0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
d0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdCYXNlLmgKQEAg
LTgxLDYgKzgxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2NyaXB0UGF1
c2VkKGJvb2wpIHsgfQogCiAgICAgdmlydHVhbCBSZWZQdHI8SlNDOjpCaW5kaW5nczo6SW5zdGFu
Y2U+IGJpbmRpbmdJbnN0YW5jZSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICAKKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbERldGF0Y2hSZW5kZXJlcigpIHsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgZXhw
bGljaXQgUGx1Z2luVmlld0Jhc2UoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0ID0gMCkgOiBXaWRnZXQo
d2lkZ2V0KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJl
c29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApp
bmRleCBlZGIzYjIxODU4NTlmZTY0NTVlY2M2MjlhOTk2Zjk3NDA0MTUwMjg2Li4wODk2Y2M5YmFk
ZGI4ZjM4Mjg5ZWY0YzJkZDZjYWFkNDI3ODAzM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVUcmVlUmVzb2x2ZXIuY3BwCkBAIC02MDgsNyArNjA4LDcgQEAgc3RhdGljIHZvaWQgZGV0
YWNoUmVuZGVyVHJlZShFbGVtZW50JiBjdXJyZW50LCBEZXRhY2hUeXBlIGRldGFjaFR5cGUpCiAK
ICAgICBpZiAoY3VycmVudC5yZW5kZXJlcigpKQogICAgICAgICBjdXJyZW50LnJlbmRlcmVyKCkt
PmRlc3Ryb3lBbmRDbGVhbnVwQW5vbnltb3VzV3JhcHBlcnMoKTsKLSAgICBjdXJyZW50LnNldFJl
bmRlcmVyKDApOworICAgIGN1cnJlbnQuc2V0UmVuZGVyZXIobnVsbHB0cik7CiAKICAgICBpZiAo
Y3VycmVudC5oYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKSkKICAgICAgICAgY3VycmVu
dC5kaWREZXRhY2hSZW5kZXJlcnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLmgKaW5kZXggMzBjYWY2
NmI4YzRlOWIyZWE5OWVhMmM3MjkyMDFhNzVlYzIyNDE2Ni4uZDhhOGU0YTI0MWUxOTdiZjZiOWNk
YzQ0YjVkZWNhMWY3NTYwYzU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLmgKQEAgLTE2Myw2ICsx
NjMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBnZXRGb3JtVmFsdWUoU3RyaW5nJiBm
b3JtVmFsdWUpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhh
bmRsZVNjcm9sbChXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24sIFdlYkNvcmU6OlNjcm9sbEdyYW51
bGFyaXR5KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI+IGxpdmVSZXNvdXJjZURhdGEoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
d2lsbERldGF0Y2hSZW5kZXJlcigpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIGlzQmVp
bmdBc3luY2hyb25vdXNseUluaXRpYWxpemVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9EZXByZWNhdGVkUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCmluZGV4IDRiZWJiZTRlOTQ1ZThmMDQwNTBi
ZjIzMmU1N2Q3NTZhOTdkY2YyNDkuLjU1NTQzOWEwOTE1ZGFjYTNjZThiNzM1OGY5NzFmNzkxZmZh
ODgzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYv
RGVwcmVjYXRlZFBERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KQEAgLTEwOTEsNiArMTA5MSwxNCBAQCBi
b29sIFBERlBsdWdpbjo6aW5pdGlhbGl6ZShjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQog
ICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFBERlBsdWdpbjo6d2lsbERldGF0Y2hSZW5kZXJl
cigpCit7CisgICAgaWYgKHdlYkZyYW1lKCkpIHsKKyAgICAgICAgaWYgKEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gd2ViRnJhbWUoKS0+Y29yZUZyYW1lKCktPnZpZXcoKSkKKyAgICAgICAgICAgIGZy
YW1lVmlldy0+cmVtb3ZlU2Nyb2xsYWJsZUFyZWEodGhpcyk7CisgICAgfQorfQorCiB2b2lkIFBE
RlBsdWdpbjo6ZGVzdHJveSgpCiB7CiAgICAgbV9wZGZMYXllckNvbnRyb2xsZXIuZ2V0KCkuZGVs
ZWdhdGUgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCmlu
ZGV4IDMzZGJlZTViYmJhNjE2ZmFiMzQwOTAzMmIxOWYyZjZjZWE2OGNiZjEuLjZlMGNiOWMwOWFj
YjcyNTE2N2YyMjkyZDkyMzVhMDhlN2UwMTAzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luLmgKQEAgLTMwMSw2ICszMDEsOCBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIGJvb2wgcmVxdWlyZXNVbmlmaWVkU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhdGNoUmVuZGVyZXIoKSB7IH0KKwog
cHJvdGVjdGVkOgogICAgIFBsdWdpbihQbHVnaW5UeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDg3N2M5Zjg1YjhlZWM3
YTJjMGUwZDUwZTMzOGZlYmRkNzdkNTVkNTMuLjY4ZWEyMzM0ZmViYzA0MzhjMzdiMTQ4MGY3ZTE5
YTRlZDM5N2YwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKQEAgLTEwMDUsNiArMTAwNSwxNCBAQCBib29sIFBsdWdpblZpZXc6OnNo
b3VsZE5vdEFkZExheWVyKCkgY29uc3QKICAgICByZXR1cm4gbV9wbHVnaW5FbGVtZW50LT5kaXNw
bGF5U3RhdGUoKSA8IEhUTUxQbHVnSW5FbGVtZW50OjpSZXN0YXJ0aW5nICYmICFtX3BsdWdpbi0+
c3VwcG9ydHNTbmFwc2hvdHRpbmcoKTsKIH0KIAordm9pZCBQbHVnaW5WaWV3Ojp3aWxsRGV0YXRj
aFJlbmRlcmVyKCkKK3sKKyAgICBpZiAoIW1faXNJbml0aWFsaXplZCB8fCAhbV9wbHVnaW4pCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fcGx1Z2luLT53aWxsRGV0YXRjaFJlbmRlcmVyKCk7Cit9
CisKIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBQbHVnaW5WaWV3OjpsaXZlUmVzb3VyY2VEYXRh
KCkgY29uc3QKIHsKICAgICBpZiAoIW1faXNJbml0aWFsaXplZCB8fCAhbV9wbHVnaW4pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBjZjM3
MmRkNzc3YTZkYjA1ZTNhYjY1ZTY2Y2Q4MTZkZjY0OWY4OGFkLi43YmY0ZWYyNDM5NWQ2ODE5Mzlj
ZDNmODk2YTNjNTljNGY5NWRjODc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTE2Nyw2ICsxNjcsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBiZWdpblNuYXBzaG90dGluZ1J1bm5pbmdQbHVnaW4oKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQWxsb3dOYXZpZ2F0aW9uRnJvbURyYWdzKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZE5vdEFkZExheWVyKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhdGNoUmVuZGVyZXIoKSBvdmVycmlkZTsKIAog
ICAgIC8vIFdlYkNvcmU6OldpZGdldAogICAgIHZpcnR1YWwgdm9pZCBzZXRGcmFtZVJlY3QoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOwo=
</data>
<flag name="review"
          id="296393"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>