<?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>143618</bug_id>
          
          <creation_ts>2015-04-10 13:52:22 -0700</creation_ts>
          <short_desc>Clients of WKWebView should be able to override drag functions</short_desc>
          <delta_ts>2015-04-13 20:25:56 -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>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="Enrica Casucci">enrica</reporter>
          <assigned_to name="Enrica Casucci">enrica</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joey</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1084382</commentid>
    <comment_count>0</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2015-04-10 13:52:22 -0700</bug_when>
    <thetext>We need to make sure that the clients of WKWebView can override drag methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084383</commentid>
    <comment_count>1</comment_count>
      <attachid>250532</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2015-04-10 13:58:10 -0700</bug_when>
    <thetext>Created attachment 250532
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084384</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-10 13:59:37 -0700</bug_when>
    <thetext>Attachment 250532 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1693:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1694:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1695:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1696:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1697:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1698:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 6 in 6 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>1084522</commentid>
    <comment_count>3</comment_count>
      <attachid>250532</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-11 08:54:59 -0700</bug_when>
    <thetext>Comment on attachment 250532
patch

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

I think the factoring here isn’t great. Shouldn’t be duplicating that call to dragImage. I have multiple ideas below on how to avoid that.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1685
&gt; +- (void)_setDragImage:(NSImage *)image at:(NSPoint)clientPoint linkDrag:(BOOL)linkDrag

Can we find a way to share more code with WKView _setDragImage? The only difference seems to be which object we call dragImage: on (and a slight difference in how we fetch the mouse down event). Seems like we could refactor to share code instead of repeating this whole method body. That fits the design of how we handle all the other methods below better. Lets just expose an internal method for use here instead of exposing mouseDownEvent. It could be:

    - (void)dragImageForView:(NSView *)view image:(NSImage *)image at:(NSPoint)clientPoint linkDrag:(BOOL)linkDrag;

Then we would just call it here:

    [_wkView dragImageForView:self image:image at:clientPoint linkDrag:linkDrag];

And then inside WKView:

    [self dragImageForView:self image:image at:clientPoint linkDrag:linkDrag];

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1688
&gt; +    // The call below could release this WKView.
&gt; +    RetainPtr&lt;WKWebView&gt; protector(self);

That comment doesn’t make things clear enough. Since we make only one method call, it’s not obvious why doing a retain/release is helpful. We don’t try to use self after returning from the method. Is this to work around bugs of some sort in the dragImage method? Maybe AppKit doesn’t protect itself against a possible release, and so we are protecting it? I guess this was copied from WKView’s _setDragImage method, and all these comments apply there too.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1695
&gt; +              event:(linkDrag) ? [NSApp currentEvent] :[_wkView mouseDownEvent]

Missing space after the &quot;:&quot; here, again copied from the WKView _setDragImage method.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1710
&gt; +    

Extra blank line here.

&gt; Source/WebKit2/UIProcess/mac/PageClientImpl.mm:413
&gt; +    if (m_webView)
&gt; +        [m_webView _setDragImage:dragNSImage.get() at:clientPosition linkDrag:isLinkDrag];
&gt; +    else
&gt; +        [m_wkView _setDragImage:dragNSImage.get() at:clientPosition linkDrag:isLinkDrag];

If _setDragImage is truly only used here, then maybe it should have a different name (not sure why a function that calls dragImage is called setDragImage) and maybe it could just *be* the one I suggested above, which takes a view argument and we can pass m_webView.

I’m not sure I we have the right division of labor between this function and the _setDragImage method. Maybe that method doesn’t have to exist at all and we can put all the code here, as long as we can get at the mouse down event. That might be the best way to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084868</commentid>
    <comment_count>4</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2015-04-13 10:43:22 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 250532 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=250532&amp;action=review
