<?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>153210</bug_id>
          
          <creation_ts>2016-01-18 13:02:52 -0800</creation_ts>
          <short_desc>ASSERTION FAILED: !m_mainFrame-&gt;coreFrame()-&gt;loader().frameHasLoaded() || !m_pendingNavigationID when reloading page while a page is loading</short_desc>
          <delta_ts>2018-04-03 23:04:40 -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>Other</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugzilla.redhat.com/show_bug.cgi?id=1560312</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ht990332</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mcrha</cc>
    
    <cc>tpopela</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1156435</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-01-18 13:02:52 -0800</bug_when>
    <thetext>The little test program pasted below, which calls webkit_web_view_load_uri() twice in a row and webkit_web_view_reload() on LOAD_FINISHED, triggers the following assert:

ASSERTION FAILED: !m_mainFrame-&gt;coreFrame()-&gt;loader().frameHasLoaded() || !m_pendingNavigationID
../../Source/WebKit2/WebProcess/WebPage/WebPage.cpp(1171) : void WebKit::WebPage::reload(uint64_t, bool, bool, const SandboxExtension::Handle &amp;)

We should handle this gracefully. If this is really a programmer error (and while the test program is nonsensical, I do not believe this should be an error) then we should emit a critical warning rather than assert.


/* gcc test.c `pkg-config --cflags --libs webkit2gtk-4.0` */

#include &lt;gtk/gtk.h&gt;
#include &lt;stdio.h&gt;
#include &lt;webkit2/webkit2.h&gt;

void
load_changed_cb (WebKitWebView   *web_view,
                 WebKitLoadEvent  load_event,
                 gpointer         user_data)
{

  if (load_event == WEBKIT_LOAD_FINISHED)
    {
      webkit_web_view_reload (web_view);
      return;
    }
}

