<?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>193349</bug_id>
          
          <creation_ts>2019-01-11 02:15:20 -0800</creation_ts>
          <short_desc>[WPE][GTK] Add a mechanism to reset/clear the Web view session state</short_desc>
          <delta_ts>2019-01-31 08:53:00 -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>WPE WebKit</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></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="Adrian Perez">aperez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>berto</cc>
    
    <cc>bfulgham</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1493649</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-01-11 02:15:20 -0800</bug_when>
    <thetext>For an application I am developing it would be desirable to be
able to clear/reset the session state of a web view (e.g. the
navigation back/forward list). 

 - Upon creation of a WebKitWebView, obtain the current “empty”
   state with webkit_web_view_get_session_state().
 - Later on, restore the “empty” state previously saved using
   the webkit_web_view_restore_session_state() function.

Unfortunately, the approach above does NOT work: the code that
restores the session state checks whether the current index in
the back/forward is zero, and skips restoring the list in that
case (which happens to be the case for an “empty” state).

It would be desirable to have a way of clearing the state in
the public API, for example webkit_web_view_clear_session_state().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493657</commentid>
    <comment_count>1</comment_count>
      <attachid>358891</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-01-11 05:31:34 -0800</bug_when>
    <thetext>Created attachment 358891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493658</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-01-11 05:32:56 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493659</commentid>
    <comment_count>3</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-01-11 05:34:02 -0800</bug_when>
    <thetext>Ouch, I forgot to add the new function to “webkit2gtk-4.0-sections.txt”,
