Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Unified Diff: third_party/WebKit/Source/core/loader/SubresourceFilter.cpp

Issue 2895643002: [subresource_filter] Display dev tools console message for subresource blocking (Closed)
Patch Set: feedback addressed Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/core/loader/SubresourceFilter.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/loader/SubresourceFilter.cpp
diff --git a/third_party/WebKit/Source/core/loader/SubresourceFilter.cpp b/third_party/WebKit/Source/core/loader/SubresourceFilter.cpp
index bdfbdf10756a94ec33a0dce2aeb67cb83cc3a41a..ac415e8fe12338f1ec3ed27b9bf49eb2fab946c4 100644
--- a/third_party/WebKit/Source/core/loader/SubresourceFilter.cpp
+++ b/third_party/WebKit/Source/core/loader/SubresourceFilter.cpp
@@ -6,13 +6,32 @@
#include <utility>
+#include "core/dom/Document.h"
#include "core/dom/TaskRunnerHelper.h"
+#include "core/frame/LocalFrame.h"
+#include "core/inspector/ConsoleMessage.h"
#include "platform/WebTaskRunner.h"
#include "platform/weborigin/KURL.h"
+#include "platform/wtf/text/StringBuilder.h"
#include "public/platform/WebTraceLocation.h"
namespace blink {
+namespace {
+
+void emitErrorForDisallowedLoads(const String& url, Document& document) {
Charlie Harrison 2017/05/22 14:35:04 Since this is semantically the URL, let's just mak
Charlie Harrison 2017/05/22 14:35:04 Oh also, I think Blink doesn't do camel case funct
shivanisha 2017/05/23 18:54:00 Done
+ // TODO(shivanisha): Update the string when finalized.
+ String message = "Subresource filtering disallowed loading this resource, ";
Charlie Harrison 2017/05/22 14:35:04 Just inline this in Append so we can use the Strin
shivanisha 2017/05/23 18:54:00 Done
+ StringBuilder builder;
+ builder.Append(message);
+ builder.Append(url);
+ builder.Append(".");
+ document.AddConsoleMessage(ConsoleMessage::Create(
+ kJSMessageSource, kErrorMessageLevel, builder.ToString()));
+}
+
+} // namespace
+
// static
SubresourceFilter* SubresourceFilter::Create(
DocumentLoader* loader,
@@ -36,8 +55,9 @@ bool SubresourceFilter::AllowLoad(
// Pair<url string, context> -> LoadPolicy.
WebDocumentSubresourceFilter::LoadPolicy load_policy =
subresource_filter_->GetLoadPolicy(resource_url, request_context);
+
if (reporting_policy == SecurityViolationReportingPolicy::kReport)
- ReportLoad(load_policy);
+ ReportLoad(resource_url, load_policy);
return load_policy != WebDocumentSubresourceFilter::kDisallow;
}
@@ -54,21 +74,26 @@ bool SubresourceFilter::AllowWebSocketConnection(const KURL& url) {
DCHECK(task_runner->RunsTasksOnCurrentThread());
task_runner->PostTask(BLINK_FROM_HERE,
WTF::Bind(&SubresourceFilter::ReportLoad,
- WrapPersistent(this), load_policy));
+ WrapPersistent(this), url, load_policy));
return load_policy != WebDocumentSubresourceFilter::kDisallow;
}
void SubresourceFilter::ReportLoad(
+ const KURL& resource_url,
WebDocumentSubresourceFilter::LoadPolicy load_policy) {
+ Document* document = document_loader_->GetFrame()
+ ? document_loader_->GetFrame()->GetDocument()
+ : nullptr;
switch (load_policy) {
case WebDocumentSubresourceFilter::kAllow:
break;
case WebDocumentSubresourceFilter::kDisallow:
subresource_filter_->ReportDisallowedLoad();
+ if (subresource_filter_->ShouldLogToConsole() && document) {
Charlie Harrison 2017/05/22 14:35:03 nit: check |document| first in the conditional sin
shivanisha 2017/05/23 18:54:00 done
+ emitErrorForDisallowedLoads(resource_url.GetString(), *document);
+ }
// fall through
case WebDocumentSubresourceFilter::kWouldDisallow:
- // TODO(csharrison): log console errors here based on
- // subresource_filter_->ShouldLogToConsole().
document_loader_->DidObserveLoadingBehavior(
kWebLoadingBehaviorSubresourceFilterMatch);
break;
« no previous file with comments | « third_party/WebKit/Source/core/loader/SubresourceFilter.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698