Title: [172293] trunk/Source/WebCore
- Revision
- 172293
- Author
- [email protected]
- Date
- 2014-08-07 15:27:18 -0700 (Thu, 07 Aug 2014)
Log Message
[Mac] Parental Controls content filter is mistakenly enabled for HTTP responses
https://bugs.webkit.org/show_bug.cgi?id=135730
Reviewed by Brady Eidson.
On the Mac, the WebFilterEvaluator (Parental Controls) content filter should only be enabled for HTTPS
responses. During iOS upstreaming we mistakenly enabled it for HTTP responses as well, and this causes HTTP
responses to be filtered twice -- once by the Parental Controls HTTP proxy and once by WebCore. Revert to the
pre-upstreaming behavior and only enable the content filter for HTTPS responses.
No new tests. Content filtering is not testable from WebKit.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived): Passed the response to ContentFilter::canHandleResponse().
* platform/ContentFilter.h:
* platform/mac/ContentFilterMac.mm:
(WebCore::ContentFilter::canHandleResponse): Renamed from isEnabled(). Checks the response's scheme on Mac to
determine whether WebFilterEvaluator should be used.
(WebCore::ContentFilter::isEnabled): Deleted.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (172292 => 172293)
--- trunk/Source/WebCore/ChangeLog 2014-08-07 22:26:02 UTC (rev 172292)
+++ trunk/Source/WebCore/ChangeLog 2014-08-07 22:27:18 UTC (rev 172293)
@@ -1,3 +1,25 @@
+2014-08-07 Andy Estes <[email protected]>
+
+ [Mac] Parental Controls content filter is mistakenly enabled for HTTP responses
+ https://bugs.webkit.org/show_bug.cgi?id=135730
+
+ Reviewed by Brady Eidson.
+
+ On the Mac, the WebFilterEvaluator (Parental Controls) content filter should only be enabled for HTTPS
+ responses. During iOS upstreaming we mistakenly enabled it for HTTP responses as well, and this causes HTTP
+ responses to be filtered twice -- once by the Parental Controls HTTP proxy and once by WebCore. Revert to the
+ pre-upstreaming behavior and only enable the content filter for HTTPS responses.
+
+ No new tests. Content filtering is not testable from WebKit.
+
+ * loader/DocumentLoader.cpp:
+ (WebCore::DocumentLoader::responseReceived): Passed the response to ContentFilter::canHandleResponse().
+ * platform/ContentFilter.h:
+ * platform/mac/ContentFilterMac.mm:
+ (WebCore::ContentFilter::canHandleResponse): Renamed from isEnabled(). Checks the response's scheme on Mac to
+ determine whether WebFilterEvaluator should be used.
+ (WebCore::ContentFilter::isEnabled): Deleted.
+
2014-08-07 Beth Dakin <[email protected]>
Fixed backgrounds don't paint in blurred inset areas
Modified: trunk/Source/WebCore/loader/DocumentLoader.cpp (172292 => 172293)
--- trunk/Source/WebCore/loader/DocumentLoader.cpp 2014-08-07 22:26:02 UTC (rev 172292)
+++ trunk/Source/WebCore/loader/DocumentLoader.cpp 2014-08-07 22:27:18 UTC (rev 172293)
@@ -663,7 +663,7 @@
#endif
#if ENABLE(CONTENT_FILTERING)
- if (response.url().protocolIsInHTTPFamily() && ContentFilter::isEnabled())
+ if (ContentFilter::canHandleResponse(response))
m_contentFilter = std::make_unique<ContentFilter>(response);
#endif
Modified: trunk/Source/WebCore/platform/ContentFilter.h (172292 => 172293)
--- trunk/Source/WebCore/platform/ContentFilter.h 2014-08-07 22:26:02 UTC (rev 172292)
+++ trunk/Source/WebCore/platform/ContentFilter.h 2014-08-07 22:27:18 UTC (rev 172293)
@@ -57,7 +57,7 @@
class ContentFilter {
public:
- static bool isEnabled();
+ static bool canHandleResponse(const ResourceResponse&);
explicit ContentFilter(const ResourceResponse&);
~ContentFilter();
Modified: trunk/Source/WebCore/platform/mac/ContentFilterMac.mm (172292 => 172293)
--- trunk/Source/WebCore/platform/mac/ContentFilterMac.mm 2014-08-07 22:26:02 UTC (rev 172292)
+++ trunk/Source/WebCore/platform/mac/ContentFilterMac.mm 2014-08-07 22:27:18 UTC (rev 172293)
@@ -124,13 +124,23 @@
#endif
}
-bool ContentFilter::isEnabled()
+bool ContentFilter::canHandleResponse(const ResourceResponse& response)
{
- return [getWebFilterEvaluatorClass() isManagedSession]
+ if (!response.url().protocolIsInHTTPFamily())
+ return false;
+
+ if ([getWebFilterEvaluatorClass() isManagedSession]) {
+#if PLATFORM(MAC)
+ if (response.url().protocolIs("https"))
+#endif
+ return true;
+ }
+
#if HAVE(NE_FILTER_SOURCE)
- || [getNEFilterSourceClass() filterRequired]
+ return [getNEFilterSourceClass() filterRequired];
+#else
+ return false;
#endif
- ;
}
void ContentFilter::addData(const char* data, int length)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes