<?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>131559</bug_id>
          
          <creation_ts>2014-04-11 13:16:29 -0700</creation_ts>
          <short_desc>Aggregate multiple &quot;respondToChangedSelection&quot; calls to one scan for telephone numbers</short_desc>
          <delta_ts>2014-04-11 19:27:29 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>999994</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-04-11 13:16:29 -0700</bug_when>
    <thetext>Aggregate multiple &quot;respondToChangedSelection&quot; calls to one scan for telephone numbers

Turns out Editor::respondToChangedSelection is called a lot more often than when the user visible selection changes as the result of a user event.

In fact, it can be called many (hundreds!) of times during one iteration of the run loop.

We should aggregate all of those calls into a single telephone number scan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999997</commentid>
    <comment_count>1</comment_count>
      <attachid>229157</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-04-11 13:18:48 -0700</bug_when>
    <thetext>Created attachment 229157
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000028</commentid>
    <comment_count>2</comment_count>
      <attachid>229157</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-11 14:09:43 -0700</bug_when>
    <thetext>Comment on attachment 229157
Patch v1

Clearing flags on attachment: 229157

Committed r167148: &lt;http://trac.webkit.org/changeset/167148&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000029</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-11 14:09:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000100</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-04-11 16:20:23 -0700</bug_when>
    <thetext>Why don&apos;t we just do this in editorUIUpdateTimerFired instead of adding a separate timer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000153</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-04-11 19:27:29 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Why don&apos;t we just do this in editorUIUpdateTimerFired instead of adding a separate timer?

I saw that there was an early return before the m_editorUIUpdateTimer was started, but knew we needed to do this work every time.

Looking at it closer now, the early return was simply a:
    if (m_editorUIUpdateTimer.isActive())
        return;
check.

I agree the existing timer should be good enough here!

(I won&apos;t be near a dev environment for a few days, in case anyone else wanted to fix this before then)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229157</attachid>
            <date>2014-04-11 13:18:48 -0700</date>
            <delta_ts>2014-04-11 14:09:43 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>5048</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmMjVlYTc0Li4yMmJkMTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTQtMDQtMTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIEFnZ3JlZ2F0ZSBtdWx0aXBsZSAicmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbiIgY2FsbHMg
