Changeset 214251 in webkit


Ignore:
Timestamp:
Mar 22, 2017 9:15:16 AM (7 years ago)
Author:
Chris Dumez
Message:

Implement the "noopener" feature for window.open()
https://bugs.webkit.org/show_bug.cgi?id=163960
<rdar://problem/28941679>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Import test coverage from WPT upstream.

  • resources/import-expectations.json:
  • web-platform-tests/common/PrefixedLocalStorage.js: Added.

(PrefixedLocalStorage):
(PrefixedLocalStorage.prototype.clear):
(PrefixedLocalStorage.prototype.url):
(PrefixedLocalStorage.prototype.prefixedKey):
(PrefixedLocalStorage.prototype.setItem):
(PrefixedLocalStorage.prototype.onSet):
(PrefixedLocalStorageTest):
(PrefixedLocalStorageTest.prototype.cleanup):
(PrefixedLocalStorageResource):

  • web-platform-tests/common/w3c-import.log:
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-closed-expected.txt: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-closed.html: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-expected.txt: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-multiple-expected.txt: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-multiple.html: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noopener-expected.txt: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noopener.html: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noreferrer-expected.txt: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noreferrer.html: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener.html: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/close-opener.html: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/message-window-opener.html: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/multiple-opener.html: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/no-opener.html: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/open-closer.html: Added.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/w3c-import.log.
  • web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/w3c-import.log:

Source/WebCore:

Implement the "noopener" feature for window.open(). If 'noopener' is passed to window.open()
then the new Window's opener property will be null.

Tests: imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-closed.html

imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-multiple.html
imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noopener.html
imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noreferrer.html
imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

  • page/WindowFeatures.cpp:

(WebCore::parseWindowFeatures):
(WebCore::setWindowFeature):

  • page/WindowFeatures.h:
