<?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>76012</bug_id>
          
          <creation_ts>2012-01-10 17:30:04 -0800</creation_ts>
          <short_desc>[chromium] Add enter/exitRunLoop to WebThread API</short_desc>
          <delta_ts>2012-01-26 14:26:35 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>533516</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-10 17:30:04 -0800</bug_when>
    <thetext>[chromium] Add runMessageLoop, quitMessageLoop, and runAllPendingMessages to WebThread API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533518</commentid>
    <comment_count>1</comment_count>
      <attachid>121948</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-10 17:31:15 -0800</bug_when>
    <thetext>Created attachment 121948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533521</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-10 17:31:48 -0800</bug_when>
    <thetext>Depends on http://codereview.chromium.org/9167034/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533523</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-10 17:33:49 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533528</commentid>
    <comment_count>4</comment_count>
      <attachid>121948</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-01-10 17:41:03 -0800</bug_when>
    <thetext>Comment on attachment 121948
Patch

Hot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533541</commentid>
    <comment_count>5</comment_count>
      <attachid>121948</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-10 17:54:45 -0800</bug_when>
    <thetext>Comment on attachment 121948
Patch

Attachment 121948 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11141721</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534160</commentid>
    <comment_count>6</comment_count>
      <attachid>121948</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-11 12:50:35 -0800</bug_when>
    <thetext>Comment on attachment 121948
Patch

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

&gt; Source/WebKit/chromium/public/platform/WebThread.h:58
&gt; +    virtual void runMessageLoop() = 0;

nit: We don&apos;t have the term &quot;Message&quot; or &quot;MessageLoop&quot; anywhere else.
It might be nice to avoid those terms.

Some ideas:
runMessageLoop -&gt; enterRunLoop()
quitMessageLoop -&gt; exitRunLoop()
runAllPendingMessages -&gt; run{All}PendingTasks()

Please document the behavior (roughly).  For example, if exitRunLoop() maps
to MessageLoop::Quit(), then it equates to running all pending messages and
then quitting.  It may actually make more sense to add the QuitNow primitive
since you could simulate MessageLoop::Quit() by using postTask(exitRunLoop).

On the implementation side, you might want to lock this API down to not support
nested run loops since nested run loops are problematic and may require additional
support (e.g., postNonNestableTask).

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp:370
&gt; +        webKitPlatformSupport()-&gt;currentThread()-&gt;runAllPendingMessages();

do you know why this needs to call runAllPendingMessages after runMessageLoop?
i guess the idea is that other messages could enter the queue after the Quit
message, and you want to flush those out as well?

MessageLoop::Quit() doesn&apos;t post a task though.  it just sets a flag, telling
the ML to exit once it has nothing else to do.  so i think runAllPendingMessages
here should be a no-op.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538286</commentid>
    <comment_count>7</comment_count>
      <attachid>123027</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-18 15:53:28 -0800</bug_when>
    <thetext>Created attachment 123027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538288</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-18 15:54:48 -0800</bug_when>
    <thetext>Turns out runAllPending...() isn&apos;t need at all.  Removed that, renamed the other functions, and added some docs.  PTAL.

Will fail to compile until https://chromiumcodereview.appspot.com/9167034 is landed and rolled in to Source/WebKit/chromium/DEPS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538314</commentid>
    <comment_count>9</comment_count>
      <attachid>123027</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-18 16:26:58 -0800</bug_when>
    <thetext>Comment on attachment 123027
Patch

Attachment 123027 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11211844</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538456</commentid>
    <comment_count>10</comment_count>
      <attachid>123027</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-18 21:24:05 -0800</bug_when>
    <thetext>Comment on attachment 123027
Patch

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

&gt; Source/WebKit/chromium/public/platform/WebThread.h:59
&gt; +    // WebThread does not support nesting, meaning that once the run loop is entered for a given WebThread is is not valid to

