Diff
Modified: trunk/Source/WebCore/ChangeLog (180765 => 180766)
--- trunk/Source/WebCore/ChangeLog 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebCore/ChangeLog 2015-02-27 18:33:39 UTC (rev 180766)
@@ -1,3 +1,14 @@
+2015-02-27 Brady Eidson <beid...@apple.com>
+
+ Add API to remove a single content filter.
+ <rdar://problem/19977764> and https://bugs.webkit.org/show_bug.cgi?id=142088
+
+ Reviewed by Sam Weinig.
+
+ * page/UserContentController.cpp:
+ (WebCore::UserContentController::removeUserContentFilter):
+ * page/UserContentController.h:
+
2015-02-26 Brent Fulgham <bfulg...@apple.com>
[Win] Remove remaining SafariTheme cruft
Modified: trunk/Source/WebCore/page/UserContentController.cpp (180765 => 180766)
--- trunk/Source/WebCore/page/UserContentController.cpp 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebCore/page/UserContentController.cpp 2015-02-27 18:33:39 UTC (rev 180766)
@@ -187,6 +187,14 @@
m_contentExtensionBackend->setRuleList(name, ContentExtensions::ExtensionsManager::createRuleList(ruleList));
}
+void UserContentController::removeUserContentFilter(const String& name)
+{
+ if (!m_contentExtensionBackend)
+ return;
+
+ m_contentExtensionBackend->removeRuleList(name);
+}
+
void UserContentController::removeAllUserContentFilters()
{
if (!m_contentExtensionBackend)
Modified: trunk/Source/WebCore/page/UserContentController.h (180765 => 180766)
--- trunk/Source/WebCore/page/UserContentController.h 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebCore/page/UserContentController.h 2015-02-27 18:33:39 UTC (rev 180766)
@@ -81,6 +81,7 @@
#if ENABLE(CONTENT_EXTENSIONS)
// FIXME: This should really take a pointer to a compiled UserContentFilter.
WEBCORE_EXPORT void addUserContentFilter(const String& name, const String& ruleList);
+ WEBCORE_EXPORT void removeUserContentFilter(const String& name);
WEBCORE_EXPORT void removeAllUserContentFilters();
// FIXME: Consider putting this (and other future content filter predicates) in its own class.
Modified: trunk/Source/WebKit2/ChangeLog (180765 => 180766)
--- trunk/Source/WebKit2/ChangeLog 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/ChangeLog 2015-02-27 18:33:39 UTC (rev 180766)
@@ -1,3 +1,44 @@
+2015-02-27 Brady Eidson <beid...@apple.com>
+
+ Add API to remove a single content filter.
+ <rdar://problem/19977764> and https://bugs.webkit.org/show_bug.cgi?id=142088
+
+ Reviewed by Sam Weinig.
+
+ * Shared/WebPageGroupData.h:
+
+ * UIProcess/API/C/WKPageGroup.cpp:
+ (WKPageGroupRemoveUserContentFilter):
+
+ * UIProcess/API/C/WKPageGroup.h:
+ * UIProcess/API/Cocoa/WKUserContentController.mm:
+ (-[WKUserContentController _removeUserContentFilter:]):
+
+ * UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
+ * UIProcess/UserContent/WebUserContentControllerProxy.cpp:
+ (WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy):
+ (WebKit::WebUserContentControllerProxy::addProcess):
+ (WebKit::WebUserContentControllerProxy::addUserContentFilter):
+ (WebKit::WebUserContentControllerProxy::removeUserContentFilter):
+ (WebKit::WebUserContentControllerProxy::removeAllUserContentFilters):
+ * UIProcess/UserContent/WebUserContentControllerProxy.h:
+
+ * UIProcess/WebPageGroup.cpp:
+ (WebKit::WebPageGroup::addUserContentFilter):
+ (WebKit::WebPageGroup::removeUserContentFilter):
+ * UIProcess/WebPageGroup.h:
+
+ * WebProcess/UserContent/WebUserContentController.cpp:
+ (WebKit::WebUserContentController::removeUserContentFilter):
+ * WebProcess/UserContent/WebUserContentController.h:
+ * WebProcess/UserContent/WebUserContentController.messages.in:
+
+ * WebProcess/WebPage/WebPageGroupProxy.cpp:
+ (WebKit::WebPageGroupProxy::WebPageGroupProxy):
+ (WebKit::WebPageGroupProxy::removeUserContentFilter):
+ * WebProcess/WebPage/WebPageGroupProxy.h:
+ * WebProcess/WebPage/WebPageGroupProxy.messages.in:
+
2015-02-26 Anders Carlsson <ander...@apple.com>
Add API to remove all website data for the given data records
Modified: trunk/Source/WebKit2/Shared/WebPageGroupData.h (180765 => 180766)
--- trunk/Source/WebKit2/Shared/WebPageGroupData.h 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/Shared/WebPageGroupData.h 2015-02-27 18:33:39 UTC (rev 180766)
@@ -28,7 +28,8 @@
#include <WebCore/UserScript.h>
#include <WebCore/UserStyleSheet.h>
-#include <wtf/Vector.h>
+#include <wtf/HashMap.h>
+#include <wtf/text/StringHash.h>
#include <wtf/text/WTFString.h>
namespace IPC {
@@ -51,7 +52,7 @@
Vector<WebCore::UserScript> userScripts;
#if ENABLE(CONTENT_EXTENSIONS)
- Vector<std::pair<String, String>> userContentFilters;
+ HashMap<String, String> userContentFilters;
#endif
};
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPageGroup.cpp (180765 => 180766)
--- trunk/Source/WebKit2/UIProcess/API/C/WKPageGroup.cpp 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPageGroup.cpp 2015-02-27 18:33:39 UTC (rev 180766)
@@ -89,6 +89,17 @@
#endif
}
+void WKPageGroupRemoveUserContentFilter(WKPageGroupRef pageGroupRef, WKStringRef userContentFilterNameRef)
+{
+#if ENABLE(CONTENT_EXTENSIONS)
+ toImpl(pageGroupRef)->removeUserContentFilter(toWTFString(userContentFilterNameRef));
+#else
+ UNUSED_PARAM(pageGroupRef);
+ UNUSED_PARAM(userContentFilterNameRef);
+#endif
+}
+
+
void WKPageGroupRemoveAllUserContentFilters(WKPageGroupRef pageGroupRef)
{
#if ENABLE(CONTENT_EXTENSIONS)
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPageGroup.h (180765 => 180766)
--- trunk/Source/WebKit2/UIProcess/API/C/WKPageGroup.h 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPageGroup.h 2015-02-27 18:33:39 UTC (rev 180766)
@@ -50,6 +50,7 @@
WK_EXPORT void WKPageGroupRemoveAllUserScripts(WKPageGroupRef pageGroup);
WK_EXPORT void WKPageGroupAddUserContentFilter(WKPageGroupRef pageGroup, WKUserContentFilterRef userContentFilter);
+WK_EXPORT void WKPageGroupRemoveUserContentFilter(WKPageGroupRef pageGroup, WKStringRef userContentFilterName);
WK_EXPORT void WKPageGroupRemoveAllUserContentFilters(WKPageGroupRef pageGroup);
#ifdef __cplusplus
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentController.mm (180765 => 180766)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentController.mm 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentController.mm 2015-02-27 18:33:39 UTC (rev 180766)
@@ -134,6 +134,13 @@
#endif
}
+- (void)_removeUserContentFilter:(NSString *)userContentFilterName
+{
+#if ENABLE(CONTENT_EXTENSIONS)
+ _userContentControllerProxy->removeUserContentFilter(userContentFilterName);
+#endif
+}
+
- (void)_removeAllUserContentFilters
{
#if ENABLE(CONTENT_EXTENSIONS)
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentControllerPrivate.h (180765 => 180766)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentControllerPrivate.h 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentControllerPrivate.h 2015-02-27 18:33:39 UTC (rev 180766)
@@ -32,6 +32,7 @@
@interface WKUserContentController (WKPrivate)
- (void)_addUserContentFilter:(_WKUserContentFilter *)userContentFilter WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+- (void)_removeUserContentFilter:(NSString *)userContentFilterName WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
- (void)_removeAllUserContentFilters WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
@end
Modified: trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.cpp (180765 => 180766)
--- trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.cpp 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.cpp 2015-02-27 18:33:39 UTC (rev 180766)
@@ -51,9 +51,6 @@
WebUserContentControllerProxy::WebUserContentControllerProxy()
: m_identifier(generateIdentifier())
, m_userScripts(*API::Array::create())
-#if ENABLE(CONTENT_EXTENSIONS)
- , m_userContentFilters(*API::Array::create())
-#endif
{
}
@@ -86,7 +83,7 @@
#if ENABLE(CONTENT_EXTENSIONS)
Vector<std::pair<String, String>> userContentFilters;
- for (const auto& userContentFilter : m_userContentFilters->elementsOfType<API::UserContentFilter>())
+ for (const auto& userContentFilter : m_userContentFilters.values())
userContentFilters.append(std::make_pair(userContentFilter->name(), userContentFilter->serializedRules()));
webProcessProxy.connection()->send(Messages::WebUserContentController::AddUserContentFilters(userContentFilters), m_identifier);
#endif
@@ -187,7 +184,7 @@
#if ENABLE(CONTENT_EXTENSIONS)
void WebUserContentControllerProxy::addUserContentFilter(API::UserContentFilter& userContentFilter)
{
- m_userContentFilters->elements().append(&userContentFilter);
+ m_userContentFilters.set(userContentFilter.name(), &userContentFilter);
auto pair = std::make_pair(userContentFilter.name(), userContentFilter.serializedRules());
@@ -195,9 +192,17 @@
process->connection()->send(Messages::WebUserContentController::AddUserContentFilters({ pair }), m_identifier);
}
+void WebUserContentControllerProxy::removeUserContentFilter(const String& name)
+{
+ m_userContentFilters.remove(name);
+
+ for (WebProcessProxy* process : m_processes)
+ process->connection()->send(Messages::WebUserContentController::RemoveUserContentFilter(name), m_identifier);
+}
+
void WebUserContentControllerProxy::removeAllUserContentFilters()
{
- m_userContentFilters->elements().clear();
+ m_userContentFilters.clear();
for (WebProcessProxy* process : m_processes)
process->connection()->send(Messages::WebUserContentController::RemoveAllUserContentFilters(), m_identifier);
Modified: trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.h (180765 => 180766)
--- trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.h 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.h 2015-02-27 18:33:39 UTC (rev 180766)
@@ -35,6 +35,7 @@
#include <wtf/Ref.h>
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
+#include <wtf/text/StringHash.h>
namespace API {
class Array;
@@ -83,6 +84,7 @@
#if ENABLE(CONTENT_EXTENSIONS)
void addUserContentFilter(API::UserContentFilter&);
+ void removeUserContentFilter(const String&);
void removeAllUserContentFilters();
#endif
@@ -99,7 +101,7 @@
HashMap<uint64_t, RefPtr<WebScriptMessageHandler>> m_scriptMessageHandlers;
#if ENABLE(CONTENT_EXTENSIONS)
- Ref<API::Array> m_userContentFilters;
+ HashMap<String, RefPtr<API::UserContentFilter>> m_userContentFilters;
#endif
};
Modified: trunk/Source/WebKit2/UIProcess/WebPageGroup.cpp (180765 => 180766)
--- trunk/Source/WebKit2/UIProcess/WebPageGroup.cpp 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/UIProcess/WebPageGroup.cpp 2015-02-27 18:33:39 UTC (rev 180766)
@@ -175,10 +175,16 @@
#if ENABLE(CONTENT_EXTENSIONS)
void WebPageGroup::addUserContentFilter(const API::UserContentFilter& userContentFilter)
{
- m_data.userContentFilters.append(std::make_pair(userContentFilter.name(), userContentFilter.serializedRules()));
+ m_data.userContentFilters.set(userContentFilter.name(), userContentFilter.serializedRules());
sendToAllProcessesInGroup(Messages::WebPageGroupProxy::AddUserContentFilter(userContentFilter.name(), userContentFilter.serializedRules()), m_data.pageGroupID);
}
+void WebPageGroup::removeUserContentFilter(const String& contentFilterName)
+{
+ m_data.userContentFilters.remove(contentFilterName);
+ sendToAllProcessesInGroup(Messages::WebPageGroupProxy::RemoveUserContentFilter(contentFilterName), m_data.pageGroupID);
+}
+
void WebPageGroup::removeAllUserContentFilters()
{
m_data.userContentFilters.clear();
Modified: trunk/Source/WebKit2/UIProcess/WebPageGroup.h (180765 => 180766)
--- trunk/Source/WebKit2/UIProcess/WebPageGroup.h 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/UIProcess/WebPageGroup.h 2015-02-27 18:33:39 UTC (rev 180766)
@@ -32,6 +32,7 @@
#include "WebProcessProxy.h"
#include <wtf/Forward.h>
#include <wtf/HashSet.h>
+#include <wtf/text/WTFString.h>
namespace WebKit {
@@ -67,6 +68,7 @@
#if ENABLE(CONTENT_EXTENSIONS)
void addUserContentFilter(const API::UserContentFilter&);
+ void removeUserContentFilter(const String&);
void removeAllUserContentFilters();
#endif
Modified: trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.cpp (180765 => 180766)
--- trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.cpp 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.cpp 2015-02-27 18:33:39 UTC (rev 180766)
@@ -187,6 +187,11 @@
m_userContentController->addUserContentFilter(userContentFilter.first, userContentFilter.second);
}
+void WebUserContentController::removeUserContentFilter(const String& name)
+{
+ m_userContentController->removeUserContentFilter(name);
+}
+
void WebUserContentController::removeAllUserContentFilters()
{
m_userContentController->removeAllUserContentFilters();
Modified: trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.h (180765 => 180766)
--- trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.h 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.h 2015-02-27 18:33:39 UTC (rev 180766)
@@ -62,6 +62,7 @@
#if ENABLE(CONTENT_EXTENSIONS)
void addUserContentFilters(const Vector<std::pair<String, String>>&);
+ void removeUserContentFilter(const String& name);
void removeAllUserContentFilters();
#endif
Modified: trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.messages.in (180765 => 180766)
--- trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.messages.in 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.messages.in 2015-02-27 18:33:39 UTC (rev 180766)
@@ -35,6 +35,7 @@
#if ENABLE(CONTENT_EXTENSIONS)
AddUserContentFilters(Vector<std::pair<String, String>> userContentFilters);
+ RemoveUserContentFilter(String name);
RemoveAllUserContentFilters();
#endif
}
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.cpp (180765 => 180766)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.cpp 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.cpp 2015-02-27 18:33:39 UTC (rev 180766)
@@ -54,8 +54,8 @@
addUserScript(userScript);
#if ENABLE(CONTENT_EXTENSIONS)
- for (const auto& pair : data.userContentFilters)
- addUserContentFilter(pair.first, pair.second);
+ for (const auto& slot : data.userContentFilters)
+ addUserContentFilter(slot.key, slot.value);
#endif
}
@@ -102,6 +102,11 @@
userContentController().addUserContentFilter(name, serializedRules);
}
+void WebPageGroupProxy::removeUserContentFilter(const String& name)
+{
+ userContentController().removeUserContentFilter(name);
+}
+
void WebPageGroupProxy::removeAllUserContentFilters()
{
userContentController().removeAllUserContentFilters();
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.h (180765 => 180766)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.h 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.h 2015-02-27 18:33:39 UTC (rev 180766)
@@ -65,6 +65,7 @@
#if ENABLE(CONTENT_EXTENSIONS)
void addUserContentFilter(const String& name, const String& serializedRules);
+ void removeUserContentFilter(const String& name);
void removeAllUserContentFilters();
#endif
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.messages.in (180765 => 180766)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.messages.in 2015-02-27 18:09:46 UTC (rev 180765)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.messages.in 2015-02-27 18:33:39 UTC (rev 180766)
@@ -29,6 +29,7 @@
#if ENABLE(CONTENT_EXTENSIONS)
AddUserContentFilter(String name, String serializedRules);
+ RemoveUserContentFilter(String name);
RemoveAllUserContentFilters();
#endif
}