<?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>55941</bug_id>
          
          <creation_ts>2011-03-08 07:14:48 -0800</creation_ts>
          <short_desc>REGRESSION (r80478): broke GTK inspector tests</short_desc>
          <delta_ts>2011-03-10 07:19:04 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pfeldman</cc>
    
    <cc>rniwa</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>363954</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-03-08 07:14:48 -0800</bug_when>
    <thetext>Tests crashing:

inspector/console/console-api-on-call-frame.html
inspector/debugger/debug-inlined-scripts.html
inspector/debugger/debugger-cyclic-ref.html
inspector/debugger/debugger-eval-on-call-frame.html
inspector/debugger/debugger-eval-while-paused.html
inspector/debugger/debugger-expand-scope.html
inspector/debugger/debugger-no-nested-pause.html
inspector/debugger/debugger-pause-in-eval-script.html
inspector/debugger/debugger-pause-on-breakpoint.html
inspector/debugger/debugger-pause-on-debugger-statement.html
inspector/debugger/debugger-pause-on-exception.html
inspector/debugger/debugger-proto-property.html	
inspector/debugger/debugger-step-in.html
inspector/debugger/debugger-step-over.html
inspector/debugger/debugger-suspend-active-dom-objects.html
inspector/extensions/extensions-resources.html

back-trace:

