<?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>187370</bug_id>
          
          <creation_ts>2018-07-05 16:54:06 -0700</creation_ts>
          <short_desc>iOS port should define HAVE_RUNLOOP_TIMER</short_desc>
          <delta_ts>2018-07-12 11:36:34 -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>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>timothy</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1439621</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-07-05 16:54:06 -0700</bug_when>
    <thetext>Currently HAVE_RUNLOOP_TIMER is only defined for the macOS port.

The iOS port should define it as well as we expect both platforms to behave similarly with similar capabilities.

Currently, RunLoopTimer&lt;&gt; is only used in two places:

1. Source/WebCore/loader/DocumentLoader.h for DocumentLoaderTimer type used by DocumentLoader.m_dataLoadTimer.
   See &lt;https://trac.webkit.org/r146239&gt; (previously used in Source/WebCore/loader/MainResourceLoader.h).
   See &lt;https://trac.webkit.org/r41845&gt; for introduction of HAVE_RUNLOOP_TIMER and use in MainResourceLoader.h.

2. Source/WebCore/platform/network/DataURLDecoder.cpp for DecodingResultDispatcher.m_timer.
   See &lt;https://trac.webkit.org/r191720&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439623</commentid>
    <comment_count>1</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-07-05 16:56:32 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #0)
&gt; Currently HAVE_RUNLOOP_TIMER is only defined for the macOS port.
&gt; 
&gt; The iOS port should define it as well as we expect both platforms to behave
&gt; similarly with similar capabilities.
&gt; 
&gt; Currently, RunLoopTimer&lt;&gt; is only used in two places:
&gt; 
&gt; 1. Source/WebCore/loader/DocumentLoader.h for DocumentLoaderTimer type used
&gt; by DocumentLoader.m_dataLoadTimer.
&gt;    See &lt;https://trac.webkit.org/r146239&gt; (previously used in
&gt; Source/WebCore/loader/MainResourceLoader.h).
&gt;    See &lt;https://trac.webkit.org/r41845&gt; for introduction of
&gt; HAVE_RUNLOOP_TIMER and use in MainResourceLoader.h.

It&apos;s not clear to me whether DocumentLoader.m_dataLoadTimer still needs to be a RunLoopTimer based on the original reasoning from r41845.

&gt; 2. Source/WebCore/platform/network/DataURLDecoder.cpp for
&gt; DecodingResultDispatcher.m_timer.
&gt;    See &lt;https://trac.webkit.org/r191720&gt;.

This seems like it may be a performance win since the iOS port will stop scheduling tasks on the main thread that could run on a background thread instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439625</commentid>
    <comment_count>2</comment_count>
      <attachid>344381</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-07-05 17:02:30 -0700</bug_when>
    <thetext>Created attachment 344381
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439841</commentid>
    <comment_count>3</comment_count>
      <attachid>344381</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-07-06 11:38:30 -0700</bug_when>
    <thetext>Comment on attachment 344381
Patch v1

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

&gt; Source/WTF/wtf/Platform.h:566
&gt; +#define HAVE_DTRACE 0

It seems like HAVE_DTRACE can be removed. There are no instances of HAVE(DTRACE) anywhere in the project. (Also Cocoa platforms do have dtrace).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1440135</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-07-07 09:21:23 -0700</bug_when>
    <thetext>Committed r233615: &lt;https://trac.webkit.org/changeset/233615&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1440136</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-07 09:22:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/41930765&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1440895</commentid>
    <comment_count>6</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-07-10 10:10:08 -0700</bug_when>
    <thetext>It looks like after &lt;https://trac.webkit.org/changeset/233615/webkit&gt; 

we are getting constant crashes on iOS debug WK2 from an assertion. 

Test History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=fast%2Fevents%2Fbeforeunload-prompt.html

link to output:
https://build.webkit.org/builders/Apple%20iOS%2011%20Simulator%20Debug%20WK2%20(Tests)/builds/5269/steps/layout-test/logs/stdio


