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

Unified Diff: components/security_interstitials/content/security_interstitial_controller_client.cc

Issue 2603433002: Move SecurityInterstitialPage into component (Closed)
Patch Set: missed some changes in rebase Created 3 years, 11 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
Index: components/security_interstitials/content/security_interstitial_controller_client.cc
diff --git a/components/security_interstitials/content/security_interstitial_controller_client.cc b/components/security_interstitials/content/security_interstitial_controller_client.cc
new file mode 100644
index 0000000000000000000000000000000000000000..150505e5f5ad71b93849ad88951833276703d720
--- /dev/null
+++ b/components/security_interstitials/content/security_interstitial_controller_client.cc
@@ -0,0 +1,102 @@
+// Copyright 2016 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 "components/security_interstitials/content/security_interstitial_controller_client.h"
+
+#include <utility>
+
+#include "components/prefs/pref_service.h"
+#include "components/safe_browsing_db/safe_browsing_prefs.h"
+#include "components/security_interstitials/core/metrics_helper.h"
+#include "content/public/browser/interstitial_page.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/common/referrer.h"
+
+using content::Referrer;
+
+namespace security_interstitials {
+
+SecurityInterstitialControllerClient::SecurityInterstitialControllerClient(
+ content::WebContents* web_contents,
+ std::unique_ptr<MetricsHelper> metrics_helper,
+ PrefService* prefs,
+ const std::string& app_locale,
+ const GURL& default_safe_page)
+ : ControllerClient(std::move(metrics_helper)),
+ web_contents_(web_contents),
+ interstitial_page_(nullptr),
+ prefs_(prefs),
+ app_locale_(app_locale),
+ default_safe_page_(default_safe_page) {}
+
+SecurityInterstitialControllerClient::~SecurityInterstitialControllerClient() {}
+
+void SecurityInterstitialControllerClient::set_interstitial_page(
+ content::InterstitialPage* interstitial_page) {
+ interstitial_page_ = interstitial_page;
+}
+
+content::InterstitialPage*
+SecurityInterstitialControllerClient::interstitial_page() {
+ return interstitial_page_;
+}
+
+void SecurityInterstitialControllerClient::GoBack() {
+ interstitial_page_->DontProceed();
+}
+
+void SecurityInterstitialControllerClient::GoBackAfterNavigationCommitted() {
+ // If the offending entry has committed, go back or to a safe page without
+ // closing the error page. This error page will be closed when the new page
+ // commits.
+ if (web_contents_->GetController().CanGoBack()) {
+ web_contents_->GetController().GoBack();
+ } else {
+ web_contents_->GetController().LoadURL(
+ default_safe_page_, content::Referrer(),
+ ui::PAGE_TRANSITION_AUTO_TOPLEVEL, std::string());
+ }
+}
+
+void SecurityInterstitialControllerClient::Proceed() {
+ interstitial_page_->Proceed();
+}
+
+void SecurityInterstitialControllerClient::Reload() {
+ web_contents_->GetController().Reload(content::ReloadType::NORMAL, true);
+}
+
+void SecurityInterstitialControllerClient::OpenUrlInCurrentTab(
+ const GURL& url) {
+ content::OpenURLParams params(url, Referrer(),
+ WindowOpenDisposition::CURRENT_TAB,
+ ui::PAGE_TRANSITION_LINK, false);
+ web_contents_->OpenURL(params);
+}
+
+const std::string&
+SecurityInterstitialControllerClient::GetApplicationLocale() const {
+ return app_locale_;
+}
+
+PrefService*
+SecurityInterstitialControllerClient::GetPrefService() {
+ return prefs_;
+}
+
+const std::string
+SecurityInterstitialControllerClient::GetExtendedReportingPrefName() const {
+ return safe_browsing::GetExtendedReportingPrefName(*prefs_);
+}
+
+bool SecurityInterstitialControllerClient::CanLaunchDateAndTimeSettings() {
+ NOTREACHED();
+ return false;
+}
+
+void SecurityInterstitialControllerClient::LaunchDateAndTimeSettings() {
+ NOTREACHED();
+}
+
+} // namespace security_interstitials

Powered by Google App Engine
This is Rietveld 408576698