int
main (void)
{
  GtkWidget *web_view;
  GtkWidget *window;

  gtk_init (NULL, NULL);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

  web_view = webkit_web_view_new ();
  g_signal_connect (web_view, &quot;load-changed&quot;, G_CALLBACK (load_changed_cb), NULL);
  webkit_web_view_load_uri (WEBKIT_WEB_VIEW (web_view), &quot;https://www.gnome.org&quot;);
  webkit_web_view_load_uri (WEBKIT_WEB_VIEW (web_view), &quot;https://www.webkit.org&quot;);
  gtk_container_add (GTK_CONTAINER (window), web_view);

  gtk_widget_set_size_request (web_view, 600, 500);
  gtk_widget_show_all (window);

  gtk_main ();

  return 0;
}

ASSERTION FAILED: !m_mainFrame-&gt;coreFrame()-&gt;loader().frameHasLoaded() || !m_pendingNavigationID
../../Source/WebKit2/WebProcess/WebPage/WebPage.cpp(1171) : void WebKit::WebPage::reload(uint64_t, bool, bool, const SandboxExtension::Handle &amp;)
1   0x7f2c14c552dd /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x1d) [0x7f2c14c552dd]
2   0x7f2c195f7dd3 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit7WebPage6reloadEmbbRKNS_16SandboxExtension6HandleE+0xd3) [0x7f2c195f7dd3]
3   0x7f2c198849ca /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC22callMemberFunctionImplIN6WebKit7WebPageEMS2_FvmbbRKNS1_16SandboxExtension6HandleEESt5tupleIJmbbS4_EEJLm0ELm1ELm2ELm3EEEEvPT_T0_OT1_St14index_sequenceIJXspT2_EEE+0xfa) [0x7f2c198849ca]
4   0x7f2c198842ec /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC18callMemberFunctionIN6WebKit7WebPageEMS2_FvmbbRKNS1_16SandboxExtension6HandleEESt5tupleIJmbbS4_EESt19make_index_sequenceILm4EEEEvOT1_PT_T0_+0x6c) [0x7f2c198842ec]
5   0x7f2c1987946a /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC13handleMessageIN8Messages7WebPage6ReloadEN6WebKit7WebPageEMS5_FvmbbRKNS4_16SandboxExtension6HandleEEEEvRNS_14MessageDecoderEPT0_T1_+0x10a) [0x7f2c1987946a]
6   0x7f2c19874302 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit7WebPage24didReceiveWebPageMessageERN3IPC10ConnectionERNS1_14MessageDecoderE+0xf92) [0x7f2c19874302]
7   0x7f2c195ff8da /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit7WebPage17didReceiveMessageERN3IPC10ConnectionERNS1_14MessageDecoderE+0x17a) [0x7f2c195ff8da]
8   0x7f2c195ff924 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZThn16_N6WebKit7WebPage17didReceiveMessageERN3IPC10ConnectionERNS1_14MessageDecoderE+0x34) [0x7f2c195ff924]
9   0x7f2c191cff68 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC18MessageReceiverMap15dispatchMessageERNS_10ConnectionERNS_14MessageDecoderE+0x118) [0x7f2c191cff68]
10  0x7f2c194541fd /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit10WebProcess17didReceiveMessageERN3IPC10ConnectionERNS1_14MessageDecoderE+0x3d) [0x7f2c194541fd]
11  0x7f2c191ba8c3 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC10Connection15dispatchMessageERNS_14MessageDecoderE+0x33) [0x7f2c191ba8c3]
12  0x7f2c191b5376 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC10Connection15dispatchMessageESt10unique_ptrINS_14MessageDecoderESt14default_deleteIS2_EE+0x166) [0x7f2c191b5376]
13  0x7f2c191ba9eb /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC10Connection18dispatchOneMessageEv+0x11b) [0x7f2c191ba9eb]
14  0x7f2c191bd4ad /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(+0x3b014ad) [0x7f2c191bd4ad]
15  0x7f2c191bd2cd /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(+0x3b012cd) [0x7f2c191bd2cd]
16  0x7f2c1910a28e /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZNKSt8functionIFvvEEclEv+0x3e) [0x7f2c1910a28e]
17  0x7f2c14c72ada /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(_ZN3WTF7RunLoop11performWorkEv+0x13a) [0x7f2c14c72ada]
18  0x7f2c14cb5fac /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(+0x1999fac) [0x7f2c14cb5fac]
19  0x7f2c14cb5f88 /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(+0x1999f88) [0x7f2c14cb5f88]
20  0x7f2c14cb5f61 /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(+0x1999f61) [0x7f2c14cb5f61]
21  0x7f2c14cb5f08 /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(+0x1999f08) [0x7f2c14cb5f08]
22  0x7f2c10b6e632 /home/mcatanzaro/src/jhbuild/install/lib/libglib-2.0.so.0(+0x47632) [0x7f2c10b6e632]
23  0x7f2c10b70ded /home/mcatanzaro/src/jhbuild/install/lib/libglib-2.0.so.0(g_main_context_dispatch+0x23) [0x7f2c10b70ded]
24  0x7f2c10b70f36 /home/mcatanzaro/src/jhbuild/install/lib/libglib-2.0.so.0(+0x49f36) [0x7f2c10b70f36]
25  0x7f2c10b712ff /home/mcatanzaro/src/jhbuild/install/lib/libglib-2.0.so.0(g_main_loop_run+0x18a) [0x7f2c10b712ff]
26  0x7f2c14cb589f /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(_ZN3WTF7RunLoop3runEv+0xaf) [0x7f2c14cb589f]
27  0x7f2c197bcf1d /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit16ChildProcessMainINS_10WebProcessENS_14WebProcessMainEEEiiPPc+0xfd) [0x7f2c197bcf1d]
28  0x7f2c197bce0b /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(WebProcessMainUnix+0x1b) [0x7f2c197bce0b]
29  0x400c26 /home/mcatanzaro/src/jhbuild/install/libexec/webkit2gtk-4.0/WebKitWebProcess(main+0x46) [0x400c26]
30  0x7f2c0a623580 /lib64/libc.so.6(__libc_start_main+0xf0) [0x7f2c0a623580]
31  0x400b09 /home/mcatanzaro/src/jhbuild/install/libexec/webkit2gtk-4.0/WebKitWebProcess(_start+0x29) [0x400b09]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401077</commentid>
    <comment_count>1</comment_count>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2018-02-21 04:24:32 -0800</bug_when>
    <thetext>I can reproduce this from Evolution as well, when the preview panel is off and when I want to view the message in a separate window. This is with git clone at commit f9379e0855a19767d3a344e574d096cf453694b4:

   Date:   Tue Feb 6 10:55:31 2018 +0000

   [GTK] fast/events/message-channel-gc-4.html is flaky
   https://bugs.webkit.org/show_bug.cgi?id=182104

   ...

   git-svn-id: http://svn.webkit.org/repository/webkit/trunk@228154 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Could you do anything about it, before it gets into the stable, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402018</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-02-26 04:24:36 -0800</bug_when>
    <thetext>This is not GTK specific. This is what happens:

 1. gnome.org request is made
 2. webkit.org request is made
 3. gnome.org request is stopped, so finished is called (didFailProvisionalLoad in C API)
 4. Reload is called, but the URL is empty because the provisional load failed.
 5. In the web process WebPage::reload() creates a new navigation ID thta is set as pending and FrameLoader::reload() is called, but it returns early because the URL is empty. Because of this createDocumentLoader is not called and the pending navigation not reset.
 6. webkit.org request finishes because the reload did nothing, so it wasn&apos;t cancelled. 
 7. Reload is called again and WebPage::reload() asserts because it still has a pending navigation from previous reload.

