Chromium Code Reviews| 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..a259b21a1f34ba50cc96c2c8f00691376576c7a9 |
| --- /dev/null |
| +++ b/chrome/browser/interstitials/security_interstitial_page.cc |
| @@ -0,0 +1,67 @@ |
| +// 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 "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. |
| +} |
| + |
| +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_) |
|
Lei Zhang
2014/11/20 01:35:06
Expanding this out, it'll be:
if (create_view_ ==
meacer
2014/11/20 01:58:52
SecurityInterstitialPage is a delegate of |interst
Lei Zhang
2014/11/20 02:05:27
Hmm, I see this is essentially moved over from chr
|
| + interstitial_page_->DontCreateViewForTesting(); |
| + interstitial_page_->Show(); |
| +} |
| + |
| +base::string16 SecurityInterstitialPage::GetFormattedHostName() { |
| + 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); |
| +} |