Commit e151baf1 authored by Charles Harrison's avatar Charles Harrison Committed by Commit Bot

Remove ConsoleLogger in favor of augmenting TestRenderFrameHost

This class was used to mock out console log requests flowing through
RenderFrameHost. Now all unit tests can get the same functionality from
TestRenderFrameHost/RenderFrameHostTester, without injecting a mock.

Bug: None
Change-Id: I76a2603e48c9e7afd97a9b85da12ae2d4fe5714f
Reviewed-on: https://chromium-review.googlesource.com/748770
Commit-Queue: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: default avatarAvi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513219}
parent 8f4e5f3b
...@@ -74,8 +74,6 @@ split_static_library("ui") { ...@@ -74,8 +74,6 @@ split_static_library("ui") {
"autofill/popup_view_common.h", "autofill/popup_view_common.h",
"blocked_content/blocked_window_params.cc", "blocked_content/blocked_window_params.cc",
"blocked_content/blocked_window_params.h", "blocked_content/blocked_window_params.h",
"blocked_content/console_logger.cc",
"blocked_content/console_logger.h",
"blocked_content/popup_blocker_tab_helper.cc", "blocked_content/popup_blocker_tab_helper.cc",
"blocked_content/popup_blocker_tab_helper.h", "blocked_content/popup_blocker_tab_helper.h",
"blocked_content/popup_opener_tab_helper.cc", "blocked_content/popup_opener_tab_helper.cc",
......
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/blocked_content/console_logger.h"
#include "base/logging.h"
#include "content/public/browser/render_frame_host.h"
ConsoleLogger::ConsoleLogger() = default;
ConsoleLogger::~ConsoleLogger() = default;
void ConsoleLogger::LogInFrame(content::RenderFrameHost* render_frame_host,
content::ConsoleMessageLevel level,
const std::string& message) {
DCHECK(render_frame_host);
render_frame_host->AddMessageToConsole(level, message);
}
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_BLOCKED_CONTENT_CONSOLE_LOGGER_H_
#define CHROME_BROWSER_UI_BLOCKED_CONTENT_CONSOLE_LOGGER_H_
#include <string>
#include "base/macros.h"
#include "content/public/common/console_message_level.h"
namespace content {
class RenderFrameHost;
}
// This simple class just forwards console logging to the associated
// RenderFrameHost, to send down to the renderer. It exists for unit tests to
// mock out, allowing unit tests to expect console messages without having to
// write a full browser test.
class ConsoleLogger {
public:
ConsoleLogger();
virtual ~ConsoleLogger();
virtual void LogInFrame(content::RenderFrameHost* render_frame_host,
content::ConsoleMessageLevel level,
const std::string& message);
private:
DISALLOW_COPY_AND_ASSIGN(ConsoleLogger);
};
#endif // CHROME_BROWSER_UI_BLOCKED_CONTENT_CONSOLE_LOGGER_H_
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/subresource_filter/chrome_subresource_filter_client.h" #include "chrome/browser/subresource_filter/chrome_subresource_filter_client.h"
#include "chrome/browser/ui/blocked_content/blocked_window_params.h" #include "chrome/browser/ui/blocked_content/blocked_window_params.h"
#include "chrome/browser/ui/blocked_content/console_logger.h"
#include "chrome/browser/ui/blocked_content/popup_tracker.h" #include "chrome/browser/ui/blocked_content/popup_tracker.h"
#include "chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker.h" #include "chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker.h"
#include "chrome/browser/ui/browser_navigator.h" #include "chrome/browser/ui/browser_navigator.h"
...@@ -55,9 +54,7 @@ struct PopupBlockerTabHelper::BlockedRequest { ...@@ -55,9 +54,7 @@ struct PopupBlockerTabHelper::BlockedRequest {
PopupBlockerTabHelper::PopupBlockerTabHelper(content::WebContents* web_contents) PopupBlockerTabHelper::PopupBlockerTabHelper(content::WebContents* web_contents)
: content::WebContentsObserver(web_contents), : content::WebContentsObserver(web_contents),
safe_browsing_triggered_popup_blocker_( safe_browsing_triggered_popup_blocker_(
SafeBrowsingTriggeredPopupBlocker::MaybeCreate( SafeBrowsingTriggeredPopupBlocker::MaybeCreate(web_contents)) {}
web_contents,
base::MakeUnique<ConsoleLogger>())) {}
PopupBlockerTabHelper::~PopupBlockerTabHelper() { PopupBlockerTabHelper::~PopupBlockerTabHelper() {
} }
......
...@@ -9,11 +9,11 @@ ...@@ -9,11 +9,11 @@
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "base/metrics/field_trial_params.h" #include "base/metrics/field_trial_params.h"
#include "base/metrics/histogram_macros.h" #include "base/metrics/histogram_macros.h"
#include "chrome/browser/ui/blocked_content/console_logger.h"
#include "components/safe_browsing/db/util.h" #include "components/safe_browsing/db/util.h"
#include "components/safe_browsing/db/v4_protocol_manager_util.h" #include "components/safe_browsing/db/v4_protocol_manager_util.h"
#include "content/public/browser/navigation_handle.h" #include "content/public/browser/navigation_handle.h"
#include "content/public/browser/page_navigator.h" #include "content/public/browser/page_navigator.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "content/public/common/console_message_level.h" #include "content/public/common/console_message_level.h"
#include "third_party/WebKit/public/web/WebTriggeringEventInfo.h" #include "third_party/WebKit/public/web/WebTriggeringEventInfo.h"
...@@ -47,8 +47,7 @@ SafeBrowsingTriggeredPopupBlocker::PageData::~PageData() { ...@@ -47,8 +47,7 @@ SafeBrowsingTriggeredPopupBlocker::PageData::~PageData() {
// static // static
std::unique_ptr<SafeBrowsingTriggeredPopupBlocker> std::unique_ptr<SafeBrowsingTriggeredPopupBlocker>
SafeBrowsingTriggeredPopupBlocker::MaybeCreate( SafeBrowsingTriggeredPopupBlocker::MaybeCreate(
content::WebContents* web_contents, content::WebContents* web_contents) {
std::unique_ptr<ConsoleLogger> logger) {
if (!base::FeatureList::IsEnabled(kAbusiveExperienceEnforce)) if (!base::FeatureList::IsEnabled(kAbusiveExperienceEnforce))
return nullptr; return nullptr;
...@@ -57,8 +56,8 @@ SafeBrowsingTriggeredPopupBlocker::MaybeCreate( ...@@ -57,8 +56,8 @@ SafeBrowsingTriggeredPopupBlocker::MaybeCreate(
web_contents); web_contents);
if (!observer_manager) if (!observer_manager)
return nullptr; return nullptr;
return base::WrapUnique(new SafeBrowsingTriggeredPopupBlocker( return base::WrapUnique(
web_contents, observer_manager, std::move(logger))); new SafeBrowsingTriggeredPopupBlocker(web_contents, observer_manager));
} }
SafeBrowsingTriggeredPopupBlocker::~SafeBrowsingTriggeredPopupBlocker() = SafeBrowsingTriggeredPopupBlocker::~SafeBrowsingTriggeredPopupBlocker() =
...@@ -81,20 +80,17 @@ bool SafeBrowsingTriggeredPopupBlocker::ShouldApplyStrongPopupBlocker( ...@@ -81,20 +80,17 @@ bool SafeBrowsingTriggeredPopupBlocker::ShouldApplyStrongPopupBlocker(
if (should_block) { if (should_block) {
LogAction(Action::kBlocked); LogAction(Action::kBlocked);
current_page_data_->inc_num_popups_blocked(); current_page_data_->inc_num_popups_blocked();
logger_->LogInFrame(web_contents()->GetMainFrame(), web_contents()->GetMainFrame()->AddMessageToConsole(
content::CONSOLE_MESSAGE_LEVEL_ERROR, content::CONSOLE_MESSAGE_LEVEL_ERROR, kAbusiveEnforceMessage);
kAbusiveEnforceMessage);
} }
return should_block; return should_block;
} }
SafeBrowsingTriggeredPopupBlocker::SafeBrowsingTriggeredPopupBlocker( SafeBrowsingTriggeredPopupBlocker::SafeBrowsingTriggeredPopupBlocker(
content::WebContents* web_contents, content::WebContents* web_contents,
subresource_filter::SubresourceFilterObserverManager* observer_manager, subresource_filter::SubresourceFilterObserverManager* observer_manager)
std::unique_ptr<ConsoleLogger> logger)
: content::WebContentsObserver(web_contents), : content::WebContentsObserver(web_contents),
scoped_observer_(this), scoped_observer_(this),
logger_(std::move(logger)),
current_page_data_(base::MakeUnique<PageData>()), current_page_data_(base::MakeUnique<PageData>()),
ignore_sublists_( ignore_sublists_(
base::GetFieldTrialParamByFeatureAsBool(kAbusiveExperienceEnforce, base::GetFieldTrialParamByFeatureAsBool(kAbusiveExperienceEnforce,
...@@ -128,9 +124,8 @@ void SafeBrowsingTriggeredPopupBlocker::DidFinishNavigation( ...@@ -128,9 +124,8 @@ void SafeBrowsingTriggeredPopupBlocker::DidFinishNavigation(
current_page_data_->set_is_triggered(true); current_page_data_->set_is_triggered(true);
LogAction(Action::kEnforcedSite); LogAction(Action::kEnforcedSite);
} else if (level == SubresourceFilterLevel::WARN) { } else if (level == SubresourceFilterLevel::WARN) {
logger_->LogInFrame(web_contents()->GetMainFrame(), web_contents()->GetMainFrame()->AddMessageToConsole(
content::CONSOLE_MESSAGE_LEVEL_WARNING, content::CONSOLE_MESSAGE_LEVEL_WARNING, kAbusiveWarnMessage);
kAbusiveWarnMessage);
LogAction(Action::kWarningSite); LogAction(Action::kWarningSite);
} }
LogAction(Action::kNavigation); LogAction(Action::kNavigation);
......
...@@ -21,7 +21,6 @@ struct OpenURLParams; ...@@ -21,7 +21,6 @@ struct OpenURLParams;
class WebContents; class WebContents;
} // namespace content } // namespace content
class ConsoleLogger;
extern const base::Feature kAbusiveExperienceEnforce; extern const base::Feature kAbusiveExperienceEnforce;
...@@ -68,20 +67,18 @@ class SafeBrowsingTriggeredPopupBlocker ...@@ -68,20 +67,18 @@ class SafeBrowsingTriggeredPopupBlocker
}; };
static std::unique_ptr<SafeBrowsingTriggeredPopupBlocker> MaybeCreate( static std::unique_ptr<SafeBrowsingTriggeredPopupBlocker> MaybeCreate(
content::WebContents* web_contents, content::WebContents* web_contents);
std::unique_ptr<ConsoleLogger> logger);
~SafeBrowsingTriggeredPopupBlocker() override; ~SafeBrowsingTriggeredPopupBlocker() override;
bool ShouldApplyStrongPopupBlocker( bool ShouldApplyStrongPopupBlocker(
const content::OpenURLParams* open_url_params); const content::OpenURLParams* open_url_params);
private: private:
// The |web_contents|, |observer_manager|, and |logger| are expected to be // The |web_contents| and |observer_manager| are expected to be
// non-nullptr. // non-nullptr.
SafeBrowsingTriggeredPopupBlocker( SafeBrowsingTriggeredPopupBlocker(
content::WebContents* web_contents, content::WebContents* web_contents,
subresource_filter::SubresourceFilterObserverManager* observer_manager, subresource_filter::SubresourceFilterObserverManager* observer_manager);
std::unique_ptr<ConsoleLogger> logger);
// content::WebContentsObserver: // content::WebContentsObserver:
void DidFinishNavigation( void DidFinishNavigation(
...@@ -127,9 +124,6 @@ class SafeBrowsingTriggeredPopupBlocker ...@@ -127,9 +124,6 @@ class SafeBrowsingTriggeredPopupBlocker
base::Optional<safe_browsing::SubresourceFilterLevel> base::Optional<safe_browsing::SubresourceFilterLevel>
level_for_next_committed_navigation_; level_for_next_committed_navigation_;
// Should never be nullptr.
std::unique_ptr<ConsoleLogger> logger_;
// Should never be nullptr. // Should never be nullptr.
std::unique_ptr<PageData> current_page_data_; std::unique_ptr<PageData> current_page_data_;
......
...@@ -16,12 +16,12 @@ ...@@ -16,12 +16,12 @@
#include "base/test/scoped_feature_list.h" #include "base/test/scoped_feature_list.h"
#include "chrome/browser/safe_browsing/test_safe_browsing_service.h" #include "chrome/browser/safe_browsing/test_safe_browsing_service.h"
#include "chrome/browser/subresource_filter/chrome_subresource_filter_client.h" #include "chrome/browser/subresource_filter/chrome_subresource_filter_client.h"
#include "chrome/browser/ui/blocked_content/console_logger.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_browser_process.h"
#include "components/safe_browsing/db/v4_protocol_manager_util.h" #include "components/safe_browsing/db/v4_protocol_manager_util.h"
#include "components/subresource_filter/content/browser/fake_safe_browsing_database_manager.h" #include "components/subresource_filter/content/browser/fake_safe_browsing_database_manager.h"
#include "content/public/test/navigation_simulator.h" #include "content/public/test/navigation_simulator.h"
#include "content/public/test/test_renderer_host.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
#include "third_party/WebKit/public/web/WebTriggeringEventInfo.h" #include "third_party/WebKit/public/web/WebTriggeringEventInfo.h"
#include "ui/base/page_transition_types.h" #include "ui/base/page_transition_types.h"
...@@ -31,24 +31,6 @@ ...@@ -31,24 +31,6 @@
const char kNumBlockedHistogram[] = const char kNumBlockedHistogram[] =
"ContentSettings.Popups.StrongBlocker.NumBlocked"; "ContentSettings.Popups.StrongBlocker.NumBlocked";
class TestConsoleLogger : public ConsoleLogger {
public:
TestConsoleLogger() {}
~TestConsoleLogger() override {}
void LogInFrame(content::RenderFrameHost* render_frame_host,
content::ConsoleMessageLevel level,
const std::string& message) override {
messages_.push_back(message);
}
const std::vector<std::string>& messages() { return messages_; }
private:
std::vector<std::string> messages_;
DISALLOW_COPY_AND_ASSIGN(TestConsoleLogger);
};
class SafeBrowsingTriggeredPopupBlockerTest class SafeBrowsingTriggeredPopupBlockerTest
: public ChromeRenderViewHostTestHarness { : public ChromeRenderViewHostTestHarness {
public: public:
...@@ -79,11 +61,8 @@ class SafeBrowsingTriggeredPopupBlockerTest ...@@ -79,11 +61,8 @@ class SafeBrowsingTriggeredPopupBlockerTest
ChromeSubresourceFilterClient::CreateForWebContents(web_contents()); ChromeSubresourceFilterClient::CreateForWebContents(web_contents());
scoped_feature_list_ = DefaultFeatureList(); scoped_feature_list_ = DefaultFeatureList();
popup_blocker_ =
auto console_logger = base::MakeUnique<TestConsoleLogger>(); SafeBrowsingTriggeredPopupBlocker::MaybeCreate(web_contents());
console_logger_ = console_logger.get();
popup_blocker_ = SafeBrowsingTriggeredPopupBlocker::MaybeCreate(
web_contents(), std::move(console_logger));
} }
void TearDown() override { void TearDown() override {
...@@ -140,16 +119,17 @@ class SafeBrowsingTriggeredPopupBlockerTest ...@@ -140,16 +119,17 @@ class SafeBrowsingTriggeredPopupBlockerTest
MarkUrlAsAbusiveWithLevel(url, safe_browsing::SubresourceFilterLevel::WARN); MarkUrlAsAbusiveWithLevel(url, safe_browsing::SubresourceFilterLevel::WARN);
} }
TestConsoleLogger* console_logger() { return console_logger_; } const std::vector<std::string>& GetMainFrameConsoleMessages() {
content::RenderFrameHostTester* rfh_tester =
content::RenderFrameHostTester::For(main_rfh());
return rfh_tester->GetConsoleMessages();
}
private: private:
std::unique_ptr<base::test::ScopedFeatureList> scoped_feature_list_; std::unique_ptr<base::test::ScopedFeatureList> scoped_feature_list_;
scoped_refptr<FakeSafeBrowsingDatabaseManager> fake_safe_browsing_database_; scoped_refptr<FakeSafeBrowsingDatabaseManager> fake_safe_browsing_database_;
std::unique_ptr<SafeBrowsingTriggeredPopupBlocker> popup_blocker_; std::unique_ptr<SafeBrowsingTriggeredPopupBlocker> popup_blocker_;
// Owned by the popup blocker.
TestConsoleLogger* console_logger_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(SafeBrowsingTriggeredPopupBlockerTest); DISALLOW_COPY_AND_ASSIGN(SafeBrowsingTriggeredPopupBlockerTest);
}; };
...@@ -185,11 +165,11 @@ TEST_F(SafeBrowsingTriggeredPopupBlockerTest, MatchingURL_BlocksPopupAndLogs) { ...@@ -185,11 +165,11 @@ TEST_F(SafeBrowsingTriggeredPopupBlockerTest, MatchingURL_BlocksPopupAndLogs) {
const GURL url("https://example.test/"); const GURL url("https://example.test/");
MarkUrlAsAbusiveEnforce(url); MarkUrlAsAbusiveEnforce(url);
NavigateAndCommit(url); NavigateAndCommit(url);
EXPECT_TRUE(console_logger()->messages().empty()); EXPECT_TRUE(GetMainFrameConsoleMessages().empty());
EXPECT_TRUE(popup_blocker()->ShouldApplyStrongPopupBlocker(nullptr)); EXPECT_TRUE(popup_blocker()->ShouldApplyStrongPopupBlocker(nullptr));
EXPECT_EQ(1u, console_logger()->messages().size()); EXPECT_EQ(1u, GetMainFrameConsoleMessages().size());
EXPECT_EQ(console_logger()->messages().front(), kAbusiveEnforceMessage); EXPECT_EQ(GetMainFrameConsoleMessages().front(), kAbusiveEnforceMessage);
} }
TEST_F(SafeBrowsingTriggeredPopupBlockerTest, TEST_F(SafeBrowsingTriggeredPopupBlockerTest,
...@@ -216,15 +196,15 @@ TEST_F(SafeBrowsingTriggeredPopupBlockerTest, NoMatch_NoBlocking) { ...@@ -216,15 +196,15 @@ TEST_F(SafeBrowsingTriggeredPopupBlockerTest, NoMatch_NoBlocking) {
const GURL url("https://example.test/"); const GURL url("https://example.test/");
NavigateAndCommit(url); NavigateAndCommit(url);
EXPECT_FALSE(popup_blocker()->ShouldApplyStrongPopupBlocker(nullptr)); EXPECT_FALSE(popup_blocker()->ShouldApplyStrongPopupBlocker(nullptr));
EXPECT_TRUE(console_logger()->messages().empty()); EXPECT_TRUE(GetMainFrameConsoleMessages().empty());
} }
TEST_F(SafeBrowsingTriggeredPopupBlockerTest, NoFeature_NoCreating) { TEST_F(SafeBrowsingTriggeredPopupBlockerTest, NoFeature_NoCreating) {
EXPECT_NE(nullptr, SafeBrowsingTriggeredPopupBlocker::MaybeCreate( EXPECT_NE(nullptr,
web_contents(), base::MakeUnique<ConsoleLogger>())); SafeBrowsingTriggeredPopupBlocker::MaybeCreate(web_contents()));
ResetFeatureAndGet(); ResetFeatureAndGet();
EXPECT_EQ(nullptr, SafeBrowsingTriggeredPopupBlocker::MaybeCreate( EXPECT_EQ(nullptr,
web_contents(), base::MakeUnique<ConsoleLogger>())); SafeBrowsingTriggeredPopupBlocker::MaybeCreate(web_contents()));
} }
TEST_F(SafeBrowsingTriggeredPopupBlockerTest, OnlyBlockOnMatchingUrls) { TEST_F(SafeBrowsingTriggeredPopupBlockerTest, OnlyBlockOnMatchingUrls) {
...@@ -368,8 +348,8 @@ TEST_F(SafeBrowsingTriggeredPopupBlockerTest, WarningMatch_OnlyLogs) { ...@@ -368,8 +348,8 @@ TEST_F(SafeBrowsingTriggeredPopupBlockerTest, WarningMatch_OnlyLogs) {
NavigateAndCommit(url); NavigateAndCommit(url);
// Warning should come at navigation commit time, not at popup time. // Warning should come at navigation commit time, not at popup time.
EXPECT_EQ(1u, console_logger()->messages().size()); EXPECT_EQ(1u, GetMainFrameConsoleMessages().size());
EXPECT_EQ(console_logger()->messages().front(), kAbusiveWarnMessage); EXPECT_EQ(GetMainFrameConsoleMessages().front(), kAbusiveWarnMessage);
EXPECT_FALSE(popup_blocker()->ShouldApplyStrongPopupBlocker(nullptr)); EXPECT_FALSE(popup_blocker()->ShouldApplyStrongPopupBlocker(nullptr));
} }
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
#include <stdint.h> #include <stdint.h>
#include <memory> #include <memory>
#include <string>
#include <vector>
#include "base/macros.h" #include "base/macros.h"
#include "base/message_loop/message_loop.h" #include "base/message_loop/message_loop.h"
...@@ -121,6 +123,10 @@ class RenderFrameHostTester { ...@@ -121,6 +123,10 @@ class RenderFrameHostTester {
virtual void SimulateFeaturePolicyHeader( virtual void SimulateFeaturePolicyHeader(
blink::WebFeaturePolicyFeature feature, blink::WebFeaturePolicyFeature feature,
const std::vector<url::Origin>& whitelist) = 0; const std::vector<url::Origin>& whitelist) = 0;
// Gets all the console messages requested via
// RenderFrameHost::AddMessageToConsole in this frame.
virtual const std::vector<std::string>& GetConsoleMessages() = 0;
}; };
// An interface and utility for driving tests of RenderViewHost. // An interface and utility for driving tests of RenderViewHost.
......
...@@ -111,6 +111,12 @@ MockRenderProcessHost* TestRenderFrameHost::GetProcess() { ...@@ -111,6 +111,12 @@ MockRenderProcessHost* TestRenderFrameHost::GetProcess() {
return static_cast<MockRenderProcessHost*>(RenderFrameHostImpl::GetProcess()); return static_cast<MockRenderProcessHost*>(RenderFrameHostImpl::GetProcess());
} }
void TestRenderFrameHost::AddMessageToConsole(ConsoleMessageLevel level,
const std::string& message) {
console_messages_.push_back(message);
RenderFrameHostImpl::AddMessageToConsole(level, message);
}
void TestRenderFrameHost::InitializeRenderFrameIfNeeded() { void TestRenderFrameHost::InitializeRenderFrameIfNeeded() {
if (!render_view_host()->IsRenderViewLive()) { if (!render_view_host()->IsRenderViewLive()) {
render_view_host()->GetProcess()->Init(); render_view_host()->GetProcess()->Init();
...@@ -305,6 +311,10 @@ void TestRenderFrameHost::SimulateFeaturePolicyHeader( ...@@ -305,6 +311,10 @@ void TestRenderFrameHost::SimulateFeaturePolicyHeader(
OnDidSetFeaturePolicyHeader(header); OnDidSetFeaturePolicyHeader(header);
} }
const std::vector<std::string>& TestRenderFrameHost::GetConsoleMessages() {
return console_messages_;
}
void TestRenderFrameHost::SendNavigate(int nav_entry_id, void TestRenderFrameHost::SendNavigate(int nav_entry_id,
bool did_create_new_entry, bool did_create_new_entry,
const GURL& url) { const GURL& url) {
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <stdint.h> #include <stdint.h>
#include <string>
#include <vector> #include <vector>
#include "base/macros.h" #include "base/macros.h"
...@@ -52,6 +53,8 @@ class TestRenderFrameHost : public RenderFrameHostImpl, ...@@ -52,6 +53,8 @@ class TestRenderFrameHost : public RenderFrameHostImpl,
// RenderFrameHostImpl overrides (same values, but in Test*/Mock* types) // RenderFrameHostImpl overrides (same values, but in Test*/Mock* types)
TestRenderViewHost* GetRenderViewHost() override; TestRenderViewHost* GetRenderViewHost() override;
MockRenderProcessHost* GetProcess() override; MockRenderProcessHost* GetProcess() override;
void AddMessageToConsole(ConsoleMessageLevel level,
const std::string& message) override;
// RenderFrameHostTester implementation. // RenderFrameHostTester implementation.
void InitializeRenderFrameIfNeeded() override; void InitializeRenderFrameIfNeeded() override;
...@@ -71,6 +74,7 @@ class TestRenderFrameHost : public RenderFrameHostImpl, ...@@ -71,6 +74,7 @@ class TestRenderFrameHost : public RenderFrameHostImpl,
void SimulateFeaturePolicyHeader( void SimulateFeaturePolicyHeader(
blink::WebFeaturePolicyFeature feature, blink::WebFeaturePolicyFeature feature,
const std::vector<url::Origin>& whitelist) override; const std::vector<url::Origin>& whitelist) override;
const std::vector<std::string>& GetConsoleMessages() override;
void SendNavigateWithReplacement(int nav_entry_id, void SendNavigateWithReplacement(int nav_entry_id,
bool did_create_new_entry, bool did_create_new_entry,
...@@ -186,6 +190,9 @@ class TestRenderFrameHost : public RenderFrameHostImpl, ...@@ -186,6 +190,9 @@ class TestRenderFrameHost : public RenderFrameHostImpl,
mojom::FrameNavigationControl* GetInternalNavigationControl(); mojom::FrameNavigationControl* GetInternalNavigationControl();
// Keeps a running vector of messages sent to AddMessageToConsole.
std::vector<std::string> console_messages_;
TestRenderFrameHostCreationObserver child_creation_observer_; TestRenderFrameHostCreationObserver child_creation_observer_;
std::string contents_mime_type_; std::string contents_mime_type_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment