Support <object>.contentWindow
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 29 Mar 2019 02:34:56 +0000 (02:34 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 29 Mar 2019 02:34:56 +0000 (02:34 +0000)
https://bugs.webkit.org/show_bug.cgi?id=195562

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing or failing later on.

* web-platform-tests/html/browsers/the-window-object/accessing-other-browsing-contexts/indexed-browsing-contexts-03-expected.txt:
* web-platform-tests/html/dom/interfaces-expected.txt:
* web-platform-tests/html/semantics/embedded-content/the-object-element/object-attributes-expected.txt:

Source/WebCore:

Support <object>.contentWindow as per:
- https://html.spec.whatwg.org/multipage/iframe-embed-object.html#dom-object-contentwindow

No new tests, updated / rebaselined existing tests.

* html/HTMLObjectElement.idl:

LayoutTests:

Update existing test to extend test coverage.

* fast/dom/HTMLObjectElement/object-as-frame-expected.txt:
* fast/dom/HTMLObjectElement/object-as-frame.html:

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

LayoutTests/ChangeLog
LayoutTests/fast/dom/HTMLObjectElement/object-as-frame-expected.txt
LayoutTests/fast/dom/HTMLObjectElement/object-as-frame.html
LayoutTests/fast/dom/plugin-attributes-enumeration-expected.txt
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/accessing-other-browsing-contexts/indexed-browsing-contexts-03-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/object-attributes-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/html/HTMLObjectElement.idl

index 793c79c..08bd472 100644 (file)
@@ -1,3 +1,15 @@
+2019-03-28  Chris Dumez  <cdumez@apple.com>
+
+        Support <object>.contentWindow
+        https://bugs.webkit.org/show_bug.cgi?id=195562
+
+        Reviewed by Sam Weinig.
+
+        Update existing test to extend test coverage.
+
+        * fast/dom/HTMLObjectElement/object-as-frame-expected.txt:
+        * fast/dom/HTMLObjectElement/object-as-frame.html:
+
 2019-03-28  Myles C. Maxfield  <mmaxfield@apple.com>
 
         FontFace constructor throws an exception when there is a name which starts with a number
index c7f8c21..cbeacb7 100644 (file)
@@ -1,8 +1,15 @@
 PASS window.frames.length is 2
 PASS window.frames[0].frameElement.name is "frame"
+PASS window.frames[0].frameElement.contentWindow is window.frames[0].frameElement.contentDocument.defaultView
+PASS window.frames[0].frameElement.contentWindow.document is window.frames[0].frameElement.contentDocument
 PASS window.frames[1].frameElement.name is "obj"
+PASS window.frames[1].frameElement.contentWindow is window.frames[1].frameElement.contentDocument.defaultView
+PASS window.frames[1].frameElement.contentWindow.document is window.frames[1].frameElement.contentDocument
 Loading 'data:text/html,Updated contents of iframe' in iframe...
 Loading 'data:text/html,Updated contents of object' in object...
 PASS window.frames[0].location.toString() is "data:text/html,Updated contents of iframe"
 PASS window.frames[1].location.toString() is "data:text/html,Updated contents of object"
+PASS successfullyParsed is true
+
+TEST COMPLETE
  
index cb851b3..0da9491 100644 (file)
@@ -1,13 +1,10 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!DOCTYPE html>
 <html>
 <head>
-<script src="../../../resources/js-test-pre.js"></script>
+<script src="../../../resources/js-test.js"></script>
 <script>
 
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.waitUntilDone();
-}
+jsTestIsAsync = true;
 
 var updatedFrameURL = "data:text/html,Updated contents of iframe";
 var updatedObjectURL = "data:text/html,Updated contents of object";
@@ -16,7 +13,11 @@ function runTests()
 {
     shouldBe("window.frames.length", "2");
     shouldBe("window.frames[0].frameElement.name", '"frame"');
+    shouldBe("window.frames[0].frameElement.contentWindow", "window.frames[0].frameElement.contentDocument.defaultView");
+    shouldBe("window.frames[0].frameElement.contentWindow.document", "window.frames[0].frameElement.contentDocument");
     shouldBe("window.frames[1].frameElement.name", '"obj"');
+    shouldBe("window.frames[1].frameElement.contentWindow", "window.frames[1].frameElement.contentDocument.defaultView");
+    shouldBe("window.frames[1].frameElement.contentWindow.document", "window.frames[1].frameElement.contentDocument");
 
     document.getElementsByName('frame')[0].onload = handleLoad;
     document.getElementsByName('obj')[0].onload = handleLoad;
@@ -37,9 +38,8 @@ function handleLoad()
 
     shouldBe("window.frames[0].location.toString()", '"' + updatedFrameURL + '"');
     shouldBe("window.frames[1].location.toString()", '"' + updatedObjectURL + '"');
-    if (window.testRunner) {
-        testRunner.notifyDone();
-    }
+
+    finishJSTest();
 }
 </script>
 
index d7fcc29..9d756f9 100644 (file)
@@ -1,5 +1,18 @@
 2019-03-28  Chris Dumez  <cdumez@apple.com>
 
+        Support <object>.contentWindow
+        https://bugs.webkit.org/show_bug.cgi?id=195562
+
+        Reviewed by Sam Weinig.
+
+        Rebaseline WPT tests now that more checks are passing or failing later on.
+
+        * web-platform-tests/html/browsers/the-window-object/accessing-other-browsing-contexts/indexed-browsing-contexts-03-expected.txt:
+        * web-platform-tests/html/dom/interfaces-expected.txt:
+        * web-platform-tests/html/semantics/embedded-content/the-object-element/object-attributes-expected.txt:
+
+2019-03-28  Chris Dumez  <cdumez@apple.com>
+
         Re-sync web-platform-tests/html/browsers/the-window-object/ from upstream
         https://bugs.webkit.org/show_bug.cgi?id=196379
 
index 6899690..80f7594 100644 (file)
@@ -1,3 +1,3 @@
 
-FAIL Indexed child browsing contexts assert_equals: The first child browsing context's container should be the object element. expected (undefined) undefined but got (object) object "[object Window]"
+FAIL Indexed child browsing contexts assert_equals: The first child browsing context's container should be the object element. expected null but got object "[object Window]"
 
index 4c2897a..9a2cc06 100644 (file)
@@ -1338,7 +1338,7 @@ PASS HTMLObjectElement interface: attribute form
 PASS HTMLObjectElement interface: attribute width 
 PASS HTMLObjectElement interface: attribute height 
 PASS HTMLObjectElement interface: attribute contentDocument 
-FAIL HTMLObjectElement interface: attribute contentWindow assert_true: The prototype object must have a property "contentWindow" expected true got false
+PASS HTMLObjectElement interface: attribute contentWindow 
 PASS HTMLObjectElement interface: operation getSVGDocument() 
 PASS HTMLObjectElement interface: attribute willValidate 
 PASS HTMLObjectElement interface: attribute validity 
@@ -1367,7 +1367,7 @@ PASS HTMLObjectElement interface: document.createElement("object") must inherit
 PASS HTMLObjectElement interface: document.createElement("object") must inherit property "width" with the proper type 
 PASS HTMLObjectElement interface: document.createElement("object") must inherit property "height" with the proper type 
 PASS HTMLObjectElement interface: document.createElement("object") must inherit property "contentDocument" with the proper type 
-FAIL HTMLObjectElement interface: document.createElement("object") must inherit property "contentWindow" with the proper type assert_inherits: property "contentWindow" not found in prototype chain
+PASS HTMLObjectElement interface: document.createElement("object") must inherit property "contentWindow" with the proper type 
 PASS HTMLObjectElement interface: document.createElement("object") must inherit property "getSVGDocument()" with the proper type 
 PASS HTMLObjectElement interface: document.createElement("object") must inherit property "willValidate" with the proper type 
 PASS HTMLObjectElement interface: document.createElement("object") must inherit property "validity" with the proper type 
index 2eac560..e9f22e1 100644 (file)
@@ -1,5 +1,5 @@
 
-FAIL object.contentWindow undefined is not an object (evaluating 'obj1.contentWindow.name')
+FAIL object.contentWindow assert_equals: The contentWindow's name of the object element should be 'o1'. expected "o1" but got "o"
 FAIL object.width assert_equals: The width should be 100px. expected "100px" but got "auto"
 FAIL object.height assert_equals: The height should be 50px. expected "50px" but got "auto"
  
index 3c9341f..2a78e42 100644 (file)
@@ -1,3 +1,17 @@
+2019-03-28  Chris Dumez  <cdumez@apple.com>
+
+        Support <object>.contentWindow
+        https://bugs.webkit.org/show_bug.cgi?id=195562
+
+        Reviewed by Sam Weinig.
+
+        Support <object>.contentWindow as per:
+        - https://html.spec.whatwg.org/multipage/iframe-embed-object.html#dom-object-contentwindow
+
+        No new tests, updated / rebaselined existing tests.
+
+        * html/HTMLObjectElement.idl:
+
 2019-03-28  Myles C. Maxfield  <mmaxfield@apple.com>
 
         FontFace constructor throws an exception when there is a name which starts with a number
index 016d9aa..bac526c 100644 (file)
@@ -46,6 +46,7 @@
     void setCustomValidity(DOMString error);
 
     [CheckSecurityForNode] readonly attribute Document contentDocument;
+    readonly attribute WindowProxy contentWindow;
 
     [CheckSecurityForNode, MayThrowException] Document getSVGDocument();
 };