Example of assertion failure:
09:48:20.623 23609 worker/1 fast/events/beforeunload-prompt.html crashed, (stderr lines):
09:48:20.623 23609   ASSERTION FAILED: m_uncommittedState.provisionalURL.isEmpty()
09:48:20.623 23609   /Volumes/Data/slave/ios-simulator-11-debug/build/Source/WebKit/UIProcess/PageLoadState.cpp(252) : void WebKit::PageLoadState::didStartProvisionalLoad(const Transaction::Token &amp;, const WTF::String &amp;, const WTF::String &amp;)
09:48:20.623 23609   1   0x107c689d9 WTFCrash
09:48:20.623 23609   2   0x10eb5265f WebKit::PageLoadState::didStartProvisionalLoad(WebKit::PageLoadState::Transaction::Token const&amp;, WTF::String const&amp;, WTF::String const&amp;)
09:48:20.623 23609   3   0x10f19d322 WebKit::WebPageProxy::didStartProvisionalLoadForFrame(unsigned long long, unsigned long long, WebCore::URL&amp;&amp;, WebCore::URL&amp;&amp;, WebKit::UserData const&amp;)
09:48:20.623 23609   4   0x10f26e418 void IPC::callMemberFunctionImpl&lt;WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WebCore::URL&amp;&amp;, WebCore::URL&amp;&amp;, WebKit::UserData const&amp;), std::__1::tuple&lt;unsigned long long, unsigned long long, WebCore::URL, WebCore::URL, WebKit::UserData&gt;, 0ul, 1ul, 2ul, 3ul, 4ul&gt;(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WebCore::URL&amp;&amp;, WebCore::URL&amp;&amp;, WebKit::UserData const&amp;), std::__1::tuple&lt;unsigned long long, unsigned long long, WebCore::URL, WebCore::URL, WebKit::UserData&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul&gt;)
09:48:20.623 23609   5   0x10f26df50 void IPC::callMemberFunction&lt;WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WebCore::URL&amp;&amp;, WebCore::URL&amp;&amp;, WebKit::UserData const&amp;), std::__1::tuple&lt;unsigned long long, unsigned long long, WebCore::URL, WebCore::URL, WebKit::UserData&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul&gt; &gt;(std::__1::tuple&lt;unsigned long long, unsigned long long, WebCore::URL, WebCore::URL, WebKit::UserData&gt;&amp;&amp;, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WebCore::URL&amp;&amp;, WebCore::URL&amp;&amp;, WebKit::UserData const&amp;))
09:48:20.623 23609   6   0x10f252c6c void IPC::handleMessage&lt;Messages::WebPageProxy::DidStartProvisionalLoadForFrame, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WebCore::URL&amp;&amp;, WebCore::URL&amp;&amp;, WebKit::UserData const&amp;)&gt;(IPC::Decoder&amp;, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WebCore::URL&amp;&amp;, WebCore::URL&amp;&amp;, WebKit::UserData const&amp;))
09:48:20.623 23609   7   0x10f24a3aa WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
09:48:20.623 23609   8   0x10e920da8 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
09:48:20.623 23609   9   0x10e80c324 WebKit::ChildProcessProxy::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
09:48:20.623 23609   10  0x10f3d414d WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
09:48:20.623 23609   11  0x10e81e473 IPC::Connection::dispatchMessage(IPC::Decoder&amp;)
09:48:20.623 23609   12  0x10e811e68 IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)
09:48:20.623 23609   13  0x10e81bc2c IPC::Connection::dispatchIncomingMessages()
09:48:20.623 23609   14  0x10e836532 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_14::operator()()
09:48:20.623 23609   15  0x10e836459 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_14&gt;::call()
09:48:20.624 23609   16  0x107c8db2b WTF::Function&lt;void ()&gt;::operator()() const
09:48:20.624 23609   17  0x107ce0af3 WTF::RunLoop::performWork()
09:48:20.624 23609   18  0x107ce13f4 WTF::RunLoop::performWork(void*)
09:48:20.624 23609   19  0x114028bb1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
09:48:20.624 23609   20  0x11400d4af __CFRunLoopDoSources0
09:48:20.624 23609   21  0x11400ca6f __CFRunLoopRun
09:48:20.624 23609   22  0x11400c30b CFRunLoopRunSpecific
09:48:20.624 23609   23  0x112d49b4a -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
09:48:20.624 23609   24  0x107303ee4 WTR::TestController::platformRunUntil(bool&amp;, double)
09:48:20.624 23609   25  0x1072d82e9 WTR::TestController::runUntil(bool&amp;, double)
09:48:20.624 23609   26  0x1072d789e WTR::TestController::resetStateToConsistentValues(WTR::TestOptions const&amp;)
09:48:20.624 23609   27  0x107305e91 WTR::TestInvocation::invoke()
09:48:20.624 23609   28  0x1072e20b8 WTR::TestController::runTest(char const*)
09:48:20.624 23609   29  0x1072e3124 WTR::TestController::runTestingServerLoop()
09:48:20.624 23609   30  0x1072d20b6 WTR::TestController::run()
09:48:20.624 23609   31  0x1072d1a5d WTR::TestController::TestController(int, char const**)
09:48:20.632 22449 [14775/46877] fast/events/beforeunload-prompt.html failed unexpectedly (WebKitTestRunnerApp crashed [pid=25865])
09:48:20.628 23609 worker/1 killing driver
09:48:20.633 23609 worker/1 fast/events/beforeunload-prompt.html failed:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441494</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-07-12 07:21:38 -0700</bug_when>
    <thetext>We should back this change out if it causes assertions.

