<?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>176508</bug_id>
          
          <creation_ts>2017-09-07 05:22:03 -0700</creation_ts>
          <short_desc>WebDriver: ensure we close all windows handles when closing the session</short_desc>
          <delta_ts>2017-09-27 12:48:37 -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>WebDriver</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1346274</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-07 05:22:03 -0700</bug_when>
    <thetext>The spec says that when closing the session all top level browsing contexts should be closed. We are currently checking if we have an active top level browsing context and then we try to close it before trying with the rest. It can happen that we are in an inconsistent state, for example if the current top level browsing context has been closed by JavaScript or another action and the user didn&apos;t switch to another one before closing the session. In such case, closing the session will fail with NoSuchwindow and any other window open will not be closed. It&apos;s safer to always as for all window handles and close them, which is what the spec says too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346275</commentid>
    <comment_count>1</comment_count>
      <attachid>320110</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-07 05:26:02 -0700</bug_when>
    <thetext>Created attachment 320110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346718</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-07 22:35:50 -0700</bug_when>
    <thetext>Build failure in EWS has nothing to do with this patch, it failed to build the dependencies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346912</commentid>
    <comment_count>3</comment_count>
      <attachid>320110</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-09-08 12:46:00 -0700</bug_when>
    <thetext>Comment on attachment 320110
Patch

r=me

