<?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>134623</bug_id>
          
          <creation_ts>2014-07-03 18:20:37 -0700</creation_ts>
          <short_desc>[iOS][WK2] Black web view after un-suspending process</short_desc>
          <delta_ts>2015-06-19 22:18:53 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=146179</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>barraclough</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1020426</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-03 18:20:37 -0700</bug_when>
    <thetext>It is possible to get empty or volatile surfaces on-screen by suspending the process, having the surfaces get marked volatile, having memory pressure and getting the surfaces purged, then un-suspending the process. Since the view never technically left the window, we don&apos;t get a commit that reparents the view - indeed, we may not get a commit at all, so the empty/volatile surfaces will linger.

We should fix this by forcing a commit when we un-suspend, and also waiting for said commit to come in. We could in the future short-circuit this by having the UI process attempt to make the surfaces non-volatile and only requiring a commit immediately if the visible area is partially covered by empty surfaces, but for now this will work (and we don&apos;t really allow the UI process to adjust surface volatility yet).

&lt;rdar://problem/17513223&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020428</commentid>
    <comment_count>1</comment_count>
      <attachid>234386</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-03 18:36:25 -0700</bug_when>
    <thetext>Created attachment 234386
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020438</commentid>
    <comment_count>2</comment_count>
      <attachid>234386</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-07-03 22:10:34 -0700</bug_when>
    <thetext>Comment on attachment 234386
patch

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

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1107
&gt; +    m_viewStateChangeWantsReply = (m_viewStateChangeWantsReply == WantsReplyOrNot::DoesWantReply || wantsReplyOrNot == WantsReplyOrNot::DoesWantReply) ? WantsReplyOrNot::DoesWantReply : WantsReplyOrNot::DoesNotWantReply;

I feel like the enum is hurting readability in this code.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1176
&gt;  #if ENABLE(INPUT_TYPE_COLOR_POPOVER)
&gt; -        // When leaving the current page, close the popover color well.
&gt; -        if (m_colorPicker)
&gt; -            endColorPicker();
&gt; +            // When leaving the current page, close the popover color well.
&gt; +            if (m_colorPicker)
&gt; +                endColorPicker();
&gt;  #endif
&gt;  #if PLATFORM(IOS)
&gt; -        // When leaving the current page, close the video fullscreen.
&gt; -        if (m_videoFullscreenManager)
&gt; -            m_videoFullscreenManager-&gt;requestHideAndExitFullscreen();
&gt; +            // When leaving the current page, close the video fullscreen.
&gt; +            if (m_videoFullscreenManager)
&gt; +                m_videoFullscreenManager-&gt;requestHideAndExitFullscreen();
&gt;  #endif
&gt; +        }

Seems like these should be factored into a onLeavingWindow() or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020439</commentid>
    <comment_count>3</comment_count>
      <attachid>234386</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-03 22:25:53 -0700</bug_when>
    <thetext>Comment on attachment 234386
patch

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

&gt;&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1107
&gt;&gt; +    m_viewStateChangeWantsReply = (m_viewStateChangeWantsReply == WantsReplyOrNot::DoesWantReply || wantsReplyOrNot == WantsReplyOrNot::DoesWantReply) ? WantsReplyOrNot::DoesWantReply : WantsReplyOrNot::DoesNotWantReply;
&gt; 
&gt; I feel like the enum is hurting readability in this code.

Agreed. I would *love* to get rid of it, so I&apos;ll do that.

&gt;&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1176
&gt;&gt; +        }
&gt; 
&gt; Seems like these should be factored into a onLeavingWindow() or something.

Why not!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020440</commentid>
    <comment_count>4</comment_count>
      <attachid>234386</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-03 22:25:57 -0700</bug_when>
    <thetext>Comment on attachment 234386
patch

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

&gt;&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1107
&gt;&gt; +    m_viewStateChangeWantsReply = (m_viewStateChangeWantsReply == WantsReplyOrNot::DoesWantReply || wantsReplyOrNot == WantsReplyOrNot::DoesWantReply) ? WantsReplyOrNot::DoesWantReply : WantsReplyOrNot::DoesNotWantReply;
&gt; 
&gt; I feel like the enum is hurting readability in this code.

