<?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>138284</bug_id>
          
          <creation_ts>2014-11-01 15:49:10 -0700</creation_ts>
          <short_desc>Implement action menus for editable text</short_desc>
          <delta_ts>2014-11-03 10:39:02 -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>WebKit2</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="Beth Dakin">bdakin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1045541</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-11-01 15:49:10 -0700</bug_when>
    <thetext>Implement action menus for editable text.

rdar://problem/18742323</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045548</commentid>
    <comment_count>1</comment_count>
      <attachid>240797</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-11-01 16:21:18 -0700</bug_when>
    <thetext>Created attachment 240797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045549</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-01 16:22:52 -0700</bug_when>
    <thetext>Attachment 240797 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/WKActionMenuController.mm:340:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045552</commentid>
    <comment_count>3</comment_count>
      <attachid>240797</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-11-01 17:10:35 -0700</bug_when>
    <thetext>Comment on attachment 240797
Patch

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

&gt; Source/WebKit2/UIProcess/mac/WKActionMenuController.mm:339
&gt; +-(void)_paste:(id)sender

&quot;copyText&quot;, but &quot;paste&quot;? copy can copy things that aren&apos;t text; can we go with _copy and _paste or _performCopy and _performPaste or something?

&gt; Source/WebKit2/UIProcess/mac/WKActionMenuController.mm:496
&gt; +    return hitTestResult;

.release() here, I think

&gt; Source/WebKit2/UIProcess/mac/WKActionMenuController.mm:503
&gt; +        _type = kWKActionMenuNone;

unfortunate that the &apos;none&apos; case is duplicated now.

