<?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>119633</bug_id>
          
          <creation_ts>2013-08-09 11:44:10 -0700</creation_ts>
          <short_desc>REGRESSION (r142755): window.open creates an invisible window when width and height are 0</short_desc>
          <delta_ts>2013-08-09 16:43:01 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>rakuco</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>915891</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-09 11:44:10 -0700</bug_when>
    <thetext>javascript:window.open(&quot;http://www.apple.com&quot;, &quot;&quot;, &quot;height=0,width=0&quot;) creates an invisible window in Safari now.

&lt;rdar://problem/14693930&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915893</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-09 11:50:24 -0700</bug_when>
    <thetext>Treating (0, 0) as default size falls apart because windowRect height ends up being 24 here:

    if (features.heightSet)
        windowRect.setHeight(features.height + (windowRect.height() - viewportSize.height()));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915896</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-09 11:54:18 -0700</bug_when>
    <thetext>window.resizeTo is broken too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915900</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-09 11:57:04 -0700</bug_when>
    <thetext>I&apos;m thinking that r142755 should be rolled out entirely, and replaced with a fix in createWindow() function in FrameLoader.cpp:

-    if (features.widthSet)
+    if (features.widthSet &amp;&amp; features.width)
        windowRect.setWidth(features.width + (windowRect.width() - viewportSize.width()));
-    if (features.heightSet)
+    if (features.heightSet &amp;&amp; features.height)
        windowRect.setHeight(features.height + (windowRect.height() - viewportSize.height()));

Allan, does this make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915922</commentid>
    <comment_count>4</comment_count>
      <attachid>208451</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-09 13:42:21 -0700</bug_when>
    <thetext>Created attachment 208451
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915926</commentid>
    <comment_count>5</comment_count>
      <attachid>208451</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-09 13:49:44 -0700</bug_when>
    <thetext>Comment on attachment 208451
proposed fix

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        REGRESSION (r142755): window.open creates an invisible window when width and height are 0

Seems like the bug is when width *or* height is zero. What about small widths and heights that are not zero?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915950</commentid>
    <comment_count>6</comment_count>
      <attachid>208451</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-08-09 14:48:50 -0700</bug_when>
    <thetext>Comment on attachment 208451
proposed fix

Attachment 208451 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/1410299</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915952</commentid>
    <comment_count>7</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-08-09 14:50:18 -0700</bug_when>
    <thetext>I don&apos;t understand how the browser is supposed to be able to guess if default size was requested when the get an openWindow call.

The issue is this:
In many browsers windows that request a specific size are opened in a separate window, but windows that request default size are opened in a tab. This is decided outside of WebKit, and thus WebKit needs to tell the browser that default was requested. If 0x0 is not used, what is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915955</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-09 15:15:00 -0700</bug_when>
    <thetext>Looks like Gtk bot is broken now.

&gt; Seems like the bug is when width *or* height is zero. What about small widths and heights that are not zero?

These are handled in DOMWindow::adjustWindowRect, which enforces a minimum size. Width and height are adjusted to be at least 100.

&gt; In many browsers windows that request a specific size are opened in a separate window, but windows that request default size are opened in a tab.

When WebKit creates a window, it&apos;s before any of this code is run (oldPage-&gt;chrome().createWindow() in FrameLoader.cpp). The window is always created with a default size, by definition of default size, and is then resized by the code this patch touches. Afterwards, it&apos;s displayed with page-&gt;chrome().show().

This has to work in all WebKit based browsers as long as window.open(url, &quot;&quot;, &quot;&quot;) works with no explicit size. We just read the current size from client using page-&gt;chrome().windowRect() and page-&gt;chrome().pageRect(), adjust it to be on screen and to not be too small, and feed back to the client. I find it a bit strange how this logic is split between WebKit and client, but it works.

Are you saying that there are WebKit based browsers that make the decision on whether to put the window in tab based on requested size? Presumably they make the decision in their show() implementation then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915956</commentid>
    <comment_count>9</comment_count>
      <attachid>208451</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-09 15:17:15 -0700</bug_when>
    <thetext>Comment on attachment 208451
proposed fix

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

&gt; Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp:131
&gt; -    if (!ewk_view_setting_enable_auto_resize_window_get(m_view) || rect.isEmpty())
&gt; +    if (!ewk_view_setting_enable_auto_resize_window_get(m_view))

Actually, I think that this code used to break moving the window to screen if it had default size, but an offscreen position. But perhaps that can never happen in practice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915964</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-09 15:35:59 -0700</bug_when>
    <thetext>&gt; I don&apos;t understand how the browser is supposed to be able to guess if default size was requested when the get an openWindow call.

To answer your question more directly, WebCore does pass all the requested features to the client, so it can do anything even upfront in createWindow(). It is kind of strange that WebCore enforces additional constraints after the fact, I don&apos;t know why we do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915965</commentid>
    <comment_count>11</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-08-09 15:39:02 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Are you saying that there are WebKit based browsers that make the decision on whether to put the window in tab based on requested size? Presumably they make the decision in their show() implementation then.

Yes all of them except Safari apparently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915979</commentid>
    <comment_count>12</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-08-09 16:02:36 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Are you saying that there are WebKit based browsers that make the decision on whether to put the window in tab based on requested size? Presumably they make the decision in their show() implementation then.
&gt; 
&gt; Yes all of them except Safari apparently.

Well, specifically the classic desktop browsers implementing tabs. Default size windows opening in tabs is expected behavior on a lot of sites that can control whether a new window should popup or not that way. WebKit for years requsted a window of size (0,0) if no size was set, so that became how the browsers implemented the standard behavior. The minimum size for unset window size was only enforced for a few months before I modified it to let 0 through again. Did something change in Safari to rely on the minimum in the timespan it was enforced?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915982</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-09 16:23:25 -0700</bug_when>
    <thetext>&gt; WebKit for years requsted a window of size (0,0) if no size was set

The windows is created by this method:

Page* Chrome::createWindow(Frame* frame, const FrameLoadRequest&amp; request, const WindowFeatures&amp; features, const NavigationAction&amp; action) const
{
    Page* newPage = m_client-&gt;createWindow(frame, request, features, action);
...
}

How was the (0, 0) size passed? The size is in WindowFeatures, but neither your not my patch change anything about that structure content. We only change later calls that resize the already created window.

&gt; The minimum size for unset window size was only enforced for a few months before I modified it to let 0 through again.

Do you know when this was added? As mentioned before, I&apos;m surprised that any of this logic is in WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915983</commentid>
    <comment_count>14</comment_count>
      <attachid>208451</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-09 16:24:03 -0700</bug_when>
    <thetext>Comment on attachment 208451
proposed fix

Clearing flags on attachment: 208451

Committed r153913: &lt;http://trac.webkit.org/changeset/153913&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915984</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-09 16:24:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915987</commentid>
    <comment_count>16</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-08-09 16:36:42 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Do you know when this was added? As mentioned before, I&apos;m surprised that any of this logic is in WebCore.

The adjustment was there before but the part that overwrote default 0,0 with minimum came from http://trac.webkit.org/changeset/134586</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915988</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-09 16:43:01 -0700</bug_when>
    <thetext>Thank you for the pointer. Based on what I learned looking at this code today, it&apos;s probably wrong to call adjustWindowRect when creating a new window, and in general, it seems that logic added in r134586 should be client&apos;s responsibility.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208451</attachid>
            <date>2013-08-09 13:42:21 -0700</date>
            <delta_ts>2013-08-09 16:24:03 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>WindowZeroSize.txt</filename>
            <type>text/plain</type>
            <size>9055</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MzkwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDEzLTA4LTA5ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIxNDI3
NTUpOiB3aW5kb3cub3BlbiBjcmVhdGVzIGFuIGludmlzaWJsZSB3aW5kb3cgd2hlbiB3aWR0aCBh
bmQgaGVpZ2h0IGFyZSAwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTk2MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2RvbS9XaW5kb3cvb3Blbi16ZXJvLXNpemUtYXMtZGVmYXVsdC5o
dG1sCisKKyAgICAgICAgUmVseWluZyBvbiBlYWNoIFdlYktpdCB0byByZWZ1c2Ugc2V0dGluZyBz
aXplIHRvIHplcm8gd2FzIGZyYWdpbGUgLSBiZWNhdXNlIHRoaXMKKyAgICAgICAgcmVxdWlyZWQg
ZWFjaCBvbmUgdG8gaGF2ZSB0aGUgY2hlY2ssIGFuZCBiZWNhdXNlIGJ5IHRoZSB0aW1lIHRoZSBj
bGllbnQgd2FzIGNhbGxlZCwKKyAgICAgICAgdGhlIGluaXRpYWxseSB6ZXJvIHNpemUgd2FzIG5v
dCBuZWNlc3NhcmlseSB6ZXJvLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDog
KFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6IFdoZW4gc2l6ZXMgYXJlIHplcm8sIGtlZXAgdGhlCisg
ICAgICAgIHNpemUgdGhlIHdpbmRvdyB3YXMgY3JlYXRlZCB3aXRoLCBiZWNhdXNlIHRoYXQncyB0
aGUgZGVmYXVsdCBvbmUgYnkgZGVmaW5pdGlvbi4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93
LmNwcDogKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdCk6IEl0J3MgdG9vIGxh
dGUgdG8KKyAgICAgICAgY2hlY2sgZm9yIHplcm8gc2l6ZSBub3csIGl0J3MgYmVlbiBtYW5nbGVk
IHRvIGFkanVzdCBmb3IgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgorICAgICAgICB3aW5kb3cgYW5k
IHZpZXdwb3J0IHNpemUuCisKIDIwMTMtMDgtMDkgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFYOiBOb3QgYWJsZSB0byB1c2UgYXJyb3cga2V5cyB0byByZWFkIHRl
eHQgaW4gYSBXSzIgYXBwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJ
KHJldmlzaW9uIDE1MzkwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM0NTIsOSArMzQ1MiwxMCBAQCBQYXNzUmVmUHRyPEZyYW1l
PiBjcmVhdGVXaW5kb3coRnJhbWUqIG9wCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0WChmZWF0dXJl
cy54KTsKICAgICBpZiAoZmVhdHVyZXMueVNldCkKICAgICAgICAgd2luZG93UmVjdC5zZXRZKGZl
YXR1cmVzLnkpOwotICAgIGlmIChmZWF0dXJlcy53aWR0aFNldCkKKyAgICAvLyBaZXJvIHdpZHRo
IGFuZCBoZWlnaHQgbWVhbiB1c2luZyBkZWZhdWx0IHNpemUsIG5vdCBtaW51bXVtIG9uZS4KKyAg
ICBpZiAoZmVhdHVyZXMud2lkdGhTZXQgJiYgZmVhdHVyZXMud2lkdGgpCiAgICAgICAgIHdpbmRv
d1JlY3Quc2V0V2lkdGgoZmVhdHVyZXMud2lkdGggKyAod2luZG93UmVjdC53aWR0aCgpIC0gdmll
d3BvcnRTaXplLndpZHRoKCkpKTsKLSAgICBpZiAoZmVhdHVyZXMuaGVpZ2h0U2V0KQorICAgIGlm
IChmZWF0dXJlcy5oZWlnaHRTZXQgJiYgZmVhdHVyZXMuaGVpZ2h0KQogICAgICAgICB3aW5kb3dS
ZWN0LnNldEhlaWdodChmZWF0dXJlcy5oZWlnaHQgKyAod2luZG93UmVjdC5oZWlnaHQoKSAtIHZp
ZXdwb3J0U2l6ZS5oZWlnaHQoKSkpOwogCiAgICAgLy8gRW5zdXJlIG5vbi1OYU4gdmFsdWVzLCBt
aW5pbXVtIHNpemUgYXMgd2VsbCBhcyBiZWluZyB3aXRoaW4gdmFsaWQgc2NyZWVuIGFyZWEuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiAxNTM5MDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0MCwxMSAr
MzQwLDggQEAgRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChQYQogICAgICAg
ICB3aW5kb3cuc2V0SGVpZ2h0KHBlbmRpbmdDaGFuZ2VzLmhlaWdodCgpKTsKIAogICAgIEZsb2F0
U2l6ZSBtaW5pbXVtU2l6ZSA9IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLT5taW5pbXVtV2luZG93
U2l6ZSgpOwotICAgIC8vIExldCBzaXplIDAgcGFzcyB0aHJvdWdoLCBzaW5jZSB0aGF0IGluZGlj
YXRlcyBkZWZhdWx0IHNpemUsIG5vdCBtaW5pbXVtIHNpemUuCi0gICAgaWYgKHdpbmRvdy53aWR0
aCgpKQotICAgICAgICB3aW5kb3cuc2V0V2lkdGgobWluKG1heChtaW5pbXVtU2l6ZS53aWR0aCgp
LCB3aW5kb3cud2lkdGgoKSksIHNjcmVlbi53aWR0aCgpKSk7Ci0gICAgaWYgKHdpbmRvdy5oZWln
aHQoKSkKLSAgICAgICAgd2luZG93LnNldEhlaWdodChtaW4obWF4KG1pbmltdW1TaXplLmhlaWdo
dCgpLCB3aW5kb3cuaGVpZ2h0KCkpLCBzY3JlZW4uaGVpZ2h0KCkpKTsKKyAgICB3aW5kb3cuc2V0
V2lkdGgobWluKG1heChtaW5pbXVtU2l6ZS53aWR0aCgpLCB3aW5kb3cud2lkdGgoKSksIHNjcmVl
bi53aWR0aCgpKSk7CisgICAgd2luZG93LnNldEhlaWdodChtaW4obWF4KG1pbmltdW1TaXplLmhl
aWdodCgpLCB3aW5kb3cuaGVpZ2h0KCkpLCBzY3JlZW4uaGVpZ2h0KCkpKTsKIAogICAgIC8vIENv
bnN0cmFpbiB0aGUgd2luZG93IHBvc2l0aW9uIHdpdGhpbiB0aGUgdmFsaWQgc2NyZWVuIGFyZWEu
CiAgICAgd2luZG93LnNldFgobWF4KHNjcmVlbi54KCksIG1pbih3aW5kb3cueCgpLCBzY3JlZW4u
bWF4WCgpIC0gd2luZG93LndpZHRoKCkpKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lv
biAxNTM5MDcpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxMyBAQAorMjAxMy0wOC0wOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTQyNzU1KTogd2luZG93Lm9wZW4gY3Jl
YXRlcyBhbiBpbnZpc2libGUgd2luZG93IHdoZW4gd2lkdGggYW5kIGhlaWdodCBhcmUgMAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NjMzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOiAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpzZXRX
aW5kb3dSZWN0KToKKyAgICAgICAgT25jZSBhZ2FpbiwgdGhlIHBhc3NlZCByZWN0IGNhbm5vdCBi
ZSBlbXB0eS4KKwogMjAxMy0wNy0yNyAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAg
ICAgICAgIExvZ2dpbmcgc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZSB1c2luZyBodW1hbi1yZWFkYWJs
ZSBjaGFubmVsIG5hbWVzIHJhdGhlciB0aGFuIGNyYXp5IGJpdG1hc2tzCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAJ
KHJldmlzaW9uIDE1MzkwNSkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw3ICsxMjgsNyBAQCBGbG9h
dFJlY3QgQ2hyb21lQ2xpZW50RWZsOjp3aW5kb3dSZWN0KCkKIAogdm9pZCBDaHJvbWVDbGllbnRF
Zmw6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIGlmICghZXdr
X3ZpZXdfc2V0dGluZ19lbmFibGVfYXV0b19yZXNpemVfd2luZG93X2dldChtX3ZpZXcpIHx8IHJl
Y3QuaXNFbXB0eSgpKQorICAgIGlmICghZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfYXV0b19yZXNp
emVfd2luZG93X2dldChtX3ZpZXcpKQogICAgICAgICByZXR1cm47CiAKICAgICBFY29yZV9FdmFz
KiBlZSA9IGVjb3JlX2V2YXNfZWNvcmVfZXZhc19nZXQoZXZhc19vYmplY3RfZXZhc19nZXQobV92
aWV3KSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTM5MDcpCisrKyBTb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAx
My0wOC0wOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBS
RUdSRVNTSU9OIChyMTQyNzU1KTogd2luZG93Lm9wZW4gY3JlYXRlcyBhbiBpbnZpc2libGUgd2lu
ZG93IHdoZW4gd2lkdGggYW5kIGhlaWdodCBhcmUgMAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NjMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwOiAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICBPbmNl
IGFnYWluLCB0aGUgcGFzc2VkIHJlY3QgY2Fubm90IGJlIGVtcHR5LgorCiAyMDEzLTA3LTI3ICBN
YXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgTG9nZ2luZyBzaG91bGQgYmUg
Y29uZmlndXJhYmxlIHVzaW5nIGh1bWFuLXJlYWRhYmxlIGNoYW5uZWwgbmFtZXMgcmF0aGVyIHRo
YW4gY3JhenkgYml0bWFza3MKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAkocmV2aXNpb24gMTUzOTA1KQorKysgU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTcxLDggKzE3MSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpzZXRXaW5kb3dS
ZWN0KGNvbnN0IEYKICAgICBHdGtXaWRnZXQqIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3RvcGxl
dmVsKEdUS19XSURHRVQobV93ZWJWaWV3KSk7CiAgICAgaWYgKHdpZGdldElzT25zY3JlZW5Ub3Bs
ZXZlbFdpbmRvdyh3aW5kb3cpKSB7CiAgICAgICAgIGd0a193aW5kb3dfbW92ZShHVEtfV0lORE9X
KHdpbmRvdyksIGludHJlY3QueCgpLCBpbnRyZWN0LnkoKSk7Ci0gICAgICAgIGlmICghaW50cmVj
dC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBndGtfd2luZG93X3Jlc2l6ZShHVEtfV0lORE9XKHdp
bmRvdyksIGludHJlY3Qud2lkdGgoKSwgaW50cmVjdC5oZWlnaHQoKSk7CisgICAgICAgIGd0a193
aW5kb3dfcmVzaXplKEdUS19XSU5ET1cod2luZG93KSwgaW50cmVjdC53aWR0aCgpLCBpbnRyZWN0
LmhlaWdodCgpKTsKICAgICB9CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MzkwNykKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEz
LTA4LTA5ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJF
R1JFU1NJT04gKHIxNDI3NTUpOiB3aW5kb3cub3BlbiBjcmVhdGVzIGFuIGludmlzaWJsZSB3aW5k
b3cgd2hlbiB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk2MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9vcGVuLXplcm8tc2l6ZS1h
cy1kZWZhdWx0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93
L29wZW4temVyby1zaXplLWFzLWRlZmF1bHQuaHRtbDogQWRkZWQuCisKIDIwMTMtMDgtMDkgIENo
cmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcuY29tPgogCiAgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBLZXlib2FyZEV2ZW50LmxvY2F0aW9uIGF0dHJpYnV0ZQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L29wZW4temVyby1zaXplLWFzLWRlZmF1bHQtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcGVuLXpl
cm8tc2l6ZS1hcy1kZWZhdWx0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9vcGVuLXplcm8tc2l6ZS1hcy1kZWZhdWx0LWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKK1Rlc3QgdGhhdCBwYXNzaW5nICJoZWln
aHQ9MCx3aWR0aD0wIiB0byB3aW5kb3cub3BlbigpIHJlc3VsdHMgaW4gZGVmYXVsdCB3aW5kb3cg
c2l6ZS4KKworUEFTUwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L29wZW4temVyby1zaXplLWFzLWRlZmF1bHQtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTAsMCArMSAjIwordGV4dC9wbGFpbgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIHByb3BlcnR5CkFkZGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0wLDAgKzEgIyMK
K25hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvb3Blbi16ZXJvLXNpemUtYXMtZGVmYXVsdC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcGVuLXplcm8tc2l6ZS1hcy1kZWZh
dWx0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvb3Bl
bi16ZXJvLXNpemUtYXMtZGVmYXVsdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIg
QEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgcGFzc2luZyAiaGVpZ2h0PTAsd2lkdGg9
MCIgdG8gd2luZG93Lm9wZW4oKSByZXN1bHRzIGluIGRlZmF1bHQgd2luZG93IHNpemUuPC9wPgor
PGRpdiBpZD1yZXN1bHQ+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworfQorCit2YXIgcmVz
dWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOworCit3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uIChlKSB7CisgICAgdHJ5IHsKKyAgICAgICAg
dmFyIGRpbWVuc2lvbnMgPSBKU09OLnBhcnNlKGUuZGF0YSk7CisgICAgICAgIGlmIChkaW1lbnNp
b25zWzBdID4gMTAwICYmIGRpbWVuc2lvbnNbMV0gPiAxMDApCisgICAgICAgICAgICByZXN1bHQu
aW5uZXJIVE1MID0gIlBBU1MiOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQuaW5u
ZXJIVE1MID0gIkZBSUw6ICIgKyBlLmRhdGE7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAgICAg
YWxlcnQoIkZBSUw6ICIgKyBleCArICIgKCIgKyBlLmRhdGEgKyAiKSIpOworICAgIH0KKworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Cit9LCBmYWxzZSk7CisKK3dpbmRvdy5vcGVuKCJkYXRhOnRleHQvaHRtbCw8c2NyaXB0Pm9wZW5l
ci5wb3N0TWVzc2FnZSgnWycgKyB3aW5kb3cuaW5uZXJXaWR0aCArICcsJyArIHdpbmRvdy5pbm5l
ckhlaWdodCArICddJywgJyonKTsgd2luZG93LmNsb3NlKCk7PCIgKyAiL3NjcmlwdD4iLCAiIiwg
ImhlaWdodD0wLHdpZHRoPTAiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L29wZW4temVyby1zaXpl
LWFzLWRlZmF1bHQuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiMjIC0wLDAg
KzEgIyMKK3RleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>