Changeset 222294 in webkit


Ignore:
Timestamp:
Sep 20, 2017, 3:27:23 PM (8 years ago)
Author:
achristensen@apple.com
Message:

Remove ActionType::CSSDisplayNoneStyleSheet
https://bugs.webkit.org/show_bug.cgi?id=177275

Reviewed by Andy Estes.

Source/WebCore:

It not a real action type anyways. It was a fake action type
that stored a String indicating which ContentRuleLists had not triggered
an ignore-previous-rules action, so we should apply the default stylesheet,
which is the css-display-none selectors that match everything.

No change in behaviour. Covered by existing tests.

  • contentextensions/ContentExtensionActions.h:
  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::serializeActions):

  • contentextensions/ContentExtensionRule.cpp:

(WebCore::ContentExtensions::Action::deserialize):
(WebCore::ContentExtensions::Action::deserializeType):
(WebCore::ContentExtensions::Action::serializedLength):

  • contentextensions/ContentExtensionRule.h:

(WebCore::ContentExtensions::Action::Action):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad const):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForPingLoad):

  • contentextensions/ContentExtensionsBackend.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::open):

  • page/UserContentProvider.cpp:

(WebCore::UserContentProvider::actionsForResourceLoad):

  • page/UserContentProvider.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(WebCore::ContentExtensions::operator<<):
(TestWebKitAPI::testRequest):
(TestWebKitAPI::TEST_F):

