12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // Copyright 2020 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 "weblayer/browser/insecure_form_controller_client.h"
- #include "components/security_interstitials/content/insecure_form_tab_storage.h"
- #include "components/security_interstitials/content/settings_page_helper.h"
- #include "content/public/browser/web_contents.h"
- #include "weblayer/browser/i18n_util.h"
- namespace weblayer {
- // static
- std::unique_ptr<security_interstitials::MetricsHelper>
- InsecureFormControllerClient::GetMetricsHelper(const GURL& url) {
- security_interstitials::MetricsHelper::ReportDetails settings;
- settings.metric_prefix = "insecure_form";
- return std::make_unique<security_interstitials::MetricsHelper>(url, settings,
- nullptr);
- }
- // static
- std::unique_ptr<security_interstitials::SettingsPageHelper>
- InsecureFormControllerClient::GetSettingsPageHelper() {
- // Return nullptr since there is no enhanced protection message in insecure
- // form interstitials.
- return nullptr;
- }
- InsecureFormControllerClient::InsecureFormControllerClient(
- content::WebContents* web_contents,
- const GURL& form_target_url)
- : SecurityInterstitialControllerClient(
- web_contents,
- GetMetricsHelper(form_target_url),
- nullptr, /* prefs */
- i18n::GetApplicationLocale(),
- GURL("about:blank") /* default_safe_page */,
- GetSettingsPageHelper()),
- web_contents_(web_contents) {}
- InsecureFormControllerClient::~InsecureFormControllerClient() = default;
- void InsecureFormControllerClient::GoBack() {
- SecurityInterstitialControllerClient::GoBackAfterNavigationCommitted();
- }
- void InsecureFormControllerClient::Proceed() {
- // Set the is_proceeding flag on the tab storage so reload doesn't trigger
- // another interstitial.
- security_interstitials::InsecureFormTabStorage* tab_storage =
- security_interstitials::InsecureFormTabStorage::GetOrCreate(
- web_contents_);
- tab_storage->SetIsProceeding(true);
- // We don't check for repost on the proceed reload since the interstitial
- // explains this will submit the form.
- web_contents_->GetController().Reload(content::ReloadType::NORMAL, false);
- }
- } // namespace weblayer
|