OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 // Implementation of the SafeBrowsingBlockingPage class. | 5 // Implementation of the SafeBrowsingBlockingPage class. |
6 | 6 |
7 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h" | 7 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h" |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 // The commands returned by the page when the user performs an action. | 69 // The commands returned by the page when the user performs an action. |
70 static const char* const kShowDiagnosticCommand = "showDiagnostic"; | 70 static const char* const kShowDiagnosticCommand = "showDiagnostic"; |
71 static const char* const kReportErrorCommand = "reportError"; | 71 static const char* const kReportErrorCommand = "reportError"; |
72 static const char* const kLearnMoreCommand = "learnMore"; | 72 static const char* const kLearnMoreCommand = "learnMore"; |
73 static const char* const kProceedCommand = "proceed"; | 73 static const char* const kProceedCommand = "proceed"; |
74 static const char* const kTakeMeBackCommand = "takeMeBack"; | 74 static const char* const kTakeMeBackCommand = "takeMeBack"; |
75 | 75 |
76 // static | 76 // static |
77 SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL; | 77 SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL; |
78 | 78 |
| 79 static base::LazyInstance<SafeBrowsingBlockingPage::UnsafeResourceMap> |
| 80 g_unsafe_resource_map(base::LINKER_INITIALIZED); |
| 81 |
79 // The default SafeBrowsingBlockingPageFactory. Global, made a singleton so we | 82 // The default SafeBrowsingBlockingPageFactory. Global, made a singleton so we |
80 // don't leak it. | 83 // don't leak it. |
81 class SafeBrowsingBlockingPageFactoryImpl | 84 class SafeBrowsingBlockingPageFactoryImpl |
82 : public SafeBrowsingBlockingPageFactory { | 85 : public SafeBrowsingBlockingPageFactory { |
83 public: | 86 public: |
84 SafeBrowsingBlockingPage* CreateSafeBrowsingPage( | 87 SafeBrowsingBlockingPage* CreateSafeBrowsingPage( |
85 SafeBrowsingService* service, | 88 SafeBrowsingService* service, |
86 TabContents* tab_contents, | 89 TabContents* tab_contents, |
87 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) { | 90 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) { |
88 return new SafeBrowsingBlockingPage(service, tab_contents, | 91 return new SafeBrowsingBlockingPage(service, tab_contents, |
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
552 BrowserThread::PostTask( | 555 BrowserThread::PostTask( |
553 BrowserThread::IO, FROM_HERE, | 556 BrowserThread::IO, FROM_HERE, |
554 NewRunnableMethod( | 557 NewRunnableMethod( |
555 sb_service, &SafeBrowsingService::OnBlockingPageDone, | 558 sb_service, &SafeBrowsingService::OnBlockingPageDone, |
556 unsafe_resources, proceed)); | 559 unsafe_resources, proceed)); |
557 } | 560 } |
558 | 561 |
559 // static | 562 // static |
560 SafeBrowsingBlockingPage::UnsafeResourceMap* | 563 SafeBrowsingBlockingPage::UnsafeResourceMap* |
561 SafeBrowsingBlockingPage::GetUnsafeResourcesMap() { | 564 SafeBrowsingBlockingPage::GetUnsafeResourcesMap() { |
562 return Singleton<UnsafeResourceMap>::get(); | 565 return g_unsafe_resource_map.Pointer(); |
563 } | 566 } |
564 | 567 |
565 // static | 568 // static |
566 void SafeBrowsingBlockingPage::ShowBlockingPage( | 569 void SafeBrowsingBlockingPage::ShowBlockingPage( |
567 SafeBrowsingService* sb_service, | 570 SafeBrowsingService* sb_service, |
568 const SafeBrowsingService::UnsafeResource& unsafe_resource) { | 571 const SafeBrowsingService::UnsafeResource& unsafe_resource) { |
569 TabContents* tab_contents = tab_util::GetTabContentsByID( | 572 TabContents* tab_contents = tab_util::GetTabContentsByID( |
570 unsafe_resource.render_process_host_id, unsafe_resource.render_view_id); | 573 unsafe_resource.render_process_host_id, unsafe_resource.render_view_id); |
571 | 574 |
572 InterstitialPage* interstitial = | 575 InterstitialPage* interstitial = |
(...skipping 26 matching lines...) Expand all Loading... |
599 UnsafeResourceMap* unsafe_resource_map = GetUnsafeResourcesMap(); | 602 UnsafeResourceMap* unsafe_resource_map = GetUnsafeResourcesMap(); |
600 (*unsafe_resource_map)[tab_contents].push_back(unsafe_resource); | 603 (*unsafe_resource_map)[tab_contents].push_back(unsafe_resource); |
601 } | 604 } |
602 | 605 |
603 // static | 606 // static |
604 bool SafeBrowsingBlockingPage::IsMainPage( | 607 bool SafeBrowsingBlockingPage::IsMainPage( |
605 const UnsafeResourceList& unsafe_resources) { | 608 const UnsafeResourceList& unsafe_resources) { |
606 return unsafe_resources.size() == 1 && | 609 return unsafe_resources.size() == 1 && |
607 unsafe_resources[0].resource_type == ResourceType::MAIN_FRAME; | 610 unsafe_resources[0].resource_type == ResourceType::MAIN_FRAME; |
608 } | 611 } |
OLD | NEW |