<?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>37642</bug_id>
          
          <creation_ts>2010-04-15 00:50:42 -0700</creation_ts>
          <short_desc>Use a lower-overhead mechanism for plug-in message throttling</short_desc>
          <delta_ts>2010-04-15 13:26:21 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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="Steve Falkenburg">sfalken</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>212773</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Falkenburg">sfalken</who>
    <bug_when>2010-04-15 00:50:42 -0700</bug_when>
    <thetext>Use a lower-overhead mechanism for plug-in message throttling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212780</commentid>
    <comment_count>1</comment_count>
      <attachid>53416</attachid>
    <who name="Steve Falkenburg">sfalken</who>
    <bug_when>2010-04-15 01:14:47 -0700</bug_when>
    <thetext>Created attachment 53416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212888</commentid>
    <comment_count>2</comment_count>
      <attachid>53416</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-04-15 09:36:36 -0700</bug_when>
    <thetext>Comment on attachment 53416
Patch

&gt; +        - The timer used to process the excess messages had a very low timeout (1ms).
&gt; +          Other browsers use a value of 5ms for this delay.

You could say which &quot;other browsers&quot;, for posterity&apos;s sake.

&gt; +// Set a timer to make sure we process any queued messages at least every 16ms.
&gt; +static const double MessageThrottleTimeInterval = 0.016;

It might be good to say (both here and in the ChangeLog) how 16ms was chosen.

&gt; +// During a continuous stream of timers, process one every 5ms.
&gt; +static const double MessageDirectProcessingInterval = 0.005;

I think you meant &quot;stream of messages&quot;.

&gt; @@ -74,11 +81,21 @@ void PluginMessageThrottlerWin::appendMe
&gt;      if (!m_front)
&gt;          m_front = message;
&gt;  
&gt; +    // If it has been more than MessageDirectProcessingInterval between throttled messages,
&gt; +    // go ahead and process a message directly.
&gt; +    double currentTime = WTF::currentTime();
&gt; +    if (currentTime - m_lastMessageTime &gt; MessageDirectProcessingInterval) {
&gt; +        processQueuedMessage();
&gt; +        m_lastMessageTime = currentTime;
&gt; +        if (!m_front)
&gt; +            return;
&gt; +    }
&gt; +

Seems like we should update m_lastMessageTime in processQueuedMessage() instead of here.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212893</commentid>
    <comment_count>3</comment_count>
    <who name="Steve Falkenburg">sfalken</who>
    <bug_when>2010-04-15 09:52:17 -0700</bug_when>
    <thetext>Thanks for review.

Resetting m_lastMessageTime is processQueuedMessage resulted in messages not being processed in the direct 5ms mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213000</commentid>
    <comment_count>4</comment_count>
    <who name="Steve Falkenburg">sfalken</who>
    <bug_when>2010-04-15 13:26:21 -0700</bug_when>
    <thetext>Committed r57650: &lt;http://trac.webkit.org/changeset/57650&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53416</attachid>
            <date>2010-04-15 01:14:47 -0700</date>
            <delta_ts>2010-04-15 09:36:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37642-20100415011445.patch</filename>
            <type>text/plain</type>
            <size>5609</size>
            <attacher name="Steve Falkenburg">sfalken</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzYzMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTAtMDQtMTUgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgYSBsb3dlci1vdmVyaGVhZCBtZWNoYW5pc20gZm9yIHBsdWctaW4gbWVzc2FnZSB0aHJv
dHRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NzY0MiAgICAgICAgCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDE4Mjg1PiBWZXJ5IGhpZ2gg
Q1BVIHVzYWdlIGlkbGluZyBpbiBnbWFpbCB1bmRlciBXaW5kb3dzIDcgKHBsdWctaW4gcmVsYXRl
ZCkKKyAgICAgICAgCisgICAgICAgIEdNYWlsIGhhcyBhbiBpbnN0YW5jZSBvZiBGbGFzaCB0aGF0
IGxvYWRzIG9uIHRoZSBtYWluIG1haWwgcGFnZS4KKyAgICAgICAgVGhpcyBGbGFzaCBjb250ZW50
IHNlbmRzIHVzIGEgY29uc3RhbnQgc3RyZWFtIG9mIFdNX1VTRVIrMSBtZXNzc2FnZXMuCisgICAg
ICAgIAorICAgICAgICBUaGVyZSB3YXMgYWxyZWFkeSBjb2RlIGluIFBsdWdpbk1lc3NhZ2VUaHJv
dHRsZXJXaW4gdG8gcXVldWUgYW5kIHByb2Nlc3MgdGhlc2UKKyAgICAgICAgZXhjZXNzIFdNX1VT
RVIrMSBtZXNzYWdlcyBmcm9tIEZsYXNoLiBVbmZvcnR1bmF0ZWx5LCB0aGVyZSB3ZXJlIGEgY291
cGxlIG9mCisgICAgICAgIHByb2JsZW1zIHdpdGggdGhpcyBjb2RlOgorICAgICAgICAKKyAgICAg
ICAgLSBUaGUgdGltZXIgdXNlZCB0byBwcm9jZXNzIHRoZSBleGNlc3MgbWVzc2FnZXMgaGFkIGEg
dmVyeSBsb3cgdGltZW91dCAoMW1zKS4KKyAgICAgICAgICBPdGhlciBicm93c2VycyB1c2UgYSB2
YWx1ZSBvZiA1bXMgZm9yIHRoaXMgZGVsYXkuCisgICAgICAgIAorICAgICAgICAtIFRoZSBvdmVy
aGVhZCBpbnZvbHZlZCBpbiBnZW5lcmF0aW5nIGEgY29uc3RhbnQgc3RyZWFtIG9mIDVtcyB0aW1l
cnMgc3RpbGwgc3dhbXBlZAorICAgICAgICAgIHRoZSBDUFUsIHJlc3VsdGluZyBpbiBjb250aW51
ZWQgaGlnaCBDUFUgdXRpbGl6YXRpb24uCisgICAgICAgICAgCisgICAgICAgIFRvIGZpeCB0aGlz
LCBJIGNoYW5nZWQgdGhlIHRocm90dGxpbmcgY29kZSB0bzoKKyAgICAgICAgCisgICAgICAgIC0g
UHJvY2VzcyBhIHF1ZXVlZCBXTV9VU0VSKzEgbWVzc2FnZSBkaXJlY3RseSBpZiBub25lIGhhcyBi
ZWVuIHByb2Nlc3NlZCBpbiA1bXMuCisgICAgICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gYXZvaWQg
dGhlIG92ZXJoZWFkIG9mIGEgdGltZXIuCisgICAgICAgICAgCisgICAgICAgIC0gUHJvY2VzcyBy
ZW1haW5pbmcgZGVsYXllZCBXTV9VU0VSKzEgbWVzc2FnZXMgb24gYSAxNm1zIHRpbWVyLgorICAg
ICAgICAKKyAgICAgICAgVGhpcyByZWR1Y2VzIG91ciBDUFUgdXRpbGl6YXRpb24gaWRsaW5nIGlu
IEdNYWlsIGZyb20gfjIwJSB0byB+Mi0zJSBvbiBteSBzeXN0ZW0uCisgICAgICAgIEkgYWxzbyB2
ZXJpZmllZCB0aGUgZnJhbWUgcmF0ZSBmb3IgRmxhc2ggY29udGVudCB3YXNuJ3QgcmVkdWNlZCB3
aXRoIHRoaXMgY2hhbmdlLgorCisgICAgICAgICogcGx1Z2lucy93aW4vUGx1Z2luTWVzc2FnZVRo
cm90dGxlcldpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5NZXNzYWdlVGhyb3R0bGVy
V2luOjpQbHVnaW5NZXNzYWdlVGhyb3R0bGVyV2luKTogSW5pdGlhbGl6ZSBtX2xhc3RNZXNzYWdl
VGltZS4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbk1lc3NhZ2VUaHJvdHRsZXJXaW46OmFwcGVu
ZE1lc3NhZ2UpOiBQcm9jZXNzIGEgcXVldWVkIG1lc3NhZ2UgZGlyZWN0bHkgaWYgPjVtcyBoYXZl
IHBhc3NlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbk1lc3NhZ2VUaHJvdHRsZXJXaW46OnBy
b2Nlc3NRdWV1ZWRNZXNzYWdlKTogU3BsaXQgb3V0IGZyb20gbWVzc2FnZVRocm90dGxlVGltZXJG
aXJlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbk1lc3NhZ2VUaHJvdHRsZXJXaW46Om1lc3Nh
Z2VUaHJvdHRsZVRpbWVyRmlyZWQpOiBDYWxsIHRocm91Z2ggdG8gcHJvY2Vzc1F1ZXVlZE1lc3Nh
Z2UuCisgICAgICAgICogcGx1Z2lucy93aW4vUGx1Z2luTWVzc2FnZVRocm90dGxlcldpbi5oOiBB
ZGQgcHJvY2Vzc1F1ZXVlZE1lc3NhZ2UsIG1fbGFzdE1lc3NhZ2VUaW1lLgorCiAyMDEwLTA0LTE0
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbk1l
c3NhZ2VUaHJvdHRsZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lucy93aW4v
UGx1Z2luTWVzc2FnZVRocm90dGxlcldpbi5jcHAJKHJldmlzaW9uIDU3NTg4KQorKysgV2ViQ29y
ZS9wbHVnaW5zL3dpbi9QbHVnaW5NZXNzYWdlVGhyb3R0bGVyV2luLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksMTYgKzI5LDIzIEBACiAKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVk
ZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdURjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3Qg
ZG91YmxlIE1lc3NhZ2VUaHJvdHRsZVRpbWVJbnRlcnZhbCA9IDAuMDAxOworLy8gU2V0IGEgdGlt
ZXIgdG8gbWFrZSBzdXJlIHdlIHByb2Nlc3MgYW55IHF1ZXVlZCBtZXNzYWdlcyBhdCBsZWFzdCBl
dmVyeSAxNm1zLgorc3RhdGljIGNvbnN0IGRvdWJsZSBNZXNzYWdlVGhyb3R0bGVUaW1lSW50ZXJ2
YWwgPSAwLjAxNjsKKworLy8gRHVyaW5nIGEgY29udGludW91cyBzdHJlYW0gb2YgdGltZXJzLCBw
cm9jZXNzIG9uZSBldmVyeSA1bXMuCitzdGF0aWMgY29uc3QgZG91YmxlIE1lc3NhZ2VEaXJlY3RQ
cm9jZXNzaW5nSW50ZXJ2YWwgPSAwLjAwNTsKIAogUGx1Z2luTWVzc2FnZVRocm90dGxlcldpbjo6
UGx1Z2luTWVzc2FnZVRocm90dGxlcldpbihQbHVnaW5WaWV3KiBwbHVnaW5WaWV3KQotICAgIDog
bV9iYWNrKDApLCBtX2Zyb250KDApCisgICAgOiBtX2JhY2soMCkKKyAgICAsIG1fZnJvbnQoMCkK
ICAgICAsIG1fcGx1Z2luVmlldyhwbHVnaW5WaWV3KQorICAgICwgbV9sYXN0TWVzc2FnZVRpbWUo
MCkKICAgICAsIG1fbWVzc2FnZVRocm90dGxlVGltZXIodGhpcywgJlBsdWdpbk1lc3NhZ2VUaHJv
dHRsZXJXaW46Om1lc3NhZ2VUaHJvdHRsZVRpbWVyRmlyZWQpCiB7CiAgICAgLy8gSW5pdGlhbGl6
ZSB0aGUgZnJlZSBsaXN0IHdpdGggb3VyIGlubGluZSBtZXNzYWdlcwpAQCAtNzQsMTEgKzgxLDIx
IEBAIHZvaWQgUGx1Z2luTWVzc2FnZVRocm90dGxlcldpbjo6YXBwZW5kTWUKICAgICBpZiAoIW1f
ZnJvbnQpCiAgICAgICAgIG1fZnJvbnQgPSBtZXNzYWdlOwogCisgICAgLy8gSWYgaXQgaGFzIGJl
ZW4gbW9yZSB0aGFuIE1lc3NhZ2VEaXJlY3RQcm9jZXNzaW5nSW50ZXJ2YWwgYmV0d2VlbiB0aHJv
dHRsZWQgbWVzc2FnZXMsCisgICAgLy8gZ28gYWhlYWQgYW5kIHByb2Nlc3MgYSBtZXNzYWdlIGRp
cmVjdGx5LgorICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IFdURjo6Y3VycmVudFRpbWUoKTsKKyAg
ICBpZiAoY3VycmVudFRpbWUgLSBtX2xhc3RNZXNzYWdlVGltZSA+IE1lc3NhZ2VEaXJlY3RQcm9j
ZXNzaW5nSW50ZXJ2YWwpIHsKKyAgICAgICAgcHJvY2Vzc1F1ZXVlZE1lc3NhZ2UoKTsKKyAgICAg
ICAgbV9sYXN0TWVzc2FnZVRpbWUgPSBjdXJyZW50VGltZTsKKyAgICAgICAgaWYgKCFtX2Zyb250
KQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICghbV9tZXNzYWdlVGhyb3R0
bGVUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX21lc3NhZ2VUaHJvdHRsZVRpbWVyLnN0YXJ0
T25lU2hvdChNZXNzYWdlVGhyb3R0bGVUaW1lSW50ZXJ2YWwpOwogfQogCi12b2lkIFBsdWdpbk1l
c3NhZ2VUaHJvdHRsZXJXaW46Om1lc3NhZ2VUaHJvdHRsZVRpbWVyRmlyZWQoVGltZXI8UGx1Z2lu
TWVzc2FnZVRocm90dGxlcldpbj4qKQordm9pZCBQbHVnaW5NZXNzYWdlVGhyb3R0bGVyV2luOjpw
cm9jZXNzUXVldWVkTWVzc2FnZSgpCiB7CiAgICAgUGx1Z2luTWVzc2FnZSogbWVzc2FnZSA9IG1f
ZnJvbnQ7CiAgICAgbV9mcm9udCA9IG1fZnJvbnQtPm5leHQ7CkBAIC05MSw2ICsxMDgsMTEgQEAg
dm9pZCBQbHVnaW5NZXNzYWdlVGhyb3R0bGVyV2luOjptZXNzYWdlVAogICAgIDo6Q2FsbFdpbmRv
d1Byb2MobV9wbHVnaW5WaWV3LT5wbHVnaW5XbmRQcm9jKCksIG1lc3NhZ2UtPmhXbmQsIG1lc3Nh
Z2UtPm1zZywgbWVzc2FnZS0+d1BhcmFtLCBtZXNzYWdlLT5sUGFyYW0pOwogCiAgICAgZnJlZU1l
c3NhZ2UobWVzc2FnZSk7Cit9CisKK3ZvaWQgUGx1Z2luTWVzc2FnZVRocm90dGxlcldpbjo6bWVz
c2FnZVRocm90dGxlVGltZXJGaXJlZChUaW1lcjxQbHVnaW5NZXNzYWdlVGhyb3R0bGVyV2luPiop
Cit7CisgICAgcHJvY2Vzc1F1ZXVlZE1lc3NhZ2UoKTsKIAogICAgIGlmIChtX2Zyb250KQogICAg
ICAgICBtX21lc3NhZ2VUaHJvdHRsZVRpbWVyLnN0YXJ0T25lU2hvdChNZXNzYWdlVGhyb3R0bGVU
aW1lSW50ZXJ2YWwpOwpJbmRleDogV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5NZXNzYWdlVGhy
b3R0bGVyV2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5NZXNz
YWdlVGhyb3R0bGVyV2luLmgJKHJldmlzaW9uIDU3NTg4KQorKysgV2ViQ29yZS9wbHVnaW5zL3dp
bi9QbHVnaW5NZXNzYWdlVGhyb3R0bGVyV2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUx
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGFwcGVuZE1lc3NhZ2UoSFdO
RCwgVUlOVCBtc2csIFdQQVJBTSwgTFBBUkFNKTsKIAogICAgIHByaXZhdGU6CisgICAgICAgIHZv
aWQgcHJvY2Vzc1F1ZXVlZE1lc3NhZ2UoKTsKICAgICAgICAgdm9pZCBtZXNzYWdlVGhyb3R0bGVU
aW1lckZpcmVkKFRpbWVyPFBsdWdpbk1lc3NhZ2VUaHJvdHRsZXJXaW4+Kik7CiAgICAgICAgIFBs
dWdpbk1lc3NhZ2UqIGFsbG9jYXRlTWVzc2FnZSgpOwogICAgICAgICBib29sIGlzSW5saW5lTWVz
c2FnZShQbHVnaW5NZXNzYWdlKiBtZXNzYWdlKTsKQEAgLTY1LDYgKzY2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBQbHVnaW5NZXNzYWdlKiBtX2ZyZWVJbmxpbmVNZXNzYWdlczsK
IAogICAgICAgICBUaW1lcjxQbHVnaW5NZXNzYWdlVGhyb3R0bGVyV2luPiBtX21lc3NhZ2VUaHJv
dHRsZVRpbWVyOworICAgICAgICBkb3VibGUgbV9sYXN0TWVzc2FnZVRpbWU7CiAgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="37153"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>