OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ssl/ssl_blocking_page.h" | 5 #include "chrome/browser/ssl/ssl_blocking_page.h" |
6 | 6 |
7 #include "base/build_time.h" | 7 #include "base/build_time.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/i18n/rtl.h" | 9 #include "base/i18n/rtl.h" |
10 #include "base/i18n/time_formatting.h" | 10 #include "base/i18n/time_formatting.h" |
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 #if defined(ENABLE_CAPTIVE_PORTAL_DETECTION) | 355 #if defined(ENABLE_CAPTIVE_PORTAL_DETECTION) |
356 CaptivePortalService* captive_portal_service = | 356 CaptivePortalService* captive_portal_service = |
357 CaptivePortalServiceFactory::GetForProfile(profile); | 357 CaptivePortalServiceFactory::GetForProfile(profile); |
358 captive_portal_detection_enabled_ = captive_portal_service ->enabled(); | 358 captive_portal_detection_enabled_ = captive_portal_service ->enabled(); |
359 captive_portal_service ->DetectCaptivePortal(); | 359 captive_portal_service ->DetectCaptivePortal(); |
360 registrar_.Add(this, | 360 registrar_.Add(this, |
361 chrome::NOTIFICATION_CAPTIVE_PORTAL_CHECK_RESULT, | 361 chrome::NOTIFICATION_CAPTIVE_PORTAL_CHECK_RESULT, |
362 content::Source<Profile>(profile)); | 362 content::Source<Profile>(profile)); |
363 #endif | 363 #endif |
364 | 364 |
365 // chrome://interstitials page uses this class without actually creating an | |
366 // interstitial so that it can be debugged. Set |create_interstitial| to true | |
367 // if the page is going to be used as an actual interstitial and not just part | |
368 // of the chrome://interstitials webui. | |
369 interstitial_page_ = InterstitialPage::Create( | 365 interstitial_page_ = InterstitialPage::Create( |
370 web_contents_, true, request_url, this); | 366 web_contents_, true, request_url, this); |
| 367 interstitial_page_->Show(); |
371 } | 368 } |
372 | 369 |
373 SSLBlockingPage::~SSLBlockingPage() { | 370 SSLBlockingPage::~SSLBlockingPage() { |
374 if (!callback_.is_null()) { | 371 if (!callback_.is_null()) { |
375 RecordSSLBlockingPageDetailedStats(false, | 372 RecordSSLBlockingPageDetailedStats(false, |
376 cert_error_, | 373 cert_error_, |
377 overridable_ && !strict_enforcement_, | 374 overridable_ && !strict_enforcement_, |
378 internal_, | 375 internal_, |
379 num_visits_, | 376 num_visits_, |
380 captive_portal_detection_enabled_, | 377 captive_portal_detection_enabled_, |
381 captive_portal_probe_completed_, | 378 captive_portal_probe_completed_, |
382 captive_portal_no_response_, | 379 captive_portal_no_response_, |
383 captive_portal_detected_); | 380 captive_portal_detected_); |
384 // The page is closed without the user having chosen what to do, default to | 381 // The page is closed without the user having chosen what to do, default to |
385 // deny. | 382 // deny. |
386 NotifyDenyCertificate(); | 383 NotifyDenyCertificate(); |
387 } | 384 } |
388 } | 385 } |
389 | 386 |
390 // static | |
391 void SSLBlockingPage::Show(content::WebContents* web_contents, | |
392 int cert_error, | |
393 const net::SSLInfo& ssl_info, | |
394 const GURL& request_url, | |
395 bool overridable, | |
396 bool strict_enforcement, | |
397 const base::Callback<void(bool)>& callback) { | |
398 SSLBlockingPage* ssl_blocking_page = new SSLBlockingPage(web_contents, | |
399 cert_error, | |
400 ssl_info, | |
401 request_url, | |
402 overridable, | |
403 strict_enforcement, | |
404 callback); | |
405 ssl_blocking_page->interstitial_page_->Show(); | |
406 } | |
407 | |
408 // static | |
409 SSLBlockingPage* SSLBlockingPage::CreateForWebUI( | |
410 content::WebContents* web_contents, | |
411 int cert_error, | |
412 const net::SSLInfo& ssl_info, | |
413 const GURL& request_url, | |
414 bool overridable, | |
415 bool strict_enforcement) { | |
416 return new SSLBlockingPage(web_contents, | |
417 cert_error, | |
418 ssl_info, | |
419 request_url, | |
420 overridable, | |
421 strict_enforcement, | |
422 base::Callback<void(bool)>()); | |
423 } | |
424 | |
425 std::string SSLBlockingPage::GetHTMLContents() { | 387 std::string SSLBlockingPage::GetHTMLContents() { |
426 if (trial_condition_ == kCondV1 || trial_condition_ == kCondV1LayoutV2Text) | 388 if (trial_condition_ == kCondV1 || trial_condition_ == kCondV1LayoutV2Text) |
427 return GetHTMLContentsV1(); | 389 return GetHTMLContentsV1(); |
428 return GetHTMLContentsV2(); | 390 return GetHTMLContentsV2(); |
429 } | 391 } |
430 | 392 |
431 std::string SSLBlockingPage::GetHTMLContentsV1() { | 393 std::string SSLBlockingPage::GetHTMLContentsV1() { |
432 base::DictionaryValue strings; | 394 base::DictionaryValue strings; |
433 int resource_id; | 395 int resource_id; |
434 if (overridable_ && !strict_enforcement_) { | 396 if (overridable_ && !strict_enforcement_) { |
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
849 // sure we don't clear the captive portal flag, since the interstitial was | 811 // sure we don't clear the captive portal flag, since the interstitial was |
850 // potentially caused by the captive portal. | 812 // potentially caused by the captive portal. |
851 captive_portal_detected_ = captive_portal_detected_ || | 813 captive_portal_detected_ = captive_portal_detected_ || |
852 (results->result == captive_portal::RESULT_BEHIND_CAPTIVE_PORTAL); | 814 (results->result == captive_portal::RESULT_BEHIND_CAPTIVE_PORTAL); |
853 // Also keep track of non-HTTP portals and error cases. | 815 // Also keep track of non-HTTP portals and error cases. |
854 captive_portal_no_response_ = captive_portal_no_response_ || | 816 captive_portal_no_response_ = captive_portal_no_response_ || |
855 (results->result == captive_portal::RESULT_NO_RESPONSE); | 817 (results->result == captive_portal::RESULT_NO_RESPONSE); |
856 } | 818 } |
857 #endif | 819 #endif |
858 } | 820 } |
OLD | NEW |