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

Side by Side Diff: chrome/browser/ui/webui/interstitials/interstitial_ui.cc

Issue 2739473006: Update supervised user interstitial pages. (Closed)
Patch Set: fix Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/interstitials/interstitial_ui.h" 5 #include "chrome/browser/ui/webui/interstitials/interstitial_ui.h"
6 6
7 #include "base/atomic_sequence_num.h" 7 #include "base/atomic_sequence_num.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
11 #include "chrome/browser/browser_process.h" 11 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
13 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h" 13 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h"
14 #include "chrome/browser/safe_browsing/safe_browsing_service.h" 14 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
15 #include "chrome/browser/safe_browsing/ui_manager.h" 15 #include "chrome/browser/safe_browsing/ui_manager.h"
16 #include "chrome/browser/ssl/bad_clock_blocking_page.h" 16 #include "chrome/browser/ssl/bad_clock_blocking_page.h"
17 #include "chrome/browser/ssl/ssl_blocking_page.h" 17 #include "chrome/browser/ssl/ssl_blocking_page.h"
18 #include "chrome/browser/supervised_user/supervised_user_interstitial.h"
18 #include "chrome/common/features.h" 19 #include "chrome/common/features.h"
19 #include "chrome/common/url_constants.h" 20 #include "chrome/common/url_constants.h"
20 #include "components/grit/components_resources.h" 21 #include "components/grit/components_resources.h"
21 #include "components/security_interstitials/core/ssl_error_ui.h" 22 #include "components/security_interstitials/core/ssl_error_ui.h"
23 #include "components/supervised_user_error_page/supervised_user_error_page.h"
22 #include "content/public/browser/interstitial_page_delegate.h" 24 #include "content/public/browser/interstitial_page_delegate.h"
23 #include "content/public/browser/render_frame_host.h" 25 #include "content/public/browser/render_frame_host.h"
24 #include "content/public/browser/render_process_host.h" 26 #include "content/public/browser/render_process_host.h"
25 #include "content/public/browser/url_data_source.h" 27 #include "content/public/browser/url_data_source.h"
26 #include "content/public/browser/web_contents.h" 28 #include "content/public/browser/web_contents.h"
27 #include "content/public/browser/web_ui.h" 29 #include "content/public/browser/web_ui.h"
28 #include "content/public/browser/web_ui_data_source.h" 30 #include "content/public/browser/web_ui_data_source.h"
29 #include "crypto/rsa_private_key.h" 31 #include "crypto/rsa_private_key.h"
30 #include "net/base/net_errors.h" 32 #include "net/base/net_errors.h"
31 #include "net/base/url_util.h" 33 #include "net/base/url_util.h"
(...skipping 26 matching lines...) Expand all
58 } 60 }
59 61
60 return net::X509Certificate::CreateFromBytes(cert_der.data(), 62 return net::X509Certificate::CreateFromBytes(cert_der.data(),
61 cert_der.size()); 63 cert_der.size());
62 } 64 }
63 65
64 // Implementation of chrome://interstitials demonstration pages. This code is 66 // Implementation of chrome://interstitials demonstration pages. This code is
65 // not used in displaying any real interstitials. 67 // not used in displaying any real interstitials.
66 class InterstitialHTMLSource : public content::URLDataSource { 68 class InterstitialHTMLSource : public content::URLDataSource {
67 public: 69 public:
68 InterstitialHTMLSource() {} 70 explicit InterstitialHTMLSource(Profile* profile) : profile_(profile) {}
69 ~InterstitialHTMLSource() override {} 71 ~InterstitialHTMLSource() override {}
70 72
71 // content::URLDataSource: 73 // content::URLDataSource:
72 std::string GetMimeType(const std::string& mime_type) const override; 74 std::string GetMimeType(const std::string& mime_type) const override;
73 std::string GetSource() const override; 75 std::string GetSource() const override;
74 std::string GetContentSecurityPolicyScriptSrc() const override; 76 std::string GetContentSecurityPolicyScriptSrc() const override;
75 std::string GetContentSecurityPolicyStyleSrc() const override; 77 std::string GetContentSecurityPolicyStyleSrc() const override;
76 std::string GetContentSecurityPolicyImgSrc() const override; 78 std::string GetContentSecurityPolicyImgSrc() const override;
77 void StartDataRequest( 79 void StartDataRequest(
78 const std::string& path, 80 const std::string& path,
79 const content::ResourceRequestInfo::WebContentsGetter& wc_getter, 81 const content::ResourceRequestInfo::WebContentsGetter& wc_getter,
80 const content::URLDataSource::GotDataCallback& callback) override; 82 const content::URLDataSource::GotDataCallback& callback) override;
81 83
82 private: 84 private:
85 Profile* profile_;
86
83 DISALLOW_COPY_AND_ASSIGN(InterstitialHTMLSource); 87 DISALLOW_COPY_AND_ASSIGN(InterstitialHTMLSource);
84 }; 88 };
85 89
86 #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) 90 #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
87 // Provides fake connection information to the captive portal blocking page so 91 // Provides fake connection information to the captive portal blocking page so
88 // that both Wi-Fi and non Wi-Fi blocking pages can be displayed. 92 // that both Wi-Fi and non Wi-Fi blocking pages can be displayed.
89 class CaptivePortalBlockingPageWithNetInfo : public CaptivePortalBlockingPage { 93 class CaptivePortalBlockingPageWithNetInfo : public CaptivePortalBlockingPage {
90 public: 94 public:
91 CaptivePortalBlockingPageWithNetInfo( 95 CaptivePortalBlockingPageWithNetInfo(
92 content::WebContents* web_contents, 96 content::WebContents* web_contents,
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 is_wifi_connection, wifi_ssid); 305 is_wifi_connection, wifi_ssid);
302 return blocking_page; 306 return blocking_page;
303 } 307 }
304 #endif 308 #endif
305 309
306 } // namespace 310 } // namespace
307 311
308 InterstitialUI::InterstitialUI(content::WebUI* web_ui) 312 InterstitialUI::InterstitialUI(content::WebUI* web_ui)
309 : WebUIController(web_ui) { 313 : WebUIController(web_ui) {
310 Profile* profile = Profile::FromWebUI(web_ui); 314 Profile* profile = Profile::FromWebUI(web_ui);
311 content::URLDataSource::Add(profile, new InterstitialHTMLSource()); 315 content::URLDataSource::Add(profile, new InterstitialHTMLSource(profile));
312 } 316 }
313 317
314 InterstitialUI::~InterstitialUI() { 318 InterstitialUI::~InterstitialUI() {
315 } 319 }
316 320
317 // InterstitialHTMLSource 321 // InterstitialHTMLSource
318 322
319 std::string InterstitialHTMLSource::GetMimeType( 323 std::string InterstitialHTMLSource::GetMimeType(
320 const std::string& mime_type) const { 324 const std::string& mime_type) const {
321 return "text/html"; 325 return "text/html";
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 interstitial_delegate.reset(CreateBadClockBlockingPage(web_contents)); 362 interstitial_delegate.reset(CreateBadClockBlockingPage(web_contents));
359 } 363 }
360 #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) 364 #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
361 else if (base::StartsWith(path, "captiveportal", 365 else if (base::StartsWith(path, "captiveportal",
362 base::CompareCase::SENSITIVE)) 366 base::CompareCase::SENSITIVE))
363 { 367 {
364 interstitial_delegate.reset(CreateCaptivePortalBlockingPage(web_contents)); 368 interstitial_delegate.reset(CreateCaptivePortalBlockingPage(web_contents));
365 } 369 }
366 #endif 370 #endif
367 std::string html; 371 std::string html;
368 if (interstitial_delegate.get()) { 372 if (base::StartsWith(path, "supervised_user", base::CompareCase::SENSITIVE)) {
373 html = SupervisedUserInterstitial::GetHTMLContents(
374 profile_, profile_->IsChild()
375 ? supervised_user_error_page::ASYNC_CHECKER
376 : supervised_user_error_page::MANUAL);
377 } else if (interstitial_delegate.get()) {
369 html = interstitial_delegate.get()->GetHTMLContents(); 378 html = interstitial_delegate.get()->GetHTMLContents();
370 } else { 379 } else {
371 html = ResourceBundle::GetSharedInstance() 380 html = ResourceBundle::GetSharedInstance()
372 .GetRawDataResource(IDR_SECURITY_INTERSTITIAL_UI_HTML) 381 .GetRawDataResource(IDR_SECURITY_INTERSTITIAL_UI_HTML)
373 .as_string(); 382 .as_string();
374 } 383 }
375 scoped_refptr<base::RefCountedString> html_bytes = new base::RefCountedString; 384 scoped_refptr<base::RefCountedString> html_bytes = new base::RefCountedString;
376 html_bytes->data().assign(html.begin(), html.end()); 385 html_bytes->data().assign(html.begin(), html.end());
377 callback.Run(html_bytes.get()); 386 callback.Run(html_bytes.get());
378 } 387 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698