Thread 1 (Thread 21305):
#0  0x00007f531a42237e in WebCore::SuspendableTimer::suspend (this=0x7f5308000970) at ../../Source/WebCore/page/SuspendableTimer.cpp:62
#1  0x00007f531a09cfd2 in WebCore::ScriptExecutionContext::suspendActiveDOMObjects (this=0x7f530802fa78, why=WebCore::ActiveDOMObject::JavaScriptDebuggerPaused) at ../../Source/WebCore/dom/ScriptExecutionContext.cpp:247
#2  0x00007f5319e94208 in WebCore::ScriptDebugServer::setJavaScriptPaused (this=0x2825220, frame=0x221d800, paused=true) at ../../Source/WebCore/bindings/js/ScriptDebugServer.cpp:413
#3  0x00007f5319e94100 in WebCore::ScriptDebugServer::setJavaScriptPaused (this=0x2825220, page=0x2212220, paused=true) at ../../Source/WebCore/bindings/js/ScriptDebugServer.cpp:398
#4  0x00007f5319e94027 in WebCore::ScriptDebugServer::setJavaScriptPaused (this=0x2825220, pageGroup=..., paused=true) at ../../Source/WebCore/bindings/js/ScriptDebugServer.cpp:388
#5  0x00007f5319e9470a in WebCore::ScriptDebugServer::pauseIfNeeded (this=0x2825220, page=0x2212220) at ../../Source/WebCore/bindings/js/ScriptDebugServer.cpp:478
#6  0x00007f5319e94571 in WebCore::ScriptDebugServer::updateCallFrameAndPauseIfNeeded (this=0x2825220, debuggerCallFrame=..., sourceID=52220736, lineNumber=3) at ../../Source/WebCore/bindings/js/ScriptDebugServer.cpp:454
#7  0x00007f5319e94b48 in WebCore::ScriptDebugServer::didReachBreakpoint (this=0x2825220, debuggerCallFrame=..., sourceID=52220736, lineNumber=3) at ../../Source/WebCore/bindings/js/ScriptDebugServer.cpp:560
#8  0x00007f531aba1518 in JSC::Interpreter::debug (this=0x2846d50, callFrame=0x7f530c75b038, debugHookID=JSC::DidReachBreakpoint, firstLine=3, lastLine=3) at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:1186
#9  0x00007f531abdb66d in JSC::cti_op_debug (args=0x7fff0c9d7990) at ../../Source/JavaScriptCore/jit/JITStubs.cpp:3458
#10 0x00007f531abcf86b in JSC::JITThunks::tryCacheGetByID (callFrame=0x7fff0c9d7990, codeBlock=0x0, returnAddress=..., baseValue=..., propertyName=..., slot=..., stubInfo=0x2821500) at ../../Source/JavaScriptCore/jit/JITStubs.cpp:869
#11 0x00007f531aba284b in JSC::JITCode::execute (this=0x2f60b58, registerFile=0x2846d68, callFrame=0x7f530c75b038, globalData=0x2821500) at ../../Source/JavaScriptCore/jit/JITCode.h:77
#12 0x00007f531ab9f91b in JSC::Interpreter::executeCall (this=0x2846d50, callFrame=0x28c4dd8, function=0x7f530c298490, callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:844
#13 0x00007f531ac2ca60 in JSC::call (exec=0x28c4dd8, functionObject=..., callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../Source/JavaScriptCore/runtime/CallData.cpp:38
#14 0x00007f5319e2488f in WebCore::JSMainThreadExecState::call (exec=0x28c4dd8, functionObject=..., callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../Source/WebCore/bindings/js/JSMainThreadExecState.h:48
#15 0x00007f5319e84c92 in WebCore::ScheduledAction::executeFunctionInContext (this=0x2969120, globalObject=0x7f531c748c78, thisValue=..., context=0x7f530802fa78) at ../../Source/WebCore/bindings/js/ScheduledAction.cpp:106
#16 0x00007f5319e84e84 in WebCore::ScheduledAction::execute (this=0x2969120, document=0x7f530802fa10) at ../../Source/WebCore/bindings/js/ScheduledAction.cpp:128
#17 0x00007f5319e84a4e in WebCore::ScheduledAction::execute (this=0x2969120, context=0x7f530802fa78) at ../../Source/WebCore/bindings/js/ScheduledAction.cpp:76
#18 0x00007f531a3b3299 in WebCore::DOMTimer::fired (this=0x306d470) at ../../Source/WebCore/page/DOMTimer.cpp:130
#19 0x00007f531a4da8e0 in WebCore::ThreadTimers::sharedTimerFiredInternal (this=0x2246310) at ../../Source/WebCore/platform/ThreadTimers.cpp:112
#20 0x00007f531a4da817 in WebCore::ThreadTimers::sharedTimerFired () at ../../Source/WebCore/platform/ThreadTimers.cpp:90
#21 0x00007f5319cbc1c6 in WebCore::timeout_cb () at ../../Source/WebCore/platform/gtk/SharedTimerGtk.cpp:49
#22 0x00007f5316ec0dbb in g_timeout_dispatch (source=0x7f530822c140, callback=0, user_data=0x7f5315d36e00) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3877
#23 0x00007f5316ec0362 in g_main_dispatch (context=0xffff000000000002) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:2440
#24 g_main_context_dispatch (context=0xffff000000000002) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3013
#25 0x00007f5316ec4a28 in g_main_context_iterate (context=0x219e760, block=&lt;value optimized out&gt;, dispatch=&lt;value optimized out&gt;, self=&lt;value optimized out&gt;) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3091
#26 0x00007f5316ec4f35 in g_main_loop_run (loop=0x7f5308013e20) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3299
#27 0x00007f5318df9657 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#28 0x000000000041e525 in runTest (testPathOrURL=...) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:679
#29 0x000000000041dbb7 in runTestingServerLoop () at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:489
#30 0x000000000041fc9c in main (argc=2, argv=0x7fff0c9d8ba8) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1143

It seems we try to suspend an already-suspended timer. I&apos;m not sure why that ASSERT is needed, really. The SuspendableTimer class should probably have a ::isSuspended() method or some other API so that upfront code can know if it&apos;s worth suspending the timer or not.

For now I will skip those tests on GTK as it&apos;s the only port hitting that ASSERT currently. I considered rolling out the patch, this could be an option too but I&apos;d prefer advise on the situation before (CC&apos;ed the people involved in r80478).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363972</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-08 08:26:28 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; It seems we try to suspend an already-suspended timer. I&apos;m not sure why that ASSERT is needed, really.

