Changeset 284749 in webkit


Ignore:
Timestamp:
Oct 23, 2021 3:26:53 PM (9 months ago)
Author:
Chris Dumez
Message:

Add support for rel="noopener/noreferrer" on <form> elements
https://bugs.webkit.org/show_bug.cgi?id=232170

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/html/semantics/forms/form-submission-target/rel-base-target-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-target/rel-button-target-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-target/rel-form-target-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-target/rel-input-target-expected.txt:

Source/WebCore:

Add support for rel="opener/noopener/noreferrer" on <form> elements:

This patch also adds support for the rel and relList attributes on <form>.

Test: fast/forms/form-relList.html

  • html/HTMLFormElement.cpp:

(WebCore::parseFormRelAttributes):
(WebCore::HTMLFormElement::submit):
(WebCore::HTMLFormElement::parseAttribute):
(WebCore::HTMLFormElement::relList):

  • html/HTMLFormElement.h:
  • html/HTMLFormElement.idl:
  • loader/FormSubmission.h:

(WebCore::FormSubmission::newFrameOpenerPolicy const):
(WebCore::FormSubmission::setNewFrameOpenerPolicy):
(WebCore::FormSubmission::referrerPolicy const):
(WebCore::FormSubmission::setReferrerPolicy):

  • loader/NavigationScheduler.cpp:

LayoutTests:

  • fast/forms/form-relList-expected.txt: Added.
  • fast/forms/form-relList.html: Added.

Add test coverage for the new form.relList attribute.

  • http/tests/navigation/resources/target-blank-opener-post-window.py:
  • http/tests/navigation/target-blank-opener-post-expected.txt:
  • http/tests/navigation/target-blank-opener-post.html:

Update existing layout test to reflect behavior change.

  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:

Rebaseline WPT tests now that more checks are passing.