&gt; 
&gt; I think the factoring here isn’t great. Shouldn’t be duplicating that call
&gt; to dragImage. I have multiple ideas below on how to avoid that.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1685
&gt; &gt; +- (void)_setDragImage:(NSImage *)image at:(NSPoint)clientPoint linkDrag:(BOOL)linkDrag
&gt; 
&gt; Can we find a way to share more code with WKView _setDragImage? The only
&gt; difference seems to be which object we call dragImage: on (and a slight
&gt; difference in how we fetch the mouse down event). Seems like we could
&gt; refactor to share code instead of repeating this whole method body. That
&gt; fits the design of how we handle all the other methods below better. Lets
&gt; just expose an internal method for use here instead of exposing
&gt; mouseDownEvent. It could be:
&gt; 
&gt;     - (void)dragImageForView:(NSView *)view image:(NSImage *)image
&gt; at:(NSPoint)clientPoint linkDrag:(BOOL)linkDrag;
&gt; 
&gt; Then we would just call it here:
&gt; 
&gt;     [_wkView dragImageForView:self image:image at:clientPoint
&gt; linkDrag:linkDrag];
&gt; 
&gt; And then inside WKView:
&gt; 
&gt;     [self dragImageForView:self image:image at:clientPoint
&gt; linkDrag:linkDrag];
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1688
&gt; &gt; +    // The call below could release this WKView.
&gt; &gt; +    RetainPtr&lt;WKWebView&gt; protector(self);
&gt; 
&gt; That comment doesn’t make things clear enough. Since we make only one method
&gt; call, it’s not obvious why doing a retain/release is helpful. We don’t try
&gt; to use self after returning from the method. Is this to work around bugs of
&gt; some sort in the dragImage method? Maybe AppKit doesn’t protect itself
&gt; against a possible release, and so we are protecting it? I guess this was
&gt; copied from WKView’s _setDragImage method, and all these comments apply
&gt; there too.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1695
&gt; &gt; +              event:(linkDrag) ? [NSApp currentEvent] :[_wkView mouseDownEvent]
&gt; 
&gt; Missing space after the &quot;:&quot; here, again copied from the WKView _setDragImage
&gt; method.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1710
&gt; &gt; +    
&gt; 
&gt; Extra blank line here.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/mac/PageClientImpl.mm:413
&gt; &gt; +    if (m_webView)
&gt; &gt; +        [m_webView _setDragImage:dragNSImage.get() at:clientPosition linkDrag:isLinkDrag];
&gt; &gt; +    else
&gt; &gt; +        [m_wkView _setDragImage:dragNSImage.get() at:clientPosition linkDrag:isLinkDrag];
&gt; 
&gt; If _setDragImage is truly only used here, then maybe it should have a
&gt; different name (not sure why a function that calls dragImage is called
&gt; setDragImage) and maybe it could just *be* the one I suggested above, which
&gt; takes a view argument and we can pass m_webView.
&gt; 
&gt; I’m not sure I we have the right division of labor between this function and
&gt; the _setDragImage method. Maybe that method doesn’t have to exist at all and
&gt; we can put all the code here, as long as we can get at the mouse down event.
&gt; That might be the best way to go.

I&apos;ll rework it based on your suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084999</commentid>
    <comment_count>5</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2015-04-13 16:25:07 -0700</bug_when>
    <thetext>I reworked the patch according to Darin&apos;s suggestions.
Committed revision 182765.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085024</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-13 18:32:54 -0700</bug_when>
    <thetext>This broke 32-bit build:

/Volumes/Data/slave/yosemite-32bit-release/build/Source/WebKit2/UIProcess/mac/PageClientImpl.mm:410:46: error: incompatible operand types (&apos;WKWebView *&apos; and &apos;WKView *&apos;) [-Werror]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085027</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-13 18:37:40 -0700</bug_when>
    <thetext>Attempted a build fix in r182775. I&apos;m not sure if I understand why such conditional behavior is correct though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085040</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-13 20:25:56 -0700</bug_when>
    <thetext>More 32-bit build fixing in r182779.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250532</attachid>
            <date>2015-04-10 13:58:10 -0700</date>
            <delta_ts>2015-04-11 08:54:59 -0700</delta_ts>
            <desc>patch</desc>
            <filename>override-drag.txt</filename>
            <type>text/plain</type>
            <size>6252</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MjY0MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE1LTA0LTEwICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xpZW50cyBvZiBXS1dlYlZp
