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

Unified Diff: chrome/browser/dom_distiller/tab_utils_browsertest.cc

Issue 2014043003: Catch CSP violations in DOM distiller browser test Base URL: https://chromium.googlesource.com/a/chromium/src.git@master
Patch Set: Created 4 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 | « no previous file | chrome/test/data/dom_distiller/simple_article.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/dom_distiller/tab_utils_browsertest.cc
diff --git a/chrome/browser/dom_distiller/tab_utils_browsertest.cc b/chrome/browser/dom_distiller/tab_utils_browsertest.cc
index ddc07da66ca99ec4770bdb52a3a17a83e7c2075e..bb4313afb3a2181f937c2e1cc70cbd35b96e8b45 100644
--- a/chrome/browser/dom_distiller/tab_utils_browsertest.cc
+++ b/chrome/browser/dom_distiller/tab_utils_browsertest.cc
@@ -32,11 +32,42 @@
namespace dom_distiller {
namespace {
+
const char* kSimpleArticlePath = "/dom_distiller/simple_article.html";
+
+static bool hit_javascript_error = false;
+
+bool JavascriptErrorDetectingLogHandler(int severity,
+ const char* file,
+ int line,
+ size_t message_start,
+ const std::string& str) {
+ if (file == NULL || std::string("CONSOLE") != file)
+ return false;
+
+ // Catch CSP violation as well.
+ bool contains_error = str.find(" violates ") != std::string::npos;
+ if (severity == logging::LOG_ERROR ||
+ (severity == logging::LOG_INFO && contains_error)) {
+ hit_javascript_error = true;
+ }
+
+ return false;
+}
+
} // namespace
class DomDistillerTabUtilsBrowserTest : public InProcessBrowserTest {
public:
+ DomDistillerTabUtilsBrowserTest() {
+ logging::SetLogMessageHandler(&JavascriptErrorDetectingLogHandler);
+ hit_javascript_error = false;
+ }
+
+ ~DomDistillerTabUtilsBrowserTest() override {
+ logging::SetLogMessageHandler(nullptr);
+ }
+
void SetUpOnMainThread() override {
if (!DistillerJavaScriptWorldIdIsSet()) {
SetDistillerJavaScriptWorldId(content::ISOLATED_WORLD_ID_CONTENT_END);
@@ -47,6 +78,10 @@ class DomDistillerTabUtilsBrowserTest : public InProcessBrowserTest {
void SetUpCommandLine(base::CommandLine* command_line) override {
command_line->AppendSwitch(switches::kEnableDomDistiller);
}
+
+ void TearDown() override {
+ EXPECT_FALSE(hit_javascript_error);
+ }
};
// WebContentsMainFrameHelper is used to detect if a distilled page has
« no previous file with comments | « no previous file | chrome/test/data/dom_distiller/simple_article.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698