Changeset 259324 in webkit


Ignore:
Timestamp:
Mar 31, 2020 5:09:44 PM (4 years ago)
Author:
achristensen@apple.com
Message:

Send correct UserContentControllerIdentifier after using SPI WKWebpagePreferences._userContentController
https://bugs.webkit.org/show_bug.cgi?id=209833

Reviewed by Tim Hatcher.

Source/WebKit:

Covered by an API test. I knew something was broken in r259307 and this was it.

  • Shared/UserContentControllerParameters.cpp:

(WebKit::UserContentControllerParameters::encode const):
(WebKit::UserContentControllerParameters::decode):

  • Shared/UserContentControllerParameters.h:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::parameters const):

  • UIProcess/WebPageProxy.cpp:
  • WebProcess/WebPage/WebPage.cpp:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r259323 r259324  
     12020-03-31  Alex Christensen  <achristensen@webkit.org>
     2
     3        Send correct UserContentControllerIdentifier after using SPI WKWebpagePreferences._userContentController
     4        https://bugs.webkit.org/show_bug.cgi?id=209833
     5
     6        Reviewed by Tim Hatcher.
     7
     8        Covered by an API test.  I knew something was broken in r259307 and this was it.
     9
     10        * Shared/UserContentControllerParameters.cpp:
     11        (WebKit::UserContentControllerParameters::encode const):
     12        (WebKit::UserContentControllerParameters::decode):
     13        * Shared/UserContentControllerParameters.h:
     14        * Shared/WebPageCreationParameters.cpp:
     15        (WebKit::WebPageCreationParameters::encode const):
     16        (WebKit::WebPageCreationParameters::decode):
     17        * Shared/WebPageCreationParameters.h:
     18        * UIProcess/UserContent/WebUserContentControllerProxy.cpp:
     19        (WebKit::WebUserContentControllerProxy::parameters const):
     20        * UIProcess/WebPageProxy.cpp:
     21        * WebProcess/WebPage/WebPage.cpp:
     22
    1232020-03-31  Fujii Hironori  <Hironori.Fujii@sony.com>
    224
  • trunk/Source/WebKit/Shared/UserContentControllerParameters.cpp

    r259307 r259324  
    3434void UserContentControllerParameters::encode(IPC::Encoder& encoder) const
    3535{
     36    encoder << identifier;
    3637    encoder << userContentWorlds;
    3738    encoder << userScripts;
     
    4546Optional<UserContentControllerParameters> UserContentControllerParameters::decode(IPC::Decoder& decoder)
    4647{
     48    Optional<UserContentControllerIdentifier> identifier;
     49    decoder >> identifier;
     50    if (!identifier)
     51        return WTF::nullopt;
     52   
    4753    Optional<Vector<std::pair<ContentWorldIdentifier, String>>> userContentWorlds;
    4854    decoder >> userContentWorlds;
     
    7379
    7480    return {{
     81        WTFMove(*identifier),
    7582        WTFMove(*userContentWorlds),
    7683        WTFMove(*userScripts),
  • trunk/Source/WebKit/Shared/UserContentControllerParameters.h

    r259307 r259324  
    2626#pragma once
    2727
     28#include "UserContentControllerIdentifier.h"
    2829#include "WebCompiledContentRuleListData.h"
    2930#include "WebUserContentControllerDataTypes.h"
     
    3839struct UserContentControllerParameters {
    3940
     41    UserContentControllerIdentifier identifier;
    4042    Vector<std::pair<ContentWorldIdentifier, String>> userContentWorlds;
    4143    Vector<WebUserScriptData> userScripts;
  • trunk/Source/WebKit/Shared/WebPageCreationParameters.cpp

    r259307 r259324  
    5555    encoder << itemStatesWereRestoredByAPIRequest;
    5656    encoder << itemStates;
    57     encoder << userContentControllerID;
    5857    encoder << visitedLinkTableID;
    5958    encoder << canRunBeforeUnloadConfirmPanel;
     
    219218    parameters.itemStates = WTFMove(*itemStates);
    220219
    221     Optional<UserContentControllerIdentifier> userContentControllerIdentifier;
    222     decoder >> userContentControllerIdentifier;
    223     if (!userContentControllerIdentifier)
    224         return WTF::nullopt;
    225     parameters.userContentControllerID = *userContentControllerIdentifier;
    226 
    227220    if (!decoder.decode(parameters.visitedLinkTableID))
    228221        return WTF::nullopt;
  • trunk/Source/WebKit/Shared/WebPageCreationParameters.h

    r259307 r259324  
    100100    Vector<BackForwardListItemState> itemStates;
    101101
    102     UserContentControllerIdentifier userContentControllerID;
    103102    uint64_t visitedLinkTableID;
    104103    bool canRunBeforeUnloadConfirmPanel;
  • trunk/Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp

    r259307 r259324  
    109109    UserContentControllerParameters parameters;
    110110
     111    parameters.identifier = identifier();
     112   
    111113    for (const auto& world : m_contentWorlds)
    112114        parameters.userContentWorlds.append(world.key->worldData());
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r259307 r259324  
    76857685    parameters.itemStatesWereRestoredByAPIRequest = m_sessionStateWasRestoredByAPIRequest;
    76867686    parameters.itemStates = m_backForwardList->itemStates();
    7687     parameters.userContentControllerID = m_userContentController->identifier();
    76887687    parameters.visitedLinkTableID = m_visitedLinkStore->identifier();
    76897688    parameters.canRunBeforeUnloadConfirmPanel = m_uiClient->canRunBeforeUnloadConfirmPanel();
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r259307 r259324  
    423423    , m_findController(makeUniqueRef<FindController>(this))
    424424    , m_inspectorTargetController(makeUnique<WebPageInspectorTargetController>(*this))
    425     , m_userContentController(WebUserContentController::getOrCreate(parameters.userContentControllerID))
     425    , m_userContentController(WebUserContentController::getOrCreate(parameters.userContentControllerParameters.identifier))
    426426#if ENABLE(GEOLOCATION)
    427427    , m_geolocationPermissionRequestManager(makeUniqueRef<GeolocationPermissionRequestManager>(*this))
  • trunk/Tools/ChangeLog

    r259322 r259324  
     12020-03-31  Alex Christensen  <achristensen@webkit.org>
     2
     3        Send correct UserContentControllerIdentifier after using SPI WKWebpagePreferences._userContentController
     4        https://bugs.webkit.org/show_bug.cgi?id=209833
     5
     6        Reviewed by Tim Hatcher.
     7
     8        * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
     9
    1102020-03-31  Brent Fulgham  <bfulgham@apple.com>
    211
  • trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm

    r259307 r259324  
    17791779    EXPECT_TRUE(caughtException);
    17801780
    1781     // FIXME: Make _addUserScriptImmediately work successfully after using WKWebpagePreferences._userContentController
    1782 }
     1781    [replacementUserContentController _addUserScriptImmediately:makeScript(@"alert('testAlert3');")];
     1782    EXPECT_WK_STREQ([uiDelegate waitForAlert], "testAlert3");
     1783}
Note: See TracChangeset for help on using the changeset viewer.