Location:
trunk
Files:
17 added
8 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r214211 r214251  
     12017-03-22  Chris Dumez  <cdumez@apple.com>
     2
     3        Implement the "noopener" feature for window.open()
     4        https://bugs.webkit.org/show_bug.cgi?id=163960
     5        <rdar://problem/28941679>
     6
     7        Reviewed by Sam Weinig.
     8
     9        Import test coverage from WPT upstream.
     10
     11        * resources/import-expectations.json:
     12        * web-platform-tests/common/PrefixedLocalStorage.js: Added.
     13        (PrefixedLocalStorage):
     14        (PrefixedLocalStorage.prototype.clear):
     15        (PrefixedLocalStorage.prototype.url):
     16        (PrefixedLocalStorage.prototype.prefixedKey):
     17        (PrefixedLocalStorage.prototype.setItem):
     18        (PrefixedLocalStorage.prototype.onSet):
     19        (PrefixedLocalStorageTest):
     20        (PrefixedLocalStorageTest.prototype.cleanup):
     21        (PrefixedLocalStorageResource):
     22        * web-platform-tests/common/w3c-import.log:
     23        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-closed-expected.txt: Added.
     24        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-closed.html: Added.
     25        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-expected.txt: Added.
     26        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-multiple-expected.txt: Added.
     27        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-multiple.html: Added.
     28        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noopener-expected.txt: Added.
     29        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noopener.html: Added.
     30        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noreferrer-expected.txt: Added.
     31        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noreferrer.html: Added.
     32        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener.html: Added.
     33        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/close-opener.html: Added.
     34        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/message-window-opener.html: Added.
     35        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/multiple-opener.html: Added.
     36        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/no-opener.html: Added.
     37        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/open-closer.html: Added.
     38        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/w3c-import.log.
     39        * web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/w3c-import.log:
     40
    1412017-03-20  Jon Lee  <jonlee@apple.com>
    242
  • trunk/LayoutTests/imported/w3c/resources/import-expectations.json

    r214147 r214251  
    103103    "web-platform-tests/clear-site-data": "skip",
    104104    "web-platform-tests/clipboard": "skip",
     105    "web-platform-tests/common/": "import",
    105106    "web-platform-tests/compat": "skip",
    106107    "web-platform-tests/console": "skip",
     
    196197    "web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.sub.html": "skip",
    197198    "web-platform-tests/html/browsers/sandboxing": "skip",
     199    "web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/": "import",
    198200    "web-platform-tests/html/browsers/windows/browsing-context-first-created.xhtml": "skip",
    199201    "web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.html": "skip",
  • trunk/LayoutTests/imported/w3c/web-platform-tests/common/w3c-import.log

    r214135 r214251  
    1717List of files:
    1818/LayoutTests/imported/w3c/web-platform-tests/common/OWNERS
     19/LayoutTests/imported/w3c/web-platform-tests/common/PrefixedLocalStorage.js
    1920/LayoutTests/imported/w3c/web-platform-tests/common/blank.html
    2021/LayoutTests/imported/w3c/web-platform-tests/common/canvas-frame.css
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/w3c-import.log

    r214250 r214251  
    1616------------------------------------------------------------------------
    1717List of files:
    18 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/contains.json
     18/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/close-opener.html
     19/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/message-window-opener.html
     20/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/multiple-opener.html
     21/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/no-opener.html
     22/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/resources/open-closer.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/w3c-import.log

    r204844 r214251  
    1717List of files:
    1818/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/contains.json
     19/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-closed.html
     20/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-multiple.html
     21/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noopener.html
     22/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noreferrer.html
     23/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener.html
  • trunk/Source/WebCore/ChangeLog

    r214246 r214251  
     12017-03-22  Chris Dumez  <cdumez@apple.com>
     2
     3        Implement the "noopener" feature for window.open()
     4        https://bugs.webkit.org/show_bug.cgi?id=163960
     5        <rdar://problem/28941679>
     6
     7        Reviewed by Sam Weinig.
     8
     9        Implement the "noopener" feature for window.open(). If 'noopener' is passed to window.open()
     10        then the new Window's opener property will be null.
     11
     12        Tests: imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-closed.html
     13               imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-multiple.html
     14               imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noopener.html
     15               imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noreferrer.html
     16               imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener.html
     17
     18        * page/DOMWindow.cpp:
     19        (WebCore::DOMWindow::createWindow):
     20        * page/WindowFeatures.cpp:
     21        (WebCore::parseWindowFeatures):
     22        (WebCore::setWindowFeature):
     23        * page/WindowFeatures.h:
     24
    1252017-03-21  Sergio Villar Senin  <svillar@igalia.com>
    226
  • trunk/Source/WebCore/page/DOMWindow.cpp

    r214147 r214251  
    21992199        return nullptr;
    22002200
    2201     newFrame->loader().setOpener(&openerFrame);
     2201    if (!windowFeatures.noopener)
     2202        newFrame->loader().setOpener(&openerFrame);
    22022203    newFrame->page()->setOpenedByDOM();
    22032204
  • trunk/Source/WebCore/page/WindowFeatures.cpp

    r208985 r214251  
    6464    features.locationBarVisible = false;
    6565    features.scrollbarsVisible = false;
     66    features.noopener = false;
    6667
    6768    processFeaturesString(featuresString, [&features](StringView key, StringView value) {
     
    136137    else if (equalLettersIgnoringASCIICase(key, "scrollbars"))
    137138        features.scrollbarsVisible = numericValue;
     139    else if (equalLettersIgnoringASCIICase(key, "noopener"))
     140        features.noopener = numericValue;
    138141    else if (numericValue == 1)
    139142        features.additionalFeatures.append(key.toString());
  • trunk/Source/WebCore/page/WindowFeatures.h

    r208985 r214251  
    5353    bool fullscreen { false };
    5454    bool dialog { false };
     55    bool noopener { false };
    5556
    5657    Vector<String> additionalFeatures;
Note: See TracChangeset for help on using the changeset viewer.