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

Side by Side Diff: chrome/browser/safe_browsing/safe_browsing_blocking_page.cc

Issue 8491043: Allow linker initialization of lazy instance (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: thakis comment, renamed LAZY_INSTANCE_INITIALIZER Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 static const char* const kTakeMeBackCommand = "takeMeBack"; 95 static const char* const kTakeMeBackCommand = "takeMeBack";
96 static const char* const kDoReportCommand = "doReport"; 96 static const char* const kDoReportCommand = "doReport";
97 static const char* const kDontReportCommand = "dontReport"; 97 static const char* const kDontReportCommand = "dontReport";
98 static const char* const kDisplayCheckBox = "displaycheckbox"; 98 static const char* const kDisplayCheckBox = "displaycheckbox";
99 static const char* const kBoxChecked = "boxchecked"; 99 static const char* const kBoxChecked = "boxchecked";
100 100
101 // static 101 // static
102 SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL; 102 SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL;
103 103
104 static base::LazyInstance<SafeBrowsingBlockingPage::UnsafeResourceMap> 104 static base::LazyInstance<SafeBrowsingBlockingPage::UnsafeResourceMap>
105 g_unsafe_resource_map(base::LINKER_INITIALIZED); 105 g_unsafe_resource_map = LAZY_INSTANCE_INITIALIZER;
106 106
107 // The default SafeBrowsingBlockingPageFactory. Global, made a singleton so we 107 // The default SafeBrowsingBlockingPageFactory. Global, made a singleton so we
108 // don't leak it. 108 // don't leak it.
109 class SafeBrowsingBlockingPageFactoryImpl 109 class SafeBrowsingBlockingPageFactoryImpl
110 : public SafeBrowsingBlockingPageFactory { 110 : public SafeBrowsingBlockingPageFactory {
111 public: 111 public:
112 SafeBrowsingBlockingPage* CreateSafeBrowsingPage( 112 SafeBrowsingBlockingPage* CreateSafeBrowsingPage(
113 SafeBrowsingService* service, 113 SafeBrowsingService* service,
114 TabContents* tab_contents, 114 TabContents* tab_contents,
115 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) { 115 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) {
116 return new SafeBrowsingBlockingPage(service, tab_contents, 116 return new SafeBrowsingBlockingPage(service, tab_contents,
117 unsafe_resources); 117 unsafe_resources);
118 } 118 }
119 119
120 private: 120 private:
121 friend struct base::DefaultLazyInstanceTraits< 121 friend struct base::DefaultLazyInstanceTraits<
122 SafeBrowsingBlockingPageFactoryImpl>; 122 SafeBrowsingBlockingPageFactoryImpl>;
123 123
124 SafeBrowsingBlockingPageFactoryImpl() { } 124 SafeBrowsingBlockingPageFactoryImpl() { }
125 125
126 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingBlockingPageFactoryImpl); 126 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingBlockingPageFactoryImpl);
127 }; 127 };
128 128
129 static base::LazyInstance<SafeBrowsingBlockingPageFactoryImpl> 129 static base::LazyInstance<SafeBrowsingBlockingPageFactoryImpl>
130 g_safe_browsing_blocking_page_factory_impl(base::LINKER_INITIALIZED); 130 g_safe_browsing_blocking_page_factory_impl = LAZY_INSTANCE_INITIALIZER;
131 131
132 SafeBrowsingBlockingPage::SafeBrowsingBlockingPage( 132 SafeBrowsingBlockingPage::SafeBrowsingBlockingPage(
133 SafeBrowsingService* sb_service, 133 SafeBrowsingService* sb_service,
134 TabContents* tab_contents, 134 TabContents* tab_contents,
135 const UnsafeResourceList& unsafe_resources) 135 const UnsafeResourceList& unsafe_resources)
136 : ChromeInterstitialPage(tab_contents, 136 : ChromeInterstitialPage(tab_contents,
137 IsMainPageLoadBlocked(unsafe_resources), 137 IsMainPageLoadBlocked(unsafe_resources),
138 unsafe_resources[0].url), 138 unsafe_resources[0].url),
139 malware_details_proceed_delay_ms_( 139 malware_details_proceed_delay_ms_(
140 kMalwareDetailsProceedDelayMilliSeconds), 140 kMalwareDetailsProceedDelayMilliSeconds),
(...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 // Client-side phishing detection interstitials never block the main frame 707 // Client-side phishing detection interstitials never block the main frame
708 // load, since they happen after the page is finished loading. 708 // load, since they happen after the page is finished loading.
709 if (unsafe_resources[0].threat_type == 709 if (unsafe_resources[0].threat_type ==
710 SafeBrowsingService::CLIENT_SIDE_PHISHING_URL) { 710 SafeBrowsingService::CLIENT_SIDE_PHISHING_URL) {
711 return false; 711 return false;
712 } 712 }
713 713
714 // Otherwise, check the threat type. 714 // Otherwise, check the threat type.
715 return unsafe_resources.size() == 1 && !unsafe_resources[0].is_subresource; 715 return unsafe_resources.size() == 1 && !unsafe_resources[0].is_subresource;
716 } 716 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698