dG8gb25lIHNjYW4gZm9yIHRlbGVwaG9uZSBudW1iZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE1NTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKFBlcmYtb25seSBjaGFuZ2Ug
dG8gYW4gdW50ZXN0ZWQgZmVhdHVyZSkKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6RWRpdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbik6IFN0YXJ0IGEgb25lIHNob3QgdGltZXIg
Zm9yIHNjYW5TZWxlY3Rpb25Gb3JUZWxlcGhvbmVOdW1iZXJzCisgICAgICAgICAgaW5zdGVhZCBv
ZiBzY2FubmluZyBzeW5jaHJvbm91c2x5LgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzY2Fu
U2VsZWN0aW9uRm9yVGVsZXBob25lTnVtYmVycyk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
aDoKKwogMjAxNC0wNC0xMCAgT3dlbiBUYXlsb3IgIDxvdGF5bG9yQHJlZGhhdC5jb20+CiAKICAg
ICAgICAgW0dUS10gUmVtb3ZlIGEgY29tbWVudCB0aGF0IHdhcyBpbmNvcnJlY3RseSBjdXQtYW5k
LXBhc3RlZCBmcm9tIFdpZGdldEJhY2tpbmdTdG9yZUNhaXJvCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKaW5kZXggMmJlZjlkMi4uNTk5NzBjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cApAQCAtMTE1Miw2ICsxMTUyLDkgQEAgRWRpdG9yOjpFZGl0b3IoRnJhbWUmIGZyYW1lKQogICAg
ICwgbV9lZGl0b3JVSVVwZGF0ZVRpbWVyKHRoaXMsICZFZGl0b3I6OmVkaXRvclVJVXBkYXRlVGlt
ZXJGaXJlZCkKICAgICAsIG1fZWRpdG9yVUlVcGRhdGVUaW1lclNob3VsZENoZWNrU3BlbGxpbmdB
bmRHcmFtbWFyKGZhbHNlKQogICAgICwgbV9lZGl0b3JVSVVwZGF0ZVRpbWVyV2FzVHJpZ2dlcmVk
QnlEaWN0YXRpb24oZmFsc2UpCisjaWYgRU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9O
KSAmJiAhUExBVEZPUk0oSU9TKQorICAgICwgbV90ZWxlcGhvbmVOdW1iZXJEZXRlY3Rpb25VcGRh
dGVUaW1lcih0aGlzLCAmRWRpdG9yOjpzY2FuU2VsZWN0aW9uRm9yVGVsZXBob25lTnVtYmVycykK
KyNlbmRpZgogewogfQogCkBAIC0zMzE4LDEwICszMzIxLDcgQEAgdm9pZCBFZGl0b3I6OnJlc3Bv
bmRUb0NoYW5nZWRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIEZyYW1lU2VsZWN0
aW9uOjoKICAgICAgICAgY2xpZW50KCktPnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24oJm1fZnJh
bWUpOwogCiAjaWYgRU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAmJiAhUExBVEZP
Uk0oSU9TKQotICAgIFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiBtYXJrZWRSYW5nZXM7Ci0gICAgc2Nh
blNlbGVjdGlvbkZvclRlbGVwaG9uZU51bWJlcnMobWFya2VkUmFuZ2VzKTsKLSAgICBpZiAoY2xp
ZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5zZWxlY3RlZFRlbGVwaG9uZU51bWJlclJhbmdlc0No
YW5nZWQobWFya2VkUmFuZ2VzKTsKKyAgICBtX3RlbGVwaG9uZU51bWJlckRldGVjdGlvblVwZGF0
ZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICNlbmRpZgogCiAgICAgc2V0U3RhcnROZXdLaWxsUmlu
Z1NlcXVlbmNlKHRydWUpOwpAQCAtMzMzNyw3ICszMzM3LDcgQEAgdm9pZCBFZGl0b3I6OnJlc3Bv
bmRUb0NoYW5nZWRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIEZyYW1lU2VsZWN0
aW9uOjoKIH0KIAogI2lmIEVOQUJMRShURUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJiYgIVBM
QVRGT1JNKElPUykKLXZvaWQgRWRpdG9yOjpzY2FuU2VsZWN0aW9uRm9yVGVsZXBob25lTnVtYmVy
cyhWZWN0b3I8UmVmUHRyPFJhbmdlPj4mIG1hcmtlZFJhbmdlcykKK3ZvaWQgRWRpdG9yOjpzY2Fu
U2VsZWN0aW9uRm9yVGVsZXBob25lTnVtYmVycyhUaW1lcjxFZGl0b3I+JikKIHsKICAgICBpZiAo
IVRlbGVwaG9uZU51bWJlckRldGVjdG9yOjppc1N1cHBvcnRlZCgpKQogICAgICAgICByZXR1cm47
CkBAIC0zMzQ3LDkgKzMzNDcsMTQgQEAgdm9pZCBFZGl0b3I6OnNjYW5TZWxlY3Rpb25Gb3JUZWxl
cGhvbmVOdW1iZXJzKFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiYgbWFya2VkUmFuZ2UKIAogICAgIGNs
ZWFyRGF0YURldGVjdGVkVGVsZXBob25lTnVtYmVycygpOwogCisgICAgVmVjdG9yPFJlZlB0cjxS
YW5nZT4+IG1hcmtlZFJhbmdlczsKKwogICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0ZWRSYW5nZSA9
IG1fZnJhbWUuc2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKTsKLSAgICBpZiAoIXNlbGVj
dGVkUmFuZ2UgfHwgKHNlbGVjdGVkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCkgPT0gc2VsZWN0ZWRS
YW5nZS0+ZW5kQ29udGFpbmVyKCkgJiYgc2VsZWN0ZWRSYW5nZS0+c3RhcnRPZmZzZXQoKSA9PSBz
ZWxlY3RlZFJhbmdlLT5lbmRPZmZzZXQoKSkpCisgICAgaWYgKCFzZWxlY3RlZFJhbmdlIHx8IChz
ZWxlY3RlZFJhbmdlLT5zdGFydENvbnRhaW5lcigpID09IHNlbGVjdGVkUmFuZ2UtPmVuZENvbnRh
aW5lcigpICYmIHNlbGVjdGVkUmFuZ2UtPnN0YXJ0T2Zmc2V0KCkgPT0gc2VsZWN0ZWRSYW5nZS0+
ZW5kT2Zmc2V0KCkpKSB7CisgICAgICAgIGlmIChjbGllbnQoKSkKKyAgICAgICAgICAgIGNsaWVu
dCgpLT5zZWxlY3RlZFRlbGVwaG9uZU51bWJlclJhbmdlc0NoYW5nZWQobWFya2VkUmFuZ2VzKTsK
ICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIC8vIEZJWE1FOiBUaGlzIHdvbid0IHdvcmsg
aWYgYSBwaG9uZSBudW1iZXIgc3BhbnMgbXVsdGlwbGUgY2h1bmtzIG9mIHRleHQgZnJvbSB0aGUg
cGVyc3BlY3RpdmUgb2YgdGhlIFRleHRJdGVyYXRvcgogICAgIC8vIChCeSBhIHN0eWxlIGNoYW5n
ZSwgaW1hZ2UsIGxpbmUgYnJlYWssIGV0Yy4pCkBAIC0zMzYwLDYgKzMzNjUsOSBAQCB2b2lkIEVk
aXRvcjo6c2NhblNlbGVjdGlvbkZvclRlbGVwaG9uZU51bWJlcnMoVmVjdG9yPFJlZlB0cjxSYW5n
ZT4+JiBtYXJrZWRSYW5nZQogCiAgICAgICAgIHNjYW5SYW5nZUZvclRlbGVwaG9uZU51bWJlcnMo
KnRleHRDaHVuay5yYW5nZSgpLCB0ZXh0Q2h1bmsudGV4dCgpLCBtYXJrZWRSYW5nZXMpOwogICAg
IH0KKworICAgIGlmIChjbGllbnQoKSkKKyAgICAgICAgY2xpZW50KCktPnNlbGVjdGVkVGVsZXBo
b25lTnVtYmVyUmFuZ2VzQ2hhbmdlZChtYXJrZWRSYW5nZXMpOwogfQogCiB2b2lkIEVkaXRvcjo6
c2NhblJhbmdlRm9yVGVsZXBob25lTnVtYmVycyhSYW5nZSYgcmFuZ2UsIGNvbnN0IFN0cmluZ1Zp
ZXcmIHN0cmluZ1ZpZXcsIFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiYgbWFya2VkUmFuZ2VzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggZjQzNzU2Mi4uNzZlMjEyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCkBAIC00NzMsMTIgKzQ3Myw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIHVuaWZp
ZWRUZXh0Q2hlY2tlckVuYWJsZWQoKSBjb25zdDsKIAotI2lmIEVOQUJMRShURUxFUEhPTkVfTlVN
QkVSX0RFVEVDVElPTikgJiYgIVBMQVRGT1JNKElPUykKLSAgICB2b2lkIHNjYW5TZWxlY3Rpb25G
b3JUZWxlcGhvbmVOdW1iZXJzKFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiYgbWFya2VkUmFuZ2VzKTsK
LSAgICB2b2lkIHNjYW5SYW5nZUZvclRlbGVwaG9uZU51bWJlcnMoUmFuZ2UmLCBjb25zdCBTdHJp
bmdWaWV3JiwgVmVjdG9yPFJlZlB0cjxSYW5nZT4+JiBtYXJrZWRSYW5nZXMpOwotICAgIHZvaWQg
Y2xlYXJEYXRhRGV0ZWN0ZWRUZWxlcGhvbmVOdW1iZXJzKCk7Ci0jZW5kaWYKLQogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBzZWxlY3Rpb25JbldlYkFy
Y2hpdmVGb3JtYXQoKTsKICAgICBQYXNzUmVmUHRyPFJhbmdlPiBhZGp1c3RlZFNlbGVjdGlvblJh
bmdlKCk7CkBAIC01MTEsNiArNTA1LDE0IEBAIHByaXZhdGU6CiAgICAgVGltZXI8RWRpdG9yPiBt
X2VkaXRvclVJVXBkYXRlVGltZXI7CiAgICAgYm9vbCBtX2VkaXRvclVJVXBkYXRlVGltZXJTaG91
bGRDaGVja1NwZWxsaW5nQW5kR3JhbW1hcjsKICAgICBib29sIG1fZWRpdG9yVUlVcGRhdGVUaW1l
cldhc1RyaWdnZXJlZEJ5RGljdGF0aW9uOworCisjaWYgRU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJf
REVURUNUSU9OKSAmJiAhUExBVEZPUk0oSU9TKQorICAgIHZvaWQgc2NhblNlbGVjdGlvbkZvclRl
bGVwaG9uZU51bWJlcnMoVGltZXI8RWRpdG9yPiYpOworICAgIHZvaWQgc2NhblJhbmdlRm9yVGVs
ZXBob25lTnVtYmVycyhSYW5nZSYsIGNvbnN0IFN0cmluZ1ZpZXcmLCBWZWN0b3I8UmVmUHRyPFJh
bmdlPj4mIG1hcmtlZFJhbmdlcyk7CisgICAgdm9pZCBjbGVhckRhdGFEZXRlY3RlZFRlbGVwaG9u
ZU51bWJlcnMoKTsKKworICAgIFRpbWVyPEVkaXRvcj4gbV90ZWxlcGhvbmVOdW1iZXJEZXRlY3Rp
b25VcGRhdGVUaW1lcjsKKyNlbmRpZgogfTsKIAogaW5saW5lIHZvaWQgRWRpdG9yOjpzZXRTdGFy
dE5ld0tpbGxSaW5nU2VxdWVuY2UoYm9vbCBmbGFnKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>