Couldn&apos;t this still race with JS that closes or navigations a window somehow?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347072</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-09 00:02:32 -0700</bug_when>
    <thetext>(In reply to Brian Burg from comment #3)
&gt; Comment on attachment 320110 [details]
&gt; Patch
&gt; 
&gt; r=me

Thanks!

&gt; Couldn&apos;t this still race with JS that closes or navigations a window somehow?

Yes, I think it&apos;s quite unlikely that something happens after the quit command (the problem in this case was a window closed before the quit command), and we are getting the window list again after closing every window. But yes, it could still happen. I think we could simply ignore NoSuchWindow errors when closing the session, if we try to close a window and the window no longer exists, there&apos;s no reason to fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347074</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-09 00:15:06 -0700</bug_when>
    <thetext>Committed r221808: &lt;http://trac.webkit.org/changeset/221808&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353665</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:48:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/34694066&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320110</attachid>
            <date>2017-09-07 05:26:02 -0700</date>
            <delta_ts>2017-09-08 12:46:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-close.diff</filename>
            <type>text/plain</type>
            <size>4494</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggMmY3ZGMwM2RhYTQuLjhkYWJiODEwZmQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA5LTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGVuc3VyZSB3ZSBjbG9zZSBh
bGwgd2luZG93cyBoYW5kbGVzIHdoZW4gY2xvc2luZyB0aGUgc2Vzc2lvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2NTA4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHNwZWMgc2F5cyB0aGF0IHdo
ZW4gY2xvc2luZyB0aGUgc2Vzc2lvbiBhbGwgdG9wIGxldmVsIGJyb3dzaW5nIGNvbnRleHRzIHNo
b3VsZCBiZSBjbG9zZWQuIFdlIGFyZSBjdXJyZW50bHkKKyAgICAgICAgY2hlY2tpbmcgaWYgd2Ug
aGF2ZSBhbiBhY3RpdmUgdG9wIGxldmVsIGJyb3dzaW5nIGNvbnRleHQgYW5kIHRoZW4gd2UgdHJ5
IHRvIGNsb3NlIGl0IGJlZm9yZSB0cnlpbmcgd2l0aCB0aGUKKyAgICAgICAgcmVzdC4gSXQgY2Fu
IGhhcHBlbiB0aGF0IHdlIGFyZSBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUsIGZvciBleGFtcGxl
IGlmIHRoZSBjdXJyZW50IHRvcCBsZXZlbCBicm93c2luZyBjb250ZXh0CisgICAgICAgIGhhcyBi
ZWVuIGNsb3NlZCBieSBKYXZhU2NyaXB0IG9yIGFub3RoZXIgYWN0aW9uIGFuZCB0aGUgdXNlciBk
aWRuJ3Qgc3dpdGNoIHRvIGFub3RoZXIgb25lIGJlZm9yZSBjbG9zaW5nIHRoZQorICAgICAgICBz
ZXNzaW9uLiBJbiBzdWNoIGNhc2UsIGNsb3NpbmcgdGhlIHNlc3Npb24gd2lsbCBmYWlsIHdpdGgg
Tm9TdWNod2luZG93IGFuZCBhbnkgb3RoZXIgd2luZG93IG9wZW4gd2lsbCBub3QgYmUKKyAgICAg
ICAgY2xvc2VkLiBJdCdzIHNhZmVyIHRvIGFsd2F5cyBhc2sgZm9yIGFsbCB3aW5kb3cgaGFuZGxl
cyBhbmQgY2xvc2UgdGhlbSwgd2hpY2ggaXMgd2hhdCB0aGUgc3BlYyBzYXlzIHRvby4KKworICAg
ICAgICAqIFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpmaXJzdFdpbmRvd0hhbmRs
ZUluUmVzdWx0KTogSGVscGVyIGNsYXNzIHRvIGdldCB0aGUgZmlyc3Qgd2luZG93IGhhbmRsZSBp
biB0aGUgcmVzdWx0IGFycmF5LgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpjbG9zZUFs
bFRvcGxldmVsQnJvd3NpbmdDb250ZXh0cyk6IFVzZSBmaXJzdFdpbmRvd0hhbmRsZUluUmVzdWx0
KCkuCisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246OmNsb3NlKTogQ2xvc2UgdGhlIGN1cnJl
bnQgdG9wIGxldmVsIGJyb3dzaW5nIGNvbnRleHQgYW5kIGdldCBhbGwgd2luZG93IGhhbmRsZXMg
dG8gY2xvc2UKKyAgICAgICAgdGhlbSBhbGwgaWYgbmVlZGVkLgorCiAyMDE3LTA4LTI4ICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBXZWJEcml2
ZXI6IGltcGxlbWVudCBzY3JlZW4gY2FwdHVyZSBjb21tYW5kcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5k
ZXggMThiNjlhODM0N2EuLjVlY2ViOWM1YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVy
L1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTU3LDYg
KzU3LDE4IEBAIGNvbnN0IENhcGFiaWxpdGllcyYgU2Vzc2lvbjo6Y2FwYWJpbGl0aWVzKCkgY29u
c3QKICAgICByZXR1cm4gbV9ob3N0LT5jYXBhYmlsaXRpZXMoKTsKIH0KIAorc3RhdGljIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBmaXJzdFdpbmRvd0hhbmRsZUluUmVzdWx0KEluc3BlY3RvclZhbHVl
JiByZXN1bHQpCit7CisgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBoYW5kbGVzOworICAgIGlm
IChyZXN1bHQuYXNBcnJheShoYW5kbGVzKSAmJiBoYW5kbGVzLT5sZW5ndGgoKSkgeworICAgICAg
ICBhdXRvIGhhbmRsZVZhbHVlID0gaGFuZGxlcy0+Z2V0KDApOworICAgICAgICBTdHJpbmcgaGFu
ZGxlOworICAgICAgICBpZiAoaGFuZGxlVmFsdWUtPmFzU3RyaW5nKGhhbmRsZSkpCisgICAgICAg
ICAgICByZXR1cm4gaGFuZGxlOworICAgIH0KKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQor
CiB2b2lkIFNlc3Npb246OmNsb3NlQWxsVG9wbGV2ZWxCcm93c2luZ0NvbnRleHRzKGNvbnN0IFN0
cmluZyYgdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1
bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgY2xvc2VUb3BMZXZlbEJyb3dzaW5n
Q29udGV4dCh0b3BsZXZlbEJyb3dzaW5nQ29udGV4dCwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CkBAIC02NCwxNCArNzYsOSBA
QCB2b2lkIFNlc3Npb246OmNsb3NlQWxsVG9wbGV2ZWxCcm93c2luZ0NvbnRleHRzKGNvbnN0IFN0
cmluZyYgdG9wbGV2ZWxCcm93c2luZ0NvbgogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
V1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAg
ICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGhhbmRsZXM7Ci0gICAgICAgIGlmIChyZXN1bHQucmVz
dWx0KCktPmFzQXJyYXkoaGFuZGxlcykgJiYgaGFuZGxlcy0+bGVuZ3RoKCkpIHsKLSAgICAgICAg
ICAgIGF1dG8gaGFuZGxlVmFsdWUgPSBoYW5kbGVzLT5nZXQoMCk7Ci0gICAgICAgICAgICBTdHJp
bmcgaGFuZGxlOwotICAgICAgICAgICAgaWYgKGhhbmRsZVZhbHVlLT5hc1N0cmluZyhoYW5kbGUp
KSB7Ci0gICAgICAgICAgICAgICAgY2xvc2VBbGxUb3BsZXZlbEJyb3dzaW5nQ29udGV4dHMoaGFu
ZGxlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgfQorICAgICAgICBpZiAoYXV0byBoYW5kbGUgPSBmaXJzdFdpbmRvd0hh
bmRsZUluUmVzdWx0KCpyZXN1bHQucmVzdWx0KCkpKSB7CisgICAgICAgICAgICBjbG9zZUFsbFRv
cGxldmVsQnJvd3NpbmdDb250ZXh0cyhoYW5kbGUudmFsdWUoKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OnN1Y2Nlc3MoKSk7CiAgICAgfSk7CkBAIC03OSwx
MyArODYsMTggQEAgdm9pZCBTZXNzaW9uOjpjbG9zZUFsbFRvcGxldmVsQnJvd3NpbmdDb250ZXh0
cyhjb25zdCBTdHJpbmcmIHRvcGxldmVsQnJvd3NpbmdDb24KIAogdm9pZCBTZXNzaW9uOjpjbG9z
ZShGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotICAgIGlmICghbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dCkgeworICAgIG1fdG9wbGV2ZWxC
cm93c2luZ0NvbnRleHQgPSBzdGQ6Om51bGxvcHQ7CisgICAgZ2V0V2luZG93SGFuZGxlcyhbdGhp
cywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQ29tbWFu
ZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigp
KSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChhdXRvIGhhbmRsZSA9IGZp
cnN0V2luZG93SGFuZGxlSW5SZXN1bHQoKnJlc3VsdC5yZXN1bHQoKSkpIHsKKyAgICAgICAgICAg
IGNsb3NlQWxsVG9wbGV2ZWxCcm93c2luZ0NvbnRleHRzKGhhbmRsZS52YWx1ZSgpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6c3VjY2VzcygpKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8gdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQgPSBz
dGQ6OmV4Y2hhbmdlKG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQsIHN0ZDo6bnVsbG9wdCk7Ci0g
ICAgY2xvc2VBbGxUb3BsZXZlbEJyb3dzaW5nQ29udGV4dHModG9wbGV2ZWxCcm93c2luZ0NvbnRl
eHQudmFsdWUoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIH0pOwogfQogCiB2
b2lkIFNlc3Npb246OnNldFRpbWVvdXRzKGNvbnN0IFRpbWVvdXRzJiB0aW1lb3V0cywgRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
</data>
<flag name="review"
          id="340255"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
      

    </bug>

</bugzilla>