I’m sad that this was (again) not caught in EWS due to lack of iOS Debug tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441500</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-07-12 07:34:28 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #6)
&gt; It looks like after &lt;https://trac.webkit.org/changeset/233615/webkit&gt; 
&gt; 
&gt; we are getting constant crashes on iOS debug WK2 from an assertion. 
&gt; 
&gt; Test History:
&gt; https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.
&gt; html#showAllRuns=true&amp;tests=fast%2Fevents%2Fbeforeunload-prompt.html

Strange that it&apos;s just this one test:  fast/events/beforeunload-prompt.html

Also, it appears the GTK Linux 64-bit Debug tests have been failing on this test for a longer period of time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441503</commentid>
    <comment_count>9</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-07-12 07:42:41 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #8)
&gt; (In reply to Truitt Savell from comment #6)
&gt; &gt; It looks like after &lt;https://trac.webkit.org/changeset/233615/webkit&gt; 
&gt; &gt; 
&gt; &gt; we are getting constant crashes on iOS debug WK2 from an assertion. 
&gt; &gt; 
&gt; &gt; Test History:
&gt; &gt; https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.
&gt; &gt; html#showAllRuns=true&amp;tests=fast%2Fevents%2Fbeforeunload-prompt.html
&gt; 
&gt; Strange that it&apos;s just this one test:  fast/events/beforeunload-prompt.html
&gt; 
&gt; Also, it appears the GTK Linux 64-bit Debug tests have been failing on this
&gt; test for a longer period of time.

Perhaps some state that isn&apos;t being cleared out from a previous test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441527</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-07-12 09:40:49 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #9)
&gt; (In reply to David Kilzer (:ddkilzer) from comment #8)
&gt; &gt; (In reply to Truitt Savell from comment #6)
&gt; &gt; &gt; It looks like after &lt;https://trac.webkit.org/changeset/233615/webkit&gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; we are getting constant crashes on iOS debug WK2 from an assertion. 
&gt; &gt; &gt; 
&gt; &gt; &gt; Test History:
&gt; &gt; &gt; https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.
&gt; &gt; &gt; html#showAllRuns=true&amp;tests=fast%2Fevents%2Fbeforeunload-prompt.html
&gt; &gt; 
&gt; &gt; Strange that it&apos;s just this one test:  fast/events/beforeunload-prompt.html
&gt; &gt; 
&gt; &gt; Also, it appears the GTK Linux 64-bit Debug tests have been failing on this
&gt; &gt; test for a longer period of time.
&gt; 
&gt; Perhaps some state that isn&apos;t being cleared out from a previous test?

Running the test by itself 10 times doesn&apos;t cause a crash:

$ ./Tools/Scripts/run-webkit-tests --debug --sim --iterations 10 fast/events/beforeunload-prompt.html

Running the test with the previous test (alphabetically) in the directory 100 times each doesn&apos;t crash:

$ ./Tools/Scripts/run-webkit-tests --debug --sim --iterations 100 fast/events/beforeunload-dom-manipulation-crash.html fast/events/beforeunload-prompt.html

I think we should figure out which other test is causing this crash and fix/block it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441530</commentid>
    <comment_count>11</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-07-12 09:43:51 -0700</bug_when>
    <thetext>&gt; &gt; 2. Source/WebCore/platform/network/DataURLDecoder.cpp for
&gt; &gt; DecodingResultDispatcher.m_timer.
&gt; &gt;    See &lt;https://trac.webkit.org/r191720&gt;.
&gt; 
&gt; This seems like it may be a performance win since the iOS port will stop
&gt; scheduling tasks on the main thread that could run on a background thread
&gt; instead.

There is no performance win, callOnMainThread and Timer fire in the same thread.

Generally I don&apos;t think we should ever make this change. As far as I remember the RunLoopTimer hack exist solely to deal with some weird nested runloop cases with load delegates that are not relevant on iOS. Rather we should figure out if we can get rid of RunLoopTimer on Mac too (it may be needed for wk1 only?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441531</commentid>
    <comment_count>12</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-07-12 09:47:50 -0700</bug_when>
    <thetext>There is no guarantees this stuff works with web thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441532</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-07-12 09:54:49 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #12)
&gt; There is no guarantees this stuff works with web thread.

Okay, let&apos;s back it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441546</commentid>
    <comment_count>14</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-07-12 10:06:27 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #11)
&gt; &gt; &gt; 2. Source/WebCore/platform/network/DataURLDecoder.cpp for
&gt; &gt; &gt; DecodingResultDispatcher.m_timer.
&gt; &gt; &gt;    See &lt;https://trac.webkit.org/r191720&gt;.
&gt; &gt; 
&gt; &gt; This seems like it may be a performance win since the iOS port will stop
&gt; &gt; scheduling tasks on the main thread that could run on a background thread
&gt; &gt; instead.
&gt; 
&gt; There is no performance win, callOnMainThread and Timer fire in the same
&gt; thread.

In iOS WK1 (whenever WebThread is running), WebCore::Timer always fires on the WebThread even if scheduled on other threads.  (BTW, that&apos;s why WebCore::Timer can&apos;t be used in the UI Process on iOS, although that&apos;s not a factor here.)

&gt; Generally I don&apos;t think we should ever make this change. As far as I
&gt; remember the RunLoopTimer hack exist solely to deal with some weird nested
&gt; runloop cases with load delegates that are not relevant on iOS. Rather we
&gt; should figure out if we can get rid of RunLoopTimer on Mac too (it may be
&gt; needed for wk1 only?).

RunLoopTimer was added back in 2009 by Timothy Hatcher in &lt;https://trac.webkit.org/r41845&gt; (see Comment #0).

Are you referring to its use in Source/WebCore/platform/network/DataURLDecoder.cpp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441559</commentid>
    <comment_count>15</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-07-12 10:22:18 -0700</bug_when>
    <thetext>&gt; RunLoopTimer was added back in 2009 by Timothy Hatcher in
&gt; &lt;https://trac.webkit.org/r41845&gt; (see Comment #0).
&gt; 
&gt; Are you referring to its use in
&gt; Source/WebCore/platform/network/DataURLDecoder.cpp?

Well, &lt;rdar://problem/6687342&gt; has the history. Data URLs featured as a reason already back then.

I supposed the main point is &quot;Without this change you can’t use WebKit in a non-standard run loop mode&quot; which is not something we care about on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441599</commentid>
    <comment_count>16</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-07-12 11:36:16 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #4)
&gt; Committed r233615: &lt;https://trac.webkit.org/changeset/233615&gt;

Backed out here:

Committed r233774: &lt;https://trac.webkit.org/changeset/233774&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344381</attachid>
            <date>2018-07-05 17:02:30 -0700</date>
            <delta_ts>2018-07-06 11:38:30 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-187370-20180705170229.patch</filename>
            <type>text/plain</type>
            <size>1549</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ2YjI1MTUyYjZhYmZmMzIwODYzOWVm
OTQ4NzJjZWZhNTAzZWUzNjQuLjdlZjJmNjRjNjk2ZWEyMTlkN2UwNDkxODQwNmI3YWEzMTY4OTBk
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMDctMDUgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KKworICAgICAgICBpT1MgcG9ydCBzaG91bGQgZGVmaW5lIEhBVkVfUlVO
TE9PUF9USU1FUgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTg3MzcwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3Jt
Lmg6CisgICAgICAgIChIQVZFX1JVTkxPT1BfVElNRVIpOiBEZWZpbmUgZm9yIFBMQVRGT1JNKENP
Q09BKSwgbm90IGp1c3QKKyAgICAgICAgUExBVEZPUk0oTUFDKS4gIEFscGhhYmV0aXplLgorCiAy
MDE4LTA3LTA1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjMzNDE3IGFuZCByMjMzNDE4LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKaW5kZXggYmIxOTljNTNhMWRmOGRjOTRiNWM3YzYxODUwZjU1OTNjYjY4ZTI2Yi4uMDI3N2Iw
NGYwYzRjNzVhNGFlMmYzZjVjNWVhN2I5NTg4OTM4MzlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC01NjMs
MTIgKzU2MywxMyBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAKKyNkZWZpbmUgSEFWRV9EVFJB
Q0UgMAorI2RlZmluZSBIQVZFX09VVF9PRl9QUk9DRVNTX0xBWUVSX0hPU1RJTkcgMQorI2RlZmlu
ZSBIQVZFX1JVTkxPT1BfVElNRVIgMQogI2RlZmluZSBVU0VfQ0YgMQorI2RlZmluZSBVU0VfRklM
RV9MT0NLIDEKICNkZWZpbmUgVVNFX0ZPVU5EQVRJT04gMQogI2RlZmluZSBVU0VfTkVUV09SS19D
RkRBVEFfQVJSQVlfQ0FMTEJBQ0sgMQotI2RlZmluZSBIQVZFX09VVF9PRl9QUk9DRVNTX0xBWUVS
X0hPU1RJTkcgMQotI2RlZmluZSBIQVZFX0RUUkFDRSAwCi0jZGVmaW5lIFVTRV9GSUxFX0xPQ0sg
MQogCiAvKiBDb2NvYSBkZWZpbmVzIGEgc2VyaWVzIG9mIHBsYXRmb3JtIG1hY3JvcyBmb3IgZGVi
dWdnaW5nLiAqLwogLyogU29tZSBvZiB0aGVtIGFyZSByZWFsbHkgYW5ub3lpbmcgYmVjYXVzZSB0
aGV5IHVzZSBjb21tb24gbmFtZXMgKGUuZy4gY2hlY2soKSkuICovCkBAIC01ODEsNyArNTgyLDYg
QEAKICNpZiBQTEFURk9STShNQUMpCiAKICNkZWZpbmUgVVNFX0FQUEtJVCAxCi0jZGVmaW5lIEhB
VkVfUlVOTE9PUF9USU1FUiAxCiAjZGVmaW5lIEhBVkVfU0VDX0tFWUNIQUlOIDEKIAogI2lmIENQ
VShYODZfNjQpCg==
</data>
<flag name="review"
          id="362436"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="362437"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>