nit: &quot;is is&quot; ... i think you meant &quot;it is&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543488</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-26 14:26:35 -0800</bug_when>
    <thetext>Committed r106044: &lt;http://trac.webkit.org/changeset/106044&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121948</attachid>
            <date>2012-01-10 17:31:15 -0800</date>
            <delta_ts>2012-01-18 15:53:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76012-20120110173114.patch</filename>
            <type>text/plain</type>
            <size>6384</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGI5YzQzNWUyYmU2NzQ3NTQ0ZTYwYTAyYjQyNzVhNDU0ZjBiMjE4NTQuLjg2YTBjMWUxMGQwY2Fl
MWUzYmZkNmFmZGU0NTI4MzcyNGViOTkxNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjYgQEAKIDIwMTItMDEtMTAgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9t
aXVtLm9yZz4KIAorICAgICAgICBbY2hyb21pdW1dIEFkZCBydW5NZXNzYWdlTG9vcCwgcXVpdE1l
c3NhZ2VMb29wLCBhbmQgcnVuQWxsUGVuZGluZ01lc3NhZ2VzIHRvIFdlYlRocmVhZCBBUEkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDEyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIHRo
b3NlIHRocmVlIEFQSXMgdG8gV2ViS2l0OjpXZWJUaHJlYWQgYW5kIGNvbnZlcnRzIENDTGF5ZXJU
cmVlSG9zdFRlc3Qgb3ZlciB0byB1c2UgdGhlc2UgQVBJcyBpbnN0ZWFkCisgICAgICAgIG9mIHdl
YmtpdF9zdXBwb3J0LiBUaGUgaW1tZWRpYXRlIG1vdGl2YXRpb24gaXMgdGhhdCB3ZSBjYW4ndCB1
c2Ugd2Via2l0X3N1cHBvcnQgaW4gd2Via2l0X3VuaXRfdGVzdHMgaW4gdGhlCisgICAgICAgIGNv
bXBvbmVudCBidWlsZC4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGlj
L3BsYXRmb3JtL1dlYlRocmVhZC5oOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRl
c3QuY3BwOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0OjpvbkVuZFRlc3QpOgor
ICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0OjpUaW1lb3V0VGFzazo6cnVuKToKKyAg
ICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdDo6QmVnaW5UYXNrOjpCZWdpblRhc2spOgor
ICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0OjpCZWdpblRhc2s6On5CZWdpblRhc2sp
OgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0OjpCZWdpblRhc2s6OnJ1bik6Cisg
ICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3Q6OnJ1blRlc3QpOgorCisyMDEyLTAxLTEw
ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9t
aXVtXSBSZW1vdmUgb2xkIFdlYk1pbWVSZWdpc3RyeS5oIGZvcndhcmRpbmcgaGVhZGVyCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk3OQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggMDQ4OTQ1NDRkYThjNTQ0OTcyNjRlNzQwZTgwOWM0
M2QwNWNhNzVhMy4uZGNiYThmZThlZWQ0MWMzZDQ3ZGY2NjA3MmQwMmVmMGU1YjYwMmI5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtNzI3LDcgKzcyNyw2IEBACiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICMgVGhlc2UgdGVzdHMgZGVwZW5kIG9uIHdlYmtpdF9zdXBw
b3J0IGFuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZ1bmN0aW9ucyBkZWZp
bmVkIG9ubHkgaW4gIVdFQktJVF9JTVBMRU1FTlRBVElPTi4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3Rlc3RzL0Fzc29jaWF0ZWRVUkxMb2FkZXJUZXN0LmNwcCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcCcs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0cy9GcmFtZVRlc3RIZWxwZXJz
LmNwcCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0cy9Qb3B1cE1lbnVU
ZXN0LmNwcCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0cy9SZW5kZXJU
YWJsZUNlbGxUZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9wbGF0Zm9ybS9XZWJUaHJlYWQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L3BsYXRmb3JtL1dlYlRocmVhZC5oCmluZGV4IGE3YjM3MmZlZTM0ZDdkZmQ5YzdjYTE2NDUxMzJm
ZTA0OWMwYjY4NWIuLjA4NGY4ZmMzMDdjNTFkZTEwOWRjMmNhZDllMWFjMWFiNzljMWRmNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlRocmVh
ZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlRocmVh
ZC5oCkBAIC01MSw5ICs1MSwxNCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRh
c2soVGFzayopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdERlbGF5ZWRUYXNrKFRhc2sqLCBs
b25nIGxvbmcgZGVsYXlNcykgPSAwOworCiAgICAgdmlydHVhbCB2b2lkIGFkZFRhc2tPYnNlcnZl
cihUYXNrT2JzZXJ2ZXIqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGFza09ic2VydmVy
KFRhc2tPYnNlcnZlciopIHsgfQogCisgICAgdmlydHVhbCB2b2lkIHJ1bk1lc3NhZ2VMb29wKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBxdWl0TWVzc2FnZUxvb3AoKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHJ1bkFsbFBlbmRpbmdNZXNzYWdlcygpID0gMDsKKwogICAgIHZpcnR1YWwgfldlYlRo
cmVhZCgpIHsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NMYXllclRyZWVIb3N0VGVzdC5jcHAKaW5kZXggYmZhMWIwODIyMmU3ZWJkMGZiZGU3Zjk4MGUx
MjdkYzQwZmEwYzQyYS4uOGViNDA5ZjE2ZjkwNDExYzQzOGIxNmYwOWJhYzBmYjQ0MTdjYzUyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RU
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9z
dFRlc3QuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViS2l0UGxh
dGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViVGhyZWFkLmgiCiAjaW5jbHVk
ZSA8Z3Rlc3QvZ3Rlc3QuaD4KLSNpbmNsdWRlIDx3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9y
dC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0yNDMsMTYgKzI0MiwxMSBAQCBwcm90
ZWN0ZWQ6CiAKICAgICB2b2lkIGRvQmVnaW5UZXN0KCk7CiAKLSAgICBzdGF0aWMgdm9pZCBvbkJl
Z2luVGVzdCh2b2lkKiBzZWxmKQotICAgIHsKLSAgICAgICAgc3RhdGljX2Nhc3Q8Q0NMYXllclRy
ZWVIb3N0VGVzdCo+KHNlbGYpLT5kb0JlZ2luVGVzdCgpOwotICAgIH0KLQogICAgIHN0YXRpYyB2
b2lkIG9uRW5kVGVzdCh2b2lkKiBzZWxmKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKLSAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlF1aXRNZXNzYWdlTG9vcCgpOwotICAg
ICAgICB3ZWJraXRfc3VwcG9ydDo6UnVuQWxsUGVuZGluZ01lc3NhZ2VzKCk7CisgICAgICAgIHdl
YktpdFBsYXRmb3JtU3VwcG9ydCgpLT5jdXJyZW50VGhyZWFkKCktPnF1aXRNZXNzYWdlTG9vcCgp
OworICAgICAgICB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3VycmVudFRocmVhZCgpLT5ydW5B
bGxQZW5kaW5nTWVzc2FnZXMoKTsKICAgICB9CiAKICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFNl
dE5lZWRzQW5pbWF0ZSh2b2lkKiBzZWxmKQpAQCAtMzExLDcgKzMwNSw3IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgICB0ZXN0LT5tX2xheWVyVHJlZUhvc3QtPnNldFZpc2libGUoZmFsc2UpOwogICAg
IH0KIAotICAgIGNsYXNzIFRpbWVvdXRUYXNrIDogcHVibGljIHdlYmtpdF9zdXBwb3J0OjpUYXNr
QWRhcHRvciB7CisgICAgY2xhc3MgVGltZW91dFRhc2sgOiBwdWJsaWMgV2ViVGhyZWFkOjpUYXNr
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIGV4cGxpY2l0IFRpbWVvdXRUYXNrKENDTGF5ZXJUcmVl
SG9zdFRlc3QqIHRlc3QpCiAgICAgICAgICAgICA6IG1fdGVzdCh0ZXN0KQpAQCAtMzI5LDcgKzMy
Myw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgICAgICBtX3Rlc3QtPmNsZWFyVGltZW91dCgp
OwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIFJ1bigpCisgICAgICAgIHZpcnR1
YWwgdm9pZCBydW4oKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAobV90ZXN0KQogICAgICAg
ICAgICAgICAgIG1fdGVzdC0+dGltZW91dCgpOwpAQCAtMzM5LDYgKzMzMywyMiBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIENDTGF5ZXJUcmVlSG9zdFRlc3QqIG1fdGVzdDsKICAgICB9OwogCisgICAg
Y2xhc3MgQmVnaW5UYXNrIDogcHVibGljIFdlYlRocmVhZDo6VGFzayB7CisgICAgcHVibGljOgor
ICAgICAgICBleHBsaWNpdCBCZWdpblRhc2soQ0NMYXllclRyZWVIb3N0VGVzdCogdGVzdCkKKyAg
ICAgICAgICAgIDogbV90ZXN0KHRlc3QpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAg
IHZpcnR1YWwgfkJlZ2luVGFzaygpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgbV90ZXN0LT5kb0JlZ2luVGVzdCgpOworICAgICAgICB9Cisg
ICAgcHJpdmF0ZToKKyAgICAgICAgQ0NMYXllclRyZWVIb3N0VGVzdCogbV90ZXN0OworICAgIH07
CisKICAgICB2aXJ0dWFsIHZvaWQgcnVuVGVzdChib29sIHRocmVhZGVkKQogICAgIHsKICAgICAg
ICAgbV9zZXR0aW5ncy5yZWZyZXNoUmF0ZSA9IDEwMC4wOwpAQCAtMzUyLDExICszNjIsMTIgQEAg
cHJvdGVjdGVkOgogICAgICAgICBBU1NFUlQoQ0NQcm94eTo6aXNNYWluVGhyZWFkKCkpOwogICAg
ICAgICBtX21haW5UaHJlYWRQcm94eSA9IENDU2NvcGVkVGhyZWFkUHJveHk6OmNyZWF0ZShDQ1By
b3h5OjptYWluVGhyZWFkKCkpOwogCi0gICAgICAgIHdlYmtpdF9zdXBwb3J0OjpQb3N0RGVsYXll
ZFRhc2soQ0NMYXllclRyZWVIb3N0VGVzdDo6b25CZWdpblRlc3QsIHN0YXRpY19jYXN0PHZvaWQq
Pih0aGlzKSwgMCk7CisgICAgICAgIG1fYmVnaW5UYXNrID0gbmV3IEJlZ2luVGFzayh0aGlzKTsK
KyAgICAgICAgd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmN1cnJlbnRUaHJlYWQoKS0+cG9zdERl
bGF5ZWRUYXNrKG1fYmVnaW5UYXNrLCAwKTsgLy8gcG9zdERlbGF5ZWRUYXNrIHRha2VzIG93bmVy
c2hpcCBvZiB0aGUgdGFzawogICAgICAgICBtX3RpbWVvdXRUYXNrID0gbmV3IFRpbWVvdXRUYXNr
KHRoaXMpOwotICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UG9zdERlbGF5ZWRUYXNrKG1fdGltZW91
dFRhc2ssIDUwMDApOyAvLyB3ZWJraXRfc3VwcG9ydCB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIHRh
c2sKLSAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlJ1bk1lc3NhZ2VMb29wKCk7Ci0gICAgICAgIHdl
YmtpdF9zdXBwb3J0OjpSdW5BbGxQZW5kaW5nTWVzc2FnZXMoKTsKKyAgICAgICAgd2ViS2l0UGxh
dGZvcm1TdXBwb3J0KCktPmN1cnJlbnRUaHJlYWQoKS0+cG9zdERlbGF5ZWRUYXNrKG1fdGltZW91
dFRhc2ssIDUwMDApOworICAgICAgICB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3VycmVudFRo
cmVhZCgpLT5ydW5NZXNzYWdlTG9vcCgpOworICAgICAgICB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQo
KS0+Y3VycmVudFRocmVhZCgpLT5ydW5BbGxQZW5kaW5nTWVzc2FnZXMoKTsKIAogICAgICAgICBp
ZiAobV9sYXllclRyZWVIb3N0ICYmIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCkpCiAgICAg
ICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRMYXllclRyZWVIb3N0KDAp
OwpAQCAtMzg4LDYgKzM5OSw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFdlYlRocmVhZD4gbV93
ZWJUaHJlYWQ7CiAgICAgUmVmUHRyPENDU2NvcGVkVGhyZWFkUHJveHk+IG1fbWFpblRocmVhZFBy
b3h5OwogICAgIFRpbWVvdXRUYXNrKiBtX3RpbWVvdXRUYXNrOworICAgIEJlZ2luVGFzayogbV9i
ZWdpblRhc2s7CiB9OwogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdFRlc3Q6OmRvQmVnaW5UZXN0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123027</attachid>
            <date>2012-01-18 15:53:28 -0800</date>
            <delta_ts>2012-01-18 21:24:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76012-20120118155327.patch</filename>
            <type>text/plain</type>
            <size>6558</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDViMjEyOTkyMzA1ZDNkMTNmZjQ1ODg5NTE2MGFlZTA2NjYzZjI3YWEuLmIwNjhjODk2NzQ2YjY4