Location:
trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/Source/WebCore/ChangeLog

    r222292 r222294  
     12017-09-20  Alex Christensen  <achristensen@webkit.org>
     2
     3        Remove ActionType::CSSDisplayNoneStyleSheet
     4        https://bugs.webkit.org/show_bug.cgi?id=177275
     5
     6        Reviewed by Andy Estes.
     7
     8        It not a real action type anyways.  It was a fake action type
     9        that stored a String indicating which ContentRuleLists had not triggered
     10        an ignore-previous-rules action, so we should apply the default stylesheet,
     11        which is the css-display-none selectors that match everything.
     12
     13        No change in behaviour.  Covered by existing tests.
     14
     15        * contentextensions/ContentExtensionActions.h:
     16        * contentextensions/ContentExtensionCompiler.cpp:
     17        (WebCore::ContentExtensions::serializeActions):
     18        * contentextensions/ContentExtensionRule.cpp:
     19        (WebCore::ContentExtensions::Action::deserialize):
     20        (WebCore::ContentExtensions::Action::deserializeType):
     21        (WebCore::ContentExtensions::Action::serializedLength):
     22        * contentextensions/ContentExtensionRule.h:
     23        (WebCore::ContentExtensions::Action::Action):
     24        * contentextensions/ContentExtensionsBackend.cpp:
     25        (WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad const):
     26        (WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad):
     27        (WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForPingLoad):
     28        * contentextensions/ContentExtensionsBackend.h:
     29        * page/DOMWindow.cpp:
     30        (WebCore::DOMWindow::open):
     31        * page/UserContentProvider.cpp:
     32        (WebCore::UserContentProvider::actionsForResourceLoad):
     33        * page/UserContentProvider.h:
     34
    1352017-09-20  Zalan Bujtas  <zalan@apple.com>
    236
  • TabularUnified trunk/Source/WebCore/contentextensions/ContentExtensionActions.h

    r222283 r222294  
    4040    BlockCookies,
    4141    CSSDisplayNoneSelector,
    42     CSSDisplayNoneStyleSheet,
    43     IgnorePreviousRules,
    44     MakeHTTPS,
     42    IgnorePreviousRules = 3,
     43    MakeHTTPS = 4,
    4544};
    4645
  • TabularUnified trunk/Source/WebCore/contentextensions/ContentExtensionCompiler.cpp

    r222283 r222294  
    152152
    153153        switch (actionType) {
    154         case ActionType::CSSDisplayNoneStyleSheet:
    155             RELEASE_ASSERT_NOT_REACHED();
    156 
    157154        case ActionType::CSSDisplayNoneSelector: {
    158155            const auto addResult = cssDisplayNoneActionsMap.add(rule.trigger(), PendingDisplayNoneActions());
  • TabularUnified trunk/Source/WebCore/contentextensions/ContentExtensionRule.cpp

    r222283 r222294  
    6868    case ActionType::CSSDisplayNoneSelector:
    6969        return Action(actionType, deserializeString(actions, actionsLength, location + sizeof(ActionType)), location);
    70     case ActionType::CSSDisplayNoneStyleSheet:
    71         break;
    7270    }
    7371    RELEASE_ASSERT_NOT_REACHED();
     
    8583    case ActionType::MakeHTTPS:
    8684        return type;
    87     case ActionType::CSSDisplayNoneStyleSheet:
    88         break;
    8985    }
    9086    RELEASE_ASSERT_NOT_REACHED();
     
    111107        return prefixLength + stringLength * sizeof(LChar);
    112108    }
    113     case ActionType::CSSDisplayNoneStyleSheet:
    114         break;
    115109    }
    116110    RELEASE_ASSERT_NOT_REACHED();
  • TabularUnified trunk/Source/WebCore/contentextensions/ContentExtensionRule.h

    r222283 r222294  
    136136        , m_stringArgument(stringArgument)
    137137    {
    138         ASSERT(type == ActionType::CSSDisplayNoneSelector || type == ActionType::CSSDisplayNoneStyleSheet);
     138        ASSERT(type == ActionType::CSSDisplayNoneSelector);
    139139    }
    140140
     
    144144    {
    145145        ASSERT(type != ActionType::CSSDisplayNoneSelector);
    146         ASSERT(type != ActionType::CSSDisplayNoneStyleSheet);
    147146    }
    148147
  • TabularUnified trunk/Source/WebCore/contentextensions/ContentExtensionsBackend.cpp

    r222283 r222294  
    6969}
    7070
    71 Vector<Action> ContentExtensionsBackend::actionsForResourceLoad(const ResourceLoadInfo& resourceLoadInfo) const
     71std::pair<Vector<Action>, Vector<String>> ContentExtensionsBackend::actionsForResourceLoad(const ResourceLoadInfo& resourceLoadInfo) const
    7272{
    7373#if CONTENT_EXTENSIONS_PERFORMANCE_REPORTING
     
    7575#endif
    7676    if (resourceLoadInfo.resourceURL.protocolIsData())
    77         return Vector<Action>();
     77        return { };
    7878
    7979    const String& urlString = resourceLoadInfo.resourceURL.string();
     
    8282
    8383    Vector<Action> finalActions;
     84    Vector<String> stylesheetIdentifiers;
    8485    ResourceFlags flags = resourceLoadInfo.getResourceFlags();
    8586    for (auto& contentExtension : m_contentExtensions.values()) {
     
    123124            }
    124125        }
    125         if (!sawIgnorePreviousRules) {
    126             finalActions.append(Action(ActionType::CSSDisplayNoneStyleSheet, contentExtension->identifier()));
    127             finalActions.last().setExtensionIdentifier(contentExtension->identifier());
    128         }
     126        if (!sawIgnorePreviousRules)
     127            stylesheetIdentifiers.append(contentExtension->identifier());
    129128    }
    130129#if CONTENT_EXTENSIONS_PERFORMANCE_REPORTING
     
    132131    dataLogF("Time added: %f microseconds %s \n", (addedTimeEnd - addedTimeStart) * 1.0e6, resourceLoadInfo.resourceURL.string().utf8().data());
    133132#endif
    134     return finalActions;
     133    return { WTFMove(finalActions), WTFMove(stylesheetIdentifiers) };
    135134}
    136135
     
    167166
    168167    ResourceLoadInfo resourceLoadInfo = { url, mainDocumentURL, resourceType };
    169     Vector<ContentExtensions::Action> actions = actionsForResourceLoad(resourceLoadInfo);
     168    auto actions = actionsForResourceLoad(resourceLoadInfo);
    170169
    171170    bool willBlockLoad = false;
    172171    bool willBlockCookies = false;
    173172    bool willMakeHTTPS = false;
    174     for (const auto& action : actions) {
     173    for (const auto& action : actions.first) {
    175174        switch (action.type()) {
    176175        case ContentExtensions::ActionType::BlockLoad:
     
    186185                currentDocument->extensionStyleSheets().addDisplayNoneSelector(action.extensionIdentifier(), action.stringArgument(), action.actionID());
    187186            break;
    188         case ContentExtensions::ActionType::CSSDisplayNoneStyleSheet: {
    189             StyleSheetContents* styleSheetContents = globalDisplayNoneStyleSheet(action.stringArgument());
    190             if (styleSheetContents) {
    191                 if (resourceType == ResourceType::Document)
    192                     initiatingDocumentLoader.addPendingContentExtensionSheet(action.stringArgument(), *styleSheetContents);
    193                 else if (currentDocument)
    194                     currentDocument->extensionStyleSheets().maybeAddContentExtensionSheet(action.stringArgument(), *styleSheetContents);
    195             }
    196             break;
    197         }
    198187        case ContentExtensions::ActionType::MakeHTTPS: {
    199188            if ((url.protocolIs("http") || url.protocolIs("ws"))
     
    204193        case ContentExtensions::ActionType::IgnorePreviousRules:
    205194            RELEASE_ASSERT_NOT_REACHED();
     195        }
     196    }
     197
     198    for (const auto& identifier : actions.second) {
     199        if (auto* styleSheetContents = globalDisplayNoneStyleSheet(identifier)) {
     200            if (resourceType == ResourceType::Document)
     201                initiatingDocumentLoader.addPendingContentExtensionSheet(identifier, *styleSheetContents);
     202            else if (currentDocument)
     203                currentDocument->extensionStyleSheets().maybeAddContentExtensionSheet(identifier, *styleSheetContents);
    206204        }
    207205    }
     
    225223
    226224    ResourceLoadInfo resourceLoadInfo = { url, mainDocumentURL, ResourceType::Raw };
    227     Vector<ContentExtensions::Action> actions = actionsForResourceLoad(resourceLoadInfo);
     225    auto actions = actionsForResourceLoad(resourceLoadInfo);
    228226
    229227    bool willBlockLoad = false;
    230228    bool willBlockCookies = false;
    231229    bool willMakeHTTPS = false;
    232     for (const auto& action : actions) {
     230    for (const auto& action : actions.first) {
    233231        switch (action.type()) {
    234232        case ContentExtensions::ActionType::BlockLoad:
     
    243241            break;
    244242        case ContentExtensions::ActionType::CSSDisplayNoneSelector:
    245         case ContentExtensions::ActionType::CSSDisplayNoneStyleSheet:
    246243            break;
    247244        case ContentExtensions::ActionType::IgnorePreviousRules:
  • TabularUnified trunk/Source/WebCore/contentextensions/ContentExtensionsBackend.h

    r220996 r222294  
    6262
    6363    // - Internal WebCore Interface.
    64     WEBCORE_EXPORT Vector<Action> actionsForResourceLoad(const ResourceLoadInfo&) const;
     64    WEBCORE_EXPORT std::pair<Vector<Action>, Vector<String>> actionsForResourceLoad(const ResourceLoadInfo&) const;
    6565    WEBCORE_EXPORT StyleSheetContents* globalDisplayNoneStyleSheet(const String& identifier) const;
    6666
  • TabularUnified trunk/Source/WebCore/page/DOMWindow.cpp

    r222238 r222294  
    22522252        && firstFrame->mainFrame().document()->loader()) {
    22532253        ResourceLoadInfo resourceLoadInfo { firstFrame->document()->completeURL(urlString), firstFrame->mainFrame().document()->url(), ResourceType::Popup };
    2254         for (auto& action : firstFrame->page()->userContentProvider().actionsForResourceLoad(resourceLoadInfo, *firstFrame->mainFrame().document()->loader())) {
     2254        for (auto& action : firstFrame->page()->userContentProvider().actionsForResourceLoad(resourceLoadInfo, *firstFrame->mainFrame().document()->loader()).first) {
    22552255            if (action.type() == ContentExtensions::ActionType::BlockLoad)
    22562256                return nullptr;
  • TabularUnified trunk/Source/WebCore/page/UserContentProvider.cpp

    r220996 r222294  
    110110}
    111111
    112 Vector<ContentExtensions::Action> UserContentProvider::actionsForResourceLoad(const ResourceLoadInfo& resourceLoadInfo, DocumentLoader& initiatingDocumentLoader)
     112std::pair<Vector<ContentExtensions::Action>, Vector<String>> UserContentProvider::actionsForResourceLoad(const ResourceLoadInfo& resourceLoadInfo, DocumentLoader& initiatingDocumentLoader)
    113113{
    114114    if (!contentExtensionsEnabled(initiatingDocumentLoader))
  • TabularUnified trunk/Source/WebCore/page/UserContentProvider.h

    r220996 r222294  
    9292    // which should always exist.
    9393    ContentExtensions::BlockedStatus processContentExtensionRulesForLoad(const URL&, ResourceType, DocumentLoader& initiatingDocumentLoader);
    94     Vector<ContentExtensions::Action> actionsForResourceLoad(const ResourceLoadInfo&, DocumentLoader& initiatingDocumentLoader);
     94    std::pair<Vector<ContentExtensions::Action>, Vector<String>> actionsForResourceLoad(const ResourceLoadInfo&, DocumentLoader& initiatingDocumentLoader);
    9595    WEBCORE_EXPORT void forEachContentExtension(const WTF::Function<void(const String&, ContentExtensions::ContentExtension&)>&, DocumentLoader& initiatingDocumentLoader);
    9696#endif
  • TabularUnified trunk/Tools/ChangeLog

    r222293 r222294  
     12017-09-20  Alex Christensen  <achristensen@webkit.org>
     2
     3        Remove ActionType::CSSDisplayNoneStyleSheet
     4        https://bugs.webkit.org/show_bug.cgi?id=177275
     5
     6        Reviewed by Andy Estes.
     7
     8        * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
     9        (WebCore::ContentExtensions::operator<<):
     10        (TestWebKitAPI::testRequest):
     11        (TestWebKitAPI::TEST_F):
     12
    1132017-09-20  Jonathan Bedard  <jbedard@apple.com>
    214
  • TabularUnified trunk/Tools/TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp

    r222283 r222294  
    5757    case ActionType::CSSDisplayNoneSelector:
    5858        return os << "ActionType::CSSDisplayNone";
    59     case ActionType::CSSDisplayNoneStyleSheet:
    60         return os << "ActionType::CSSDisplayNoneStyleSheet";
    6159    case ActionType::IgnorePreviousRules:
    6260        return os << "ActionType::IgnorePreviousRules";
     
    188186};
    189187
    190 void static testRequest(const ContentExtensions::ContentExtensionsBackend& contentExtensionsBackend, const ResourceLoadInfo& resourceLoadInfo, Vector<ContentExtensions::ActionType> expectedActions, bool ignorePreviousRules = false)
     188void static testRequest(const ContentExtensions::ContentExtensionsBackend& contentExtensionsBackend, const ResourceLoadInfo& resourceLoadInfo, Vector<ContentExtensions::ActionType> expectedActions, size_t stylesheets = 1)
    191189{
    192190    auto actions = contentExtensionsBackend.actionsForResourceLoad(resourceLoadInfo);
    193     unsigned expectedSize = actions.size();
    194     if (!ignorePreviousRules)
    195         expectedSize--; // The last action is applying the compiled stylesheet.
    196    
     191    unsigned expectedSize = actions.first.size();
    197192    EXPECT_EQ(expectedActions.size(), expectedSize);
    198193    if (expectedActions.size() != expectedSize)
     
    200195
    201196    for (unsigned i = 0; i < expectedActions.size(); ++i)
    202         EXPECT_EQ(expectedActions[i], actions[i].type());
    203     if (!ignorePreviousRules)
    204         EXPECT_EQ(actions[actions.size() - 1].type(), ContentExtensions::ActionType::CSSDisplayNoneStyleSheet);
     197        EXPECT_EQ(expectedActions[i], actions.first[i].type());
     198    EXPECT_EQ(actions.second.size(), stylesheets);
    205199}
    206200
     
    776770    testRequest(backend, mainDocumentRequest("http://webkit.org/ignore-previous-trigger-on-scripts.html.test.html", ResourceType::Script), { ContentExtensions::ActionType::CSSDisplayNoneSelector, ContentExtensions::ActionType::BlockLoad, ContentExtensions::ActionType::BlockCookies });
    777771
    778     testRequest(backend, mainDocumentRequest("http://notwebkit.org/ignore-previous-trigger-on-scripts.html", ResourceType::Image), { }, true);
    779     testRequest(backend, mainDocumentRequest("http://webkit.org/ignore-previous-trigger-on-scripts.html", ResourceType::Image), { }, true);
    780     testRequest(backend, mainDocumentRequest("http://notwebkit.org/ignore-previous-trigger-on-scripts.html.test.html", ResourceType::Image), { }, true);
    781     testRequest(backend, mainDocumentRequest("http://webkit.org/ignore-previous-trigger-on-scripts.html.test.html", ResourceType::Image), { }, true);
     772    testRequest(backend, mainDocumentRequest("http://notwebkit.org/ignore-previous-trigger-on-scripts.html", ResourceType::Image), { }, 0);
     773    testRequest(backend, mainDocumentRequest("http://webkit.org/ignore-previous-trigger-on-scripts.html", ResourceType::Image), { }, 0);
     774    testRequest(backend, mainDocumentRequest("http://notwebkit.org/ignore-previous-trigger-on-scripts.html.test.html", ResourceType::Image), { }, 0);
     775    testRequest(backend, mainDocumentRequest("http://webkit.org/ignore-previous-trigger-on-scripts.html.test.html", ResourceType::Image), { }, 0);
    782776
    783777    testRequest(backend, mainDocumentRequest("http://notwebkit.org/except-this-ignore-previous-trigger-on-scripts.html"), { ContentExtensions::ActionType::BlockCookies });
     
    785779    testRequest(backend, mainDocumentRequest("http://notwebkit.org/except-this-ignore-previous-trigger-on-scripts.html.test.html"), { ContentExtensions::ActionType::BlockCookies, ContentExtensions::ActionType::BlockCookies });
    786780    testRequest(backend, mainDocumentRequest("http://webkit.org/except-this-ignore-previous-trigger-on-scripts.html.test.html"), { ContentExtensions::ActionType::BlockCookies, ContentExtensions::ActionType::BlockLoad, ContentExtensions::ActionType::BlockCookies });
    787     testRequest(backend, mainDocumentRequest("http://notwebkit.org/except-this-ignore-previous-trigger-on-scripts.html", ResourceType::Image), { ContentExtensions::ActionType::BlockCookies }, true);
    788     testRequest(backend, mainDocumentRequest("http://webkit.org/except-this-ignore-previous-trigger-on-scripts.html", ResourceType::Image), { ContentExtensions::ActionType::BlockCookies }, true);
    789     testRequest(backend, mainDocumentRequest("http://notwebkit.org/except-this-ignore-previous-trigger-on-scripts.html.test.html", ResourceType::Image), { ContentExtensions::ActionType::BlockCookies }, true);
    790     testRequest(backend, mainDocumentRequest("http://webkit.org/except-this-ignore-previous-trigger-on-scripts.html.test.html", ResourceType::Image), { ContentExtensions::ActionType::BlockCookies }, true);
     781    testRequest(backend, mainDocumentRequest("http://notwebkit.org/except-this-ignore-previous-trigger-on-scripts.html", ResourceType::Image), { ContentExtensions::ActionType::BlockCookies }, 0);
     782    testRequest(backend, mainDocumentRequest("http://webkit.org/except-this-ignore-previous-trigger-on-scripts.html", ResourceType::Image), { ContentExtensions::ActionType::BlockCookies }, 0);
     783    testRequest(backend, mainDocumentRequest("http://notwebkit.org/except-this-ignore-previous-trigger-on-scripts.html.test.html", ResourceType::Image), { ContentExtensions::ActionType::BlockCookies }, 0);
     784    testRequest(backend, mainDocumentRequest("http://webkit.org/except-this-ignore-previous-trigger-on-scripts.html.test.html", ResourceType::Image), { ContentExtensions::ActionType::BlockCookies }, 0);
    791785    testRequest(backend, mainDocumentRequest("http://notwebkit.org/except-this-ignore-previous-trigger-on-scripts.html", ResourceType::Script), { ContentExtensions::ActionType::BlockCookies, ContentExtensions::ActionType::CSSDisplayNoneSelector });
    792786    testRequest(backend, mainDocumentRequest("http://webkit.org/except-this-ignore-previous-trigger-on-scripts.html", ResourceType::Script), { ContentExtensions::ActionType::BlockCookies, ContentExtensions::ActionType::CSSDisplayNoneSelector });
     
    869863    backend.addContentExtension("testFilter2", WTFMove(extension2));
    870864   
    871     // These each have two display:none stylesheets. The second one is implied by using the default parameter ignorePreviousRules = false.
    872     testRequest(backend, mainDocumentRequest("http://webkit.org"), { ContentExtensions::ActionType::CSSDisplayNoneStyleSheet });
    873     testRequest(backend, mainDocumentRequest("http://webkit.org/block_load.html"), { ContentExtensions::ActionType::CSSDisplayNoneStyleSheet, ContentExtensions::ActionType::BlockLoad});
    874     testRequest(backend, mainDocumentRequest("http://webkit.org/block_cookies.html"), { ContentExtensions::ActionType::BlockCookies, ContentExtensions::ActionType::CSSDisplayNoneStyleSheet});
    875     testRequest(backend, mainDocumentRequest("http://webkit.org/block_load/block_cookies.html"), { ContentExtensions::ActionType::BlockCookies, ContentExtensions::ActionType::CSSDisplayNoneStyleSheet, ContentExtensions::ActionType::BlockLoad });
    876     testRequest(backend, mainDocumentRequest("http://webkit.org/block_cookies/block_load.html"), { ContentExtensions::ActionType::BlockCookies, ContentExtensions::ActionType::CSSDisplayNoneStyleSheet, ContentExtensions::ActionType::BlockLoad });
     865    testRequest(backend, mainDocumentRequest("http://webkit.org"), { }, 2);
     866    testRequest(backend, mainDocumentRequest("http://webkit.org/block_load.html"), { ContentExtensions::ActionType::BlockLoad }, 2);
     867    testRequest(backend, mainDocumentRequest("http://webkit.org/block_cookies.html"), { ContentExtensions::ActionType::BlockCookies }, 2);
     868    testRequest(backend, mainDocumentRequest("http://webkit.org/block_load/block_cookies.html"), { ContentExtensions::ActionType::BlockCookies, ContentExtensions::ActionType::BlockLoad }, 2);
     869    testRequest(backend, mainDocumentRequest("http://webkit.org/block_cookies/block_load.html"), { ContentExtensions::ActionType::BlockCookies, ContentExtensions::ActionType::BlockLoad }, 2);
    877870   
    878871    auto ignoreExtension1 = InMemoryCompiledContentExtension::createFromFilter("[{\"action\":{\"type\":\"block\"},\"trigger\":{\"url-filter\":\"block_load\"}},"
     
    883876    backendWithIgnore.addContentExtension("testFilter1", WTFMove(ignoreExtension1));
    884877    backendWithIgnore.addContentExtension("testFilter2", WTFMove(ignoreExtension2));
    885    
    886     testRequest(backendWithIgnore, mainDocumentRequest("http://webkit.org"), { ContentExtensions::ActionType::CSSDisplayNoneStyleSheet, ContentExtensions::ActionType::CSSDisplayNoneStyleSheet }, true);
    887     testRequest(backendWithIgnore, mainDocumentRequest("http://webkit.org/block_load/ignore1.html"), { ContentExtensions::ActionType::CSSDisplayNoneStyleSheet }, true);
    888     testRequest(backendWithIgnore, mainDocumentRequest("http://webkit.org/block_cookies/ignore1.html"), { ContentExtensions::ActionType::BlockCookies, ContentExtensions::ActionType::CSSDisplayNoneStyleSheet}, true);
    889     testRequest(backendWithIgnore, mainDocumentRequest("http://webkit.org/block_load/ignore2.html"), { ContentExtensions::ActionType::BlockLoad, ContentExtensions::ActionType::CSSDisplayNoneStyleSheet }, true);
    890     testRequest(backendWithIgnore, mainDocumentRequest("http://webkit.org/block_cookies/ignore2.html"), { ContentExtensions::ActionType::CSSDisplayNoneStyleSheet}, true);
    891     testRequest(backendWithIgnore, mainDocumentRequest("http://webkit.org/block_load/block_cookies/ignore1/ignore2.html"), { }, true);
     878
     879    testRequest(backendWithIgnore, mainDocumentRequest("http://webkit.org"), { }, 2);
     880    testRequest(backendWithIgnore, mainDocumentRequest("http://webkit.org/block_load/ignore1.html"), { }, 1);
     881    testRequest(backendWithIgnore, mainDocumentRequest("http://webkit.org/block_cookies/ignore1.html"), { ContentExtensions::ActionType::BlockCookies }, 1);
     882    testRequest(backendWithIgnore, mainDocumentRequest("http://webkit.org/block_load/ignore2.html"), { ContentExtensions::ActionType::BlockLoad }, 1);
     883    testRequest(backendWithIgnore, mainDocumentRequest("http://webkit.org/block_cookies/ignore2.html"), { }, 1);
     884    testRequest(backendWithIgnore, mainDocumentRequest("http://webkit.org/block_load/block_cookies/ignore1/ignore2.html"), { }, 0);
    892885}
    893886
     
    10731066        "{\"action\":{\"type\":\"ignore-previous-rules\"},\"trigger\":{\"url-filter\":\".*\",\"load-type\":[\"first-party\"]}}]");
    10741067   
    1075     testRequest(backend, mainDocumentRequest("http://webkit.org"), { }, true);
     1068    testRequest(backend, mainDocumentRequest("http://webkit.org"), { }, 0);
    10761069    testRequest(backend, {URL(URL(), "http://webkit.org"), URL(URL(), "http://not_webkit.org"), ResourceType::Document}, { ContentExtensions::ActionType::BlockCookies });
    10771070    testRequest(backend, {URL(URL(), "http://webkit.org"), URL(URL(), "http://not_webkit.org"), ResourceType::Image}, { ContentExtensions::ActionType::BlockCookies, ContentExtensions::ActionType::BlockLoad });
     
    11141107    testRequest(backend, mainDocumentRequest("http://webkit.org/AAA"), { ContentExtensions::ActionType::CSSDisplayNoneSelector });
    11151108    testRequest(backend, mainDocumentRequest("http://webkit.org/YAA"), { ContentExtensions::ActionType::CSSDisplayNoneSelector });
    1116     testRequest(backend, mainDocumentRequest("http://webkit.org/ZAA"), { }, true);
    1117     testRequest(backend, mainDocumentRequest("http://webkit.org/LAA/AAA"), { }, true);
    1118     testRequest(backend, mainDocumentRequest("http://webkit.org/LAA/MAA"), { ContentExtensions::ActionType::CSSDisplayNoneSelector }, true);
     1109    testRequest(backend, mainDocumentRequest("http://webkit.org/ZAA"), { }, 0);
     1110    testRequest(backend, mainDocumentRequest("http://webkit.org/LAA/AAA"), { }, 0);
     1111    testRequest(backend, mainDocumentRequest("http://webkit.org/LAA/MAA"), { ContentExtensions::ActionType::CSSDisplayNoneSelector }, 0);
    11191112    testRequest(backend, mainDocumentRequest("http://webkit.org/"), { });
    11201113}
     
    13051298        "{\"action\":{\"type\":\"css-display-none\",\"selector\":\".hidden\"},\"trigger\":{\"url-filter\":\".*\"}}]");
    13061299    EXPECT_EQ(nullptr, backend5.globalDisplayNoneStyleSheet(ASCIILiteral("testFilter")));
    1307     testRequest(backend5, mainDocumentRequest("http://webkit.org"), { ContentExtensions::ActionType::CSSDisplayNoneSelector }, true);
     1300    testRequest(backend5, mainDocumentRequest("http://webkit.org"), { ContentExtensions::ActionType::CSSDisplayNoneSelector }, 0);
    13081301   
    13091302    auto backend6 = makeBackend("[{\"action\":{\"type\":\"block\"},\"trigger\":{\"url-filter\":\".*\",\"if-domain\":[\"webkit.org\",\"*w3c.org\"],\"resource-type\":[\"document\",\"script\"]}},"
     
    13171310    testRequest(backend6, mainDocumentRequest("http://sub.w3c.org"), { ContentExtensions::ActionType::BlockLoad });
    13181311    testRequest(backend6, mainDocumentRequest("http://sub.whatwg.org"), { });
    1319     testRequest(backend6, mainDocumentRequest("http://webkit.org/ignore"), { }, true);
    1320     testRequest(backend6, mainDocumentRequest("http://w3c.org/ignore"), { }, true);
     1312    testRequest(backend6, mainDocumentRequest("http://webkit.org/ignore"), { }, 0);
     1313    testRequest(backend6, mainDocumentRequest("http://w3c.org/ignore"), { }, 0);
    13211314    testRequest(backend6, mainDocumentRequest("http://whatwg.org/ignore"), { });
    1322     testRequest(backend6, mainDocumentRequest("http://sub.webkit.org/ignore"), { }, true);
     1315    testRequest(backend6, mainDocumentRequest("http://sub.webkit.org/ignore"), { }, 0);
    13231316    testRequest(backend6, mainDocumentRequest("http://sub.w3c.org/ignore"), { ContentExtensions::ActionType::BlockLoad });
    13241317    testRequest(backend6, mainDocumentRequest("http://sub.whatwg.org/ignore"), { });
     
    13291322    testRequest(backend6, subResourceRequest("http://example.com/script.js", "http://w3c.org/", ResourceType::Script), { ContentExtensions::ActionType::BlockCookies, ContentExtensions::ActionType::BlockLoad });
    13301323    testRequest(backend6, subResourceRequest("http://example.com/script.js", "http://example.com/", ResourceType::Script), { });
    1331     testRequest(backend6, subResourceRequest("http://example.com/ignore/image.png", "http://webkit.org/", ResourceType::Image), { }, true);
     1324    testRequest(backend6, subResourceRequest("http://example.com/ignore/image.png", "http://webkit.org/", ResourceType::Image), { }, 0);
    13321325    testRequest(backend6, subResourceRequest("http://example.com/ignore/image.png", "http://example.com/", ResourceType::Image), { });
    13331326    testRequest(backend6, subResourceRequest("http://example.com/ignore/image.png", "http://example.org/", ResourceType::Image), { ContentExtensions::ActionType::BlockCookies });
    13341327    testRequest(backend6, subResourceRequest("http://example.com/doc.html", "http://example.org/", ResourceType::Document), { });
    13351328    testRequest(backend6, subResourceRequest("http://example.com/", "http://example.com/", ResourceType::Font), { });
    1336     testRequest(backend6, subResourceRequest("http://example.com/ignore", "http://webkit.org/", ResourceType::Image), { }, true);
    1337     testRequest(backend6, subResourceRequest("http://example.com/ignore", "http://webkit.org/", ResourceType::Font), { }, true);
     1329    testRequest(backend6, subResourceRequest("http://example.com/ignore", "http://webkit.org/", ResourceType::Image), { }, 0);
     1330    testRequest(backend6, subResourceRequest("http://example.com/ignore", "http://webkit.org/", ResourceType::Font), { }, 0);
    13381331    testRequest(backend6, subResourceRequest("http://example.com/", "http://example.com/", ResourceType::Script), { });
    13391332    testRequest(backend6, subResourceRequest("http://example.com/ignore", "http://example.com/", ResourceType::Script), { });
     
    15221515    testRequest(backend, mainDocumentRequest("http://webkit.org/AAD"), { ContentExtensions::ActionType::BlockLoad });
    15231516    testRequest(backend, mainDocumentRequest("http://webkit.org/AB"), { });
    1524     testRequest(backend, mainDocumentRequest("http://webkit.org/ABA"), { }, true);
    1525     testRequest(backend, mainDocumentRequest("http://webkit.org/ABAD"), { }, true);
     1517    testRequest(backend, mainDocumentRequest("http://webkit.org/ABA"), { }, 0);
     1518    testRequest(backend, mainDocumentRequest("http://webkit.org/ABAD"), { }, 0);
    15261519    testRequest(backend, mainDocumentRequest("http://webkit.org/BC"), { ContentExtensions::ActionType::MakeHTTPS });
    15271520    testRequest(backend, mainDocumentRequest("http://webkit.org/ABC"), { ContentExtensions::ActionType::MakeHTTPS });
    1528     testRequest(backend, mainDocumentRequest("http://webkit.org/ABABC"), { ContentExtensions::ActionType::MakeHTTPS }, true);
    1529     testRequest(backend, mainDocumentRequest("http://webkit.org/ABABCAD"), { ContentExtensions::ActionType::MakeHTTPS }, true);
     1521    testRequest(backend, mainDocumentRequest("http://webkit.org/ABABC"), { ContentExtensions::ActionType::MakeHTTPS }, 0);
     1522    testRequest(backend, mainDocumentRequest("http://webkit.org/ABABCAD"), { ContentExtensions::ActionType::MakeHTTPS }, 0);
    15301523    testRequest(backend, mainDocumentRequest("http://webkit.org/ABCAD"), { ContentExtensions::ActionType::MakeHTTPS, ContentExtensions::ActionType::BlockLoad });
    15311524}
     
    19451938    testRequest(matchBackend, mainDocumentRequest("a://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
    19461939    testRequest(matchBackend, mainDocumentRequest("b://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
    1947     testRequest(matchBackend, mainDocumentRequest("c://www.webkit.org/"), { }, true);
    1948     testRequest(matchBackend, mainDocumentRequest("d://www.webkit.org/"), { }, true);
    1949     testRequest(matchBackend, mainDocumentRequest("e://www.webkit.org/"), { }, true);
     1940    testRequest(matchBackend, mainDocumentRequest("c://www.webkit.org/"), { }, 0);
     1941    testRequest(matchBackend, mainDocumentRequest("d://www.webkit.org/"), { }, 0);
     1942    testRequest(matchBackend, mainDocumentRequest("e://www.webkit.org/"), { }, 0);
    19501943    testRequest(matchBackend, mainDocumentRequest("f://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
    19511944    testRequest(matchBackend, mainDocumentRequest("m://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
     
    19561949    testRequest(searchBackend, mainDocumentRequest("zzz://www.a.xxx/"), { ContentExtensions::ActionType::BlockLoad });
    19571950    testRequest(searchBackend, mainDocumentRequest("zzz://www.b.xxx/"), { ContentExtensions::ActionType::BlockLoad });
    1958     testRequest(searchBackend, mainDocumentRequest("zzz://www.c.xxx/"), { }, true);
    1959     testRequest(searchBackend, mainDocumentRequest("zzz://www.d.xxx/"), { }, true);
    1960     testRequest(searchBackend, mainDocumentRequest("zzz://www.e.xxx/"), { }, true);
     1951    testRequest(searchBackend, mainDocumentRequest("zzz://www.c.xxx/"), { }, 0);
     1952    testRequest(searchBackend, mainDocumentRequest("zzz://www.d.xxx/"), { }, 0);
     1953    testRequest(searchBackend, mainDocumentRequest("zzz://www.e.xxx/"), { }, 0);
    19611954    testRequest(searchBackend, mainDocumentRequest("zzz://www.f.xxx/"), { ContentExtensions::ActionType::BlockLoad });
    19621955    testRequest(searchBackend, mainDocumentRequest("zzz://www.m.xxx/"), { ContentExtensions::ActionType::BlockLoad });
     
    19701963
    19711964    testRequest(matchBackend, mainDocumentRequest("a://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
    1972     testRequest(matchBackend, mainDocumentRequest("b://www.webkit.org/"), { }, true);
     1965    testRequest(matchBackend, mainDocumentRequest("b://www.webkit.org/"), { }, 0);
    19731966    testRequest(matchBackend, mainDocumentRequest("c://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
    19741967    testRequest(matchBackend, mainDocumentRequest("m://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
     
    19791972    testRequest(searchBackend, mainDocumentRequest("zzz://www.a.xxx/"), { ContentExtensions::ActionType::BlockLoad });
    19801973    testRequest(searchBackend, mainDocumentRequest("zzz://www.k.xxx/"), { ContentExtensions::ActionType::BlockLoad });
    1981     testRequest(searchBackend, mainDocumentRequest("zzz://www.l.xxx/"), { }, true);
     1974    testRequest(searchBackend, mainDocumentRequest("zzz://www.l.xxx/"), { }, 0);
    19821975    testRequest(searchBackend, mainDocumentRequest("zzz://www.m.xxx/"), { ContentExtensions::ActionType::BlockLoad });
    19831976    testRequest(searchBackend, mainDocumentRequest("zzz://www.n.xxx/"), { });
     
    24102403    testRequest(matchBackend, mainDocumentRequest("a://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
    24112404    testRequest(matchBackend, mainDocumentRequest("b://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
    2412     testRequest(matchBackend, mainDocumentRequest("c://www.webkit.org/"), { }, true);
    2413     testRequest(matchBackend, mainDocumentRequest("d://www.webkit.org/"), { }, true);
    2414     testRequest(matchBackend, mainDocumentRequest("e://www.webkit.org/"), { }, true);
     2405    testRequest(matchBackend, mainDocumentRequest("c://www.webkit.org/"), { }, 0);
     2406    testRequest(matchBackend, mainDocumentRequest("d://www.webkit.org/"), { }, 0);
     2407    testRequest(matchBackend, mainDocumentRequest("e://www.webkit.org/"), { }, 0);
    24152408    testRequest(matchBackend, mainDocumentRequest("f://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
    24162409    testRequest(matchBackend, mainDocumentRequest("m://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
     
    24212414    testRequest(searchBackend, mainDocumentRequest("zzz://www.a.xxx/"), { ContentExtensions::ActionType::BlockLoad });
    24222415    testRequest(searchBackend, mainDocumentRequest("zzz://www.b.xxx/"), { ContentExtensions::ActionType::BlockLoad });
    2423     testRequest(searchBackend, mainDocumentRequest("zzz://www.c.xxx/"), { }, true);
    2424     testRequest(searchBackend, mainDocumentRequest("zzz://www.d.xxx/"), { }, true);
    2425     testRequest(searchBackend, mainDocumentRequest("zzz://www.e.xxx/"), { }, true);
     2416    testRequest(searchBackend, mainDocumentRequest("zzz://www.c.xxx/"), { }, 0);
     2417    testRequest(searchBackend, mainDocumentRequest("zzz://www.d.xxx/"), { }, 0);
     2418    testRequest(searchBackend, mainDocumentRequest("zzz://www.e.xxx/"), { }, 0);
    24262419    testRequest(searchBackend, mainDocumentRequest("zzz://www.f.xxx/"), { ContentExtensions::ActionType::BlockLoad });
    24272420    testRequest(searchBackend, mainDocumentRequest("zzz://www.m.xxx/"), { ContentExtensions::ActionType::BlockLoad });
     
    24362429
    24372430    testRequest(matchBackend, mainDocumentRequest("a://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
    2438     testRequest(matchBackend, mainDocumentRequest("b://www.webkit.org/"), { }, true);
     2431    testRequest(matchBackend, mainDocumentRequest("b://www.webkit.org/"), { }, 0);
    24392432    testRequest(matchBackend, mainDocumentRequest("c://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
    24402433    testRequest(matchBackend, mainDocumentRequest("m://www.webkit.org/"), { ContentExtensions::ActionType::BlockLoad });
     
    24452438    testRequest(searchBackend, mainDocumentRequest("zzz://www.a.xxx/"), { ContentExtensions::ActionType::BlockLoad });
    24462439    testRequest(searchBackend, mainDocumentRequest("zzz://www.k.xxx/"), { ContentExtensions::ActionType::BlockLoad });
    2447     testRequest(searchBackend, mainDocumentRequest("zzz://www.l.xxx/"), { }, true);
     2440    testRequest(searchBackend, mainDocumentRequest("zzz://www.l.xxx/"), { }, 0);
    24482441    testRequest(searchBackend, mainDocumentRequest("zzz://www.m.xxx/"), { ContentExtensions::ActionType::BlockLoad });
    24492442    testRequest(searchBackend, mainDocumentRequest("zzz://www.n.xxx/"), { });
Note: See TracChangeset for help on using the changeset viewer.