This might be a more general problem, all other load methods in WebPage expect that the pending navigation is reset after doing the load, but FrameLoader can return early before creating the document loader in other cases too, no only in case of reload. 

There are different ways to solve this:

 - We could simply check after calling reload() in WebPage::reload() is the pending navigation has been reset or not, and reset it, assuming that the reload simply didn&apos;t happen in such case.

 - I don&apos;t know if the early return in FrameLoader::reload() when the url is empty is correct. The comment says that&apos;s expected to happen when a window is created by javascript, but this is not the case. That code has always been there, though (since 2005). Removing the early return fixes the crash.

 - We could add another callback to the client to notify the WebPage from the frame loader when a load or reload request is ignored. This might be a more general solution if this is a problem for other load methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402022</commentid>
    <comment_count>3</comment_count>
      <attachid>334612</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-02-26 04:34:49 -0800</bug_when>
    <thetext>Created attachment 334612
Patch

This patch includes unit tests for WebKit C API and WebKitGLib. It also includes the simples fix. I don&apos;t know if this is the best (or even right) solution, but at least the unit tests will help to reproduce the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402844</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-03-01 01:22:46 -0800</bug_when>
    <thetext>Alex, any comment about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402895</commentid>
    <comment_count>5</comment_count>
      <attachid>334612</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-03-01 08:31:50 -0800</bug_when>
    <thetext>Comment on attachment 334612
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1377
&gt; +    if (m_pendingNavigationID) {

We just set m_pendingNavigationID 3 lines earlier.  Does beginLoad or reloadFrame cause it to be changed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402901</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-03-01 08:41:02 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #5)
&gt; Comment on attachment 334612 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=334612&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1377
&gt; &gt; +    if (m_pendingNavigationID) {
&gt; 
&gt; We just set m_pendingNavigationID 3 lines earlier.  Does beginLoad or
&gt; reloadFrame cause it to be changed?

It&apos;s expected to be reset by FrameLoader::reload() when the document loader is created, but that&apos;s not happening because of the early return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409844</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-28 08:03:37 -0700</bug_when>
    <thetext>Alex?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411440</commentid>
    <comment_count>8</comment_count>
      <attachid>334612</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-04-03 10:11:06 -0700</bug_when>
    <thetext>Comment on attachment 334612
Patch

Eeek, this is causing https://bugzilla.redhat.com/show_bug.cgi?id=1560312 so it&apos;s more important than I had assumed. Still needs owner approval.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411657</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-03 23:03:04 -0700</bug_when>
    <thetext>Committed r230245: &lt;https://trac.webkit.org/changeset/230245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411659</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-03 23:04:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/39166633&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334612</attachid>
            <date>2018-02-26 04:34:49 -0800</date>
            <delta_ts>2018-04-03 12:51:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-reload-crash.diff</filename>
            <type>text/plain</type>
            <size>6995</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZTA2ZTFhMzI2YTAuLjMyODhkMDc0OTUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDE4LTAyLTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiAhbV9tYWluRnJhbWUtPmNvcmVGcmFt
ZSgpLT5sb2FkZXIoKS5mcmFtZUhhc0xvYWRlZCgpIHx8ICFtX3BlbmRpbmdOYXZpZ2F0aW9uSUQg
d2hlbiByZWxvYWRpbmcgcGFnZSB3aGlsZSBhIHBhZ2UgaXMgbG9hZGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzMjEwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGFzc2VydCBoYXBwZW5zIHdo
ZW4gV2ViUGFnZTo6cmVsb2FkKCkgaXMgY2FsbGVkIHR3aWNlIGFuZCB0aGUgZmlyc3QgdGltZSB0
aGUgcmVsb2FkIGlzIGlnbm9yZWQgYnkKKyAgICAgICAgRnJhbWVMb2FkZXIgYmVjYXVzZSB0aGUg
ZG9jdW1lbnQgVVJMIGlzIGVtcHR5LiBJbiB0aGF0IGNhc2UgdGhlIHBlbmRpbmcgbmF2aWdhdGlv
biBpcyBub3QgcmVzZXQsIGJlY2F1c2UKKyAgICAgICAgRnJhbWVMb2FkZXI6OnJlbG9hZCgpIHJl
dHVybnMgYmVmb3JlIGNyZWF0aW5nIHRoZSBkb2N1bWVudCBsb2FkZXIuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnJlbG9hZCk6IENoZWNrIGlmIHRoZSBwZW5kaW5nIG5hdmlnYXRpb24gaGFzIGJlZW4gcmVzZXQg
YWZ0ZXIgY2FsbGluZyBGcmFtZUxvYWRlcjo6cmVsb2FkKCkKKyAgICAgICAgYW5kIHJlc2V0IGl0
IG90aGVyd2lzZS4KKwogMjAxOC0wMi0yNSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxl
LmNvbT4KIAogICAgICAgICBGb250IHNtb290aGluZyBkb2Vzbid0IGdldCBkaXNhYmxlZCBpZiB0
aGUgcHJlZmVyZW5jZSBpcyBzZXQgYmVmb3JlIGxhdW5jaGluZyBXZWJDb250ZW50IHByb2Nlc3MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMGMx
YWE5ZTc3ZDYuLjg4YzRjNGZlODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtMTM3Myw2ICsxMzczLDEyIEBAIHZvaWQgV2ViUGFnZTo6cmVs
b2FkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3QgcmVsb2FkT3B0aW9ucywgU2FuZGJv
eEV4dGVuCiAKICAgICBtX3NhbmRib3hFeHRlbnNpb25UcmFja2VyLmJlZ2luTG9hZChtX21haW5G
cmFtZS5nZXQoKSwgV1RGTW92ZShzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSk7CiAgICAgY29yZVBh
Z2UoKS0+dXNlcklucHV0QnJpZGdlKCkucmVsb2FkRnJhbWUobV9tYWluRnJhbWUtPmNvcmVGcmFt
ZSgpLCBPcHRpb25TZXQ8UmVsb2FkT3B0aW9uPjo6ZnJvbVJhdyhyZWxvYWRPcHRpb25zKSk7CisK
KyAgICBpZiAobV9wZW5kaW5nTmF2aWdhdGlvbklEKSB7CisgICAgICAgIC8vIFRoaXMgY2FuIGhh
cHBlbiBpZiBGcmFtZUxvYWRlcjo6cmVsb2FkKCkgcmV0dXJucyBlYXJseSBiZWNhdXNlIHRoZSBk
b2N1bWVudCBVUkwgaXMgZW1wdHkuCisgICAgICAgIC8vIFRoZSByZWxvYWQgZG9lcyBub3RoaW5n
IHNvIHdlIG5lZWQgdG8gcmVzZXQgdGhlIHBlbmRpbmcgbmF2aWdhdGlvbi4gU2VlIHdlYmtpdC5v
cmcvYi8xNTMyMTAuCisgICAgICAgIG1fcGVuZGluZ05hdmlnYXRpb25JRCA9IDA7CisgICAgfQog
fQogCiB2b2lkIFdlYlBhZ2U6OmdvRm9yd2FyZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2
NF90IGJhY2tGb3J3YXJkSXRlbUlEKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGM0OTEwNGFmZmYzLi4zYzQzMDA5YTE0MiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisy
MDE4LTAyLTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiAhbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2Fk
ZXIoKS5mcmFtZUhhc0xvYWRlZCgpIHx8ICFtX3BlbmRpbmdOYXZpZ2F0aW9uSUQgd2hlbiByZWxv
YWRpbmcgcGFnZSB3aGlsZSBhIHBhZ2UgaXMgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzMjEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHVuaXQgdGVzdHMgdG8gV2ViS2l0IEMgQVBJ
IGFuZCBXZWJLaXRHTGliLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
UGFnZUxvYWRCYXNpYy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdExvYWRlckNsaWVudC5jcHA6
CisgICAgICAgIChMb2FkVHdpY2VBbmRSZWxvYWRUZXN0OjpyZWxvYWRPbkZpbmlzaExvYWQpOgor
ICAgICAgICAoTG9hZFR3aWNlQW5kUmVsb2FkVGVzdDo6TG9hZFR3aWNlQW5kUmVsb2FkVGVzdCk6
CisgICAgICAgIChMb2FkVHdpY2VBbmRSZWxvYWRUZXN0Ojp+TG9hZFR3aWNlQW5kUmVsb2FkVGVz
dCk6CisgICAgICAgIChMb2FkVHdpY2VBbmRSZWxvYWRUZXN0Ojp3YWl0VW50aWxGaW5pc2hlZCk6
CisgICAgICAgICh0ZXN0V2ViVmlld0xvYWRUd2ljZUFuZFJlbG9hZCk6CisgICAgICAgIChiZWZv
cmVBbGwpOgorCiAyMDE4LTAyLTI1ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNv
bnkuY29tPgogCiAgICAgICAgIFtXSzJdIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9uZXctd2luZG93
LXJlZGlyZWN0LWhpc3RvcnkuaHRtbCBjcmFzaGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdlTG9hZEJhc2ljLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1BhZ2VMb2FkQmFzaWMuY3BwCmluZGV4IDk3NTBhMThhZWJlLi5jYWQ3
MWZmZjc5NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFn
ZUxvYWRCYXNpYy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFn
ZUxvYWRCYXNpYy5jcHAKQEAgLTE3NCw2ICsxNzQsMzkgQEAgVEVTVChXZWJLaXQsIFBhZ2VSZWxv
YWQpCiAgICAgRVhQRUNUX1RSVUUoV0tVUkxJc0VxdWFsKGFjdGl2ZVVybC5nZXQoKSwgdXJsLmdl
dCgpKSk7CiB9CiAKK1RFU1QoV2ViS2l0LCBQYWdlTG9hZFR3aWNlQW5kUmVsb2FkKQoreworICAg
IFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRDcmVh
dGUoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisKKyAg
ICB0ZXN0MURvbmUgPSBmYWxzZTsKKyAgICBzdGF0aWMgdW5zaWduZWQgbG9hZHNDb3VudCA9IDA7
CisKKyAgICBXS1BhZ2VMb2FkZXJDbGllbnRWMCBsb2FkZXJDbGllbnQ7CisgICAgbWVtc2V0KCZs
b2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKKyAgICBsb2FkZXJDbGllbnQu
YmFzZS52ZXJzaW9uID0gMDsKKyAgICBsb2FkZXJDbGllbnQuYmFzZS5jbGllbnRJbmZvID0gbnVs
bHB0cjsKKyAgICBsb2FkZXJDbGllbnQuZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZv
ckZyYW1lID0gW10oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYg
ZXJyb3IsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykgeworICAg
ICAgICBsb2Fkc0NvdW50Kys7CisgICAgICAgIFdLUGFnZVJlbG9hZChwYWdlKTsKKyAgICB9Owor
ICAgIGxvYWRlckNsaWVudC5kaWRGaW5pc2hMb2FkRm9yRnJhbWUgPSBbXShXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKSB7CisgICAgICAgIGlmICgrK2xvYWRzQ291bnQgPT0gMykgeworICAgICAgICAgICAg
dGVzdDFEb25lID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBXS1BhZ2VSZWxvYWQocGFnZSk7CisgICAgfTsKKyAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xp
ZW50KHdlYlZpZXcucGFnZSgpLCAmbG9hZGVyQ2xpZW50LmJhc2UpOworCisgICAgV0tSZXRhaW5Q
dHI8V0tVUkxSZWY+IHVybDEoQWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNp
bXBsZSIsICJodG1sIikpOworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwyKEFkb3B0V0ss
IFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUyIiwgImh0bWwiKSk7CisgICAgV0tQ
YWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsMS5nZXQoKSk7CisgICAgV0tQYWdlTG9hZFVS
TCh3ZWJWaWV3LnBhZ2UoKSwgdXJsMi5nZXQoKSk7CisKKyAgICBVdGlsOjpydW4oJnRlc3QxRG9u
ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdExvYWRlckNsaWVu
dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdExvYWRlckNs
aWVudC5jcHAKaW5kZXggNzk0NjcwNzE4YTcuLmJmMzcyYTU2MGEwIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdExvYWRlckNsaWVudC5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RMb2FkZXJDbGllbnQu
Y3BwCkBAIC0yMDMsNiArMjAzLDQzIEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3SGlzdG9yeUxv
YWQoTG9hZFRyYWNraW5nVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBhc3NlcnROb3Jt
YWxMb2FkSGFwcGVuZWQodGVzdC0+bV9sb2FkRXZlbnRzKTsKIH0KIAorY2xhc3MgTG9hZFR3aWNl
QW5kUmVsb2FkVGVzdCA6IHB1YmxpYyBXZWJWaWV3VGVzdCB7CitwdWJsaWM6CisgICAgTUFLRV9H
TElCX1RFU1RfRklYVFVSRShMb2FkVHdpY2VBbmRSZWxvYWRUZXN0KTsKKworICAgIHN0YXRpYyB2
b2lkIHJlbG9hZE9uRmluaXNoTG9hZChXZWJLaXRXZWJWaWV3KiB2aWV3LCBXZWJLaXRMb2FkRXZl
bnQgbG9hZEV2ZW50LCBMb2FkVHdpY2VBbmRSZWxvYWRUZXN0KiB0ZXN0KQorICAgIHsKKyAgICAg
ICAgaWYgKCsrdGVzdC0+bV9sb2Fkc0NvdW50ID09IDMpCisgICAgICAgICAgICB0ZXN0LT5xdWl0
TWFpbkxvb3AoKTsKKyAgICAgICAgd2Via2l0X3dlYl92aWV3X3JlbG9hZCh2aWV3KTsKKyAgICB9
CisKKyAgICBMb2FkVHdpY2VBbmRSZWxvYWRUZXN0KCkKKyAgICB7CisgICAgICAgIGdfc2lnbmFs
X2Nvbm5lY3QobV93ZWJWaWV3LCAibG9hZC1jaGFuZ2VkIiwgR19DQUxMQkFDSyhyZWxvYWRPbkZp
bmlzaExvYWQpLCB0aGlzKTsKKyAgICB9CisKKyAgICB+TG9hZFR3aWNlQW5kUmVsb2FkVGVzdCgp
CisgICAgeworICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X21hdGNoZWQobV93
ZWJWaWV3LCBHX1NJR05BTF9NQVRDSF9EQVRBLCAwLCAwLCBudWxscHRyLCBudWxscHRyLCB0aGlz
KTsKKyAgICB9CisKKyAgICB2b2lkIHdhaXRVbnRpbEZpbmlzaGVkKCkKKyAgICB7CisgICAgICAg
IG1fbG9hZHNDb3VudCA9IDA7CisgICAgICAgIGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsK
KyAgICB9CisKKyAgICB1bnNpZ25lZCBtX2xvYWRzQ291bnQgeyAwIH07Cit9OworCitzdGF0aWMg
dm9pZCB0ZXN0V2ViVmlld0xvYWRUd2ljZUFuZFJlbG9hZChMb2FkVHdpY2VBbmRSZWxvYWRUZXN0
KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIHRlc3QtPmxvYWRVUkkoa1NlcnZlci0+Z2V0
VVJJRm9yUGF0aCgiL25vcm1hbCIpLmRhdGEoKSk7CisgICAgdGVzdC0+bG9hZFVSSShrU2VydmVy
LT5nZXRVUklGb3JQYXRoKCIvbm9ybWFsMiIpLmRhdGEoKSk7CisgICAgdGVzdC0+d2FpdFVudGls
RmluaXNoZWQoKTsKK30KKwogY2xhc3MgVmlld1VSSVRyYWNraW5nVGVzdDogcHVibGljIExvYWRU
cmFja2luZ1Rlc3QgewogcHVibGljOgogICAgIE1BS0VfR0xJQl9URVNUX0ZJWFRVUkUoVmlld1VS
SVRyYWNraW5nVGVzdCk7CkBAIC02MTcsNiArNjU0LDcgQEAgdm9pZCBiZWZvcmVBbGwoKQogICAg
IExvYWRUcmFja2luZ1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJwcm9ncmVzcyIsIHRlc3RM
b2FkUHJvZ3Jlc3MpOwogICAgIExvYWRUcmFja2luZ1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIs
ICJyZWxvYWQiLCB0ZXN0V2ViVmlld1JlbG9hZCk7CiAgICAgTG9hZFRyYWNraW5nVGVzdDo6YWRk
KCJXZWJLaXRXZWJWaWV3IiwgImhpc3RvcnktbG9hZCIsIHRlc3RXZWJWaWV3SGlzdG9yeUxvYWQp
OworICAgIExvYWRUd2ljZUFuZFJlbG9hZFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJsb2Fk
LXR3aWNlLWFuZC1yZWxvYWQiLCB0ZXN0V2ViVmlld0xvYWRUd2ljZUFuZFJlbG9hZCk7CiAKICAg
ICAvLyBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgd2ViIHZpZXcgbm90aWZ5Ojp1cmkgc2lnbmFsIGlz
IGNvcnJlY3RseSBlbWl0dGVkCiAgICAgLy8gYW5kIHRoZSB1cmkgaXMgYWxyZWFkeSB1cGRhdGVk
IHdoZW4gbG9hZGVyIGNsaWVudCBzaWduYWxzIGFyZSBlbWl0dGVkLgo=
</data>
<flag name="review"
          id="353357"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>