I&apos;ll upload an updated patch in a moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493660</commentid>
    <comment_count>4</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-01-11 05:34:20 -0800</bug_when>
    <thetext>(In reply to Adrian Perez from comment #3)
&gt; Ouch, I forgot to add the new function to “webkit2gtk-4.0-sections.txt”,
&gt; I&apos;ll upload an updated patch in a moment.

…and to “wpe-0.1-sections.txt” as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493662</commentid>
    <comment_count>5</comment_count>
      <attachid>358893</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-01-11 05:43:11 -0800</bug_when>
    <thetext>Created attachment 358893
Patch v2

Now with the gtk-doc bits added</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493664</commentid>
    <comment_count>6</comment_count>
      <attachid>358893</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-01-11 06:26:24 -0800</bug_when>
    <thetext>Comment on attachment 358893
Patch v2

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:4153
&gt; + * Note that the currently loaded page is *not* changed, and in order to clear the contents
&gt; + * being displayed webkit_web_view_load_uri() should be used to load the `about:blank`
&gt; + * resource.

We should also say here that the bf list won&apos;t be empty, it will have a single item for the currently loaded page.

&gt; Source/WebKit/UIProcess/WebPageProxy.h:811
&gt; +    void clearSessionState() { backForwardClear(); }

There&apos;s more in the session state than the bf list, no?

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp:335
&gt; +    g_assert_cmpuint(webkit_back_forward_list_get_length(bfList), ==, 1);

Should we also check that the item is indeed he currently loaded page with BackForwardListTest::checkItem?

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp:337
&gt; +    g_assert(!webkit_web_view_can_go_back(view.get()));
&gt; +    g_assert(!webkit_web_view_can_go_forward(view.get()));

Use g_assert_false</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493673</commentid>
    <comment_count>7</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-01-11 08:04:09 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #6)
&gt; Comment on attachment 358893 [details]
&gt; Patch v2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=358893&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:4153
&gt; &gt; + * Note that the currently loaded page is *not* changed, and in order to clear the contents
&gt; &gt; + * being displayed webkit_web_view_load_uri() should be used to load the `about:blank`
&gt; &gt; + * resource.
&gt; 
&gt; We should also say here that the bf list won&apos;t be empty, it will have a
&gt; single item for the currently loaded page.

Good point, will do.

&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.h:811
&gt; &gt; +    void clearSessionState() { backForwardClear(); }
&gt; 
&gt; There&apos;s more in the session state than the bf list, no?

I checked what WebPageProxy::restoreFromSessionState() does: the only
other things it restores are “m_renderTreeSize” which I do not have a
super clear idea what it is used for (they appear to be used by the
iOS+Mac ViewGestureController and ViewSnapshotStore implementations),
but as far as I can understand it does not need changing because the
currently loaded page is kept.

The rest of things which need updating are handled properly because
the WebBackForwardList::clear() method itself does calls to the
didChangeBackForwardList() method to make the Page (and possible
other objects) notice the changes.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp:335
&gt; &gt; +    g_assert_cmpuint(webkit_back_forward_list_get_length(bfList), ==, 1);
&gt; 
&gt; Should we also check that the item is indeed he currently loaded page with
&gt; BackForwardListTest::checkItem?

It won&apos;t hurt to have this check as well, so I will add it.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp:337
&gt; &gt; +    g_assert(!webkit_web_view_can_go_back(view.get()));
&gt; &gt; +    g_assert(!webkit_web_view_can_go_forward(view.get()));
&gt; 
&gt; Use g_assert_false

Okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493674</commentid>
    <comment_count>8</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-01-11 08:08:05 -0800</bug_when>
    <thetext>(In reply to Adrian Perez from comment #7)
&gt; (In reply to Carlos Garcia Campos from comment #6)
&gt; &gt; Comment on attachment 358893 [details]
&gt; &gt; Patch v2
&gt; &gt;
&gt; &gt; [...] 
&gt; &gt;
&gt; &gt; &gt; Source/WebKit/UIProcess/WebPageProxy.h:811
&gt; &gt; &gt; +    void clearSessionState() { backForwardClear(); }
&gt; &gt; 
&gt; &gt; There&apos;s more in the session state than the bf list, no?
&gt; 
&gt; I checked what WebPageProxy::restoreFromSessionState() does: the only
&gt; other things it restores are “m_renderTreeSize” which I do not have a
&gt; super clear idea what it is used for (they appear to be used by the
&gt; iOS+Mac ViewGestureController and ViewSnapshotStore implementations),
&gt; but as far as I can understand it does not need changing because the
&gt; currently loaded page is kept.
&gt; 
&gt; The rest of things which need updating are handled properly because
&gt; the WebBackForwardList::clear() method itself does calls to the
&gt; didChangeBackForwardList() method to make the Page (and possible
&gt; other objects) notice the changes.

More on this… There is also a “provisionalURL” in the session state,
but as a matter of fact, webkit_web_view_restore_session_state() uses
WebPageProxy::restoreFromState(…, false), and passing “false” there
prevents reading the “.renderTreeSize” and “.provisionalURL“ from the
state which is being restored.

This me even more confident that just clearing the back-forward list
is the only thing needed here :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493675</commentid>
    <comment_count>9</comment_count>
      <attachid>358897</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-01-11 08:10:52 -0800</bug_when>
    <thetext>Created attachment 358897
Patch v3

This version takes into account the review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493914</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-11 17:40:44 -0800</bug_when>
    <thetext>(In reply to Adrian Perez from comment #0)
&gt; Unfortunately, the approach above does NOT work: the code that
&gt; restores the session state checks whether the current index in
&gt; the back/forward is zero, and skips restoring the list in that
&gt; case (which happens to be the case for an “empty” state).

Is this cross-platform code? It sounds like a bug. If the back/forward list in the session state is empty, the web view&apos;s back/forward list should be reset, not ignored.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493916</commentid>
    <comment_count>11</comment_count>
      <attachid>358897</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-11 17:42:02 -0800</bug_when>
    <thetext>Comment on attachment 358897
Patch v3

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

&gt; Source/WebKit/UIProcess/WebPageProxy.h:811
&gt;      RefPtr&lt;API::Navigation&gt; restoreFromSessionState(SessionState, bool navigate);
&gt; +    void clearSessionState() { backForwardClear(); }

I think it should be implemented by passing an empty SessionState into restoreFromSessionState. And if that doesn&apos;t work, it&apos;s probably a bug in restoreFromSessionState. We&apos;ll have to see what WK2 owners think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494091</commentid>
    <comment_count>12</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-01-14 00:14:12 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #11)
&gt; Comment on attachment 358897 [details]
&gt; Patch v3
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=358897&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.h:811
&gt; &gt;      RefPtr&lt;API::Navigation&gt; restoreFromSessionState(SessionState, bool navigate);
&gt; &gt; +    void clearSessionState() { backForwardClear(); }
&gt; 
&gt; I think it should be implemented by passing an empty SessionState into
&gt; restoreFromSessionState. And if that doesn&apos;t work, it&apos;s probably a bug in
&gt; restoreFromSessionState. We&apos;ll have to see what WK2 owners think.

I have been mulling this over the weekend, and I think there is no bug
in ::restoreFromSessionState(), because I am under the impression that
the idea is to use it right after creating a web view, when there is no
previous (nor current) state to maintain. This means that restoring an
empty state does not need to do anything, because well, a fresh web view
has already an empty state — nothing needs to be done.

As for implementing ::clearSessionState() in terms of restoring an empty
state using ::restoreFromSessionState() behind the scenes, I think that
would be wrong: that would imply passing a state with one element (for
the currently loaded page), which would result in “completely replace
the state with the passed one, do a page reload of the active item”
which is very different from “drop all items from the state which are
not the current page” (which is the behaviour implemented by the
proposed patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494158</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-14 08:24:17 -0800</bug_when>
    <thetext>(In reply to Adrian Perez from comment #12)
&gt; I have been mulling this over the weekend, and I think there is no bug
&gt; in ::restoreFromSessionState(), because I am under the impression that
&gt; the idea is to use it right after creating a web view, when there is no
&gt; previous (nor current) state to maintain. This means that restoring an
&gt; empty state does not need to do anything, because well, a fresh web view
&gt; has already an empty state — nothing needs to be done.

Hm, that&apos;s certainly how Epiphany uses it, but there is no indication in the API documentation that this is the intended use, and I don&apos;t see any reason it shouldn&apos;t work....

&gt; As for implementing ::clearSessionState() in terms of restoring an empty
&gt; state using ::restoreFromSessionState() behind the scenes, I think that
&gt; would be wrong: that would imply passing a state with one element (for
&gt; the currently loaded page)

What, why? You should use a completely empty state.

&gt;, which would result in “completely replace
&gt; the state with the passed one, do a page reload of the active item”

I thought restore state always implies reload</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494397</commentid>
    <comment_count>14</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-01-14 16:42:33 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #13)
&gt; (In reply to Adrian Perez from comment #12)
&gt; &gt; I have been mulling this over the weekend, and I think there is no bug
&gt; &gt; in ::restoreFromSessionState(), because I am under the impression that
&gt; &gt; the idea is to use it right after creating a web view, when there is no
&gt; &gt; previous (nor current) state to maintain. This means that restoring an
&gt; &gt; empty state does not need to do anything, because well, a fresh web view
&gt; &gt; has already an empty state — nothing needs to be done.
&gt; 
&gt; Hm, that&apos;s certainly how Epiphany uses it, but there is no indication in the
&gt; API documentation that this is the intended use, and I don&apos;t see any reason
&gt; it shouldn&apos;t work....
&gt; 
&gt; &gt; As for implementing ::clearSessionState() in terms of restoring an empty
&gt; &gt; state using ::restoreFromSessionState() behind the scenes, I think that
&gt; &gt; would be wrong: that would imply passing a state with one element (for
&gt; &gt; the currently loaded page)
&gt; 
&gt; What, why? You should use a completely empty state.

No, we want to keep the currently displayed content undisturbed.
Which means keeping one item for the current page.

&gt; &gt;, which would result in “completely replace
&gt; &gt; the state with the passed one, do a page reload of the active item”
&gt; 
&gt; I thought restore state always implies reload

It does. So if we pass a state with one item, the back-forward list
is replaced, and the current page reloaded... which will cause the
web view to show a flash of blank content and jump around when
reloading. We don&apos;t want a reload.

Clearing the back-forward list does exactly what we want: drops all
the elements which are not the current one, leaving it with a single
element (the current page) without modifying that element nor reloading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494641</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-15 08:33:01 -0800</bug_when>
    <thetext>(In reply to Adrian Perez from comment #14)
&gt; No, we want to keep the currently displayed content undisturbed.
&gt; Which means keeping one item for the current page.

OK, one last motivating question: what are you really trying to do? Clear the back/forward list? A function that clears the session state should probably also clear the current page, not leave it undisturbed, because the current page is part of the session state. Right?

I&apos;m skeptical because session state includes much more than just back/forward list and even the current page. E.g. scroll position within the page is part of the session state. So a clear function that only clears the back/forward list and has a goal of not reloading the page or resetting the scroll position seems really suspect.

&gt; Clearing the back-forward list does exactly what we want: drops all
&gt; the elements which are not the current one, leaving it with a single
&gt; element (the current page) without modifying that element nor reloading.

It sounds like you really want a function to clear just the back/forward list. We have previous bugs about that on Bugzilla where Apple explained we don&apos;t want to make it mutable, but perhaps they might have been open to allowing a simple clear operation without allowing other mutations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498958</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-01-28 01:16:46 -0800</bug_when>
    <thetext>I also find it confusing and the session state might include more stuff in the future. If we actually want an API to simply clear the bf list let&apos;s add webkit_back_forward_list_clear() or reset(), it might be weird a clear() method that leaves one item.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1500587</commentid>
    <comment_count>17</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-01-31 08:37:48 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #16)
&gt; I also find it confusing and the session state might include more stuff in
&gt; the future. If we actually want an API to simply clear the bf list let&apos;s add
&gt; webkit_back_forward_list_clear() or reset(), it might be weird a clear()
&gt; method that leaves one item.

I like this idea, and in particular calling the method _reset() to avoid
giving the idea that the back-forward list will be empty after the call.
Thanks for the suggestion!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1500595</commentid>
    <comment_count>18</comment_count>
      <attachid>358897</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-31 08:53:00 -0800</bug_when>
    <thetext>Comment on attachment 358897
Patch v3

backForwardClear is only accessible from WKBundleClearHistoryForTesting, and I don&apos;t think we should expand the use of this functionality.  In the past we have consistently found that applications which claim to need to mutate the back/forward list do not actually need to.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358891</attachid>
            <date>2019-01-11 05:31:34 -0800</date>
            <delta_ts>2019-01-11 05:43:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193349-20190111153132.patch</filename>
            <type>text/plain</type>
            <size>6846</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM2ZDE3YmJmNzBhOGM3MjRk
YjVhYjA1ZGI3YjIwMDMyMWU2ZjY3NmUuLjkzYThjNzBkYjkzMzE3ZmY4NWExMWY1ZmRhZGUxN2Qx
NmU5ODQ5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMDEtMTEgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtHVEtd
IEFkZCBhIG1lY2hhbmlzbSB0byByZXNldC9jbGVhciB0aGUgV2ViIHZpZXcgc2Vzc2lvbiBzdGF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzQ5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBh
ZGRzIGEgbmV3IHdlYmtpdF93ZWJfdmlld19jbGVhcl9zZXNzaW9uX3N0YXRlKCkgZnVuY3Rpb24g
dG8gdGhlIHB1YmxpYyBBUEkgd2hpY2gKKyAgICAgICAgY2xlYXJzIHRoZSBiYWNrL2ZvcndhcmQg
bmF2aWdhdGlvbiBsaXN0IHdpdGhvdXQgbmF2aWdhdGluZyBhd2F5IGZyb20gdGhlIGN1cnJlbnRs
eQorICAgICAgICBsb2FkZWQgcGFnZS4gTWFraW5nIHRoZSB3ZWIgdmlldyBlbXB0eSBjYW4gYmUg
YWNoaWV2ZWQgYnkgbG9hZGluZyBhYm91dDpibGFuayBiZWZvcmUKKyAgICAgICAgdXNpbmcgdGhl
IG5ldyBmdW5jdGlvbiB0byBjbGVhciB0aGUgc3RhdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xl
YXJfc2Vzc2lvbl9zdGF0ZSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXcuaDogQWRkIHdlYmtpdF93ZWJfdmlld19jbGVhcl9zdGF0ZSgpIHByb3RvdHlw
ZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3Lmg6IERpdHRvLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpjbGVhclNlc3Npb25TdGF0ZSk6IEFkZGVkLgorCiAyMDE5LTAxLTEwICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhOXSBDaGFu
Z2UgdGhlIG5vbmNlIGluIHRoZSBDVEFQIGtJbml0IGNvbW1hbmQgdG8gd2VhayByYW5kb20gdmFs
dWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZp
ZXcuY3BwCmluZGV4IDY3MjAxZDg5ZWFhMWYzZjIwZGY4YjkxZjFkYTE1ZDljMjU4YjYzOGYuLjQ0
Mzk3OWY1ZWUxZjA0M2JhZDU0ZmM5YjYxMDAxMTMzNGFiN2ExODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCkBAIC00MTQyLDYg
KzQxNDIsMjUgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVzdG9yZV9zZXNzaW9uX3N0YXRlKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYlZpZXcKICAgICBnZXRQYWdlKHdlYlZpZXcp
LnJlc3RvcmVGcm9tU2Vzc2lvblN0YXRlKHdlYmtpdFdlYlZpZXdTZXNzaW9uU3RhdGVHZXRTZXNz
aW9uU3RhdGUoc3RhdGUpLCBmYWxzZSk7CiB9CiAKKy8qKgorICogd2Via2l0X3dlYl92aWV3X2Ns
ZWFyX3Nlc3Npb25fc3RhdGU6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqCisg
KiBDbGVhciB0aGUgQHdlYl92aWV3IHNlc3Npb24gc3RhdGUuCisgKgorICogTm90ZSB0aGF0IHRo
ZSBjdXJyZW50bHkgbG9hZGVkIHBhZ2UgaXMgKm5vdCogY2hhbmdlZCwgYW5kIGluIG9yZGVyIHRv
IGNsZWFyIHRoZSBjb250ZW50cworICogYmVpbmcgZGlzcGxheWVkIHdlYmtpdF93ZWJfdmlld19s
b2FkX3VyaSgpIHNob3VsZCBiZSB1c2VkIHRvIGxvYWQgdGhlIGBhYm91dDpibGFua2AKKyAqIHJl
c291cmNlLgorICoKKyAqIFNpbmNlOiAyLjI0CisgKi8KK3ZvaWQgd2Via2l0X3dlYl92aWV3X2Ns
ZWFyX3Nlc3Npb25fc3RhdGUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBnX3JldHVy
bl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisKKyAgICBnZXRQYWdlKHdl
YlZpZXcpLmNsZWFyU2Vzc2lvblN0YXRlKCk7Cit9CisKICNpZiBQTEFURk9STShXUEUpCiAvKioK
ICAqIHdlYmtpdF93ZWJfdmlld19hZGRfZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNrOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRleCA4YzIx
OWEzYjAwODU5OWQ1NjQxYzkwMTRkNTE3N2FjZDExYmI2MGI1Li44MmQ2ZjQ2NTcwMzZkOTQ5ZWVi
NjE0ZjEyZTRkYjZlOWQzODUzM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXcuaApAQCAtNTUyLDYgKzU1Miw5IEBAIFdFQktJVF9BUEkgdm9p
ZAogd2Via2l0X3dlYl92aWV3X3Jlc3RvcmVfc2Vzc2lvbl9zdGF0ZSAgICAgICAgICAgICAgICAo
V2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJWaWV3U2Vzc2lvblN0
YXRlICpzdGF0ZSk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X2NsZWFyX3Nl
c3Npb25fc3RhdGUgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAq
d2ViX3ZpZXcpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKaW5kZXggNDEwMmE3NTI2ZDZiZGYwMTNj
YmI5MDRhNTI0MjVkNjFkMTJlM2NkOS4uMGE3N2I0OGRmNDNiN2I2ZDIyMzA0MDRmZTUyNWNmM2Vh
NjRkMGYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRX
ZWJWaWV3LmgKQEAgLTUwNyw2ICs1MDcsOSBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJf
dmlld19yZXN0b3JlX3Nlc3Npb25fc3RhdGUgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcg
ICAgICAgICAgICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZSAqc3RhdGUpOwog
CitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19jbGVhcl9zZXNzaW9uX3N0YXRlICAg
ICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKwog
V0VCS0lUX0FQSSBndWludAogd2Via2l0X3dlYl92aWV3X2FkZF9mcmFtZV9kaXNwbGF5ZWRfY2Fs
bGJhY2sgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJfdmlldywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktp
dEZyYW1lRGlzcGxheWVkQ2FsbGJhY2sgY2FsbGJhY2ssCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IDIzMmJiMTc1ZmQxODJlNDg1OWJhZTM1MmIxMWYxNDVlMWQyODlj
OTIuLjBhZTIyNWJmOGE4YzIzY2UxOTY0YzUxM2UzOTEwNDY2MDExMmFhNGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC04MDgsNiArODA4LDcgQEAgcHVibGljOgog
CiAgICAgU2Vzc2lvblN0YXRlIHNlc3Npb25TdGF0ZShXVEY6OkZ1bmN0aW9uPGJvb2wgKFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0mKT4mJiA9IG51bGxwdHIpIGNvbnN0OwogICAgIFJlZlB0cjxBUEk6
Ok5hdmlnYXRpb24+IHJlc3RvcmVGcm9tU2Vzc2lvblN0YXRlKFNlc3Npb25TdGF0ZSwgYm9vbCBu
YXZpZ2F0ZSk7CisgICAgdm9pZCBjbGVhclNlc3Npb25TdGF0ZSgpIHsgYmFja0ZvcndhcmRDbGVh
cigpOyB9CiAKICAgICBib29sIHN1cHBvcnRzVGV4dFpvb20oKSBjb25zdDsKICAgICBkb3VibGUg
dGV4dFpvb21GYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3RleHRab29tRmFjdG9yOyB9CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmUzYTUxYzcw
MmViZWJkYmI4YTNhMTM3MzljNjA5MjJmMzVjOGMzNi4uMDI1NjI4Yzc1MGMwMTFjNmY4ZDNlMmE0
OTNiMzMxNzFjMmZiZGE5MCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAxLTExICBBZHJpYW4gUGVyZXogZGUg
Q2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV1bR1RLXSBBZGQgYSBt
ZWNoYW5pc20gdG8gcmVzZXQvY2xlYXIgdGhlIFdlYiB2aWV3IHNlc3Npb24gc3RhdGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzM0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RCYWNrRm9yd2FyZExpc3QuY3BwOgorICAgICAgICAodGVz
dFdlYktpdFdlYlZpZXdTZXNzaW9uU3RhdGUpOiBUZXN0IHRoYXQgdGhlIGJhY2svZm9yd2FyZCBs
aXN0IGlzIGVtcHR5IGFmdGVyCisgICAgICAgIGNsZWFyaW5nIHRoZSBzZXNzaW9uIHN0YXRlLCBh
bmQgdGhhdCB0aGUgZnVuY3Rpb25zIHdlYmtpdF93ZWJfdmlld19jYW5fZ29fYmFjaygpCisgICAg
ICAgIGFuZCB3ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2ZvcndhcmQoKSByZXR1cm4gZmFsc2UgYWNj
b3JkaW5nbHkuCisKIDIwMTktMDEtMTAgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHR5cG8gdGhhdCBicmVha3MgZGFzaGJvYXJk
IGxpbmsuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdEJhY2tGb3J3YXJkTGlzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvVGVzdEJhY2tGb3J3YXJkTGlzdC5jcHAKaW5kZXggODVkMmZjMDIyYTAxOWFhMTdlNTBi
ZWFiZWIzODdiYWE1MmQ3YzZiZS4uZjFkYjZhOTY4NTQzYjA3ODA1NGI2YWIyNzkxNzlmOGU5OGE1
NmMyNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RCYWNrRm9yd2FyZExpc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0QmFja0ZvcndhcmRMaXN0LmNwcApAQCAtMzI5LDYgKzMyOSwxMyBAQCBzdGF0
aWMgdm9pZCB0ZXN0V2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZShCYWNrRm9yd2FyZExpc3RUZXN0
KiB0ZXN0LCBnY29uc3Rwb2ludAogICAgIEJhY2tGb3J3YXJkTGlzdFRlc3Q6OmNoZWNrSXRlbSh3
ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2N1cnJlbnRfaXRlbShiZkxpc3QpLCAiUGFnZTIi
LCB1cmlQYWdlMi5kYXRhKCksIHVyaVBhZ2UyLmRhdGEoKSk7CiAgICAgQmFja0ZvcndhcmRMaXN0
VGVzdDo6Y2hlY2tJdGVtKHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfbnRoX2l0ZW0oYmZM
aXN0LCAxKSwgIlBhZ2UzIiwgdXJpUGFnZTMuZGF0YSgpLCB1cmlQYWdlMy5kYXRhKCkpOwogCisg
ICAgLy8gQWZ0ZXIgY2xlYXJpbmcgdGhlIGxpc3QgdGhlcmUgd2lsbCBiZSBzdGlsbCBvbmUgaXRl
bSBpbiBpdDogdGhlIGN1cnJlbnRseSBsb2FkZWQgcGFnZS4KKyAgICB3ZWJraXRfd2ViX3ZpZXdf
Y2xlYXJfc2Vzc2lvbl9zdGF0ZSh2aWV3LmdldCgpKTsKKyAgICBiZkxpc3QgPSB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X2JhY2tfZm9yd2FyZF9saXN0KHZpZXcuZ2V0KCkpOworICAgIGdfYXNzZXJ0X2Nt
cHVpbnQod2Via2l0X2JhY2tfZm9yd2FyZF9saXN0X2dldF9sZW5ndGgoYmZMaXN0KSwgPT0sIDEp
OworICAgIGdfYXNzZXJ0KCF3ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2JhY2sodmlldy5nZXQoKSkp
OworICAgIGdfYXNzZXJ0KCF3ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2ZvcndhcmQodmlldy5nZXQo
KSkpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludmFsaWRTZXNzaW9uRGF0YSA9ICJpbnZh
bGlkIHNlc3Npb24gZGF0YSI7CiAgICAgZGF0YSA9IGFkb3B0R1JlZihnX2J5dGVzX25ld19zdGF0
aWMoaW52YWxpZFNlc3Npb25EYXRhLCBzdHJsZW4oaW52YWxpZFNlc3Npb25EYXRhKSkpOwogICAg
IGdfYXNzZXJ0X251bGwod2Via2l0X3dlYl92aWV3X3Nlc3Npb25fc3RhdGVfbmV3KGRhdGEuZ2V0
KCkpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358893</attachid>
            <date>2019-01-11 05:43:11 -0800</date>
            <delta_ts>2019-01-11 08:10:48 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-193349-20190111154310.patch</filename>
            <type>text/plain</type>
            <size>8183</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM2ZDE3YmJmNzBhOGM3MjRk
YjVhYjA1ZGI3YjIwMDMyMWU2ZjY3NmUuLjkzYThjNzBkYjkzMzE3ZmY4NWExMWY1ZmRhZGUxN2Qx
NmU5ODQ5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMDEtMTEgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtHVEtd
IEFkZCBhIG1lY2hhbmlzbSB0byByZXNldC9jbGVhciB0aGUgV2ViIHZpZXcgc2Vzc2lvbiBzdGF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzQ5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBh
ZGRzIGEgbmV3IHdlYmtpdF93ZWJfdmlld19jbGVhcl9zZXNzaW9uX3N0YXRlKCkgZnVuY3Rpb24g
dG8gdGhlIHB1YmxpYyBBUEkgd2hpY2gKKyAgICAgICAgY2xlYXJzIHRoZSBiYWNrL2ZvcndhcmQg
bmF2aWdhdGlvbiBsaXN0IHdpdGhvdXQgbmF2aWdhdGluZyBhd2F5IGZyb20gdGhlIGN1cnJlbnRs
eQorICAgICAgICBsb2FkZWQgcGFnZS4gTWFraW5nIHRoZSB3ZWIgdmlldyBlbXB0eSBjYW4gYmUg
YWNoaWV2ZWQgYnkgbG9hZGluZyBhYm91dDpibGFuayBiZWZvcmUKKyAgICAgICAgdXNpbmcgdGhl
IG5ldyBmdW5jdGlvbiB0byBjbGVhciB0aGUgc3RhdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xl
YXJfc2Vzc2lvbl9zdGF0ZSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXcuaDogQWRkIHdlYmtpdF93ZWJfdmlld19jbGVhcl9zdGF0ZSgpIHByb3RvdHlw
ZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3Lmg6IERpdHRvLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpjbGVhclNlc3Npb25TdGF0ZSk6IEFkZGVkLgorCiAyMDE5LTAxLTEwICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhOXSBDaGFu
Z2UgdGhlIG5vbmNlIGluIHRoZSBDVEFQIGtJbml0IGNvbW1hbmQgdG8gd2VhayByYW5kb20gdmFs
dWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZp
ZXcuY3BwCmluZGV4IDY3MjAxZDg5ZWFhMWYzZjIwZGY4YjkxZjFkYTE1ZDljMjU4YjYzOGYuLjQ0
Mzk3OWY1ZWUxZjA0M2JhZDU0ZmM5YjYxMDAxMTMzNGFiN2ExODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCkBAIC00MTQyLDYg
KzQxNDIsMjUgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVzdG9yZV9zZXNzaW9uX3N0YXRlKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYlZpZXcKICAgICBnZXRQYWdlKHdlYlZpZXcp
LnJlc3RvcmVGcm9tU2Vzc2lvblN0YXRlKHdlYmtpdFdlYlZpZXdTZXNzaW9uU3RhdGVHZXRTZXNz
aW9uU3RhdGUoc3RhdGUpLCBmYWxzZSk7CiB9CiAKKy8qKgorICogd2Via2l0X3dlYl92aWV3X2Ns
ZWFyX3Nlc3Npb25fc3RhdGU6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqCisg
KiBDbGVhciB0aGUgQHdlYl92aWV3IHNlc3Npb24gc3RhdGUuCisgKgorICogTm90ZSB0aGF0IHRo
ZSBjdXJyZW50bHkgbG9hZGVkIHBhZ2UgaXMgKm5vdCogY2hhbmdlZCwgYW5kIGluIG9yZGVyIHRv
IGNsZWFyIHRoZSBjb250ZW50cworICogYmVpbmcgZGlzcGxheWVkIHdlYmtpdF93ZWJfdmlld19s
b2FkX3VyaSgpIHNob3VsZCBiZSB1c2VkIHRvIGxvYWQgdGhlIGBhYm91dDpibGFua2AKKyAqIHJl
c291cmNlLgorICoKKyAqIFNpbmNlOiAyLjI0CisgKi8KK3ZvaWQgd2Via2l0X3dlYl92aWV3X2Ns
ZWFyX3Nlc3Npb25fc3RhdGUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBnX3JldHVy
bl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisKKyAgICBnZXRQYWdlKHdl
YlZpZXcpLmNsZWFyU2Vzc2lvblN0YXRlKCk7Cit9CisKICNpZiBQTEFURk9STShXUEUpCiAvKioK
ICAqIHdlYmtpdF93ZWJfdmlld19hZGRfZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNrOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRleCA4YzIx
OWEzYjAwODU5OWQ1NjQxYzkwMTRkNTE3N2FjZDExYmI2MGI1Li44MmQ2ZjQ2NTcwMzZkOTQ5ZWVi
NjE0ZjEyZTRkYjZlOWQzODUzM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXcuaApAQCAtNTUyLDYgKzU1Miw5IEBAIFdFQktJVF9BUEkgdm9p
ZAogd2Via2l0X3dlYl92aWV3X3Jlc3RvcmVfc2Vzc2lvbl9zdGF0ZSAgICAgICAgICAgICAgICAo
V2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJWaWV3U2Vzc2lvblN0
YXRlICpzdGF0ZSk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X2NsZWFyX3Nl
c3Npb25fc3RhdGUgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAq
d2ViX3ZpZXcpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2Vj
dGlvbnMudHh0CmluZGV4IDc1NmFhYTRkZTcyZGE1YmI3M2M3MGZmYTBjZTg0NmFmZWU0OTMzZWYu
LjAxM2Q4MGRhNWRkMzdiOWQwMDA1YzM1Mzk1NjlkOGMzNzE4ODcxYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9u
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstNC4wLXNlY3Rpb25zLnR4dApAQCAtMjMzLDYgKzIzMyw3IEBAIHdlYmtpdF93ZWJfdmlld19p
c19lZGl0YWJsZQogd2Via2l0X3dlYl92aWV3X2dldF9lZGl0b3Jfc3RhdGUKIHdlYmtpdF93ZWJf
dmlld19nZXRfc2Vzc2lvbl9zdGF0ZQogd2Via2l0X3dlYl92aWV3X3Jlc3RvcmVfc2Vzc2lvbl9z
dGF0ZQord2Via2l0X3dlYl92aWV3X2NsZWFyX3Nlc3Npb25fc3RhdGUKIHdlYmtpdF93ZWJfdmll
d19nZXRfbWFpbl9yZXNvdXJjZQogCiA8U1VCU0VDVElPTiBXZWJLaXRKYXZhc2NyaXB0UmVzdWx0
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJW
aWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaApp
bmRleCA0MTAyYTc1MjZkNmJkZjAxM2NiYjkwNGE1MjQyNWQ2MWQxMmUzY2Q5Li4wYTc3YjQ4ZGY0
M2I3YjZkMjIzMDQwNGZlNTI1Y2YzZWE2NGQwZjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaApAQCAtNTA3LDYgKzUwNyw5IEBAIFdFQktJ
VF9BUEkgdm9pZAogd2Via2l0X3dlYl92aWV3X3Jlc3RvcmVfc2Vzc2lvbl9zdGF0ZSAgICAgICAg
ICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJWaWV3
U2Vzc2lvblN0YXRlICpzdGF0ZSk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3
X2NsZWFyX3Nlc3Npb25fc3RhdGUgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAg
ICAgICAgICAqd2ViX3ZpZXcpOworCiBXRUJLSVRfQVBJIGd1aW50CiB3ZWJraXRfd2ViX3ZpZXdf
YWRkX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFjayAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAg
ICAgICAgICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViS2l0RnJhbWVEaXNwbGF5ZWRDYWxsYmFjayBjYWxsYmFjaywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMC4x
LXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUt
MC4xLXNlY3Rpb25zLnR4dAppbmRleCA2MjhkYjQyNTJhNGQyYmY0OGY0OTBkYTU0MDg3YWM0YzJj
OTViYzkxLi5hZjM0MjFhODhiYjEzYWUzNWU1Njk4YzA4MWMyNDE3Yzc3NWFlMjI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTAuMS1zZWN0aW9u
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0wLjEt
c2VjdGlvbnMudHh0CkBAIC0yMDMsNiArMjAzLDcgQEAgd2Via2l0X3dlYl92aWV3X2lzX2VkaXRh
YmxlCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRvcl9zdGF0ZQogd2Via2l0X3dlYl92aWV3X2dl
dF9zZXNzaW9uX3N0YXRlCiB3ZWJraXRfd2ViX3ZpZXdfcmVzdG9yZV9zZXNzaW9uX3N0YXRlCit3
ZWJraXRfd2ViX3ZpZXdfY2xlYXJfc2Vzc2lvbl9zdGF0ZQogd2Via2l0X3dlYl92aWV3X2dldF9t
YWluX3Jlc291cmNlCiB3ZWJraXRfd2ViX3ZpZXdfYWRkX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFj
awogd2Via2l0X3dlYl92aWV3X3JlbW92ZV9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2sKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjMyYmIxNzVmZDE4MmU0ODU5YmFl
MzUyYjExZjE0NWUxZDI4OWM5Mi4uMGFlMjI1YmY4YThjMjNjZTE5NjRjNTEzZTM5MTA0NjYwMTEy
YWE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTgwOCw2ICs4
MDgsNyBAQCBwdWJsaWM6CiAKICAgICBTZXNzaW9uU3RhdGUgc2Vzc2lvblN0YXRlKFdURjo6RnVu
Y3Rpb248Ym9vbCAoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpPiYmID0gbnVsbHB0cikgY29uc3Q7
CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gcmVzdG9yZUZyb21TZXNzaW9uU3RhdGUoU2Vz
c2lvblN0YXRlLCBib29sIG5hdmlnYXRlKTsKKyAgICB2b2lkIGNsZWFyU2Vzc2lvblN0YXRlKCkg
eyBiYWNrRm9yd2FyZENsZWFyKCk7IH0KIAogICAgIGJvb2wgc3VwcG9ydHNUZXh0Wm9vbSgpIGNv
bnN0OwogICAgIGRvdWJsZSB0ZXh0Wm9vbUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFpv
b21GYWN0b3I7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAyZTNhNTFjNzAyZWJlYmRiYjhhM2ExMzczOWM2MDkyMmYzNWM4YzM2Li4zMzIzZjRl
YWEzYjgyZWVhNmMwMjIzYWY4MDZhYTZjZTBiMGZmZDQ0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDEtMTEg
IEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBb
V1BFXVtHVEtdIEFkZCBhIG1lY2hhbmlzbSB0byByZXNldC9jbGVhciB0aGUgV2ViIHZpZXcgc2Vz
c2lvbiBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkzMzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEJhY2tGb3J3YXJkTGlzdC5j
cHA6CisgICAgICAgICh0ZXN0V2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZSk6IFRlc3QgdGhhdCB0
aGUgYmFjay9mb3J3YXJkIGxpc3QgaGFzIGEgc2luZ2xlIGl0ZW0gYWZ0ZXIKKyAgICAgICAgY2xl
YXJpbmcgdGhlIHNlc3Npb24gc3RhdGUsIGFuZCB0aGF0IHRoZSBmdW5jdGlvbnMgd2Via2l0X3dl
Yl92aWV3X2Nhbl9nb19iYWNrKCkgYW5kCisgICAgICAgIHdlYmtpdF93ZWJfdmlld19jYW5fZ29f
Zm9yd2FyZCgpIHJldHVybiBmYWxzZSBhY2NvcmRpbmdseS4KKwogMjAxOS0wMS0xMCAgUnlhbiBI
YWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXgg
dHlwbyB0aGF0IGJyZWFrcyBkYXNoYm9hcmQgbGluay4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0QmFja0ZvcndhcmRMaXN0LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0QmFja0ZvcndhcmRMaXN0LmNwcApp
bmRleCA4NWQyZmMwMjJhMDE5YWExN2U1MGJlYWJlYjM4N2JhYTUyZDdjNmJlLi5mMWRiNmE5Njg1
NDNiMDc4MDU0YjZhYjI3OTE3OWY4ZTk4YTU2YzI3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEJhY2tGb3J3YXJkTGlzdC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RCYWNrRm9yd2FyZExpc3QuY3Bw
CkBAIC0zMjksNiArMzI5LDEzIEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRXZWJWaWV3U2Vzc2lv
blN0YXRlKEJhY2tGb3J3YXJkTGlzdFRlc3QqIHRlc3QsIGdjb25zdHBvaW50CiAgICAgQmFja0Zv
cndhcmRMaXN0VGVzdDo6Y2hlY2tJdGVtKHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfY3Vy
cmVudF9pdGVtKGJmTGlzdCksICJQYWdlMiIsIHVyaVBhZ2UyLmRhdGEoKSwgdXJpUGFnZTIuZGF0
YSgpKTsKICAgICBCYWNrRm9yd2FyZExpc3RUZXN0OjpjaGVja0l0ZW0od2Via2l0X2JhY2tfZm9y
d2FyZF9saXN0X2dldF9udGhfaXRlbShiZkxpc3QsIDEpLCAiUGFnZTMiLCB1cmlQYWdlMy5kYXRh
KCksIHVyaVBhZ2UzLmRhdGEoKSk7CiAKKyAgICAvLyBBZnRlciBjbGVhcmluZyB0aGUgbGlzdCB0
aGVyZSB3aWxsIGJlIHN0aWxsIG9uZSBpdGVtIGluIGl0OiB0aGUgY3VycmVudGx5IGxvYWRlZCBw
YWdlLgorICAgIHdlYmtpdF93ZWJfdmlld19jbGVhcl9zZXNzaW9uX3N0YXRlKHZpZXcuZ2V0KCkp
OworICAgIGJmTGlzdCA9IHdlYmtpdF93ZWJfdmlld19nZXRfYmFja19mb3J3YXJkX2xpc3Qodmll
dy5nZXQoKSk7CisgICAgZ19hc3NlcnRfY21wdWludCh3ZWJraXRfYmFja19mb3J3YXJkX2xpc3Rf
Z2V0X2xlbmd0aChiZkxpc3QpLCA9PSwgMSk7CisgICAgZ19hc3NlcnQoIXdlYmtpdF93ZWJfdmll
d19jYW5fZ29fYmFjayh2aWV3LmdldCgpKSk7CisgICAgZ19hc3NlcnQoIXdlYmtpdF93ZWJfdmll
d19jYW5fZ29fZm9yd2FyZCh2aWV3LmdldCgpKSk7CisKICAgICBzdGF0aWMgY29uc3QgY2hhciog
aW52YWxpZFNlc3Npb25EYXRhID0gImludmFsaWQgc2Vzc2lvbiBkYXRhIjsKICAgICBkYXRhID0g
YWRvcHRHUmVmKGdfYnl0ZXNfbmV3X3N0YXRpYyhpbnZhbGlkU2Vzc2lvbkRhdGEsIHN0cmxlbihp
bnZhbGlkU2Vzc2lvbkRhdGEpKSk7CiAgICAgZ19hc3NlcnRfbnVsbCh3ZWJraXRfd2ViX3ZpZXdf
c2Vzc2lvbl9zdGF0ZV9uZXcoZGF0YS5nZXQoKSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358897</attachid>
            <date>2019-01-11 08:10:52 -0800</date>
            <delta_ts>2019-01-24 04:59:16 -0800</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-193349-20190111181051.patch</filename>
            <type>text/plain</type>
            <size>8387</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM2ZDE3YmJmNzBhOGM3MjRk
YjVhYjA1ZGI3YjIwMDMyMWU2ZjY3NmUuLjkzYThjNzBkYjkzMzE3ZmY4NWExMWY1ZmRhZGUxN2Qx
NmU5ODQ5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMDEtMTEgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtHVEtd
IEFkZCBhIG1lY2hhbmlzbSB0byByZXNldC9jbGVhciB0aGUgV2ViIHZpZXcgc2Vzc2lvbiBzdGF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMzQ5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBh
ZGRzIGEgbmV3IHdlYmtpdF93ZWJfdmlld19jbGVhcl9zZXNzaW9uX3N0YXRlKCkgZnVuY3Rpb24g
dG8gdGhlIHB1YmxpYyBBUEkgd2hpY2gKKyAgICAgICAgY2xlYXJzIHRoZSBiYWNrL2ZvcndhcmQg
bmF2aWdhdGlvbiBsaXN0IHdpdGhvdXQgbmF2aWdhdGluZyBhd2F5IGZyb20gdGhlIGN1cnJlbnRs
eQorICAgICAgICBsb2FkZWQgcGFnZS4gTWFraW5nIHRoZSB3ZWIgdmlldyBlbXB0eSBjYW4gYmUg
YWNoaWV2ZWQgYnkgbG9hZGluZyBhYm91dDpibGFuayBiZWZvcmUKKyAgICAgICAgdXNpbmcgdGhl
IG5ldyBmdW5jdGlvbiB0byBjbGVhciB0aGUgc3RhdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xl
YXJfc2Vzc2lvbl9zdGF0ZSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXcuaDogQWRkIHdlYmtpdF93ZWJfdmlld19jbGVhcl9zdGF0ZSgpIHByb3RvdHlw
ZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3Lmg6IERpdHRvLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpjbGVhclNlc3Npb25TdGF0ZSk6IEFkZGVkLgorCiAyMDE5LTAxLTEwICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhOXSBDaGFu
Z2UgdGhlIG5vbmNlIGluIHRoZSBDVEFQIGtJbml0IGNvbW1hbmQgdG8gd2VhayByYW5kb20gdmFs
dWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZp
ZXcuY3BwCmluZGV4IDY3MjAxZDg5ZWFhMWYzZjIwZGY4YjkxZjFkYTE1ZDljMjU4YjYzOGYuLmU0
ZGU3NDUzMzhhMGNjM2JlODkzMWExYjdiYzkzZjJjOWVkNDE0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCkBAIC00MTQyLDYg
KzQxNDIsMjUgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVzdG9yZV9zZXNzaW9uX3N0YXRlKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYlZpZXcKICAgICBnZXRQYWdlKHdlYlZpZXcp
LnJlc3RvcmVGcm9tU2Vzc2lvblN0YXRlKHdlYmtpdFdlYlZpZXdTZXNzaW9uU3RhdGVHZXRTZXNz
aW9uU3RhdGUoc3RhdGUpLCBmYWxzZSk7CiB9CiAKKy8qKgorICogd2Via2l0X3dlYl92aWV3X2Ns
ZWFyX3Nlc3Npb25fc3RhdGU6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqCisg
KiBDbGVhciB0aGUgQHdlYl92aWV3IHNlc3Npb24gc3RhdGUuCisgKgorICogTm90ZSB0aGF0IHRo
ZSBjdXJyZW50bHkgbG9hZGVkIHBhZ2UgaXMgKm5vdCogY2hhbmdlZCwgYW5kIHRoZSBiYWNrLWZv
cndhcmQgbGlzdCB3aWxsIGNvbnRhaW4KKyAqIG9uZSBlbGVtZW50IGZvciBpdC4gSW4gb3JkZXIg
dG8gY2xlYXIgdGhlIGNvbnRlbnRzIGJlaW5nIGRpc3BsYXllZCB3ZWJraXRfd2ViX3ZpZXdfbG9h
ZF91cmkoKQorICogY2FuIGJlIHVzZWQgYmVmb3JlaGFuZCB0byBsb2FkIHRoZSBgYWJvdXQ6Ymxh
bmtgIHJlc291cmNlLgorICoKKyAqIFNpbmNlOiAyLjI0CisgKi8KK3ZvaWQgd2Via2l0X3dlYl92
aWV3X2NsZWFyX3Nlc3Npb25fc3RhdGUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBn
X3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisKKyAgICBnZXRQ
YWdlKHdlYlZpZXcpLmNsZWFyU2Vzc2lvblN0YXRlKCk7Cit9CisKICNpZiBQTEFURk9STShXUEUp
CiAvKioKICAqIHdlYmtpdF93ZWJfdmlld19hZGRfZnJhbWVfZGlzcGxheWVkX2NhbGxiYWNrOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRl
eCA4YzIxOWEzYjAwODU5OWQ1NjQxYzkwMTRkNTE3N2FjZDExYmI2MGI1Li44MmQ2ZjQ2NTcwMzZk
OTQ5ZWViNjE0ZjEyZTRkYjZlOWQzODUzM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaApAQCAtNTUyLDYgKzU1Miw5IEBAIFdFQktJVF9B
UEkgdm9pZAogd2Via2l0X3dlYl92aWV3X3Jlc3RvcmVfc2Vzc2lvbl9zdGF0ZSAgICAgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJWaWV3U2Vz
c2lvblN0YXRlICpzdGF0ZSk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X2Ns
ZWFyX3Nlc3Npb25fc3RhdGUgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
ICAgICAqd2ViX3ZpZXcpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9u
cy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00
LjAtc2VjdGlvbnMudHh0CmluZGV4IDc1NmFhYTRkZTcyZGE1YmI3M2M3MGZmYTBjZTg0NmFmZWU0
OTMzZWYuLjAxM2Q4MGRhNWRkMzdiOWQwMDA1YzM1Mzk1NjlkOGMzNzE4ODcxYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1z
ZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dApAQCAtMjMzLDYgKzIzMyw3IEBAIHdlYmtpdF93ZWJf
dmlld19pc19lZGl0YWJsZQogd2Via2l0X3dlYl92aWV3X2dldF9lZGl0b3Jfc3RhdGUKIHdlYmtp
dF93ZWJfdmlld19nZXRfc2Vzc2lvbl9zdGF0ZQogd2Via2l0X3dlYl92aWV3X3Jlc3RvcmVfc2Vz
c2lvbl9zdGF0ZQord2Via2l0X3dlYl92aWV3X2NsZWFyX3Nlc3Npb25fc3RhdGUKIHdlYmtpdF93
ZWJfdmlld19nZXRfbWFpbl9yZXNvdXJjZQogCiA8U1VCU0VDVElPTiBXZWJLaXRKYXZhc2NyaXB0
UmVzdWx0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJL
aXRXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZp
ZXcuaAppbmRleCA0MTAyYTc1MjZkNmJkZjAxM2NiYjkwNGE1MjQyNWQ2MWQxMmUzY2Q5Li4wYTc3
YjQ4ZGY0M2I3YjZkMjIzMDQwNGZlNTI1Y2YzZWE2NGQwZjMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaApAQCAtNTA3LDYgKzUwNyw5IEBA
IFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3dlYl92aWV3X3Jlc3RvcmVfc2Vzc2lvbl9zdGF0ZSAg
ICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRX
ZWJWaWV3U2Vzc2lvblN0YXRlICpzdGF0ZSk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dl
Yl92aWV3X2NsZWFyX3Nlc3Npb25fc3RhdGUgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmll
dyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCiBXRUJLSVRfQVBJIGd1aW50CiB3ZWJraXRfd2Vi
X3ZpZXdfYWRkX2ZyYW1lX2Rpc3BsYXllZF9jYWxsYmFjayAgICAgICAgIChXZWJLaXRXZWJWaWV3
ICAgICAgICAgICAgICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0RnJhbWVEaXNwbGF5ZWRDYWxsYmFjayBjYWxs
YmFjaywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93
cGUtMC4xLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9j
cy93cGUtMC4xLXNlY3Rpb25zLnR4dAppbmRleCA2MjhkYjQyNTJhNGQyYmY0OGY0OTBkYTU0MDg3
YWM0YzJjOTViYzkxLi5hZjM0MjFhODhiYjEzYWUzNWU1Njk4YzA4MWMyNDE3Yzc3NWFlMjI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTAuMS1z
ZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dw
ZS0wLjEtc2VjdGlvbnMudHh0CkBAIC0yMDMsNiArMjAzLDcgQEAgd2Via2l0X3dlYl92aWV3X2lz
X2VkaXRhYmxlCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRvcl9zdGF0ZQogd2Via2l0X3dlYl92
aWV3X2dldF9zZXNzaW9uX3N0YXRlCiB3ZWJraXRfd2ViX3ZpZXdfcmVzdG9yZV9zZXNzaW9uX3N0
YXRlCit3ZWJraXRfd2ViX3ZpZXdfY2xlYXJfc2Vzc2lvbl9zdGF0ZQogd2Via2l0X3dlYl92aWV3
X2dldF9tYWluX3Jlc291cmNlCiB3ZWJraXRfd2ViX3ZpZXdfYWRkX2ZyYW1lX2Rpc3BsYXllZF9j
YWxsYmFjawogd2Via2l0X3dlYl92aWV3X3JlbW92ZV9mcmFtZV9kaXNwbGF5ZWRfY2FsbGJhY2sK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjMyYmIxNzVmZDE4MmU0
ODU5YmFlMzUyYjExZjE0NWUxZDI4OWM5Mi4uMGFlMjI1YmY4YThjMjNjZTE5NjRjNTEzZTM5MTA0
NjYwMTEyYWE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTgw
OCw2ICs4MDgsNyBAQCBwdWJsaWM6CiAKICAgICBTZXNzaW9uU3RhdGUgc2Vzc2lvblN0YXRlKFdU
Rjo6RnVuY3Rpb248Ym9vbCAoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpPiYmID0gbnVsbHB0cikg
Y29uc3Q7CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gcmVzdG9yZUZyb21TZXNzaW9uU3Rh
dGUoU2Vzc2lvblN0YXRlLCBib29sIG5hdmlnYXRlKTsKKyAgICB2b2lkIGNsZWFyU2Vzc2lvblN0
YXRlKCkgeyBiYWNrRm9yd2FyZENsZWFyKCk7IH0KIAogICAgIGJvb2wgc3VwcG9ydHNUZXh0Wm9v
bSgpIGNvbnN0OwogICAgIGRvdWJsZSB0ZXh0Wm9vbUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1f
dGV4dFpvb21GYWN0b3I7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAyZTNhNTFjNzAyZWJlYmRiYjhhM2ExMzczOWM2MDkyMmYzNWM4YzM2Li4z
MzIzZjRlYWEzYjgyZWVhNmMwMjIzYWY4MDZhYTZjZTBiMGZmZDQ0IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTkt
MDEtMTEgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbV1BFXVtHVEtdIEFkZCBhIG1lY2hhbmlzbSB0byByZXNldC9jbGVhciB0aGUgV2ViIHZp
ZXcgc2Vzc2lvbiBzdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkzMzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEJhY2tGb3J3YXJk
TGlzdC5jcHA6CisgICAgICAgICh0ZXN0V2ViS2l0V2ViVmlld1Nlc3Npb25TdGF0ZSk6IFRlc3Qg
dGhhdCB0aGUgYmFjay9mb3J3YXJkIGxpc3QgaGFzIGEgc2luZ2xlIGl0ZW0gYWZ0ZXIKKyAgICAg
ICAgY2xlYXJpbmcgdGhlIHNlc3Npb24gc3RhdGUsIGFuZCB0aGF0IHRoZSBmdW5jdGlvbnMgd2Vi
a2l0X3dlYl92aWV3X2Nhbl9nb19iYWNrKCkgYW5kCisgICAgICAgIHdlYmtpdF93ZWJfdmlld19j
YW5fZ29fZm9yd2FyZCgpIHJldHVybiBmYWxzZSBhY2NvcmRpbmdseS4KKwogMjAxOS0wMS0xMCAg
UnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCBmaXggdHlwbyB0aGF0IGJyZWFrcyBkYXNoYm9hcmQgbGluay4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0QmFja0ZvcndhcmRMaXN0LmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0QmFja0ZvcndhcmRMaXN0
LmNwcAppbmRleCA4NWQyZmMwMjJhMDE5YWExN2U1MGJlYWJlYjM4N2JhYTUyZDdjNmJlLi5mMzQ1
MzM3MWRjMzBiN2RiMDg1MWI3YzI1ODM3OTI1YzZiNDRjZjZlIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEJhY2tGb3J3YXJkTGlzdC5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RCYWNrRm9yd2FyZExp
c3QuY3BwCkBAIC0zMjksNiArMzI5LDE0IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRXZWJWaWV3
U2Vzc2lvblN0YXRlKEJhY2tGb3J3YXJkTGlzdFRlc3QqIHRlc3QsIGdjb25zdHBvaW50CiAgICAg
QmFja0ZvcndhcmRMaXN0VGVzdDo6Y2hlY2tJdGVtKHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9n
ZXRfY3VycmVudF9pdGVtKGJmTGlzdCksICJQYWdlMiIsIHVyaVBhZ2UyLmRhdGEoKSwgdXJpUGFn
ZTIuZGF0YSgpKTsKICAgICBCYWNrRm9yd2FyZExpc3RUZXN0OjpjaGVja0l0ZW0od2Via2l0X2Jh
Y2tfZm9yd2FyZF9saXN0X2dldF9udGhfaXRlbShiZkxpc3QsIDEpLCAiUGFnZTMiLCB1cmlQYWdl
My5kYXRhKCksIHVyaVBhZ2UzLmRhdGEoKSk7CiAKKyAgICAvLyBBZnRlciBjbGVhcmluZyB0aGUg
bGlzdCB0aGVyZSB3aWxsIGJlIHN0aWxsIG9uZSBpdGVtIGluIGl0OiB0aGUgY3VycmVudGx5IGxv
YWRlZCBwYWdlLgorICAgIHdlYmtpdF93ZWJfdmlld19jbGVhcl9zZXNzaW9uX3N0YXRlKHZpZXcu
Z2V0KCkpOworICAgIGJmTGlzdCA9IHdlYmtpdF93ZWJfdmlld19nZXRfYmFja19mb3J3YXJkX2xp
c3Qodmlldy5nZXQoKSk7CisgICAgZ19hc3NlcnRfY21wdWludCh3ZWJraXRfYmFja19mb3J3YXJk
X2xpc3RfZ2V0X2xlbmd0aChiZkxpc3QpLCA9PSwgMSk7CisgICAgQmFja0ZvcndhcmRMaXN0VGVz
dDo6Y2hlY2tJdGVtKHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfY3VycmVudF9pdGVtKGJm
TGlzdCksICJQYWdlMiIsIHVyaVBhZ2UyLmRhdGEoKSwgdXJpUGFnZTIuZGF0YSgpKTsKKyAgICBn
X2Fzc2VydF9mYWxzZSh3ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2JhY2sodmlldy5nZXQoKSkpOwor
ICAgIGdfYXNzZXJ0X2ZhbHNlKHdlYmtpdF93ZWJfdmlld19jYW5fZ29fZm9yd2FyZCh2aWV3Lmdl
dCgpKSk7CisKICAgICBzdGF0aWMgY29uc3QgY2hhciogaW52YWxpZFNlc3Npb25EYXRhID0gImlu
dmFsaWQgc2Vzc2lvbiBkYXRhIjsKICAgICBkYXRhID0gYWRvcHRHUmVmKGdfYnl0ZXNfbmV3X3N0
YXRpYyhpbnZhbGlkU2Vzc2lvbkRhdGEsIHN0cmxlbihpbnZhbGlkU2Vzc2lvbkRhdGEpKSk7CiAg
ICAgZ19hc3NlcnRfbnVsbCh3ZWJraXRfd2ViX3ZpZXdfc2Vzc2lvbl9zdGF0ZV9uZXcoZGF0YS5n
ZXQoKSkpOwo=
</data>
<flag name="review"
          id="375716"
          type_id="1"
          status="-"
          setter="mcatanzaro"
    />
    <flag name="commit-queue"
          id="375717"
          type_id="3"
          status="-"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>