Agreed. I would *love* to get rid of it, so I&apos;ll do that.

&gt;&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1176
&gt;&gt; +        }
&gt; 
&gt; Seems like these should be factored into a onLeavingWindow() or something.

Why not!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020450</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-04 00:10:49 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/170787</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234386</attachid>
            <date>2014-07-03 18:36:25 -0700</date>
            <delta_ts>2014-07-03 22:25:57 -0700</delta_ts>
            <desc>patch</desc>
            <filename>black-tiles.diff</filename>
            <type>text/plain</type>
            <size>12370</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkY2RhNjNiLi5iMWZlNGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTQtMDctMDMgIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdW1dLMl0gQmxhY2sgd2ViIHZpZXcgYWZ0ZXIgdW4tc3VzcGVuZGlu
ZyBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzQ2MjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE3NTEzMjIzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlld1N0YXRlRGlkQ2hh
bmdlKToKKyAgICAgICAgQWRkIGFuIGFyZ3VtZW50IHRvIHZpZXdTdGF0ZURpZENoYW5nZSB0aGF0
IGFsbG93cyBjYWxsZXJzICgtW1dLQ29udGVudFZpZXcgX2FwcGxpY2F0aW9uV2lsbEVudGVyRm9y
ZWdyb3VuZDpdKQorICAgICAgICB0byBmb3JjZSB1cyB0byB3YWl0IGZvciBhIHN5bmNocm9ub3Vz
IHJlcGx5IGZyb20gdGhlIFdlYiBwcm9jZXNzIGFmdGVyIHBlcmZvcm1pbmcgYSB2aWV3IHN0YXRl
IGNoYW5nZS4KKworICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpc3BhdGNoVmlld1N0
YXRlQ2hhbmdlKToKKyAgICAgICAgTW92ZSB0aGUgaGFzLWJlZW4taW4td2luZG93LWFuZC1ub3ct
aXMtbmV3bHktaW4td2luZG93IGNoZWNrIGludG8gZGlzcGF0Y2hWaWV3U3RhdGVDaGFuZ2UuCisg
ICAgICAgIEFkanVzdCB0aGUgbG9naWMgc3Vycm91bmRpbmcgZ29pbmcgaW50by9vdXQgb2Ygd2lu
ZG93IGJ5IGZhY3RvcmluZyBvdXQgdGhlIElzSW5XaW5kb3ctZGlkLWNoYW5nZSBjaGVjaywgZm9y
IGNsYXJpdHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQ6XSk6CisgICAgICAgIEFzIHByZXZp
b3VzbHkgbWVudGlvbmVkLCB3YWl0IGZvciBhIHJlcGx5IHdoZW4gZm9yZWdyb3VuZGluZy4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2NoZWR1bGVD
b21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp2aWV3U3RhdGVEaWRD
aGFuZ2UpOgorICAgICAgICBNYWtlIHN1cmUgdG8gc2NoZWR1bGUgYSBjb21taXQgaW1tZWRpYXRl
bHkgaWYgdGhlIFVJIHByb2Nlc3MgaXMgd2FpdGluZyBmb3IgYSByZXBseS4KKyAgICAgICAgUHJl
dmlvdXNseSB3ZSBhc3N1bWVkIHRoYXQgYSBjb21taXQgd291bGQgYmUgc2NoZWR1bGVkIGFueXdh
eSBiZWNhdXNlIHdlIHdvdWxkIGhhdmUgdG8gcmVwYXJlbnQgdGhlCisgICAgICAgIGxheWVyIHRy
ZWUsIGJ1dCB0aGF0IGRvZXNuJ3QgaGFwcGVuIGluIHRoZSBzdXNwZW5zaW9uLXdpdGhvdXQtdW5w
YXJlbnRpbmcgY2FzZS4gQWxzbywgd2Ugd2FudCB0byBza2lwCisgICAgICAgIGFsbCB0aHJvdHRs
aW5nIGluIHRoaXMgY2FzZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0
OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVy
Rmx1c2hJbW1lZGlhdGVseSk6CisKIDIwMTQtMDctMDMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU11bV0syXSBTb21ldGltZXMgdGhlIHN3aXBl
IHNuYXBzaG90IHN0YXlzIHVwIHRvbyBsb25nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDc4YmQwYTYuLjRkMTNiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMTAxLDE1ICsxMTAxLDEzIEBAIHZvaWQgV2Vi
UGFnZVByb3h5Ojp1cGRhdGVWaWV3U3RhdGUoVmlld1N0YXRlOjpGbGFncyBmbGFnc1RvVXBkYXRl
KQogICAgICAgICBtX3ZpZXdTdGF0ZSB8PSBWaWV3U3RhdGU6OklzVmlzdWFsbHlJZGxlOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3Mg
bWF5SGF2ZUNoYW5nZWQpCit2b2lkIFdlYlBhZ2VQcm94eTo6dmlld1N0YXRlRGlkQ2hhbmdlKFZp
ZXdTdGF0ZTo6RmxhZ3MgbWF5SGF2ZUNoYW5nZWQsIFdhbnRzUmVwbHlPck5vdCB3YW50c1JlcGx5
T3JOb3QpCiB7Ci0gICAgYm9vbCBpc05ld2x5SW5XaW5kb3cgPSAhaXNJbldpbmRvdygpICYmICht
YXlIYXZlQ2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNJbldpbmRvdykgJiYgbV9wYWdlQ2xpZW50Lmlz
Vmlld0luV2luZG93KCk7Ci0KICAgICBtX3BvdGVudGlhbGx5Q2hhbmdlZFZpZXdTdGF0ZUZsYWdz
IHw9IG1heUhhdmVDaGFuZ2VkOwotICAgIG1fdmlld1N0YXRlQ2hhbmdlV2FudHNSZXBseSA9ICgo
bV92aWV3V2FzRXZlckluV2luZG93ICYmIGlzTmV3bHlJbldpbmRvdykgfHwgbV92aWV3U3RhdGVD
aGFuZ2VXYW50c1JlcGx5ID09IFdhbnRzUmVwbHlPck5vdDo6RG9lc1dhbnRSZXBseSkgPyBXYW50
c1JlcGx5T3JOb3Q6OkRvZXNXYW50UmVwbHkgOiBXYW50c1JlcGx5T3JOb3Q6OkRvZXNOb3RXYW50
UmVwbHk7CisgICAgbV92aWV3U3RhdGVDaGFuZ2VXYW50c1JlcGx5ID0gKG1fdmlld1N0YXRlQ2hh
bmdlV2FudHNSZXBseSA9PSBXYW50c1JlcGx5T3JOb3Q6OkRvZXNXYW50UmVwbHkgfHwgd2FudHNS
ZXBseU9yTm90ID09IFdhbnRzUmVwbHlPck5vdDo6RG9lc1dhbnRSZXBseSkgPyBXYW50c1JlcGx5
T3JOb3Q6OkRvZXNXYW50UmVwbHkgOiBXYW50c1JlcGx5T3JOb3Q6OkRvZXNOb3RXYW50UmVwbHk7
CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAoaXNOZXdseUluV2luZG93KSB7CisgICAg
aWYgKCFpc0luV2luZG93KCkgJiYgKG1heUhhdmVDaGFuZ2VkICYgVmlld1N0YXRlOjpJc0luV2lu
ZG93KSAmJiBtX3BhZ2VDbGllbnQuaXNWaWV3SW5XaW5kb3coKSkgewogICAgICAgICBkaXNwYXRj
aFZpZXdTdGF0ZUNoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTEzOCw2ICsx
MTM2LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaXNwYXRjaFZpZXdTdGF0ZUNoYW5nZSgpCiAg
ICAgdXBkYXRlVmlld1N0YXRlKG1fcG90ZW50aWFsbHlDaGFuZ2VkVmlld1N0YXRlRmxhZ3MpOwog
ICAgIFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCA9IG1fdmlld1N0YXRlIF4gcHJldmlvdXNWaWV3
U3RhdGU7CiAKKyAgICAvLyBXZSBhbHdheXMgd2FudCB0byB3YWl0IGZvciB0aGUgV2ViIHByb2Nl
c3MgdG8gcmVwbHkgaWYgd2UndmUgYmVlbiBpbi13aW5kb3cgYmVmb3JlIGFuZCBhcmUgY29taW5n
IGJhY2sgaW4td2luZG93LgorICAgIGlmIChtX3ZpZXdXYXNFdmVySW5XaW5kb3cgJiYgKGNoYW5n
ZWQgJiBWaWV3U3RhdGU6OklzSW5XaW5kb3cpICYmIGlzSW5XaW5kb3coKSkKKyAgICAgICAgbV92
aWV3U3RhdGVDaGFuZ2VXYW50c1JlcGx5ID0gV2FudHNSZXBseU9yTm90OjpEb2VzV2FudFJlcGx5
OworCiAgICAgaWYgKGNoYW5nZWQpCiAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6U2V0Vmlld1N0YXRlKG1fdmlld1N0YXRlLCBtX3ZpZXdTdGF0ZUNoYW5nZVdhbnRz
UmVwbHkgPT0gV2FudHNSZXBseU9yTm90OjpEb2VzV2FudFJlcGx5KSwgbV9wYWdlSUQpOwogCkBA
IC0xMTUzLDI1ICsxMTU1LDI1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaXNwYXRjaFZpZXdTdGF0
ZUNoYW5nZSgpCiAgICAgaWYgKChjaGFuZ2VkICYgVmlld1N0YXRlOjpJc1Zpc2libGUpICYmICFp
c1ZpZXdWaXNpYmxlKCkpCiAgICAgICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigp
LT5zdG9wKCk7CiAKLSAgICBpZiAoKG1fcG90ZW50aWFsbHlDaGFuZ2VkVmlld1N0YXRlRmxhZ3Mg
JiBWaWV3U3RhdGU6OklzSW5XaW5kb3cpICYmIChtX3ZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNJ
bldpbmRvdykpIHsKLSAgICAgICAgTGF5ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlID0g
bV9wYWdlQ2xpZW50LnZpZXdMYXllckhvc3RpbmdNb2RlKCk7Ci0gICAgICAgIGlmIChtX2xheWVy
SG9zdGluZ01vZGUgIT0gbGF5ZXJIb3N0aW5nTW9kZSkgewotICAgICAgICAgICAgbV9sYXllckhv
c3RpbmdNb2RlID0gbGF5ZXJIb3N0aW5nTW9kZTsKLSAgICAgICAgICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0TGF5ZXJIb3N0aW5nTW9kZShzdGF0aWNfY2FzdDx1bnNp
Z25lZD4obGF5ZXJIb3N0aW5nTW9kZSkpLCBtX3BhZ2VJRCk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICBpZiAoKG1fcG90ZW50aWFsbHlDaGFuZ2VkVmlld1N0YXRlRmxhZ3MgJiBWaWV3U3RhdGU6
OklzSW5XaW5kb3cpICYmICEobV92aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzSW5XaW5kb3cpKSB7
CisgICAgaWYgKGNoYW5nZWQgJiBWaWV3U3RhdGU6OklzSW5XaW5kb3cpIHsKKyAgICAgICAgaWYg
KGlzSW5XaW5kb3coKSkgeworICAgICAgICAgICAgTGF5ZXJIb3N0aW5nTW9kZSBsYXllckhvc3Rp
bmdNb2RlID0gbV9wYWdlQ2xpZW50LnZpZXdMYXllckhvc3RpbmdNb2RlKCk7CisgICAgICAgICAg
ICBpZiAobV9sYXllckhvc3RpbmdNb2RlICE9IGxheWVySG9zdGluZ01vZGUpIHsKKyAgICAgICAg
ICAgICAgICBtX2xheWVySG9zdGluZ01vZGUgPSBsYXllckhvc3RpbmdNb2RlOworICAgICAgICAg
ICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0TGF5ZXJIb3N0aW5n
TW9kZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4obGF5ZXJIb3N0aW5nTW9kZSkpLCBtX3BhZ2VJRCk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1JfUE9QT1ZFUikKLSAgICAgICAgLy8gV2hlbiBsZWF2aW5nIHRoZSBjdXJyZW50IHBhZ2Us
IGNsb3NlIHRoZSBwb3BvdmVyIGNvbG9yIHdlbGwuCi0gICAgICAgIGlmIChtX2NvbG9yUGlja2Vy
KQotICAgICAgICAgICAgZW5kQ29sb3JQaWNrZXIoKTsKKyAgICAgICAgICAgIC8vIFdoZW4gbGVh
dmluZyB0aGUgY3VycmVudCBwYWdlLCBjbG9zZSB0aGUgcG9wb3ZlciBjb2xvciB3ZWxsLgorICAg
ICAgICAgICAgaWYgKG1fY29sb3JQaWNrZXIpCisgICAgICAgICAgICAgICAgZW5kQ29sb3JQaWNr
ZXIoKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgLy8gV2hlbiBsZWF2aW5n
IHRoZSBjdXJyZW50IHBhZ2UsIGNsb3NlIHRoZSB2aWRlbyBmdWxsc2NyZWVuLgotICAgICAgICBp
ZiAobV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKQotICAgICAgICAgICAgbV92aWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLT5yZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCk7CisgICAgICAgICAgICAv
LyBXaGVuIGxlYXZpbmcgdGhlIGN1cnJlbnQgcGFnZSwgY2xvc2UgdGhlIHZpZGVvIGZ1bGxzY3Jl
ZW4uCisgICAgICAgICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKQorICAgICAgICAg
ICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNj
cmVlbigpOwogI2VuZGlmCisgICAgICAgIH0KICAgICB9CiAKICAgICB1cGRhdGVCYWNraW5nU3Rv
cmVEaXNjYXJkYWJsZVN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggMjYwNWQxYi4uMGVhNTE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtMzYxLDcgKzM2MSw3IEBAIHB1YmxpYzoKICAgICBib29sIGRlbGVnYXRl
c1Njcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGVsZWdhdGVzU2Nyb2xsaW5nOyB9CiAKICAg
ICBlbnVtIGNsYXNzIFdhbnRzUmVwbHlPck5vdCB7IERvZXNOb3RXYW50UmVwbHksIERvZXNXYW50
UmVwbHkgfTsKLSAgICB2b2lkIHZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6
OkZsYWdzIG1heUhhdmVDaGFuZ2VkKTsKKyAgICB2b2lkIHZpZXdTdGF0ZURpZENoYW5nZShXZWJD
b3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1heUhhdmVDaGFuZ2VkLCBXYW50c1JlcGx5T3JOb3QgPSBX
YW50c1JlcGx5T3JOb3Q6OkRvZXNOb3RXYW50UmVwbHkpOwogICAgIGJvb2wgaXNJbldpbmRvdygp
IGNvbnN0IHsgcmV0dXJuIG1fdmlld1N0YXRlICYgV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2lu
ZG93OyB9CiAgICAgdm9pZCB3YWl0Rm9yRGlkVXBkYXRlVmlld1N0YXRlKCk7CiAgICAgdm9pZCBk
aWRVcGRhdGVWaWV3U3RhdGUoKSB7IG1fd2FpdGluZ0ZvckRpZFVwZGF0ZVZpZXdTdGF0ZSA9IGZh
bHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0K
aW5kZXggODEyYzg0Ni4uZDVhZjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlldy5tbQpAQCAtNzI4LDcgKzcyOCw3IEBAIHN0YXRpYyB2b2lkIGxheWVy
UGF0aChDQVNoYXBlTGF5ZXIgKmxheWVyLCBjb25zdCBGbG9hdFF1YWQmIG91dGVyUXVhZCkKIC0g
KHZvaWQpX2FwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZDooTlNOb3RpZmljYXRpb24qKW5v
dGlmaWNhdGlvbgogewogICAgIF9wYWdlLT5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQo
KTsKLSAgICBfcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6QWxsRmxhZ3MgJiB+
Vmlld1N0YXRlOjpJc0luV2luZG93KTsKKyAgICBfcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZp
ZXdTdGF0ZTo6QWxsRmxhZ3MgJiB+Vmlld1N0YXRlOjpJc0luV2luZG93LCBXZWJQYWdlUHJveHk6
OldhbnRzUmVwbHlPck5vdDo6RG9lc1dhbnRSZXBseSk7CiB9CiAKIC0gKHZvaWQpX2FwcGxpY2F0
aW9uRGlkQmVjb21lQWN0aXZlOihOU05vdGlmaWNhdGlvbiopbm90aWZpY2F0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IGYyNGIw
OTkuLjA2NTI4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgeyByZXR1
cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNv
bXBvc2l0aW5nTGF5ZXJGbHVzaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21w
b3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpID0gMDsKIAogI2lmIFVTRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdl
YkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9y
KFBsYXRmb3JtRGlzcGxheUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApp
bmRleCBjMjExODdkLi5mMjY0NmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YS5oCkBAIC02Niw2ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5
ZXJGbHVzaEltbWVkaWF0ZWx5KCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkVHJh
bnNhY3Rpb25DYWxsYmFja0lEKHVpbnQ2NF90IGNhbGxiYWNrSUQpIG92ZXJyaWRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCA0MWM1ODNkLi4xODlmYzc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAgLTIzOSw2ICsyMzksMTEg
QEAgVGlsZWRCYWNraW5nKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6bWFpbkZyYW1lVGls
ZWRCYWNraW5nKCkgY29uc3QKICAgICByZXR1cm4gZnJhbWVWaWV3ID8gZnJhbWVWaWV3LT50aWxl
ZEJhY2tpbmcoKSA6IG51bGxwdHI7CiB9CiAKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWE6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKQoreworICAgIG1f
bGF5ZXJGbHVzaFRpbWVyLnN0YXJ0T25lU2hvdCgwX21zKTsKK30KKwogdm9pZCBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKQogewogICAg
IGlmIChtX2lzRmx1c2hpbmdTdXNwZW5kZWQpIHsKQEAgLTI0OCw3ICsyNTMsNyBAQCB2b2lkIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgp
CiAgICAgfQogICAgIGlmIChtX2lzTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2Fi
bGVkRm9ySW50ZXJhY3Rpb24pIHsKICAgICAgICAgbV9pc0xheWVyRmx1c2hUaHJvdHRsaW5nVGVt
cG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uID0gZmFsc2U7Ci0gICAgICAgIG1fbGF5ZXJG
bHVzaFRpbWVyLnN0YXJ0T25lU2hvdCgwX21zKTsKKyAgICAgICAgc2NoZWR1bGVDb21wb3NpdGlu
Z0xheWVyRmx1c2hJbW1lZGlhdGVseSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00
MjcsNiArNDMyLDkgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0
b3JlRmx1c2hlcjo6Zmx1c2goKQogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6dmll
d1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MsIGJvb2wgd2FudHNEaWRVcGRhdGVWaWV3
U3RhdGUpCiB7CiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBzdXNwZW5kIHBhaW50aW5nIHdoaWxl
IG5vdCB2aXNpYmxlLCBsaWtlIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhPyBQcm9iYWJs
eS4KKworICAgIGlmICh3YW50c0RpZFVwZGF0ZVZpZXdTdGF0ZSkKKyAgICAgICAgc2NoZWR1bGVD
b21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpOwogfQogCiB2b2lkIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhOjphZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQodWludDY0X3QgY2FsbGJh
Y2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAppbmRleCBkYjAy
ZjRiLi5jMzFmYzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5o
CkBAIC02Nyw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGxheWVyVHJlZVN0
YXRlSXNGcm96ZW4oKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENv
bXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0ZWx5KCkg
b3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2Vi
UHJlZmVyZW5jZXNTdG9yZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBtYWluRnJhbWVD
b250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggMjYzZjMyNy4uOTRm
NDc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCkBAIC0x
NzQsNiArMTc0LDExIEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNjaGVk
dWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKICAgICBtX2xheWVyRmx1c2hTY2hlZHVsZXIuc2No
ZWR1bGUoKTsKIH0KIAordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1
bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpCit7CisgICAgc2NoZWR1bGVDb21w
b3NpdGluZ0xheWVyRmx1c2goKTsKK30KKwogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpCiB7CiAg
ICAgU2V0dGluZ3MmIHNldHRpbmdzID0gbV93ZWJQYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCk7
Cg==
</data>
<flag name="review"
          id="258923"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>