Location:
trunk
Files:
2 added
19 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r284747 r284749  
     12021-10-23  Chris Dumez  <cdumez@apple.com>
     2
     3        Add support for rel="noopener/noreferrer" on <form> elements
     4        https://bugs.webkit.org/show_bug.cgi?id=232170
     5
     6        Reviewed by Darin Adler.
     7
     8        * fast/forms/form-relList-expected.txt: Added.
     9        * fast/forms/form-relList.html: Added.
     10        Add test coverage for the new form.relList attribute.
     11
     12        * http/tests/navigation/resources/target-blank-opener-post-window.py:
     13        * http/tests/navigation/target-blank-opener-post-expected.txt:
     14        * http/tests/navigation/target-blank-opener-post.html:
     15        Update existing layout test to reflect behavior change.
     16
     17        * platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
     18        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
     19        Rebaseline WPT tests now that more checks are passing.
     20
    1212021-10-23  Alan Bujtas  <zalan@apple.com>
    222
  • trunk/LayoutTests/http/tests/navigation/resources/target-blank-opener-post-window.py

    r273781 r284749  
    1010    '<p>Referrer: {referer}</p>\n'
    1111    '<script>\n'
    12     'console.log("Referrer: {referer}");\n'
     12    'console.log("Referrer: " + ("{referer}" == "" ? "PASS" : "FAIL"));\n'
    1313    '\n'
    14     'var result = "window.opener: " + (window.opener ? "PASS" : "FAIL");\n'
     14    'var result = "window.opener: " + (window.opener ? "FAIL" : "PASS");\n'
    1515    'document.write(result);\n'
    1616    'console.log(result);\n'
  • trunk/LayoutTests/http/tests/navigation/target-blank-opener-post-expected.txt

    r259900 r284749  
    1 CONSOLE MESSAGE: Referrer: http://127.0.0.1:8000/navigation/target-blank-opener-post.html
     1CONSOLE MESSAGE: Referrer: PASS
    22CONSOLE MESSAGE: window.opener: PASS
    3 Test that rel="noreferrer" is unsupported by form elements, and that window.opener is available when form submission opens a new window.
     3Test that rel="noreferrer" is supported by form elements.
    44
    55
  • trunk/LayoutTests/http/tests/navigation/target-blank-opener-post.html

    r282103 r284749  
    66</head>
    77<body>
    8 <p>Test that rel="noreferrer" is unsupported by form elements, and that window.opener is available when form submission opens a new window.</p>
     8<p>Test that rel="noreferrer" is supported by form elements.</p>
    99<form id="testForm" action="resources/target-blank-opener-post-window.py" target="_blank" rel="noreferrer" method="post">
    1010<input type="submit" value="Test"></input>
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r284725 r284749  
     12021-10-23  Chris Dumez  <cdumez@apple.com>
     2
     3        Add support for rel="noopener/noreferrer" on <form> elements
     4        https://bugs.webkit.org/show_bug.cgi?id=232170
     5
     6        Reviewed by Darin Adler.
     7
     8        Rebaseline WPT tests that are now passing.
     9
     10        * web-platform-tests/html/semantics/forms/form-submission-target/rel-base-target-expected.txt:
     11        * web-platform-tests/html/semantics/forms/form-submission-target/rel-button-target-expected.txt:
     12        * web-platform-tests/html/semantics/forms/form-submission-target/rel-form-target-expected.txt:
     13        * web-platform-tests/html/semantics/forms/form-submission-target/rel-input-target-expected.txt:
     14
    1152021-10-22  Joonghun Park  <pjh0718@gmail.com>
    216
  • trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/put-forwards-expected.txt

    r267651 r284749  
    99PASS Setting a.relList to noreferrer is reflected in rel
    1010PASS Setting area.relList to noreferrer is reflected in rel
    11 FAIL Setting form.relList to noreferrer is reflected in rel assert_true: The attribute is a DOMTokenList expected true got false
     11PASS Setting form.relList to noreferrer is reflected in rel
    1212PASS Setting link.relList to stylesheet is reflected in rel
    1313
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-target/rel-base-target-expected.txt

    r279971 r284749  
    33
    44PASS <form rel=""> with <base target>
    5 FAIL <form rel="noopener"> with <base target> assert_false: opener expected false got true
    6 FAIL <form rel="noreferrer"> with <base target> assert_equals: referrer expected "" but got "http://localhost:8800/html/semantics/forms/form-submission-target/rel-base-target.html"
     5PASS <form rel="noopener"> with <base target>
     6PASS <form rel="noreferrer"> with <base target>
    77PASS <form rel="opener"> with <base target>
    8 FAIL <form rel="noopener noreferrer"> with <base target> assert_equals: referrer expected "" but got "http://localhost:8800/html/semantics/forms/form-submission-target/rel-base-target.html"
    9 FAIL <form rel="noreferrer opener"> with <base target> assert_equals: referrer expected "" but got "http://localhost:8800/html/semantics/forms/form-submission-target/rel-base-target.html"
    10 FAIL <form rel="opener noopener"> with <base target> assert_false: opener expected false got true
     8PASS <form rel="noopener noreferrer"> with <base target>
     9PASS <form rel="noreferrer opener"> with <base target>
     10PASS <form rel="opener noopener"> with <base target>
    1111
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-target/rel-button-target-expected.txt

    r279971 r284749  
    33
    44PASS <form rel=""> with <button formtarget>
    5 FAIL <form rel="noopener"> with <button formtarget> assert_false: opener expected false got true
    6 FAIL <form rel="noreferrer"> with <button formtarget> assert_equals: referrer expected "" but got "http://localhost:8800/html/semantics/forms/form-submission-target/rel-button-target.html"
     5PASS <form rel="noopener"> with <button formtarget>
     6PASS <form rel="noreferrer"> with <button formtarget>
    77PASS <form rel="opener"> with <button formtarget>
    8 FAIL <form rel="noopener noreferrer"> with <button formtarget> assert_equals: referrer expected "" but got "http://localhost:8800/html/semantics/forms/form-submission-target/rel-button-target.html"
    9 FAIL <form rel="noreferrer opener"> with <button formtarget> assert_equals: referrer expected "" but got "http://localhost:8800/html/semantics/forms/form-submission-target/rel-button-target.html"
    10 FAIL <form rel="opener noopener"> with <button formtarget> assert_false: opener expected false got true
     8PASS <form rel="noopener noreferrer"> with <button formtarget>
     9PASS <form rel="noreferrer opener"> with <button formtarget>
     10PASS <form rel="opener noopener"> with <button formtarget>
    1111
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-target/rel-form-target-expected.txt

    r279971 r284749  
    33
    44PASS <form rel=""> with <form target>
    5 FAIL <form rel="noopener"> with <form target> assert_false: opener expected false got true
    6 FAIL <form rel="noreferrer"> with <form target> assert_equals: referrer expected "" but got "http://localhost:8800/html/semantics/forms/form-submission-target/rel-form-target.html"
     5PASS <form rel="noopener"> with <form target>
     6PASS <form rel="noreferrer"> with <form target>
    77PASS <form rel="opener"> with <form target>
    8 FAIL <form rel="noopener noreferrer"> with <form target> assert_equals: referrer expected "" but got "http://localhost:8800/html/semantics/forms/form-submission-target/rel-form-target.html"
    9 FAIL <form rel="noreferrer opener"> with <form target> assert_equals: referrer expected "" but got "http://localhost:8800/html/semantics/forms/form-submission-target/rel-form-target.html"
    10 FAIL <form rel="opener noopener"> with <form target> assert_false: opener expected false got true
     8PASS <form rel="noopener noreferrer"> with <form target>
     9PASS <form rel="noreferrer opener"> with <form target>
     10PASS <form rel="opener noopener"> with <form target>
    1111
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-target/rel-input-target-expected.txt

    r279971 r284749  
    33
    44PASS <form rel=""> with <input formtarget>
    5 FAIL <form rel="noopener"> with <input formtarget> assert_false: opener expected false got true
    6 FAIL <form rel="noreferrer"> with <input formtarget> assert_equals: referrer expected "" but got "http://localhost:8800/html/semantics/forms/form-submission-target/rel-input-target.html"
     5PASS <form rel="noopener"> with <input formtarget>
     6PASS <form rel="noreferrer"> with <input formtarget>
    77PASS <form rel="opener"> with <input formtarget>
    8 FAIL <form rel="noopener noreferrer"> with <input formtarget> assert_equals: referrer expected "" but got "http://localhost:8800/html/semantics/forms/form-submission-target/rel-input-target.html"
    9 FAIL <form rel="noreferrer opener"> with <input formtarget> assert_equals: referrer expected "" but got "http://localhost:8800/html/semantics/forms/form-submission-target/rel-input-target.html"
    10 FAIL <form rel="opener noopener"> with <input formtarget> assert_false: opener expected false got true
     8PASS <form rel="noopener noreferrer"> with <input formtarget>
     9PASS <form rel="noreferrer opener"> with <input formtarget>
     10PASS <form rel="opener noopener"> with <input formtarget>
    1111
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/rellist-feature-detection-expected.txt

    r284745 r284749  
    33PASS Make sure that relList based feature detection is working for <a>
    44PASS Make sure that relList based feature detection is working for <area>
    5 FAIL Make sure that relList based feature detection is working for <form> undefined is not an object (evaluating 'element.relList.contains')
     5PASS Make sure that relList based feature detection is working for <form>
    66
  • trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt

    r282484 r284749  
    18711871PASS HTMLFormElement interface: attribute noValidate
    18721872PASS HTMLFormElement interface: attribute target
    1873 FAIL HTMLFormElement interface: attribute rel assert_true: The prototype object must have a property "rel" expected true got false
    1874 FAIL HTMLFormElement interface: attribute relList assert_true: The prototype object must have a property "relList" expected true got false
     1873PASS HTMLFormElement interface: attribute rel
     1874PASS HTMLFormElement interface: attribute relList
    18751875PASS HTMLFormElement interface: attribute elements
    18761876PASS HTMLFormElement interface: attribute length
     
    18911891PASS HTMLFormElement interface: document.createElement("form") must inherit property "noValidate" with the proper type
    18921892PASS HTMLFormElement interface: document.createElement("form") must inherit property "target" with the proper type
    1893 FAIL HTMLFormElement interface: document.createElement("form") must inherit property "rel" with the proper type assert_inherits: property "rel" not found in prototype chain
    1894 FAIL HTMLFormElement interface: document.createElement("form") must inherit property "relList" with the proper type assert_inherits: property "relList" not found in prototype chain
     1893PASS HTMLFormElement interface: document.createElement("form") must inherit property "rel" with the proper type
     1894PASS HTMLFormElement interface: document.createElement("form") must inherit property "relList" with the proper type
    18951895PASS HTMLFormElement interface: document.createElement("form") must inherit property "elements" with the proper type
    18961896PASS HTMLFormElement interface: document.createElement("form") must inherit property "length" with the proper type
  • trunk/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt

    r282618 r284749  
    18711871PASS HTMLFormElement interface: attribute noValidate
    18721872PASS HTMLFormElement interface: attribute target
    1873 FAIL HTMLFormElement interface: attribute rel assert_true: The prototype object must have a property "rel" expected true got false
    1874 FAIL HTMLFormElement interface: attribute relList assert_true: The prototype object must have a property "relList" expected true got false
     1873PASS HTMLFormElement interface: attribute rel
     1874PASS HTMLFormElement interface: attribute relList
    18751875PASS HTMLFormElement interface: attribute elements
    18761876PASS HTMLFormElement interface: attribute length
     
    18911891PASS HTMLFormElement interface: document.createElement("form") must inherit property "noValidate" with the proper type
    18921892PASS HTMLFormElement interface: document.createElement("form") must inherit property "target" with the proper type
    1893 FAIL HTMLFormElement interface: document.createElement("form") must inherit property "rel" with the proper type assert_inherits: property "rel" not found in prototype chain
    1894 FAIL HTMLFormElement interface: document.createElement("form") must inherit property "relList" with the proper type assert_inherits: property "relList" not found in prototype chain
     1893PASS HTMLFormElement interface: document.createElement("form") must inherit property "rel" with the proper type
     1894PASS HTMLFormElement interface: document.createElement("form") must inherit property "relList" with the proper type
    18951895PASS HTMLFormElement interface: document.createElement("form") must inherit property "elements" with the proper type
    18961896PASS HTMLFormElement interface: document.createElement("form") must inherit property "length" with the proper type
     
    50085008FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
    50095009PASS Worker interface: attribute onerror
    5010 FAIL SharedWorker interface: existence and properties of interface object assert_own_property: self does not have own property "SharedWorker" expected property "SharedWorker" missing
    5011 FAIL SharedWorker interface object length assert_own_property: self does not have own property "SharedWorker" expected property "SharedWorker" missing
    5012 FAIL SharedWorker interface object name assert_own_property: self does not have own property "SharedWorker" expected property "SharedWorker" missing
    5013 FAIL SharedWorker interface: existence and properties of interface prototype object assert_own_property: self does not have own property "SharedWorker" expected property "SharedWorker" missing
    5014 FAIL SharedWorker interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "SharedWorker" expected property "SharedWorker" missing
    5015 FAIL SharedWorker interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "SharedWorker" expected property "SharedWorker" missing
    5016 FAIL SharedWorker interface: attribute port assert_own_property: self does not have own property "SharedWorker" expected property "SharedWorker" missing
    5017 FAIL SharedWorker interface: attribute onerror assert_own_property: self does not have own property "SharedWorker" expected property "SharedWorker" missing
     5010PASS SharedWorker interface: existence and properties of interface object
     5011PASS SharedWorker interface object length
     5012PASS SharedWorker interface object name
     5013PASS SharedWorker interface: existence and properties of interface prototype object
     5014PASS SharedWorker interface: existence and properties of interface prototype object's "constructor" property
     5015PASS SharedWorker interface: existence and properties of interface prototype object's @@unscopables property
     5016PASS SharedWorker interface: attribute port
     5017PASS SharedWorker interface: attribute onerror
    50185018PASS WorkerNavigator interface: existence and properties of interface object
    50195019PASS WorkerLocation interface: existence and properties of interface object
  • trunk/Source/WebCore/ChangeLog

    r284747 r284749  
     12021-10-23  Chris Dumez  <cdumez@apple.com>
     2
     3        Add support for rel="noopener/noreferrer" on <form> elements
     4        https://bugs.webkit.org/show_bug.cgi?id=232170
     5
     6        Reviewed by Darin Adler.
     7
     8        Add support for rel="opener/noopener/noreferrer" on <form> elements:
     9        - https://html.spec.whatwg.org/multipage/links.html#get-an-element's-noopener
     10        - https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#form-submission-algorithm:get-an-element's-noopener
     11        - https://html.spec.whatwg.org/multipage/forms.html#dom-form-rel
     12        - https://html.spec.whatwg.org/multipage/links.html#linkTypes
     13
     14        This patch also adds support for the rel and relList attributes on <form>.
     15
     16        Test: fast/forms/form-relList.html
     17
     18        * html/HTMLFormElement.cpp:
     19        (WebCore::parseFormRelAttributes):
     20        (WebCore::HTMLFormElement::submit):
     21        (WebCore::HTMLFormElement::parseAttribute):
     22        (WebCore::HTMLFormElement::relList):
     23        * html/HTMLFormElement.h:
     24        * html/HTMLFormElement.idl:
     25        * loader/FormSubmission.h:
     26        (WebCore::FormSubmission::newFrameOpenerPolicy const):
     27        (WebCore::FormSubmission::setNewFrameOpenerPolicy):
     28        (WebCore::FormSubmission::referrerPolicy const):
     29        (WebCore::FormSubmission::setReferrerPolicy):
     30        * loader/NavigationScheduler.cpp:
     31
    1322021-10-23  Alan Bujtas  <zalan@apple.com>
    233
  • trunk/Source/WebCore/html/HTMLFormElement.cpp

    r284660 r284749  
    2727
    2828#include "DOMFormData.h"
     29#include "DOMTokenList.h"
    2930#include "DOMWindow.h"
    3031#include "DiagnosticLoggingClient.h"
     
    7071using namespace HTMLNames;
    7172
     73struct FormRelAttributes {
     74    bool noopener { false };
     75    bool noreferrer { false };
     76};
     77
     78static FormRelAttributes parseFormRelAttributes(StringView string)
     79{
     80    FormRelAttributes attributes;
     81    for (auto token : string.split(' ')) {
     82        if (equalIgnoringASCIICase(token, "noopener"))
     83            attributes.noopener = true;
     84        else if (equalIgnoringASCIICase(token, "noreferrer"))
     85            attributes.noreferrer = true;
     86    }
     87    return attributes;
     88}
     89
    7290HTMLFormElement::HTMLFormElement(const QualifiedName& tagName, Document& document)
    7391    : HTMLElement(tagName, document)
     
    406424    if (!isConnected())
    407425        return;
     426
     427    auto relAttributes = parseFormRelAttributes(getAttribute(HTMLNames::relAttr));
     428    // FIXME: According to the specification, having `target=blank` without `rel="opener"` should suppress the opener.
     429    // However, this is not currently implemented as it is causing some WPT tests to fail (https://github.com/whatwg/html/issues/7256).
     430    if (relAttributes.noopener || relAttributes.noreferrer)
     431        formSubmission->setNewFrameOpenerPolicy(NewFrameOpenerPolicy::Suppress);
     432    if (relAttributes.noreferrer)
     433        formSubmission->setReferrerPolicy(ReferrerPolicy::NoReferrer);
    408434
    409435    if (m_plannedFormSubmission)
     
    515541        else
    516542            document().unregisterForDocumentSuspensionCallbacks(*this);
     543    } else if (name == relAttr) {
     544        if (m_relList)
     545            m_relList->associatedAttributeValueChanged(value);
    517546    } else
    518547        HTMLElement::parseAttribute(name, value);
     
    715744{
    716745    setAttributeWithoutSynchronization(methodAttr, value);
     746}
     747
     748DOMTokenList& HTMLFormElement::relList()
     749{
     750    if (!m_relList) {
     751        m_relList = makeUnique<DOMTokenList>(*this, HTMLNames::relAttr, [](Document&, StringView token) {
     752            return equalIgnoringASCIICase(token, "noreferrer") || equalIgnoringASCIICase(token, "noopener") || equalIgnoringASCIICase(token, "opener");
     753        });
     754    }
     755    return *m_relList;
    717756}
    718757
  • trunk/Source/WebCore/html/HTMLFormElement.h

    r284075 r284749  
    102102    WEBCORE_EXPORT String method() const;
    103103    WEBCORE_EXPORT void setMethod(const String&);
     104
     105    DOMTokenList& relList();
    104106
    105107    String target() const final;
     
    187189    WeakHashSet<HTMLFormControlElement> m_invalidAssociatedFormControls;
    188190    WeakPtr<FormSubmission> m_plannedFormSubmission;
     191    std::unique_ptr<DOMTokenList> m_relList;
    189192
    190193    bool m_wasUserSubmitted { false };
  • trunk/Source/WebCore/html/HTMLFormElement.idl

    r283463 r284749  
    3434    [CEReactions=NotNeeded, Reflect] attribute boolean noValidate;
    3535    [CEReactions=NotNeeded, Reflect] attribute DOMString target;
     36    [CEReactions, Reflect] attribute DOMString rel;
     37    [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
    3638
    3739    readonly attribute HTMLFormControlsCollection elements;
  • trunk/Source/WebCore/loader/FormSubmission.h

    r279401 r284749  
    3333#include "FormState.h"
    3434#include "FrameLoaderTypes.h"
     35#include "ReferrerPolicy.h"
    3536#include "RuntimeEnabledFeatures.h"
    3637#include <wtf/URL.h>
     
    105106    bool wasCancelled() const { return m_wasCancelled; }
    106107
     108    NewFrameOpenerPolicy newFrameOpenerPolicy() const { return m_newFrameOpenerPolicy; }
     109    void setNewFrameOpenerPolicy(NewFrameOpenerPolicy newFrameOpenerPolicy) { m_newFrameOpenerPolicy = newFrameOpenerPolicy; }
     110
     111    ReferrerPolicy referrerPolicy() const { return m_referrerPolicy; }
     112    void setReferrerPolicy(ReferrerPolicy referrerPolicy) { m_referrerPolicy = referrerPolicy; }
     113
    107114private:
    108115    // dialog form submissions
     
    127134
    128135    String m_returnValue; // for form[method=dialog]
     136
     137    NewFrameOpenerPolicy m_newFrameOpenerPolicy { NewFrameOpenerPolicy::Allow };
     138    ReferrerPolicy m_referrerPolicy { ReferrerPolicy::EmptyString };
    129139};
    130140
  • trunk/Source/WebCore/loader/NavigationScheduler.cpp

    r282860 r284749  
    316316        frameLoadRequest.setLockHistory(lockHistory());
    317317        frameLoadRequest.setLockBackForwardList(lockBackForwardList());
    318         frameLoadRequest.setReferrerPolicy(ReferrerPolicy::EmptyString);
     318        frameLoadRequest.setReferrerPolicy(m_submission->referrerPolicy());
     319        frameLoadRequest.setNewFrameOpenerPolicy(m_submission->newFrameOpenerPolicy());
    319320        frameLoadRequest.setShouldOpenExternalURLsPolicy(shouldOpenExternalURLs());
    320321        m_submission->populateFrameLoadRequest(frameLoadRequest);
Note: See TracChangeset for help on using the changeset viewer.