ZXcgc2hvdWxkIGJlIGFibGUgdG8gb3ZlcnJpZGUgZHJhZyBmdW5jdGlvbnMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM2MTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXS1dlYlZpZXcgbm93IGltcGxl
bWVudHMgdGhlIGRyYWcgcHJvdG9jb2wgZnVuY3Rpb25zIGFuZAorICAgICAgICBmb3J3YXJkcyB0
aGUgY2FsbHMgdG8gdGhlIGlubmVyIFdLVmlldy4KKyAgICAgICAgSW4gdGhlIHBhZ2UgY2xpZW50
LCB3aGVuIHdlIHJlY2VpdmUgYSByZXF1ZXN0IHRvIHN0YXJ0IGRyYWcKKyAgICAgICAgZnJvbSB0
aGUgV2ViUHJvY2Vzcywgd2UgY2FsbCB0aGUgV0tXZWJWaWV3IGZpcnN0LCBzbyB0aGF0CisgICAg
ICAgIGl0cyBjbGllbnRzIGNhbiBvdmVycmlkZSB0aGUgZHJhZ0ltYWdlIGZ1bmN0aW9uLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfc2V0RHJhZ0ltYWdlOmF0OmxpbmtEcmFnOl0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgZHJhZ2dpbmdFbnRlcmVkOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgZHJhZ2dpbmdVcGRh
dGVkOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgZHJhZ2dpbmdFeGl0ZWQ6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBwcmVwYXJlRm9yRHJhZ09wZXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IHBlcmZvcm1EcmFnT3BlcmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBtb3VzZURvd25FdmVudF0pOgorICAgICAgICAo
LVtXS1ZpZXcgX3NldERyYWdJbWFnZTphdDpsaW5rRHJhZzpdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXREcmFn
SW1hZ2UpOgorCiAyMDE1LTA0LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlcGxhY2Ugc2V0Rml4ZWRMYXlvdXRTaXplRW5hYmxlZDogd2l0aCBh
biBlbnVtIG9mIGxheW91dCBtb2RlcwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDE4MjY0MCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjgyLDYgKzE2ODIsNDkgQEAgLSAodm9pZClfc2V0SWdub3Jlc05vbldoZWVsRXZlbnRzOihC
T09MKQogICAgIFtfd2tWaWV3IF9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6aWdub3Jlc05vbldo
ZWVsRXZlbnRzXTsKIH0KIAorLSAodm9pZClfc2V0RHJhZ0ltYWdlOihOU0ltYWdlICopaW1hZ2Ug
YXQ6KE5TUG9pbnQpY2xpZW50UG9pbnQgbGlua0RyYWc6KEJPT0wpbGlua0RyYWcKK3sKKyAgICAv
LyBUaGUgY2FsbCBiZWxvdyBjb3VsZCByZWxlYXNlIHRoaXMgV0tWaWV3LgorICAgIFJldGFpblB0
cjxXS1dlYlZpZXc+IHByb3RlY3RvcihzZWxmKTsKKyAgICAKKyNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBbc2VsZiBkcmFnSW1hZ2U6aW1hZ2UKKyAgICAgICAgICAgICAg
ICAgYXQ6Y2xpZW50UG9pbnQKKyAgICAgICAgICAgICBvZmZzZXQ6TlNaZXJvU2l6ZQorICAgICAg
ICAgICAgICBldmVudDoobGlua0RyYWcpID8gW05TQXBwIGN1cnJlbnRFdmVudF0gOltfd2tWaWV3
IG1vdXNlRG93bkV2ZW50XQorICAgICAgICAgcGFzdGVib2FyZDpbTlNQYXN0ZWJvYXJkIHBhc3Rl
Ym9hcmRXaXRoTmFtZTpOU0RyYWdQYm9hcmRdCisgICAgICAgICAgICAgc291cmNlOnNlbGYKKyAg
ICAgICAgICBzbGlkZUJhY2s6WUVTXTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK30K
KworLSAoTlNEcmFnT3BlcmF0aW9uKWRyYWdnaW5nRW50ZXJlZDooaWQgPE5TRHJhZ2dpbmdJbmZv
PilzZW5kZXIKK3sKKyAgICByZXR1cm4gW193a1ZpZXcgZHJhZ2dpbmdFbnRlcmVkOnNlbmRlcl07
Cit9CisKKy0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1VwZGF0ZWQ6KGlkIDxOU0RyYWdnaW5n
SW5mbz4pc2VuZGVyCit7CisgICAgcmV0dXJuIFtfd2tWaWV3IGRyYWdnaW5nVXBkYXRlZDpzZW5k
ZXJdOworICAgIAorfQorCistICh2b2lkKWRyYWdnaW5nRXhpdGVkOihpZCA8TlNEcmFnZ2luZ0lu
Zm8+KXNlbmRlcgoreworICAgIFtfd2tWaWV3IGRyYWdnaW5nRXhpdGVkOnNlbmRlcl07Cit9CisK
Ky0gKEJPT0wpcHJlcGFyZUZvckRyYWdPcGVyYXRpb246KGlkIDxOU0RyYWdnaW5nSW5mbz4pc2Vu
ZGVyCit7CisgICAgcmV0dXJuIFtfd2tWaWV3IHByZXBhcmVGb3JEcmFnT3BlcmF0aW9uOnNlbmRl
cl07Cit9CisKKy0gKEJPT0wpcGVyZm9ybURyYWdPcGVyYXRpb246KGlkIDxOU0RyYWdnaW5nSW5m
bz4pc2VuZGVyCit7CisgICAgcmV0dXJuIFtfd2tWaWV3IHBlcmZvcm1EcmFnT3BlcmF0aW9uOnNl
bmRlcl07Cit9CisKICNlbmRpZgogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCShyZXZpc2lvbiAx
ODI2NDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0lu
dGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDkgQEAgc3RydWN0IFByaW50SW5m
bzsKICNlbmRpZgogfQogCisjaWYgUExBVEZPUk0oTUFDKQorLSAodm9pZClfc2V0RHJhZ0ltYWdl
OihOU0ltYWdlICopaW1hZ2UgYXQ6KE5TUG9pbnQpY2xpZW50UG9pbnQgbGlua0RyYWc6KEJPT0wp
bGlua0RyYWc7CisjZW5kaWYKICNpZiBQTEFURk9STShJT1MpCiAtICh2b2lkKV9wcm9jZXNzRGlk
RXhpdDsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5t
bQkocmV2aXNpb24gMTgyNjQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNDM1LDEyICszNDM1LDEzIEBAIC0gKHZvaWQp
X3NldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZToKICAgICBbc2VsZiBfc2V0UGx1Z2luQ29t
cGxleFRleHRJbnB1dFN0YXRlOnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZV07CiB9CiAKKy0g
KE5TRXZlbnQgKiltb3VzZURvd25FdmVudAoreworICAgIHJldHVybiBfZGF0YS0+X21vdXNlRG93
bkV2ZW50OworfQorCiAtICh2b2lkKV9zZXREcmFnSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBhdDoo
TlNQb2ludCljbGllbnRQb2ludCBsaW5rRHJhZzooQk9PTClsaW5rRHJhZwogewotICAgIEludFNp
emUgc2l6ZShbaW1hZ2Ugc2l6ZV0pOwotICAgIHNpemUuc2NhbGUoMS4wIC8gX2RhdGEtPl9wYWdl
LT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAgICBbaW1hZ2Ugc2V0U2l6ZTpzaXplXTsKLSAgICAK
ICAgICAvLyBUaGUgY2FsbCBiZWxvdyBjb3VsZCByZWxlYXNlIHRoaXMgV0tWaWV3LgogICAgIFJl
dGFpblB0cjxXS1ZpZXc+IHByb3RlY3RvcihzZWxmKTsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAkocmV2aXNpb24g
MTgyNjQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJu
YWwuaAkod29ya2luZyBjb3B5KQpAQCAtODgsNiArODgsNyBAQCBAaW50ZXJmYWNlIFdLVmlldyAo
KQogLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yPil0ZXh0SW5kaWNhdG9yIGZhZGVPdXQ6KEJPT0wpZmFkZU91dDsKIC0gKHZvaWQpX3Nl
dFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxvYXQpcHJvZ3Jlc3M7CiAtICh2b2lk
KV9zZWxlY3Rpb25DaGFuZ2VkOworLSAoTlNFdmVudCAqKW1vdXNlRG93bkV2ZW50OwogCiAtICh2
b2lkKV9zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZVJvb3RMYXllcjooQ0FMYXllciAqKXJv
b3RMYXllcjsKIC0gKENBTGF5ZXIgKilfYWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVSb290TGF5
ZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGwubW0JKHJldmlzaW9uIDE4MjY0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGwubW0JKHdvcmtpbmcgY29weSkKQEAgLTQwMyw4ICs0MDMsMTQgQEAgdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0ltYWdlKGNvbnN0IAogewogICAgIFJldGFpblB0cjxD
R0ltYWdlUmVmPiBkcmFnQ0dJbWFnZSA9IGRyYWdJbWFnZS0+bWFrZUNHSW1hZ2UoKTsKICAgICBS
ZXRhaW5QdHI8TlNJbWFnZT4gZHJhZ05TSW1hZ2UgPSBhZG9wdE5TKFtbTlNJbWFnZSBhbGxvY10g
aW5pdFdpdGhDR0ltYWdlOmRyYWdDR0ltYWdlLmdldCgpIHNpemU6ZHJhZ0ltYWdlLT5zaXplKCld
KTsKKyAgICBJbnRTaXplIHNpemUoW2RyYWdOU0ltYWdlIHNpemVdKTsKKyAgICBzaXplLnNjYWxl
KDEuMCAvIHRvSW1wbChbbV93a1ZpZXcgcGFnZVJlZl0pLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsK
KyAgICBbZHJhZ05TSW1hZ2Ugc2V0U2l6ZTpzaXplXTsKIAotICAgIFttX3drVmlldyBfc2V0RHJh
Z0ltYWdlOmRyYWdOU0ltYWdlLmdldCgpIGF0OmNsaWVudFBvc2l0aW9uIGxpbmtEcmFnOmlzTGlu
a0RyYWddOworICAgIGlmIChtX3dlYlZpZXcpCisgICAgICAgIFttX3dlYlZpZXcgX3NldERyYWdJ
bWFnZTpkcmFnTlNJbWFnZS5nZXQoKSBhdDpjbGllbnRQb3NpdGlvbiBsaW5rRHJhZzppc0xpbmtE
cmFnXTsKKyAgICBlbHNlCisgICAgICAgIFttX3drVmlldyBfc2V0RHJhZ0ltYWdlOmRyYWdOU0lt
YWdlLmdldCgpIGF0OmNsaWVudFBvc2l0aW9uIGxpbmtEcmFnOmlzTGlua0RyYWddOwogfQogCiB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZShjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmROYW1lLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gaW1hZ2VCdWZmZXIsIGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB2aXNpYmxlVXJsLCBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYXJjaGl2ZUJ1ZmZlcikK
</data>
<flag name="review"
          id="275323"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>