MmNkOTE5MGQ4ODM1NzVkZDljNzM3NTYwN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTItMDEtMTAgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBlbnRlci9leGl0UnVuTG9vcCB0byBX
ZWJUaHJlYWQgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NjAxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgYWRkcyB0aG9zZSB0d28gQVBJcyB0byBXZWJLaXQ6OldlYlRocmVhZCBhbmQgY29u
dmVydHMgQ0NMYXllclRyZWVIb3N0VGVzdCBvdmVyIHRvIHVzZSB0aGVzZSBBUElzIGluc3RlYWQK
KyAgICAgICAgb2Ygd2Via2l0X3N1cHBvcnQuIFRoZSBpbW1lZGlhdGUgbW90aXZhdGlvbiBpcyB0
aGF0IHdlIGNhbid0IHVzZSB3ZWJraXRfc3VwcG9ydCBpbiB3ZWJraXRfdW5pdF90ZXN0cyBpbiB0
aGUKKyAgICAgICAgY29tcG9uZW50IGJ1aWxkLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAg
ICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViVGhyZWFkLmg6CisgICAgICAgICogdGVzdHMvQ0NM
YXllclRyZWVIb3N0VGVzdC5jcHA6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3Q6
Om9uRW5kVGVzdCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3Q6OlRpbWVvdXRU
YXNrOjpydW4pOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0OjpCZWdpblRhc2s6
OkJlZ2luVGFzayk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3Q6OkJlZ2luVGFz
azo6fkJlZ2luVGFzayk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3Q6OkJlZ2lu
VGFzazo6cnVuKToKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdDo6cnVuVGVzdCk6
CisKIDIwMTItMDEtMTggIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBtb3ZlIFRvb2xzLmd5cCwgc3dpdGNoIGJ1aWxkLXdlYmtpdCAtLWNo
cm9taXVtIHRvIEFsbC5neXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCA1YzEyNTRh
NmVkNDgyZmQ3MTFlZDZkMGYxN2YxODU1NDJiZWRjNTgzLi5lNzg2MTZhOTJkYzdhYTZjYWU5YjQ5
OTA0ZDk1YjE5OGQxYWUyOTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC03Mjcs
NyArNzI3LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGVzZSB0ZXN0
cyBkZXBlbmQgb24gd2Via2l0X3N1cHBvcnQgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICMgZnVuY3Rpb25zIGRlZmluZWQgb25seSBpbiAhV0VCS0lUX0lNUExFTUVOVEFUSU9O
LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGVzdHMvQXNzb2NpYXRlZFVSTExv
YWRlclRlc3QuY3BwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlc3RzL0ND
TGF5ZXJUcmVlSG9zdFRlc3QuY3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3Rlc3RzL0ZyYW1lVGVzdEhlbHBlcnMuY3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwJywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ3Rlc3RzL1JlbmRlclRhYmxlQ2VsbFRlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlRocmVhZC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViVGhyZWFkLmgKaW5kZXggYTdiMzcy
ZmVlMzRkN2RmZDljN2NhMTY0NTEzMmZlMDQ5YzBiNjg1Yi4uYjE4Yjc1NDBmMDBkZDM4MTYyNWIx
Zjg0Y2U4ZmVhMmNjMGVmZTY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvcGxhdGZvcm0vV2ViVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvcGxhdGZvcm0vV2ViVGhyZWFkLmgKQEAgLTUxLDkgKzUxLDE5IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhUYXNrKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBw
b3N0RGVsYXllZFRhc2soVGFzayosIGxvbmcgbG9uZyBkZWxheU1zKSA9IDA7CisKICAgICB2aXJ0
dWFsIHZvaWQgYWRkVGFza09ic2VydmVyKFRhc2tPYnNlcnZlciopIHsgfQogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVUYXNrT2JzZXJ2ZXIoVGFza09ic2VydmVyKikgeyB9CiAKKyAgICAvLyBlbnRl
clJ1bkxvb3AoKSBwcm9jZXNzZXMgdGFza3MgcG9zdGVkIHRvIHRoaXMgV2ViVGhyZWFkLiBUaGlz
IGNhbGwgZG9lcyBub3QgcmV0dXJuIHVudGlsIHNvbWUgdGFzayBjYWxscyBleGl0UnVuTG9vcCgp
LgorICAgIC8vIFdlYlRocmVhZCBkb2VzIG5vdCBzdXBwb3J0IG5lc3RpbmcsIG1lYW5pbmcgdGhh
dCBvbmNlIHRoZSBydW4gbG9vcCBpcyBlbnRlcmVkIGZvciBhIGdpdmVuIFdlYlRocmVhZCBpcyBp
cyBub3QgdmFsaWQgdG8KKyAgICAvLyBjYWxsIGVudGVyUnVuTG9vcCgpIGFnYWluLgorICAgIHZp
cnR1YWwgdm9pZCBlbnRlclJ1bkxvb3AoKSA9IDA7CisKKyAgICAvLyBleGl0UnVuTG9vcCgpIHJ1
bnMgdGFza3MgdW50aWwgdGhlcmUgYXJlIG5vIHRhc2tzIGF2YWlsYWJsZSB0byBydW4sIHRoZW4g
cmV0dXJucyBjb250cm9sIHRvIHRoZSBjYWxsZXIgb2YgZW50ZXJSdW5Mb29wKCkuCisgICAgLy8g
TXVzdCBiZSBjYWxsZWQgd2hlbiB0aGUgV2ViVGhyZWFkIGlzIHJ1bm5pbmcuCisgICAgdmlydHVh
bCB2b2lkIGV4aXRSdW5Mb29wKCkgPSAwOworCiAgICAgdmlydHVhbCB+V2ViVGhyZWFkKCkgeyB9
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJU
cmVlSG9zdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJl
ZUhvc3RUZXN0LmNwcAppbmRleCBiZmExYjA4MjIyZTdlYmQwZmJkZTdmOTgwZTEyN2RjNDBmYTBj
NDJhLi5jMGViNDgyMjJjNDY5YTE5MGE0OTI5MjM4ODJiNTdhYTBkY2M1MzJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAK
QEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBv
cnQuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJUaHJlYWQuaCIKICNpbmNsdWRlIDxndGVzdC9n
dGVzdC5oPgotI2luY2x1ZGUgPHdlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0Lmg+CiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTI0MywxNiArMjQyLDEwIEBAIHByb3RlY3RlZDoKIAog
ICAgIHZvaWQgZG9CZWdpblRlc3QoKTsKIAotICAgIHN0YXRpYyB2b2lkIG9uQmVnaW5UZXN0KHZv
aWQqIHNlbGYpCi0gICAgewotICAgICAgICBzdGF0aWNfY2FzdDxDQ0xheWVyVHJlZUhvc3RUZXN0
Kj4oc2VsZiktPmRvQmVnaW5UZXN0KCk7Ci0gICAgfQotCiAgICAgc3RhdGljIHZvaWQgb25FbmRU
ZXN0KHZvaWQqIHNlbGYpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwot
ICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UXVpdE1lc3NhZ2VMb29wKCk7Ci0gICAgICAgIHdlYmtp
dF9zdXBwb3J0OjpSdW5BbGxQZW5kaW5nTWVzc2FnZXMoKTsKKyAgICAgICAgd2ViS2l0UGxhdGZv
cm1TdXBwb3J0KCktPmN1cnJlbnRUaHJlYWQoKS0+ZXhpdFJ1bkxvb3AoKTsKICAgICB9CiAKICAg
ICBzdGF0aWMgdm9pZCBkaXNwYXRjaFNldE5lZWRzQW5pbWF0ZSh2b2lkKiBzZWxmKQpAQCAtMzEx
LDcgKzMwNCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICB0ZXN0LT5tX2xheWVyVHJlZUhvc3Qt
PnNldFZpc2libGUoZmFsc2UpOwogICAgIH0KIAotICAgIGNsYXNzIFRpbWVvdXRUYXNrIDogcHVi
bGljIHdlYmtpdF9zdXBwb3J0OjpUYXNrQWRhcHRvciB7CisgICAgY2xhc3MgVGltZW91dFRhc2sg
OiBwdWJsaWMgV2ViVGhyZWFkOjpUYXNrIHsKICAgICBwdWJsaWM6CiAgICAgICAgIGV4cGxpY2l0
IFRpbWVvdXRUYXNrKENDTGF5ZXJUcmVlSG9zdFRlc3QqIHRlc3QpCiAgICAgICAgICAgICA6IG1f
dGVzdCh0ZXN0KQpAQCAtMzI5LDcgKzMyMiw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgICAg
ICBtX3Rlc3QtPmNsZWFyVGltZW91dCgpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2
b2lkIFJ1bigpCisgICAgICAgIHZpcnR1YWwgdm9pZCBydW4oKQogICAgICAgICB7CiAgICAgICAg
ICAgICBpZiAobV90ZXN0KQogICAgICAgICAgICAgICAgIG1fdGVzdC0+dGltZW91dCgpOwpAQCAt
MzM5LDYgKzMzMiwyMiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIENDTGF5ZXJUcmVlSG9zdFRlc3Qq
IG1fdGVzdDsKICAgICB9OwogCisgICAgY2xhc3MgQmVnaW5UYXNrIDogcHVibGljIFdlYlRocmVh
ZDo6VGFzayB7CisgICAgcHVibGljOgorICAgICAgICBleHBsaWNpdCBCZWdpblRhc2soQ0NMYXll
clRyZWVIb3N0VGVzdCogdGVzdCkKKyAgICAgICAgICAgIDogbV90ZXN0KHRlc3QpCisgICAgICAg
IHsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgfkJlZ2luVGFzaygpIHsgfQorICAgICAg
ICB2aXJ0dWFsIHZvaWQgcnVuKCkKKyAgICAgICAgeworICAgICAgICAgICAgbV90ZXN0LT5kb0Jl
Z2luVGVzdCgpOworICAgICAgICB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgQ0NMYXllclRyZWVI
b3N0VGVzdCogbV90ZXN0OworICAgIH07CisKICAgICB2aXJ0dWFsIHZvaWQgcnVuVGVzdChib29s
IHRocmVhZGVkKQogICAgIHsKICAgICAgICAgbV9zZXR0aW5ncy5yZWZyZXNoUmF0ZSA9IDEwMC4w
OwpAQCAtMzUyLDExICszNjEsMTEgQEAgcHJvdGVjdGVkOgogICAgICAgICBBU1NFUlQoQ0NQcm94
eTo6aXNNYWluVGhyZWFkKCkpOwogICAgICAgICBtX21haW5UaHJlYWRQcm94eSA9IENDU2NvcGVk
VGhyZWFkUHJveHk6OmNyZWF0ZShDQ1Byb3h5OjptYWluVGhyZWFkKCkpOwogCi0gICAgICAgIHdl
YmtpdF9zdXBwb3J0OjpQb3N0RGVsYXllZFRhc2soQ0NMYXllclRyZWVIb3N0VGVzdDo6b25CZWdp
blRlc3QsIHN0YXRpY19jYXN0PHZvaWQqPih0aGlzKSwgMCk7CisgICAgICAgIG1fYmVnaW5UYXNr
ID0gbmV3IEJlZ2luVGFzayh0aGlzKTsKKyAgICAgICAgd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCkt
PmN1cnJlbnRUaHJlYWQoKS0+cG9zdERlbGF5ZWRUYXNrKG1fYmVnaW5UYXNrLCAwKTsgLy8gcG9z
dERlbGF5ZWRUYXNrIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgdGFzawogICAgICAgICBtX3RpbWVv
dXRUYXNrID0gbmV3IFRpbWVvdXRUYXNrKHRoaXMpOwotICAgICAgICB3ZWJraXRfc3VwcG9ydDo6
UG9zdERlbGF5ZWRUYXNrKG1fdGltZW91dFRhc2ssIDUwMDApOyAvLyB3ZWJraXRfc3VwcG9ydCB0
YWtlcyBvd25lcnNoaXAgb2YgdGhlIHRhc2sKLSAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlJ1bk1l
c3NhZ2VMb29wKCk7Ci0gICAgICAgIHdlYmtpdF9zdXBwb3J0OjpSdW5BbGxQZW5kaW5nTWVzc2Fn
ZXMoKTsKKyAgICAgICAgd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmN1cnJlbnRUaHJlYWQoKS0+
cG9zdERlbGF5ZWRUYXNrKG1fdGltZW91dFRhc2ssIDUwMDApOworICAgICAgICB3ZWJLaXRQbGF0
Zm9ybVN1cHBvcnQoKS0+Y3VycmVudFRocmVhZCgpLT5lbnRlclJ1bkxvb3AoKTsKIAogICAgICAg
ICBpZiAobV9sYXllclRyZWVIb3N0ICYmIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCkpCiAg
ICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRMYXllclRyZWVIb3N0
KDApOwpAQCAtMzg4LDYgKzM5Nyw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFdlYlRocmVhZD4g
bV93ZWJUaHJlYWQ7CiAgICAgUmVmUHRyPENDU2NvcGVkVGhyZWFkUHJveHk+IG1fbWFpblRocmVh
ZFByb3h5OwogICAgIFRpbWVvdXRUYXNrKiBtX3RpbWVvdXRUYXNrOworICAgIEJlZ2luVGFzayog
bV9iZWdpblRhc2s7CiB9OwogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdFRlc3Q6OmRvQmVnaW5UZXN0
KCkK
</data>
<flag name="review"
          id="123982"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="123989"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>