| Index: chrome/browser/interstitials/security_interstitial_page.cc
|
| diff --git a/chrome/browser/interstitials/security_interstitial_page.cc b/chrome/browser/interstitials/security_interstitial_page.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..513219631c1fa5c538f47cd014931887e123ff34
|
| --- /dev/null
|
| +++ b/chrome/browser/interstitials/security_interstitial_page.cc
|
| @@ -0,0 +1,71 @@
|
| +// Copyright (c) 2014 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/interstitials/security_interstitial_page.h"
|
| +
|
| +#include "base/i18n/rtl.h"
|
| +#include "base/strings/utf_string_conversions.h"
|
| +#include "base/values.h"
|
| +#include "chrome/grit/browser_resources.h"
|
| +#include "content/public/browser/interstitial_page.h"
|
| +#include "content/public/browser/web_contents.h"
|
| +#include "ui/base/resource/resource_bundle.h"
|
| +#include "ui/base/webui/jstemplate_builder.h"
|
| +#include "ui/base/webui/web_ui_util.h"
|
| +
|
| +SecurityInterstitialPage::SecurityInterstitialPage(
|
| + content::WebContents* web_contents,
|
| + const GURL& request_url)
|
| + : web_contents_(web_contents),
|
| + request_url_(request_url),
|
| + interstitial_page_(NULL),
|
| + create_view_(true) {
|
| + // Creating interstitial_page_ without showing it leaks memory, so don't
|
| + // create it here.
|
| +}
|
| +
|
| +SecurityInterstitialPage::~SecurityInterstitialPage() {
|
| +}
|
| +
|
| +content::InterstitialPage* SecurityInterstitialPage::interstitial_page() const {
|
| + return interstitial_page_;
|
| +}
|
| +
|
| +content::WebContents* SecurityInterstitialPage::web_contents() const {
|
| + return web_contents_;
|
| +}
|
| +
|
| +GURL SecurityInterstitialPage::request_url() const {
|
| + return request_url_;
|
| +}
|
| +
|
| +void SecurityInterstitialPage::DontCreateViewForTesting() {
|
| + create_view_ = false;
|
| +}
|
| +
|
| +void SecurityInterstitialPage::Show() {
|
| + DCHECK(!interstitial_page_);
|
| + interstitial_page_ = content::InterstitialPage::Create(
|
| + web_contents_, ShouldCreateNewNavigation(), request_url_, this);
|
| + if (!create_view_)
|
| + interstitial_page_->DontCreateViewForTesting();
|
| + interstitial_page_->Show();
|
| +}
|
| +
|
| +base::string16 SecurityInterstitialPage::GetFormattedHostName() const {
|
| + base::string16 host(base::UTF8ToUTF16(request_url_.host()));
|
| + if (base::i18n::IsRTL())
|
| + base::i18n::WrapStringWithLTRFormatting(&host);
|
| + return host;
|
| +}
|
| +
|
| +std::string SecurityInterstitialPage::GetHTMLContents() {
|
| + base::DictionaryValue load_time_data;
|
| + PopulateInterstitialStrings(&load_time_data);
|
| + webui::SetFontAndTextDirection(&load_time_data);
|
| + base::StringPiece html(
|
| + ResourceBundle::GetSharedInstance().GetRawDataResource(
|
| + IDR_SECURITY_INTERSTITIAL_HTML));
|
| + return webui::GetI18nTemplateHtml(html, &load_time_data);
|
| +}
|
|
|