WebKit Bugzilla
Attachment 339744 Details for
Bug 11388
: Stop using an iframe's id as fallback if its name attribute is not set
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-11388-20180507131349.patch (text/plain), 29.35 KB, created by
Chris Dumez
on 2018-05-07 13:13:49 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Chris Dumez
Created:
2018-05-07 13:13:49 PDT
Size:
29.35 KB
patch
obsolete
>Subversion Revision: 231450 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index fd142b5eb23aa67dab46fe5a586368ba2f066edb..66ff6e1b12ea384860f809e7eb3ace0bb4d107f6 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,35 @@ >+2018-05-03 Chris Dumez <cdumez@apple.com> >+ >+ Stop using an iframe's id as fallback if its name attribute is not set >+ https://bugs.webkit.org/show_bug.cgi?id=11388 >+ >+ Reviewed by Geoff Garen. >+ >+ WebKit had logic to use an iframe's id as fallback name when its name >+ content attribute is not set. This behavior was not standard and did not >+ match other browsers: >+ - https://html.spec.whatwg.org/#attr-iframe-name >+ >+ Gecko / Trident never behaved this way. Blink was aligned with us until >+ they started to match the specification in: >+ - https://bugs.chromium.org/p/chromium/issues/detail?id=347169 >+ >+ This WebKit quirk was causing some Web-compatibility issues because it >+ would affect the behavior of Window's name property getter when trying >+ to look up an iframe by id. Because of Window's named property getter >+ behavior [1], we would return the frame's contentWindow instead of the >+ iframe element itself. >+ >+ [1] https://html.spec.whatwg.org/multipage/window-object.html#named-access-on-the-window-object >+ >+ Test: fast/dom/Window/named-getter-frame-id.html >+ >+ * html/HTMLFrameElementBase.cpp: >+ (WebCore::HTMLFrameElementBase::openURL): >+ (WebCore::HTMLFrameElementBase::parseAttribute): >+ (WebCore::HTMLFrameElementBase::didFinishInsertingNode): >+ * html/HTMLFrameElementBase.h: >+ > 2018-05-07 Chris Dumez <cdumez@apple.com> > > ASSERT(!childItemWithTarget(child->target())) is hit in HistoryItem::addChildItem() >diff --git a/Source/WebCore/html/HTMLFrameElementBase.cpp b/Source/WebCore/html/HTMLFrameElementBase.cpp >index f84d7ed7918bc36b010b04feab403e4493b5ed2d..091b35a67b42f640d97a0ea16c0f7df52b544e46 100644 >--- a/Source/WebCore/html/HTMLFrameElementBase.cpp >+++ b/Source/WebCore/html/HTMLFrameElementBase.cpp >@@ -96,7 +96,7 @@ void HTMLFrameElementBase::openURL(LockHistory lockHistory, LockBackForwardList > if (!parentFrame) > return; > >- parentFrame->loader().subframeLoader().requestFrame(*this, m_URL, m_frameName, lockHistory, lockBackForwardList); >+ parentFrame->loader().subframeLoader().requestFrame(*this, m_URL, getNameAttribute(), lockHistory, lockBackForwardList); > } > > void HTMLFrameElementBase::parseAttribute(const QualifiedName& name, const AtomicString& value) >@@ -105,17 +105,7 @@ void HTMLFrameElementBase::parseAttribute(const QualifiedName& name, const Atomi > setLocation("about:srcdoc"); > else if (name == srcAttr && !hasAttributeWithoutSynchronization(srcdocAttr)) > setLocation(stripLeadingAndTrailingHTMLSpaces(value)); >- else if (name == idAttr) { >- HTMLFrameOwnerElement::parseAttribute(name, value); >- // Falling back to using the 'id' attribute is not standard but some content relies on this behavior. >- if (!hasAttributeWithoutSynchronization(nameAttr)) >- m_frameName = value; >- } else if (name == nameAttr) { >- m_frameName = value; >- // FIXME: If we are already attached, this doesn't actually change the frame's name. >- // FIXME: If we are already attached, this doesn't check for frame name >- // conflicts and generate a unique frame name. >- } else if (name == marginwidthAttr) { >+ else if (name == marginwidthAttr) { > m_marginWidth = value.toInt(); > // FIXME: If we are already attached, this has no effect. > } else if (name == marginheightAttr) { >@@ -132,15 +122,6 @@ void HTMLFrameElementBase::parseAttribute(const QualifiedName& name, const Atomi > HTMLFrameOwnerElement::parseAttribute(name, value); > } > >-void HTMLFrameElementBase::setNameAndOpenURL() >-{ >- m_frameName = getNameAttribute(); >- // Falling back to using the 'id' attribute is not standard but some content relies on this behavior. >- if (m_frameName.isNull()) >- m_frameName = getIdAttribute(); >- openURL(); >-} >- > Node::InsertedIntoAncestorResult HTMLFrameElementBase::insertedIntoAncestor(InsertionType insertionType, ContainerNode& parentOfInsertedTree) > { > HTMLFrameOwnerElement::insertedIntoAncestor(insertionType, parentOfInsertedTree); >@@ -163,7 +144,7 @@ void HTMLFrameElementBase::didFinishInsertingNode() > > if (!renderer()) > invalidateStyleAndRenderersForSubtree(); >- setNameAndOpenURL(); >+ openURL(); > } > > void HTMLFrameElementBase::didAttachRenderers() >diff --git a/Source/WebCore/html/HTMLFrameElementBase.h b/Source/WebCore/html/HTMLFrameElementBase.h >index 858ca8a7d1470d70abb1d0d381086bd7dd0283a2..1669e7bbbe51371ba26f93117584a693e51b1da7 100644 >--- a/Source/WebCore/html/HTMLFrameElementBase.h >+++ b/Source/WebCore/html/HTMLFrameElementBase.h >@@ -70,11 +70,9 @@ private: > > bool isFrameElementBase() const final { return true; } > >- void setNameAndOpenURL(); > void openURL(LockHistory = LockHistory::Yes, LockBackForwardList = LockBackForwardList::Yes); > > AtomicString m_URL; >- AtomicString m_frameName; > > ScrollbarMode m_scrolling; > >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 1a0838edc704f3ebe419d4405305c9526f27204c..751a130b8bda28476a2b2f15e2e1773acdd8eb5f 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,32 @@ >+2018-05-03 Chris Dumez <cdumez@apple.com> >+ >+ Stop using an iframe's id as fallback if its name attribute is not set >+ https://bugs.webkit.org/show_bug.cgi?id=11388 >+ >+ Reviewed by Geoff Garen. >+ >+ * fast/dom/Window/named-getter-frame-id-expected.txt: Added. >+ * fast/dom/Window/named-getter-frame-id.html: Added. >+ Add layout test coverage. >+ >+ * fast/dom/Geolocation/srcdoc-getCurrentPosition-expected.txt: >+ * fast/dom/Geolocation/srcdoc-watchPosition-expected.txt: >+ * fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html: >+ * fast/dom/Window/window-special-properties-expected.txt: >+ * fast/frames/iframe-no-name-expected.txt: >+ * fast/frames/iframe-no-name.html: >+ * fast/layers/prevent-hit-test-during-layout.html: >+ * fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt: >+ * http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html: >+ * http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script-expected.txt: >+ * http/tests/security/cross-origin-reified-window-property-access.html: >+ * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt: >+ * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt: >+ * http/tests/webrtc/filtering-ice-candidate-same-origin-frame.html: >+ * http/wpt/beacon/keepalive-after-navigation-expected.txt: >+ * http/wpt/cache-storage/cache-remove-twice.html: >+ Update some layout tests that relied on our old (non-standard) behavior. >+ > 2018-05-07 Chris Dumez <cdumez@apple.com> > > ASSERT(!childItemWithTarget(child->target())) is hit in HistoryItem::addChildItem() >diff --git a/LayoutTests/fast/dom/Geolocation/srcdoc-getCurrentPosition-expected.txt b/LayoutTests/fast/dom/Geolocation/srcdoc-getCurrentPosition-expected.txt >index 4524562e5376abb6a9204436a7b66790240057df..2d26416a31e861ba9d8541f3ad7d5d08f3330657 100644 >--- a/LayoutTests/fast/dom/Geolocation/srcdoc-getCurrentPosition-expected.txt >+++ b/LayoutTests/fast/dom/Geolocation/srcdoc-getCurrentPosition-expected.txt >@@ -3,7 +3,7 @@ Tests that navigator.geolocation.getCurrentPosition() returns error POSITION_UNA > > > -------- >-Frame: 'frame' >+Frame: '<!--frame1-->' > -------- > FAIL should have invoked error callback, but invoked success callback. > >diff --git a/LayoutTests/fast/dom/Geolocation/srcdoc-watchPosition-expected.txt b/LayoutTests/fast/dom/Geolocation/srcdoc-watchPosition-expected.txt >index 440b7bb6d58d804894b707556e99ee636586bd04..cbcd99b4ba55a95da11feca24c688cd61b9f79c8 100644 >--- a/LayoutTests/fast/dom/Geolocation/srcdoc-watchPosition-expected.txt >+++ b/LayoutTests/fast/dom/Geolocation/srcdoc-watchPosition-expected.txt >@@ -3,7 +3,7 @@ Tests that navigator.geolocation.watchPosition() returns error POSITION_UNAVAILA > > > -------- >-Frame: 'frame' >+Frame: '<!--frame1-->' > -------- > FAIL should have invoked error callback, but invoked success callback. > >diff --git a/LayoutTests/fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html b/LayoutTests/fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html >index 3519a9f9c8f4b453fc5e2325d4375fbecfd33bfa..caf6112c2d65259d19340212717bb331443441a0 100644 >--- a/LayoutTests/fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html >+++ b/LayoutTests/fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html >@@ -14,15 +14,15 @@ > } > > function setupTopLevel() { >- var scrollTarget = window.frames['target'].document.getElementById('might_scroll'); >+ var scrollTarget = iframeTarget.contentDocument.getElementById('might_scroll'); > >- window.frames['target'].window.registerAction(function () { >+ iframeTarget.contentWindow.registerAction(function () { > iframeTarget.remove(); > setTimeout(finish, 0); > }); > >- window.frames['target'].window.run(); >+ iframeTarget.contentWindow.run(); > } > </script> > </body> >-</html> >\ No newline at end of file >+</html> >diff --git a/LayoutTests/fast/dom/Window/named-getter-frame-id-expected.txt b/LayoutTests/fast/dom/Window/named-getter-frame-id-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..77948f7551eb972ecad40047d13b331c90ff2912 >--- /dev/null >+++ b/LayoutTests/fast/dom/Window/named-getter-frame-id-expected.txt >@@ -0,0 +1,12 @@ >+Tests that looking up a frame by id returns the iframe element and not its contentWindow. >+ >+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". >+ >+ >+PASS testFrame is document.getElementById('testFrame') >+PASS testFrame.name is "" >+PASS testFrame.id is "testFrame" >+PASS successfullyParsed is true >+ >+TEST COMPLETE >+ >diff --git a/LayoutTests/fast/dom/Window/named-getter-frame-id.html b/LayoutTests/fast/dom/Window/named-getter-frame-id.html >new file mode 100644 >index 0000000000000000000000000000000000000000..dc32bcc30213cae1bc454209b79482b1d3e7c5bf >--- /dev/null >+++ b/LayoutTests/fast/dom/Window/named-getter-frame-id.html >@@ -0,0 +1,15 @@ >+<!DOCTYPE html> >+<html> >+<body> >+<script src="../../../resources/js-test.js"></script> >+<iframe id="testFrame"></iframe> >+<script> >+description("Tests that looking up a frame by id returns the iframe element and not its contentWindow."); >+onload = function() { >+ shouldBe("testFrame", "document.getElementById('testFrame')"); >+ shouldBeEqualToString("testFrame.name", ""); >+ shouldBeEqualToString("testFrame.id", "testFrame"); >+} >+</script> >+</body> >+</html> >diff --git a/LayoutTests/fast/dom/Window/window-special-properties-expected.txt b/LayoutTests/fast/dom/Window/window-special-properties-expected.txt >index 4bbe4b972683c614f36cd5de51e3617274a44ede..b0ff6a83edf169284f46c8a495d6b071b2ec175c 100644 >--- a/LayoutTests/fast/dom/Window/window-special-properties-expected.txt >+++ b/LayoutTests/fast/dom/Window/window-special-properties-expected.txt >@@ -42,8 +42,8 @@ Embed by id/name mixed: collection(4) EMBED(id) EMBED(name) EMBED(name) EMBED(id > Nonexistent iframe name: undefined > Iframe by name (unique): single WINDOW > Iframe by name (multiple): single WINDOW >-Iframe by id (unique): single WINDOW >-Iframe by id (multiple): single WINDOW >+Iframe by id (unique): single IFRAME(id) >+Iframe by id (multiple): collection(2) IFRAME(id) IFRAME(id) > Iframe by id/name mixed: single WINDOW > > Nonexistent span name: undefined >@@ -53,7 +53,7 @@ Span by id (unique): single SPAN(id) > Span by id (multiple): collection(2) SPAN(id) SPAN(id) > Span by id/name mixed: collection(2) SPAN(id) SPAN(id) > >-Mixed by id: single WINDOW >+Mixed by id: collection(7) IMG(id) FORM(id) APPLET(id) EMBED(id) OBJECT(id) IFRAME(id) SPAN(id) > Mixed by name: single WINDOW > Mixed by id (no iframe): collection(6) IMG(id) FORM(id) APPLET(id) EMBED(id) OBJECT(id) SPAN(id) > Mixed by name (no iframe): collection(5) IMG(name) FORM(name) APPLET(name) EMBED(name) OBJECT(name) >diff --git a/LayoutTests/fast/frames/iframe-no-name-expected.txt b/LayoutTests/fast/frames/iframe-no-name-expected.txt >index 45a3a33260fb8245d247700cc2b1970fbb447b93..a8c1d9bb6c30b5d62ef364f170558a7a19e9b393 100644 >--- a/LayoutTests/fast/frames/iframe-no-name-expected.txt >+++ b/LayoutTests/fast/frames/iframe-no-name-expected.txt >@@ -3,7 +3,7 @@ Checks that the id of an iframe does not set the contentWindow's name if the ifr > On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". > > >-PASS frames[0].name is "id" >+PASS frames[0].name is "" > PASS frames[1].name is "name" > PASS frames[2].name is "name" > PASS frames[3].name is "name" >diff --git a/LayoutTests/fast/frames/iframe-no-name.html b/LayoutTests/fast/frames/iframe-no-name.html >index 5692dee6ca4ba6ca0c59f488b60acfd7e1da84a9..fbcbdd2bdf7e423bf77680fd215d46e3e0911ce4 100644 >--- a/LayoutTests/fast/frames/iframe-no-name.html >+++ b/LayoutTests/fast/frames/iframe-no-name.html >@@ -11,7 +11,7 @@ > <iframe name="name" id="id"></iframe> > <script> > description("Checks that the id of an iframe does not set the contentWindow's name if the iframe's name is not set."); >-shouldBeEqualToString("frames[0].name", "id"); >+shouldBeEqualToString("frames[0].name", ""); > shouldBeEqualToString("frames[1].name", "name"); > shouldBeEqualToString("frames[2].name", "name"); > shouldBeEqualToString("frames[3].name", "name"); >diff --git a/LayoutTests/fast/layers/prevent-hit-test-during-layout.html b/LayoutTests/fast/layers/prevent-hit-test-during-layout.html >index 24a4917a9eb3c7fc603b4de3d0aaac0d9cbe6e0b..bf95725e427bbb806d09d513b1ebb1bc764b9ec1 100644 >--- a/LayoutTests/fast/layers/prevent-hit-test-during-layout.html >+++ b/LayoutTests/fast/layers/prevent-hit-test-during-layout.html >@@ -33,7 +33,7 @@ > } > > function runTest() { >- fixedDiv = window.frames['fixedFrame'].document.getElementById('fixedDiv'); >+ fixedDiv = fixedFrame.contentDocument.getElementById('fixedDiv'); > target = document.getElementById('target'); > > setTimeout(function() { >@@ -53,4 +53,4 @@ > </div> > <script src="../../resources/js-test-post.js"></script> > </body> >-</html> >\ No newline at end of file >+</html> >diff --git a/LayoutTests/fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt b/LayoutTests/fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt >index 219f011b00f46f2d7781fc2174d92ae174ce2534..f638f7dcb852e197eae17fa1e60343840b65d5b3 100644 >--- a/LayoutTests/fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt >+++ b/LayoutTests/fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt >@@ -16,6 +16,6 @@ Exception: Blocked a frame with origin "null" from accessing a cross-origin fram > > > -------- >-Frame: 'f' >+Frame: '<!--frame2-->' > -------- > Successful write into iframe >diff --git a/LayoutTests/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt b/LayoutTests/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt >index 8b045219c4809c237877cd70dd5bff900ae7343d..f8ae3136948d6ce9f75cdeacb9af0e7c9c58a01e 100644 >--- a/LayoutTests/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt >+++ b/LayoutTests/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt >@@ -1,19 +1,19 @@ > main frame - didStartProvisionalLoadForFrame > main frame - didCommitLoadForFrame >-frame "frame" - didStartProvisionalLoadForFrame >+frame "<!--frame1-->" - didStartProvisionalLoadForFrame > main frame - didFinishDocumentLoadForFrame > http://127.0.0.1:8000/loading/resources/basic-auth-testing.php?username=webkit&password=rocks - didReceiveAuthenticationChallenge - Responding with webkit:rocks >-frame "frame" - didCommitLoadForFrame >-frame "frame" - didFinishDocumentLoadForFrame >-frame "frame" - willPerformClientRedirectToURL: http://127.0.0.1:8000/a//b/non-existent-file.html >-frame "frame" - didHandleOnloadEventsForFrame >+frame "<!--frame1-->" - didCommitLoadForFrame >+frame "<!--frame1-->" - didFinishDocumentLoadForFrame >+frame "<!--frame1-->" - willPerformClientRedirectToURL: http://127.0.0.1:8000/a//b/non-existent-file.html >+frame "<!--frame1-->" - didHandleOnloadEventsForFrame > main frame - didHandleOnloadEventsForFrame >-frame "frame" - didFinishLoadForFrame >+frame "<!--frame1-->" - didFinishLoadForFrame > main frame - didFinishLoadForFrame >-frame "frame" - didStartProvisionalLoadForFrame >-frame "frame" - didCancelClientRedirectForFrame >-frame "frame" - didCommitLoadForFrame >-frame "frame" - didReceiveTitle: 404 Not Found >-frame "frame" - didFinishDocumentLoadForFrame >-frame "frame" - didFailLoadWithError >+frame "<!--frame1-->" - didStartProvisionalLoadForFrame >+frame "<!--frame1-->" - didCancelClientRedirectForFrame >+frame "<!--frame1-->" - didCommitLoadForFrame >+frame "<!--frame1-->" - didReceiveTitle: 404 Not Found >+frame "<!--frame1-->" - didFinishDocumentLoadForFrame >+frame "<!--frame1-->" - didFailLoadWithError > PASS did not cause assertion failure. >diff --git a/LayoutTests/http/tests/quicklook/csp-header-ignored-expected.txt b/LayoutTests/http/tests/quicklook/csp-header-ignored-expected.txt >index 8f2af3045f1c8e78c78e552387f938e192397564..b08421c36336746f9e375e47e4817ce2cff3d686 100644 >--- a/LayoutTests/http/tests/quicklook/csp-header-ignored-expected.txt >+++ b/LayoutTests/http/tests/quicklook/csp-header-ignored-expected.txt >@@ -4,6 +4,6 @@ Tests that a Content-Security-Policy HTTP header is ignored when delivered with > > > -------- >-Frame: 'frame' >+Frame: '<!--frame1-->' > -------- > PASS >diff --git a/LayoutTests/http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html b/LayoutTests/http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html >index 208001e354bcf5bdfe07c319306cac595d93f3ee..1d5537a2d46d01ece89be316b91522ceefc04ef2 100644 >--- a/LayoutTests/http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html >+++ b/LayoutTests/http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html >@@ -33,7 +33,7 @@ function runTest() { > document.execCommand('copy'); > getSelection().removeAllRanges(); > setTimeout(() => { >- destinationFrame.postMessage({type: 'paste'}, '*'); >+ destinationFrame.contentWindow.postMessage({type: 'paste'}, '*'); > }, 0); > } > >diff --git a/LayoutTests/http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script-expected.txt b/LayoutTests/http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script-expected.txt >index 2c629df83e518c1d2f320a3b24b362be1efa5016..889df3ba1fb22c096feda3603a31cd4b2ef9114f 100644 >--- a/LayoutTests/http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script-expected.txt >+++ b/LayoutTests/http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script-expected.txt >@@ -2,6 +2,6 @@ ALERT: PASS > > > -------- >-Frame: 'frame' >+Frame: '<!--frame1-->' > -------- > >diff --git a/LayoutTests/http/tests/security/cross-origin-reified-window-property-access.html b/LayoutTests/http/tests/security/cross-origin-reified-window-property-access.html >index 8e5f8a7148874312e50d2b1af53710db5db25ba1..49f3d5f2aa829e6e2a9d2ceed6538c66327eaa0e 100644 >--- a/LayoutTests/http/tests/security/cross-origin-reified-window-property-access.html >+++ b/LayoutTests/http/tests/security/cross-origin-reified-window-property-access.html >@@ -26,8 +26,8 @@ function shouldThrowOrReturnUndefined(expression) > > function runTest() > { >- crossOriginWindow = crossOriginFrame.window; >- sameOriginWindow = sameOriginFrame.window; >+ crossOriginWindow = crossOriginFrame.contentWindow; >+ sameOriginWindow = sameOriginFrame.contentWindow; > > shouldThrowOrReturnUndefined('crossOriginWindow.document'); > shouldThrowOrReturnUndefined('crossOriginWindow.name'); >diff --git a/LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt b/LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt >index bb328b64d43715d2b85919a5090faeb8d05a1c61..6c9fa4efbfd840bdff51e04aae3fca30e5e5e6d4 100644 >--- a/LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt >+++ b/LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt >@@ -10,7 +10,7 @@ TEST COMPLETE > > > -------- >-Frame: 'TheIframeThatRequestsStorageAccess' >+Frame: '<!--frame1-->' > -------- > After the top frame navigates the sub frame, the sub frame should no longer have access to first-party cookies. > Did not receive cookie named 'firstPartyCookie'. >@@ -18,7 +18,7 @@ Received cookie named 'partitionedCookie'. > Client-side document.cookie: partitionedCookie=value > > -------- >-Frame: '<!--frame1-->' >+Frame: '<!--frame2-->' > -------- > Should receive first-party cookie. > Received cookie named 'firstPartyCookie'. >@@ -26,7 +26,7 @@ Did not receive cookie named 'partitionedCookie'. > Client-side document.cookie: firstPartyCookie=value > > -------- >-Frame: '<!--frame2-->' >+Frame: '<!--frame3-->' > -------- > Should not receive cookies. > Did not receive cookie named 'firstPartyCookie'. >@@ -34,13 +34,13 @@ Did not receive cookie named 'partitionedCookie'. > Client-side document.cookie: > > -------- >-Frame: '<!--frame3-->' >+Frame: '<!--frame4-->' > -------- > > > > -------- >-Frame: '<!--frame4-->' >+Frame: '<!--frame5-->' > -------- > Should receive partitioned cookie. > Did not receive cookie named 'firstPartyCookie'. >diff --git a/LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt b/LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt >index b1e6628047d2a14cc4c83a4172c437243fdab9de..6998002c8ea21fee803a6cbb3c46ed1aa3b88ab6 100644 >--- a/LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt >+++ b/LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt >@@ -10,12 +10,12 @@ TEST COMPLETE > > > -------- >-Frame: 'theIframe' >+Frame: '<!--frame1-->' > -------- > > > -------- >-Frame: '<!--frame1-->' >+Frame: '<!--frame2-->' > -------- > Should receive first-party cookie. > Received cookie named 'firstPartyCookie'. >@@ -23,7 +23,7 @@ Did not receive cookie named 'partitionedCookie'. > Client-side document.cookie: firstPartyCookie=value > > -------- >-Frame: '<!--frame2-->' >+Frame: '<!--frame3-->' > -------- > Should not receive cookies. > Did not receive cookie named 'firstPartyCookie'. >@@ -31,13 +31,13 @@ Did not receive cookie named 'partitionedCookie'. > Client-side document.cookie: > > -------- >-Frame: '<!--frame3-->' >+Frame: '<!--frame4-->' > -------- > > > > -------- >-Frame: '<!--frame4-->' >+Frame: '<!--frame5-->' > -------- > Should receive partitioned cookie. > Did not receive cookie named 'firstPartyCookie'. >@@ -45,7 +45,7 @@ Received cookie named 'partitionedCookie'. > Client-side document.cookie: partitionedCookie=value > > -------- >-Frame: '<!--frame5-->' >+Frame: '<!--frame6-->' > -------- > Should receive partitioned cookie. > Did not receive cookie named 'firstPartyCookie'. >diff --git a/LayoutTests/http/tests/webrtc/filtering-ice-candidate-same-origin-frame.html b/LayoutTests/http/tests/webrtc/filtering-ice-candidate-same-origin-frame.html >index 77fc166cedd70e99c2ebd6e7f8fd8d5a153aaaed..c1a3ce76f6d0809b038d1abc1032affe1df93332 100644 >--- a/LayoutTests/http/tests/webrtc/filtering-ice-candidate-same-origin-frame.html >+++ b/LayoutTests/http/tests/webrtc/filtering-ice-candidate-same-origin-frame.html >@@ -15,7 +15,7 @@ window.addEventListener("message", (event) => { > } > if (event.data === "getUserMedia done") { > didGetUserMedia = true; >- frame1.postMessage("check filtering", "*"); >+ frame1.contentWindow.postMessage("check filtering", "*"); > return; > } > check1.innerHTML = ""; >diff --git a/LayoutTests/http/wpt/beacon/keepalive-after-navigation-expected.txt b/LayoutTests/http/wpt/beacon/keepalive-after-navigation-expected.txt >index bcaeae6a856d342bec809eb3a73bfbb47bf19303..de86993c80f07d5280c74758bd9e39d8166a466e 100644 >--- a/LayoutTests/http/wpt/beacon/keepalive-after-navigation-expected.txt >+++ b/LayoutTests/http/wpt/beacon/keepalive-after-navigation-expected.txt >@@ -1,4 +1,4 @@ >-frame "testFrame" - has 1 onunload handler(s) >+frame "<!--frame1-->" - has 1 onunload handler(s) > > PASS Test that beacon sent from unload event handler is properly received > >diff --git a/LayoutTests/http/wpt/cache-storage/cache-remove-twice.html b/LayoutTests/http/wpt/cache-storage/cache-remove-twice.html >index beceaaf4191a3736cf837877365e930298af74a3..e1f0a8333a3615ca63852fd9fbde06441726de24 100644 >--- a/LayoutTests/http/wpt/cache-storage/cache-remove-twice.html >+++ b/LayoutTests/http/wpt/cache-storage/cache-remove-twice.html >@@ -24,8 +24,8 @@ > var cacheName = "test-remove-twice"; > return new Promise((resolve, reject) => { > window.addEventListener("message", test.step_func((event) => { >- return Promise.all([self.caches.open(cacheName), cacheFrame.window.caches.open(cacheName) ]).then(() => { >- return Promise.all([self.caches.delete(cacheName), cacheFrame.window.caches.delete(cacheName)]); >+ return Promise.all([self.caches.open(cacheName), cacheFrame.contentWindow.caches.open(cacheName) ]).then(() => { >+ return Promise.all([self.caches.delete(cacheName), cacheFrame.contentWindow.caches.delete(cacheName)]); > }).then(resolve, reject); > })); > }); >diff --git a/LayoutTests/platform/ios/http/tests/quicklook/csp-header-ignored-expected.txt b/LayoutTests/platform/ios/http/tests/quicklook/csp-header-ignored-expected.txt >index de47d392b169a70faf2b3bfb061ebf866a200ed1..5a17ac15598ed407545750da1992330ef1941e9b 100644 >--- a/LayoutTests/platform/ios/http/tests/quicklook/csp-header-ignored-expected.txt >+++ b/LayoutTests/platform/ios/http/tests/quicklook/csp-header-ignored-expected.txt >@@ -3,6 +3,6 @@ Tests that a Content-Security-Policy HTTP header is ignored when delivered with > > > -------- >-Frame: 'frame' >+Frame: '<!--frame1-->' > -------- > PASS >diff --git a/LayoutTests/platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt b/LayoutTests/platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt >index b1cbd188f7ae421b087cc2326e87c2c4812a104a..daf0f56479470bec7bbf4f1cd6da9710b8ee411b 100644 >--- a/LayoutTests/platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt >+++ b/LayoutTests/platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt >@@ -1,19 +1,19 @@ > main frame - didStartProvisionalLoadForFrame > main frame - didCommitLoadForFrame > main frame - didFinishDocumentLoadForFrame >-frame "frame" - didStartProvisionalLoadForFrame >+frame "<!--frame1-->" - didStartProvisionalLoadForFrame > 127.0.0.1:8000 - didReceiveAuthenticationChallenge - Responding with webkit:rocks >-frame "frame" - didCommitLoadForFrame >-frame "frame" - didFinishDocumentLoadForFrame >-frame "frame" - willPerformClientRedirectToURL: http://127.0.0.1:8000/a//b/non-existent-file.html >-frame "frame" - didHandleOnloadEventsForFrame >+frame "<!--frame1-->" - didCommitLoadForFrame >+frame "<!--frame1-->" - didFinishDocumentLoadForFrame >+frame "<!--frame1-->" - willPerformClientRedirectToURL: http://127.0.0.1:8000/a//b/non-existent-file.html >+frame "<!--frame1-->" - didHandleOnloadEventsForFrame > main frame - didHandleOnloadEventsForFrame >-frame "frame" - didFinishLoadForFrame >+frame "<!--frame1-->" - didFinishLoadForFrame > main frame - didFinishLoadForFrame >-frame "frame" - didStartProvisionalLoadForFrame >-frame "frame" - didCancelClientRedirectForFrame >-frame "frame" - didCommitLoadForFrame >-frame "frame" - didReceiveTitle: 404 Not Found >-frame "frame" - didFinishDocumentLoadForFrame >-frame "frame" - didFailLoadWithError >+frame "<!--frame1-->" - didStartProvisionalLoadForFrame >+frame "<!--frame1-->" - didCancelClientRedirectForFrame >+frame "<!--frame1-->" - didCommitLoadForFrame >+frame "<!--frame1-->" - didReceiveTitle: 404 Not Found >+frame "<!--frame1-->" - didFinishDocumentLoadForFrame >+frame "<!--frame1-->" - didFailLoadWithError > PASS did not cause assertion failure.
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 11388
:
11207
|
11208
|
109772
|
125812
|
126754
|
127124
|
127155
|
127529
|
339440
|
339448
|
339461
|
339477
|
339478
|
339738
|
339743
|
339744
|
339750
|
339751