&gt; Source/WebKit2/UIProcess/mac/WKActionMenuController.mm:518
&gt; +        if (DDActionContext *actionContext = _hitTestResult.actionContext.get()) {

We should shuffle this out into a &quot;defaultMenuItemsForDataDetectedItem&quot; or something, so that these all look the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045769</commentid>
    <comment_count>4</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-11-03 10:27:41 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 240797 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=240797&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/mac/WKActionMenuController.mm:339
&gt; &gt; +-(void)_paste:(id)sender
&gt; 
&gt; &quot;copyText&quot;, but &quot;paste&quot;? copy can copy things that aren&apos;t text; can we go
&gt; with _copy and _paste or _performCopy and _performPaste or something?
&gt; 

They are inconsistent. I do think that copy needs a more specific name because right now it will just copy the current selection. So perhaps copySelection is right for copy. paste still seems like the most accurate way to describe paste, but I suppose we could go with the somewhat redundant pasteFromPasteboard?! I&apos;ll think about it, but fix copy for sure.

&gt; &gt; Source/WebKit2/UIProcess/mac/WKActionMenuController.mm:496
&gt; &gt; +    return hitTestResult;
&gt; 
&gt; .release() here, I think
&gt; 

Ah yes.

&gt; &gt; Source/WebKit2/UIProcess/mac/WKActionMenuController.mm:503
&gt; &gt; +        _type = kWKActionMenuNone;
&gt; 
&gt; unfortunate that the &apos;none&apos; case is duplicated now.
&gt; 

I know. It seems so crazy to have all the rest of it nested in an if though.

&gt; &gt; Source/WebKit2/UIProcess/mac/WKActionMenuController.mm:518
&gt; &gt; +        if (DDActionContext *actionContext = _hitTestResult.actionContext.get()) {
&gt; 
&gt; We should shuffle this out into a &quot;defaultMenuItemsForDataDetectedItem&quot; or
&gt; something, so that these all look the same.

Will do.

Thanks you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045773</commentid>
    <comment_count>5</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-11-03 10:39:02 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/175474</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240797</attachid>
            <date>2014-11-01 16:21:18 -0700</date>
            <delta_ts>2014-11-01 17:10:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>12040</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NTQ1NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE0LTExLTAxICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYWN0aW9uIG1lbnVz
IGZvciBlZGl0YWJsZSB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzgyODQKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAgICBy
ZGFyOi8vcHJvYmxlbS8xODc0MjMyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5ldyBpdGVtIHR5cGUgZm9yIHBhc3RlLgorICAgICAgICAqIFNoYXJl
ZC9BUEkvYy9XS0FjdGlvbk1lbnVJdGVtVHlwZXMuaDoKKworICAgICAgICBOZXcgbWVudSB0eXBl
IGZvciBlZGl0YWJsZSB0ZXh0LgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0FjdGlvbk1lbnVU
eXBlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tBY3Rpb25NZW51Q29udHJvbGxlci5t
bToKKworICAgICAgICB3aWxsT3Blbk1lbnUgc2hvdWxkIHNlbGVjdCB0ZXh0IGZvciBib3RoIHJl
Z3VsYXIgdGV4dCBtZW51cyBhbmQgZWRpdGFibGUgdGV4dCAKKyAgICAgICAgbWVudXMuIAorICAg
ICAgICAoLVtXS0FjdGlvbk1lbnVDb250cm9sbGVyIHdpbGxPcGVuTWVudTp3aXRoRXZlbnQ6XSk6
CisKKyAgICAgICAgRGVmYXVsdCBpdGVtcyBmb3IgZWRpdGFibGUgdGV4dC4KKyAgICAgICAgKC1b
V0tBY3Rpb25NZW51Q29udHJvbGxlciBfZGVmYXVsdE1lbnVJdGVtc0ZvckVkaXRhYmxlVGV4dF0p
OgorICAgICAgICAoLVtXS0FjdGlvbk1lbnVDb250cm9sbGVyIF9wYXN0ZTpdKToKKyAgICAgICAg
KC1bV0tBY3Rpb25NZW51Q29udHJvbGxlciBfY3JlYXRlQWN0aW9uTWVudUl0ZW1Gb3JUYWc6XSk6
CisKKyAgICAgICAgTmV3IG1ldGhvZCBfaGl0VGVzdFJlc3VsdEZvclN0YWdlOihNZW51VXBkYXRl
U3RhZ2Upc3RhZ2Ugd2lsbCBmaWd1cmUgb3V0IHdoZXRoZXIgCisgICAgICAgIHdlIGNhbiB1c2Ug
dGhlIFdlYkhpdFRlc3RSZXN1bHQgZnJvbSB0aGUgQWN0aW9uTWVudUhpdFRlc3RSZXN1bHQgb3Ig
aWYgd2UgaGF2ZSB0byAKKyAgICAgICAgdXNlIHRoZSBwb3RlbnRpYWxseSBvdXQtb2YtZGF0ZSBX
ZWJIaXRUZXN0UmVzdWx0IHRoYXQgaXMgY2FjaGVkIG9uIFdlYlBhZ2VQcm94eS4gCisgICAgICAg
IEFuIGltcG9ydGFudCBkaWZmZXJlbmNlIGJldHdlZW4gdGhlc2UgcmVzdWx0cyBpcyB0aGF0IHRo
ZSBBY3Rpb25NZW51SGl0VGVzdCAKKyAgICAgICAgcmVzdWx0LCBpbiBhZGRpdGlvbiB0byBiZWlu
ZyBtb3JlIHJlY2VudCBhbmQgYWNjdXJhdGUsIGFsc28gbm93IGluY2x1ZGVzIHNoYWRvdyAKKyAg
ICAgICAgY29udGVudCwgd2hpY2ggYWZmZWN0cyBzb21lIGVkaXRhYmxlIHJlZ2lvbnMgb24gaW1w
b3J0YW50IHNpdGVzIHN1Y2ggYXMgCisgICAgICAgIGJ1Z3Mud2Via2l0Lm9yZyBhbmQgbnl0aW1l
cy5jb20uCisgICAgICAgICgtW1dLQWN0aW9uTWVudUNvbnRyb2xsZXIgX2RlZmF1bHRNZW51SXRl
bXM6XSk6CisgICAgICAgICgtW1dLQWN0aW9uTWVudUNvbnRyb2xsZXIgX3VwZGF0ZUFjdGlvbk1l
bnVJdGVtc0ZvclN0YWdlOl0pOgorICAgICAgICAoaW1hZ2VGb3JSZXNvdXJjZTpuYW1lOjppZik6
IERlbGV0ZWQuCisKKyAgICAgICAgQWxsb3cgc2hhZG93IGNvbnRlbnQgaW4gYWN0aW9uIG1lbnUg
aGl0IHRlc3RpbmcuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtQWN0aW9uTWVudUhpdFRlc3RB
dExvY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VsZWN0TG9va3VwVGV4dEF0
TG9jYXRpb24pOgorCiAyMDE0LTExLTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxNjM2NTYpOiBSZW1vdGUgaW5zcGVj
dG9yIGRvZXNuJ3Qgd29yayB1bmxlc3MgcHJlZmVyZW5jZXMgY2hhbmdlIGFmdGVyIHBhZ2UgaW5p
dGlhbGl6YXRpb24KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0FjdGlvbk1l
bnVJdGVtVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tBY3Rpb25NZW51SXRlbVR5cGVzLmgJKHJldmlzaW9uIDE3NTQ1MikKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS0FjdGlvbk1lbnVJdGVtVHlwZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtNDIsNyArNDIsOCBAQCBlbnVtIHsKICAgICBrV0tDb250ZXh0QWN0aW9uSXRlbVRhZ1NhdmVJ
bWFnZVRvRG93bmxvYWRzLAogICAgIGtXS0NvbnRleHRBY3Rpb25JdGVtVGFnU2hhcmVJbWFnZSwK
ICAgICBrV0tDb250ZXh0QWN0aW9uSXRlbVRhZ0NvcHlUZXh0LAotICAgIGtXS0NvbnRleHRBY3Rp
b25JdGVtVGFnTG9va3VwVGV4dAorICAgIGtXS0NvbnRleHRBY3Rpb25JdGVtVGFnTG9va3VwVGV4
dCwKKyAgICBrV0tDb250ZXh0QWN0aW9uSXRlbVRhZ1Bhc3RlCiB9OwogCiAjaWZkZWYgX19jcGx1
c3BsdXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0FjdGlvbk1lbnVUeXBl
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0FjdGlvbk1l
bnVUeXBlcy5oCShyZXZpc2lvbiAxNzU0NTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tBY3Rpb25NZW51VHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsOCBAQCBl
bnVtIHsKICAgICBrV0tBY3Rpb25NZW51TGluaywKICAgICBrV0tBY3Rpb25NZW51SW1hZ2UsCiAg
ICAga1dLQWN0aW9uTWVudURhdGFEZXRlY3RlZEl0ZW0sCi0gICAga1dLQWN0aW9uTWVudVJlYWRP
bmx5VGV4dAorICAgIGtXS0FjdGlvbk1lbnVSZWFkT25seVRleHQsCisgICAga1dLQWN0aW9uTWVu
dUVkaXRhYmxlVGV4dAogfTsKIHR5cGVkZWYgdWludDMyX3QgX1dLQWN0aW9uTWVudVR5cGU7CiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tBY3Rpb25NZW51Q29udHJvbGxl
ci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLQWN0aW9u
TWVudUNvbnRyb2xsZXIubW0JKHJldmlzaW9uIDE3NTQ1MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV0tBY3Rpb25NZW51Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAt
MTE1LDEyICsxMTUsMTIgQEAgLSAodm9pZCl3aWxsT3Blbk1lbnU6KE5TTWVudSAqKW1lbnUgd2l0
aAogICAgIGlmIChtZW51ICE9IF93a1ZpZXcuYWN0aW9uTWVudSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKF90eXBlICE9IGtXS0FjdGlvbk1lbnVSZWFkT25seVRleHQpCisgICAgaWYgKF90
eXBlICE9IGtXS0FjdGlvbk1lbnVSZWFkT25seVRleHQgJiYgX3R5cGUgIT0ga1dLQWN0aW9uTWVu
dUVkaXRhYmxlVGV4dCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gQWN0aW9uIG1lbnVzIGZv
ciB0ZXh0IHNob3VsZCBoaWdobGlnaHQgdGhlIHRleHQgc28gdGhhdCBpdCBpcyBjbGVhciB3aGF0
IHRoZSBhY3Rpb24gbWVudSBhY3Rpb25zCiAgICAgLy8gd2lsbCBhcHBseSB0by4gSWYgdGhlIHRl
eHQgaXMgYWxyZWFkeSBzZWxlY3RlZCwgdGhlIG1lbnUgd2lsbCB1c2UgdGhlIGV4aXN0aW5nIHNl
bGVjdGlvbi4KLSAgICBXZWJIaXRUZXN0UmVzdWx0KiBoaXRUZXN0UmVzdWx0ID0gX3BhZ2UtPmxh
c3RNb3VzZU1vdmVIaXRUZXN0UmVzdWx0KCk7CisgICAgUmVmUHRyPFdlYkhpdFRlc3RSZXN1bHQ+
IGhpdFRlc3RSZXN1bHQgPSBbc2VsZiBfaGl0VGVzdFJlc3VsdEZvclN0YWdlOk1lbnVVcGRhdGVT
dGFnZTo6TWVudU5lZWRzVXBkYXRlXTsKICAgICBpZiAoIWhpdFRlc3RSZXN1bHQtPmlzU2VsZWN0
ZWQoKSkKICAgICAgICAgX3BhZ2UtPnNlbGVjdExvb2t1cFRleHRBdExvY2F0aW9uKFtfd2tWaWV3
IGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3Om5pbF0pOwogfQpA
QCAtMzIyLDExICszMjIsMjUgQEAgLSAoTlNBcnJheSAqKV9kZWZhdWx0TWVudUl0ZW1zRm9yVGV4
dAogICAgIHJldHVybiBAWyBjb3B5VGV4dEl0ZW0uZ2V0KCksIGxvb2t1cFRleHRJdGVtLmdldCgp
IF07CiB9CiAKKy0gKE5TQXJyYXkgKilfZGVmYXVsdE1lbnVJdGVtc0ZvckVkaXRhYmxlVGV4dAor
eworICAgIFJldGFpblB0cjxOU01lbnVJdGVtPiBjb3B5VGV4dEl0ZW0gPSBbc2VsZiBfY3JlYXRl
QWN0aW9uTWVudUl0ZW1Gb3JUYWc6a1dLQ29udGV4dEFjdGlvbkl0ZW1UYWdDb3B5VGV4dF07Cisg
ICAgUmV0YWluUHRyPE5TTWVudUl0ZW0+IGxvb2t1cFRleHRJdGVtID0gW3NlbGYgX2NyZWF0ZUFj
dGlvbk1lbnVJdGVtRm9yVGFnOmtXS0NvbnRleHRBY3Rpb25JdGVtVGFnTG9va3VwVGV4dF07Cisg
ICAgUmV0YWluUHRyPE5TTWVudUl0ZW0+IHBhc3RlSXRlbSA9IFtzZWxmIF9jcmVhdGVBY3Rpb25N
ZW51SXRlbUZvclRhZzprV0tDb250ZXh0QWN0aW9uSXRlbVRhZ1Bhc3RlXTsKKworICAgIHJldHVy
biBAWyBjb3B5VGV4dEl0ZW0uZ2V0KCksIGxvb2t1cFRleHRJdGVtLmdldCgpLCBwYXN0ZUl0ZW0u
Z2V0KCkgXTsKK30KKwogLSh2b2lkKV9jb3B5VGV4dDooaWQpc2VuZGVyCiB7CiAgICAgX3BhZ2Ut
PmV4ZWN1dGVFZGl0Q29tbWFuZCgiY29weSIpOwogfQogCistKHZvaWQpX3Bhc3RlOihpZClzZW5k
ZXIKK3sKKyAgICBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKCJwYXN0ZSIpOworfQorCiAtKHZv
aWQpX2xvb2t1cFRleHQ6KGlkKXNlbmRlcgogewogICAgIF9wYWdlLT5wZXJmb3JtRGljdGlvbmFy
eUxvb2t1cE9mQ3VycmVudFNlbGVjdGlvbigpOwpAQCAtNDQxLDYgKzQ1NSwxMiBAQCAtIChSZXRh
aW5QdHI8TlNNZW51SXRlbT4pX2NyZWF0ZUFjdGlvbk1lCiAgICAgICAgIGltYWdlID0gW05TSW1h
Z2UgaW1hZ2VOYW1lZDpAIk5TQWN0aW9uTWVudUxvb2t1cCJdOwogICAgICAgICBicmVhazsKIAor
ICAgIGNhc2Uga1dLQ29udGV4dEFjdGlvbkl0ZW1UYWdQYXN0ZToKKyAgICAgICAgc2VsZWN0b3Ig
PSBAc2VsZWN0b3IoX3Bhc3RlOik7CisgICAgICAgIHRpdGxlID0gQCJQYXN0ZSI7CisgICAgICAg
IGltYWdlID0gW05TSW1hZ2UgaW1hZ2VOYW1lZDpAIk5TQWN0aW9uTWVudVBhc3RlIl07CisgICAg
ICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiBuaWw7CkBAIC00NTgsMzIgKzQ3OCw2MCBAQCBzdGF0aWMgTlNJbWFn
ZSAqd2ViS2l0QnVuZGxlSW1hZ2VOYW1lZChOCiAgICAgcmV0dXJuIFtbTlNCdW5kbGUgYnVuZGxl
Rm9yQ2xhc3M6W1dLVmlldyBjbGFzc11dIGltYWdlRm9yUmVzb3VyY2U6bmFtZV07CiB9CiAKLS0g
KE5TQXJyYXkgKilfZGVmYXVsdE1lbnVJdGVtcworLSAoUGFzc1JlZlB0cjxXZWJIaXRUZXN0UmVz
dWx0PilfaGl0VGVzdFJlc3VsdEZvclN0YWdlOihNZW51VXBkYXRlU3RhZ2Upc3RhZ2UKIHsKLSAg
ICBpZiAoV2ViSGl0VGVzdFJlc3VsdCogaGl0VGVzdFJlc3VsdCA9IF9wYWdlLT5sYXN0TW91c2VN
b3ZlSGl0VGVzdFJlc3VsdCgpKSB7Ci0gICAgICAgIGlmICghaGl0VGVzdFJlc3VsdC0+YWJzb2x1
dGVJbWFnZVVSTCgpLmlzRW1wdHkoKSAmJiBfaGl0VGVzdFJlc3VsdC5pbWFnZSkgewotICAgICAg
ICAgICAgX3R5cGUgPSBrV0tBY3Rpb25NZW51SW1hZ2U7Ci0gICAgICAgICAgICByZXR1cm4gW3Nl
bGYgX2RlZmF1bHRNZW51SXRlbXNGb3JJbWFnZV07Ci0gICAgICAgIH0KKyAgICBSZWZQdHI8V2Vi
SGl0VGVzdFJlc3VsdD4gaGl0VGVzdFJlc3VsdDsKKyAgICBzd2l0Y2ggKHN0YWdlKSB7CisgICAg
Y2FzZSBNZW51VXBkYXRlU3RhZ2U6OlByZXBhcmVGb3JNZW51OgorICAgICAgICBoaXRUZXN0UmVz
dWx0ID0gX3BhZ2UtPmxhc3RNb3VzZU1vdmVIaXRUZXN0UmVzdWx0KCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTWVudVVwZGF0ZVN0YWdlOjpNZW51TmVlZHNVcGRhdGU6CisgICAgICAgIGlm
IChfc3RhdGUgPT0gQWN0aW9uTWVudVN0YXRlOjpSZWFkeSkKKyAgICAgICAgICAgIGhpdFRlc3RS
ZXN1bHQgPSBXZWJIaXRUZXN0UmVzdWx0OjpjcmVhdGUoX2hpdFRlc3RSZXN1bHQuaGl0VGVzdFJl
c3VsdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGhpdFRlc3RSZXN1bHQgPSBfcGFnZS0+
bGFzdE1vdXNlTW92ZUhpdFRlc3RSZXN1bHQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogCi0g
ICAgICAgIGlmICghaGl0VGVzdFJlc3VsdC0+YWJzb2x1dGVMaW5rVVJMKCkuaXNFbXB0eSgpKSB7
Ci0gICAgICAgICAgICBfdHlwZSA9IGtXS0FjdGlvbk1lbnVMaW5rOwotICAgICAgICAgICAgcmV0
dXJuIFtzZWxmIF9kZWZhdWx0TWVudUl0ZW1zRm9yTGlua107Ci0gICAgICAgIH0KKyAgICByZXR1
cm4gaGl0VGVzdFJlc3VsdDsKK30KKworLSAoTlNBcnJheSAqKV9kZWZhdWx0TWVudUl0ZW1zOihN
ZW51VXBkYXRlU3RhZ2Upc3RhZ2UKK3sKKyAgICBSZWZQdHI8V2ViSGl0VGVzdFJlc3VsdD4gaGl0
VGVzdFJlc3VsdCA9IFtzZWxmIF9oaXRUZXN0UmVzdWx0Rm9yU3RhZ2U6c3RhZ2VdOworICAgIGlm
ICghaGl0VGVzdFJlc3VsdCkgeworICAgICAgICBfdHlwZSA9IGtXS0FjdGlvbk1lbnVOb25lOwor
ICAgICAgICByZXR1cm4gX3N0YXRlICE9IEFjdGlvbk1lbnVTdGF0ZTo6UmVhZHkgPyBAWyBbTlNN
ZW51SXRlbSBzZXBhcmF0b3JJdGVtXSBdIDogQFsgXTsKKyAgICB9CisKKyAgICBpZiAoIWhpdFRl
c3RSZXN1bHQtPmFic29sdXRlSW1hZ2VVUkwoKS5pc0VtcHR5KCkgJiYgX2hpdFRlc3RSZXN1bHQu
aW1hZ2UpIHsKKyAgICAgICAgX3R5cGUgPSBrV0tBY3Rpb25NZW51SW1hZ2U7CisgICAgICAgIHJl
dHVybiBbc2VsZiBfZGVmYXVsdE1lbnVJdGVtc0ZvckltYWdlXTsKKyAgICB9CisKKyAgICBpZiAo
IWhpdFRlc3RSZXN1bHQtPmFic29sdXRlTGlua1VSTCgpLmlzRW1wdHkoKSkgeworICAgICAgICBf
dHlwZSA9IGtXS0FjdGlvbk1lbnVMaW5rOworICAgICAgICByZXR1cm4gW3NlbGYgX2RlZmF1bHRN
ZW51SXRlbXNGb3JMaW5rXTsKKyAgICB9CiAKLSAgICAgICAgaWYgKGhpdFRlc3RSZXN1bHQtPmlz
VGV4dE5vZGUoKSkgewotICAgICAgICAgICAgaWYgKEREQWN0aW9uQ29udGV4dCAqYWN0aW9uQ29u
dGV4dCA9IF9oaXRUZXN0UmVzdWx0LmFjdGlvbkNvbnRleHQuZ2V0KCkpIHsKLSAgICAgICAgICAg
ICAgICBXS1NldEREQWN0aW9uQ29udGV4dElzRm9yQWN0aW9uTWVudShhY3Rpb25Db250ZXh0KTsK
LSAgICAgICAgICAgICAgICBhY3Rpb25Db250ZXh0LmhpZ2hsaWdodEZyYW1lID0gW193a1ZpZXcu
d2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W193a1ZpZXcgY29udmVydFJlY3Q6X2hpdFRlc3RS
ZXN1bHQuYWN0aW9uQm91bmRpbmdCb3ggdG9WaWV3Om5pbF1dOwotICAgICAgICAgICAgICAgIE5T
QXJyYXkgKmRhdGFEZXRlY3Rvck1lbnVJdGVtcyA9IFtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNz
KCkgc2hhcmVkTWFuYWdlcl0gbWVudUl0ZW1zRm9yUmVzdWx0OltfaGl0VGVzdFJlc3VsdC5hY3Rp
b25Db250ZXh0IG1haW5SZXN1bHRdIGFjdGlvbkNvbnRleHQ6YWN0aW9uQ29udGV4dF07Ci0gICAg
ICAgICAgICAgICAgaWYgKGRhdGFEZXRlY3Rvck1lbnVJdGVtcy5jb3VudCkgewotICAgICAgICAg
ICAgICAgICAgICBfdHlwZSA9IGtXS0FjdGlvbk1lbnVEYXRhRGV0ZWN0ZWRJdGVtOwotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZGF0YURldGVjdG9yTWVudUl0ZW1zOwotICAgICAgICAgICAg
ICAgIH0KKyAgICBpZiAoaGl0VGVzdFJlc3VsdC0+aXNUZXh0Tm9kZSgpKSB7CisgICAgICAgIGlm
IChEREFjdGlvbkNvbnRleHQgKmFjdGlvbkNvbnRleHQgPSBfaGl0VGVzdFJlc3VsdC5hY3Rpb25D
b250ZXh0LmdldCgpKSB7CisgICAgICAgICAgICBXS1NldEREQWN0aW9uQ29udGV4dElzRm9yQWN0
aW9uTWVudShhY3Rpb25Db250ZXh0KTsKKyAgICAgICAgICAgIGFjdGlvbkNvbnRleHQuaGlnaGxp
Z2h0RnJhbWUgPSBbX3drVmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpbX3drVmlldyBj
b252ZXJ0UmVjdDpfaGl0VGVzdFJlc3VsdC5hY3Rpb25Cb3VuZGluZ0JveCB0b1ZpZXc6bmlsXV07
CisgICAgICAgICAgICBOU0FycmF5ICpkYXRhRGV0ZWN0b3JNZW51SXRlbXMgPSBbW2dldEREQWN0
aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIG1lbnVJdGVtc0ZvclJlc3VsdDpbX2hp
dFRlc3RSZXN1bHQuYWN0aW9uQ29udGV4dCBtYWluUmVzdWx0XSBhY3Rpb25Db250ZXh0OmFjdGlv
bkNvbnRleHRdOworICAgICAgICAgICAgaWYgKGRhdGFEZXRlY3Rvck1lbnVJdGVtcy5jb3VudCkg
eworICAgICAgICAgICAgICAgIF90eXBlID0ga1dLQWN0aW9uTWVudURhdGFEZXRlY3RlZEl0ZW07
CisgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGFEZXRlY3Rvck1lbnVJdGVtczsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIF90eXBlID0ga1dLQWN0aW9uTWVudVJlYWRPbmx5VGV4dDsKLSAg
ICAgICAgICAgIHJldHVybiBbc2VsZiBfZGVmYXVsdE1lbnVJdGVtc0ZvclRleHRdOwogICAgICAg
ICB9CisKKyAgICAgICAgaWYgKGhpdFRlc3RSZXN1bHQtPmlzQ29udGVudEVkaXRhYmxlKCkpIHsK
KyAgICAgICAgICAgIF90eXBlID0ga1dLQWN0aW9uTWVudUVkaXRhYmxlVGV4dDsKKyAgICAgICAg
ICAgIHJldHVybiBbc2VsZiBfZGVmYXVsdE1lbnVJdGVtc0ZvckVkaXRhYmxlVGV4dF07CisgICAg
ICAgIH0KKworICAgICAgICBfdHlwZSA9IGtXS0FjdGlvbk1lbnVSZWFkT25seVRleHQ7CisgICAg
ICAgIHJldHVybiBbc2VsZiBfZGVmYXVsdE1lbnVJdGVtc0ZvclRleHRdOwogICAgIH0KIAogICAg
IF90eXBlID0ga1dLQWN0aW9uTWVudU5vbmU7CkBAIC00OTQsMTkgKzU0Miw4IEBAIC0gKHZvaWQp
X3VwZGF0ZUFjdGlvbk1lbnVJdGVtc0ZvclN0YWdlOigKIHsKICAgICBbX3drVmlldy5hY3Rpb25N
ZW51IHJlbW92ZUFsbEl0ZW1zXTsKIAotICAgIE5TQXJyYXkgKm1lbnVJdGVtcyA9IFtzZWxmIF9k
ZWZhdWx0TWVudUl0ZW1zXTsKLSAgICBSZWZQdHI8V2ViSGl0VGVzdFJlc3VsdD4gaGl0VGVzdFJl
c3VsdDsKLSAgICBzd2l0Y2ggKHN0YWdlKSB7Ci0gICAgY2FzZSBNZW51VXBkYXRlU3RhZ2U6OlBy
ZXBhcmVGb3JNZW51OgotICAgICAgICBoaXRUZXN0UmVzdWx0ID0gX3BhZ2UtPmxhc3RNb3VzZU1v
dmVIaXRUZXN0UmVzdWx0KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVudVVwZGF0ZVN0
YWdlOjpNZW51TmVlZHNVcGRhdGU6Ci0gICAgICAgIGlmIChfc3RhdGUgPT0gQWN0aW9uTWVudVN0
YXRlOjpSZWFkeSkKLSAgICAgICAgICAgIGhpdFRlc3RSZXN1bHQgPSBXZWJIaXRUZXN0UmVzdWx0
OjpjcmVhdGUoX2hpdFRlc3RSZXN1bHQuaGl0VGVzdFJlc3VsdCk7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGhpdFRlc3RSZXN1bHQgPSBfcGFnZS0+bGFzdE1vdXNlTW92ZUhpdFRlc3RSZXN1
bHQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIE5TQXJyYXkgKm1lbnVJdGVtcyA9IFtz
ZWxmIF9kZWZhdWx0TWVudUl0ZW1zOnN0YWdlXTsKKyAgICBSZWZQdHI8V2ViSGl0VGVzdFJlc3Vs
dD4gaGl0VGVzdFJlc3VsdCA9IFtzZWxmIF9oaXRUZXN0UmVzdWx0Rm9yU3RhZ2U6c3RhZ2VdOwog
CiAgICAgaWYgKFtfd2tWaWV3IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2FjdGlvbk1l
bnVJdGVtc0ZvckhpdFRlc3RSZXN1bHQ6ZGVmYXVsdEFjdGlvbk1lbnVJdGVtczopXSkKICAgICAg
ICAgbWVudUl0ZW1zID0gW193a1ZpZXcgX2FjdGlvbk1lbnVJdGVtc0ZvckhpdFRlc3RSZXN1bHQ6
dG9BUEkoaGl0VGVzdFJlc3VsdC5nZXQoKSkgZGVmYXVsdEFjdGlvbk1lbnVJdGVtczptZW51SXRl
bXNdOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdl
TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV2ViUGFnZU1hYy5tbQkocmV2aXNpb24gMTc1NDUyKQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQy
LDcgKzExNDIsNyBAQCB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1BY3Rpb25NZW51SGl0VGVzdEF0CiAK
ICAgICBSZW5kZXJWaWV3JiBtYWluUmVuZGVyVmlldyA9ICptYWluRnJhbWUudmlldygpLT5yZW5k
ZXJWaWV3KCk7CiAKLSAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpS
ZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dD
aGlsZEZyYW1lQ29udGVudCB8IEhpdFRlc3RSZXF1ZXN0OjpJZ25vcmVDbGlwcGluZyB8IEhpdFRl
c3RSZXF1ZXN0OjpEaXNhbGxvd1NoYWRvd0NvbnRlbnQpOworICAgIEhpdFRlc3RSZXF1ZXN0IHJl
cXVlc3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8
IEhpdFRlc3RSZXF1ZXN0OjpBbGxvd0NoaWxkRnJhbWVDb250ZW50IHwgSGl0VGVzdFJlcXVlc3Q6
Oklnbm9yZUNsaXBwaW5nKTsKIAogICAgIEludFBvaW50IGxvY2F0aW9uSW5Db250ZW50Q29vcmRp
bmF0ZXMgPSBtYWluRnJhbWUudmlldygpLT5yb290Vmlld1RvQ29udGVudHMocm91bmRlZEludFBv
aW50KGxvY2F0aW9uSW5WaWV3Q29vb3JkaW5hdGVzKSk7CiAgICAgSGl0VGVzdFJlc3VsdCBoaXRU
ZXN0UmVzdWx0KGxvY2F0aW9uSW5Db250ZW50Q29vcmRpbmF0ZXMpOwpAQCAtMTE3OSw3ICsxMTc5
LDcgQEAgdm9pZCBXZWJQYWdlOjpzZWxlY3RMb29rdXBUZXh0QXRMb2NhdGlvbgogICAgICAgICBy
ZXR1cm47CiAKICAgICBJbnRQb2ludCBwb2ludCA9IHJvdW5kZWRJbnRQb2ludChsb2NhdGlvbklu
V2luZG93Q29vb3JkaW5hdGVzKTsKLSAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IG1fcGFnZS0+
bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQobV9wYWdlLT5t
YWluRnJhbWUoKS52aWV3KCktPndpbmRvd1RvQ29udGVudHMocG9pbnQpKTsKKyAgICBIaXRUZXN0
UmVzdWx0IHJlc3VsdCA9IG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGl0VGVz
dFJlc3VsdEF0UG9pbnQobV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCktPndpbmRvd1RvQ29udGVu
dHMocG9pbnQpLCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0
aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgfCBIaXRUZXN0UmVx
dWVzdDo6SWdub3JlQ2xpcHBpbmcpOwogICAgIEZyYW1lKiBmcmFtZSA9IHJlc3VsdC5pbm5lck5v
blNoYXJlZE5vZGUoKSA/IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKS0+ZG9jdW1lbnQoKS5m
cmFtZSgpIDogJm1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7
CiAgICAgTlNEaWN0aW9uYXJ5ICpvcHRpb25zID0gbmlsOwogICAgIFJlZlB0cjxSYW5nZT4gbG9v
a3VwUmFuZ2UgPSByYW5nZUZvckRpY3Rpb25hcnlMb29rdXBBdEhpdFRlc3RSZXN1bHQocmVzdWx0
LCAmb3B0aW9ucyk7Cg==
</data>
<flag name="review"
          id="265590"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>