If two different clients try to suspend and then resume a timer, and the suspend/resume mechanism is not based on a count, it’s likely the timer gets resumed too early, when one of the clients still wants the timer suspended. Presumably the assert helps us notice mistakes like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364011</commentid>
    <comment_count>2</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2011-03-08 09:57:02 -0800</bug_when>
    <thetext>	4770	    asyncScriptRunner()-&gt;resume(); 
 	4771	    resumeActiveDOMObjects(); 
 	4772	    resumeScriptedAnimationControllerCallbacks(); 

I moved ln4770 to there to be exactly the reverse order of the one their &quot;suspend&quot; brothers are called.

This could break inspector if asyncScriptRunner()-&gt;resume() immediately executes JS. (that is not a good idea if so).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364065</commentid>
    <comment_count>3</comment_count>
      <attachid>85069</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-03-08 11:44:29 -0800</bug_when>
    <thetext>Created attachment 85069
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364511</commentid>
    <comment_count>4</comment_count>
      <attachid>85069</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-09 08:17:35 -0800</bug_when>
    <thetext>Comment on attachment 85069
proposed patch

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

&gt; Source/WebCore/bindings/js/ScriptDebugServer.cpp:-478
&gt; -    setJavaScriptPaused(page-&gt;group(), true);

setJavaScriptPaused was also pausing PluginViews.

&gt; Source/WebCore/bindings/js/ScriptDebugServer.cpp:488
&gt; +    }

PageGroupLoadDeferrer is going to restore the list of deferred frames (m_deferredFrames). Some of them might be dead by now since we are dispatching event loop while on a breakpoint and allow various page interactions by means of console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364809</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-09 14:57:38 -0800</bug_when>
    <thetext>*** Bug 56014 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365153</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-10 07:19:04 -0800</bug_when>
    <thetext>Rolled out r80478 as r80718

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	D	Source/WebCore/manual-tests/database-callback-deferred.html
	M	LayoutTests/ChangeLog
	M	LayoutTests/platform/gtk/Skipped
	M	Source/WebCore/ChangeLog
	M	Source/WebCore/dom/Document.cpp
	M	Source/WebCore/dom/Document.h
	M	Source/WebCore/loader/FrameLoader.cpp
	M	Source/WebCore/page/PageGroupLoadDeferrer.cpp
Committed r80718</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85069</attachid>
            <date>2011-03-08 11:44:29 -0800</date>
            <delta_ts>2011-03-09 08:17:35 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>5781</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA5NWYwMTA4NzE1MTM0ODk3ZjM4NTQ1NTZjNGU4ZWExYjJlYWViMWFiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDggTWFyIDIwMTEgMjA6NDU6MTggKzAxMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICA5ICsrKysrKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQgICAgICAgICAgICAgICAgIHwgICAxOCAtLS0tLS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKysrKysrKysr
KysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwIHwgICAxNyArKysrKysrKystLS0tLS0tLQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCAgICAgICAgICAgICAgICAgIHwgICAgNCArKysrCiA1IGZpbGVzIGNoYW5nZWQsIDQ0
IGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMzE3ZjE5Li5jZGVkNWI2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTQgQEAKIDIwMTEtMDMtMDggIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJFR1JFU1NJT04gKHI4MDQ3OCk6IGJyb2tlIEdUSyBpbnNwZWN0b3IgdGVz
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1OTQx
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogVW5za2lwIGZpeGVkIHRlc3RzLgor
CisyMDExLTAzLTA4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKwog
ICAgICAgICBSRUdSRVNTSU9OIChyODA0NzgpOiBicm9rZSBHVEsgaW5zcGVjdG9yIHRlc3RzCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTk0MQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDE2NDRlYTguLjU2YTYyZDQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkCkBAIC0xODMsMjQgKzE4Myw2IEBAIGh0dHAvdGVzdHMvaW5zcGVjdG9y
LWVuYWJsZWQvb3Blbi1jbG9zZS1vcGVuLmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU1MTM1CiBodHRwL3Rlc3RzL2luY3JlbWVudGFsL3Nsb3ctdXRmOC1o
dG1sLnBsCiAKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1OTQx
Ci1pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFwaS1vbi1jYWxsLWZyYW1lLmh0bWwKLWluc3Bl
Y3Rvci9kZWJ1Z2dlci9kZWJ1Zy1pbmxpbmVkLXNjcmlwdHMuaHRtbAotaW5zcGVjdG9yL2RlYnVn
Z2VyL2RlYnVnZ2VyLWN5Y2xpYy1yZWYuaHRtbAotaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2Vy
LWV2YWwtb24tY2FsbC1mcmFtZS5odG1sCi1pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXZh
bC13aGlsZS1wYXVzZWQuaHRtbAotaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWV4cGFuZC1z
Y29wZS5odG1sCi1pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItbm8tbmVzdGVkLXBhdXNlLmh0
bWwKLWluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1pbi1ldmFsLXNjcmlwdC5odG1s
Ci1pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2Utb24tYnJlYWtwb2ludC5odG1sCi1p
bnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2Utb24tZGVidWdnZXItc3RhdGVtZW50Lmh0
bWwKLWluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1vbi1leGNlcHRpb24uaHRtbAot
aW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXByb3RvLXByb3BlcnR5Lmh0bWwKLWluc3BlY3Rv
ci9kZWJ1Z2dlci9kZWJ1Z2dlci1zdGVwLWluLmh0bWwKLWluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1
Z2dlci1zdGVwLW92ZXIuaHRtbAotaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXN1c3BlbmQt
YWN0aXZlLWRvbS1vYmplY3RzLmh0bWwKLWluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
cmVzb3VyY2VzLmh0bWwKLQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBFWFBFQ1RFRCBGQUlM
VVJFUwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMwZWMwOGQuLjllNDU3
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMS0wMy0wOCAgWW9uZyBMaSAgPHlv
bGlAcmltLmNvbT4gYW5kIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJ
T04gKHI4MDQ3OCk6IGJyb2tlIEdUSyBpbnNwZWN0b3IgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1OTQxCisKKyAgICAgICAgVXNlIHRoZSBQ
YWdlR3JvdXBMb2FkRGVmZXJyZXIgaW5zdGVhZCBvZiBzZXRKYXZhU2NyaXB0UGF1c2VkLiBUaGUK
KyAgICAgICAgZm9ybWVyIHJlbWVtYmVycyB0aGUgZnJhbWVzIGl0IGhhcyBkZWZlcnJlZCBzbyB3
b3JrcyB3aGVuIGJlaW5nCisgICAgICAgIG5lc3RlZC4KKworICAgICAgICBUaGUgc3VzcGVuZFNj
aGVkdWxlZFRhc2tzIGFuZCByZXN1bWVTY2hlZHVsZWRUYXNrcyBtZXRob2RzIHdlcmUKKyAgICAg
ICAgYWxzbyBhZGFwdGVkIHRvIHBhdXNlL3VucGF1c2UgSmF2YVNjcmlwdCBleGVjdXRpb24uCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpcyBiYXNlZCBvbiBZb25nJ3Mgc3VnZ2VzdGlvbnMuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6cGF1c2VJZk5lZWRlZCk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdXNwZW5kU2NoZWR1bGVk
VGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc3VtZVNjaGVkdWxlZFRhc2tz
KToKKwogMjAxMS0wMy0wOCAgSmFtZXMgS296aWFuc2tpICA8a296QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCAzMmEzYjJkLi4wNTY5MzIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
CkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSmF2YVNjcmlwdENhbGxGcmFtZS5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlICJQYWdlR3Jv
dXBMb2FkRGVmZXJyZXIuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVkZSAiU2Ny
aXB0QnJlYWtwb2ludC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKQEAgLTQ3NSwx
NiArNDc2LDE2IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnBhdXNlSWZOZWVkZWQoUGFnZSog
cGFnZSkKIAogICAgIGRpc3BhdGNoRnVuY3Rpb25Ub0xpc3RlbmVycygmU2NyaXB0RGVidWdTZXJ2
ZXI6OmRpc3BhdGNoRGlkUGF1c2UsIHBhZ2UpOwogCi0gICAgc2V0SmF2YVNjcmlwdFBhdXNlZChw
YWdlLT5ncm91cCgpLCB0cnVlKTsKKyAgICB7CisgICAgICAgIFBhZ2VHcm91cExvYWREZWZlcnJl
ciBkZWZlcnJlcihwYWdlLCB0cnVlKTsKIAotICAgIFRpbWVyQmFzZTo6ZmlyZVRpbWVyc0luTmVz
dGVkRXZlbnRMb29wKCk7CisgICAgICAgIFRpbWVyQmFzZTo6ZmlyZVRpbWVyc0luTmVzdGVkRXZl
bnRMb29wKCk7CiAKLSAgICBFdmVudExvb3AgbG9vcDsKLSAgICBtX2RvbmVQcm9jZXNzaW5nRGVi
dWdnZXJFdmVudHMgPSBmYWxzZTsKLSAgICB3aGlsZSAoIW1fZG9uZVByb2Nlc3NpbmdEZWJ1Z2dl
ckV2ZW50cyAmJiAhbG9vcC5lbmRlZCgpKQotICAgICAgICBsb29wLmN5Y2xlKCk7Ci0KLSAgICBz
ZXRKYXZhU2NyaXB0UGF1c2VkKHBhZ2UtPmdyb3VwKCksIGZhbHNlKTsKKyAgICAgICAgRXZlbnRM
b29wIGxvb3A7CisgICAgICAgIG1fZG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cyA9IGZhbHNl
OworICAgICAgICB3aGlsZSAoIW1fZG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cyAmJiAhbG9v
cC5lbmRlZCgpKQorICAgICAgICAgICAgbG9vcC5jeWNsZSgpOworICAgIH0KIAogICAgIG1fcGF1
c2VkID0gZmFsc2U7CiAgICAgbV9wYXVzZWRQYWdlID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IGZjZjFiNGQuLmYyYTgxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDc1
NCw2ICs0NzU0LDggQEAgdm9pZCBEb2N1bWVudDo6cGVuZGluZ1Rhc2tzVGltZXJGaXJlZChUaW1l
cjxEb2N1bWVudD4qKQogCiB2b2lkIERvY3VtZW50OjpzdXNwZW5kU2NoZWR1bGVkVGFza3MoKQog
eworICAgIGlmIChmcmFtZSgpKQorICAgICAgICBmcmFtZSgpLT5zY3JpcHQoKS0+c2V0UGF1c2Vk
KHRydWUpOwogICAgIHN1c3BlbmRTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXJDYWxsYmFja3Mo
KTsKICAgICBzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyhBY3RpdmVET01PYmplY3Q6OldpbGxTaG93
RGlhbG9nKTsKICAgICBhc3luY1NjcmlwdFJ1bm5lcigpLT5zdXNwZW5kKCk7CkBAIC00NzcxLDYg
KzQ3NzMsOCBAQCB2b2lkIERvY3VtZW50OjpyZXN1bWVTY2hlZHVsZWRUYXNrcygpCiAgICAgYXN5
bmNTY3JpcHRSdW5uZXIoKS0+cmVzdW1lKCk7CiAgICAgcmVzdW1lQWN0aXZlRE9NT2JqZWN0cygp
OwogICAgIHJlc3VtZVNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlckNhbGxiYWNrcygpOworICAg
IGlmIChmcmFtZSgpKQorICAgICAgICBmcmFtZSgpLT5zY3JpcHQoKS0+c2V0UGF1c2VkKGZhbHNl
KTsKIH0KIAogdm9pZCBEb2N1bWVudDo6c3VzcGVuZFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxl
ckNhbGxiYWNrcygpCi0tIAoxLjcuNC4x
</data>
<flag name="review"
          id="77144"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>