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

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

Issue 1420053005: Move code in components/safe_browsing_db and chrome/browser/s_b/ under the safe_browsing namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@02_components_move
Patch Set: Remove '// namespace safe_browsing' for a small fwd decl block. Created 5 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
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/safe_browsing/srt_global_error_win.h" 5 #include "chrome/browser/safe_browsing/srt_global_error_win.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 11 matching lines...) Expand all
22 #include "components/component_updater/pref_names.h" 22 #include "components/component_updater/pref_names.h"
23 #include "content/public/browser/browser_thread.h" 23 #include "content/public/browser/browser_thread.h"
24 #include "grit/chromium_strings.h" 24 #include "grit/chromium_strings.h"
25 #include "grit/generated_resources.h" 25 #include "grit/generated_resources.h"
26 #include "ui/base/l10n/l10n_util.h" 26 #include "ui/base/l10n/l10n_util.h"
27 27
28 using base::SingleThreadTaskRunner; 28 using base::SingleThreadTaskRunner;
29 using base::ThreadTaskRunnerHandle; 29 using base::ThreadTaskRunnerHandle;
30 using content::BrowserThread; 30 using content::BrowserThread;
31 31
32 namespace safe_browsing {
33
32 namespace { 34 namespace {
33 35
34 // Used as a backup plan in case the SRT executable was not successfully 36 // Used as a backup plan in case the SRT executable was not successfully
35 // downloaded or run. 37 // downloaded or run.
36 const char kSRTDownloadURL[] = 38 const char kSRTDownloadURL[] =
37 "https://www.google.com/chrome/srt/?chrome-prompt=1"; 39 "https://www.google.com/chrome/srt/?chrome-prompt=1";
38 40
39 // The extension to use to replace the temporary one created when the SRT was 41 // The extension to use to replace the temporary one created when the SRT was
40 // downloaded. 42 // downloaded.
41 const base::FilePath::CharType kExecutableExtension[] = L"exe"; 43 const base::FilePath::CharType kExecutableExtension[] = L"exe";
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 100
99 int SRTGlobalError::MenuItemCommandID() { 101 int SRTGlobalError::MenuItemCommandID() {
100 return IDC_SHOW_SRT_BUBBLE; 102 return IDC_SHOW_SRT_BUBBLE;
101 } 103 }
102 104
103 base::string16 SRTGlobalError::MenuItemLabel() { 105 base::string16 SRTGlobalError::MenuItemLabel() {
104 return l10n_util::GetStringUTF16(IDS_SRT_MENU_ITEM); 106 return l10n_util::GetStringUTF16(IDS_SRT_MENU_ITEM);
105 } 107 }
106 108
107 void SRTGlobalError::ExecuteMenuItem(Browser* browser) { 109 void SRTGlobalError::ExecuteMenuItem(Browser* browser) {
108 safe_browsing::RecordSRTPromptHistogram( 110 RecordSRTPromptHistogram(SRT_PROMPT_SHOWN_FROM_MENU);
109 safe_browsing::SRT_PROMPT_SHOWN_FROM_MENU);
110 show_dismiss_button_ = true; 111 show_dismiss_button_ = true;
111 ShowBubbleView(browser); 112 ShowBubbleView(browser);
112 } 113 }
113 114
114 void SRTGlobalError::ShowBubbleView(Browser* browser) { 115 void SRTGlobalError::ShowBubbleView(Browser* browser) {
115 safe_browsing::RecordSRTPromptHistogram(safe_browsing::SRT_PROMPT_SHOWN); 116 RecordSRTPromptHistogram(SRT_PROMPT_SHOWN);
116 GlobalErrorWithStandardBubble::ShowBubbleView(browser); 117 GlobalErrorWithStandardBubble::ShowBubbleView(browser);
117 } 118 }
118 119
119 bool SRTGlobalError::ShouldShowCloseButton() const { 120 bool SRTGlobalError::ShouldShowCloseButton() const {
120 return true; 121 return true;
121 } 122 }
122 123
123 base::string16 SRTGlobalError::GetBubbleViewTitle() { 124 base::string16 SRTGlobalError::GetBubbleViewTitle() {
124 return l10n_util::GetStringUTF16(IDS_SRT_BUBBLE_TITLE); 125 return l10n_util::GetStringUTF16(IDS_SRT_BUBBLE_TITLE);
125 } 126 }
126 127
127 std::vector<base::string16> SRTGlobalError::GetBubbleViewMessages() { 128 std::vector<base::string16> SRTGlobalError::GetBubbleViewMessages() {
128 std::vector<base::string16> messages; 129 std::vector<base::string16> messages;
129 messages.push_back(l10n_util::GetStringUTF16(IDS_SRT_BUBBLE_TEXT)); 130 messages.push_back(l10n_util::GetStringUTF16(IDS_SRT_BUBBLE_TEXT));
130 return messages; 131 return messages;
131 } 132 }
132 133
133 base::string16 SRTGlobalError::GetBubbleViewAcceptButtonLabel() { 134 base::string16 SRTGlobalError::GetBubbleViewAcceptButtonLabel() {
134 return downloaded_path_.empty() 135 return downloaded_path_.empty()
135 ? l10n_util::GetStringUTF16(IDS_SRT_BUBBLE_DOWNLOAD_BUTTON_TEXT) 136 ? l10n_util::GetStringUTF16(IDS_SRT_BUBBLE_DOWNLOAD_BUTTON_TEXT)
136 : l10n_util::GetStringUTF16(IDS_SRT_BUBBLE_RUN_BUTTON_TEXT); 137 : l10n_util::GetStringUTF16(IDS_SRT_BUBBLE_RUN_BUTTON_TEXT);
137 } 138 }
138 139
139 bool SRTGlobalError::ShouldAddElevationIconToAcceptButton() { 140 bool SRTGlobalError::ShouldAddElevationIconToAcceptButton() {
140 return !downloaded_path_.empty() && 141 return !downloaded_path_.empty() && SRTPromptNeedsElevationIcon();
141 safe_browsing::SRTPromptNeedsElevationIcon();
142 } 142 }
143 143
144 base::string16 SRTGlobalError::GetBubbleViewCancelButtonLabel() { 144 base::string16 SRTGlobalError::GetBubbleViewCancelButtonLabel() {
145 if (show_dismiss_button_) 145 if (show_dismiss_button_)
146 return l10n_util::GetStringUTF16(IDS_SRT_BUBBLE_DISMISS); 146 return l10n_util::GetStringUTF16(IDS_SRT_BUBBLE_DISMISS);
147 return base::string16(); 147 return base::string16();
148 } 148 }
149 149
150 void SRTGlobalError::OnBubbleViewDidClose(Browser* browser) { 150 void SRTGlobalError::OnBubbleViewDidClose(Browser* browser) {
151 // This won't happen when user interacted with the bubble since DestroySelf is 151 // This won't happen when user interacted with the bubble since DestroySelf is
152 // called in those cases and will prevent the base class from calling virtual 152 // called in those cases and will prevent the base class from calling virtual
153 // methods. This DCHECK makes sure that behavior won't change. 153 // methods. This DCHECK makes sure that behavior won't change.
154 DCHECK(!interacted_); 154 DCHECK(!interacted_);
155 safe_browsing::RecordSRTPromptHistogram(safe_browsing::SRT_PROMPT_CLOSED); 155 RecordSRTPromptHistogram(SRT_PROMPT_CLOSED);
156 g_browser_process->local_state()->SetBoolean(prefs::kSwReporterPendingPrompt, 156 g_browser_process->local_state()->SetBoolean(prefs::kSwReporterPendingPrompt,
157 true); 157 true);
158 } 158 }
159 159
160 void SRTGlobalError::BubbleViewAcceptButtonPressed(Browser* browser) { 160 void SRTGlobalError::BubbleViewAcceptButtonPressed(Browser* browser) {
161 safe_browsing::RecordSRTPromptHistogram(safe_browsing::SRT_PROMPT_ACCEPTED); 161 RecordSRTPromptHistogram(SRT_PROMPT_ACCEPTED);
162 interacted_ = true; 162 interacted_ = true;
163 global_error_service_->RemoveGlobalError(this); 163 global_error_service_->RemoveGlobalError(this);
164 MaybeExecuteSRT(); 164 MaybeExecuteSRT();
165 } 165 }
166 166
167 void SRTGlobalError::BubbleViewCancelButtonPressed(Browser* browser) { 167 void SRTGlobalError::BubbleViewCancelButtonPressed(Browser* browser) {
168 safe_browsing::RecordSRTPromptHistogram(safe_browsing::SRT_PROMPT_DENIED); 168 RecordSRTPromptHistogram(SRT_PROMPT_DENIED);
169 interacted_ = true; 169 interacted_ = true;
170 global_error_service_->RemoveGlobalError(this); 170 global_error_service_->RemoveGlobalError(this);
171 171
172 BrowserThread::PostBlockingPoolTask( 172 BrowserThread::PostBlockingPoolTask(
173 FROM_HERE, base::Bind(&DeleteFilesFromBlockingPool, downloaded_path_)); 173 FROM_HERE, base::Bind(&DeleteFilesFromBlockingPool, downloaded_path_));
174 DestroySelf(); 174 DestroySelf();
175 } 175 }
176 176
177 bool SRTGlobalError::ShouldCloseOnDeactivate() const { 177 bool SRTGlobalError::ShouldCloseOnDeactivate() const {
178 return false; 178 return false;
(...skipping 10 matching lines...) Expand all
189 BrowserThread::PostBlockingPoolTask( 189 BrowserThread::PostBlockingPoolTask(
190 FROM_HERE, base::Bind(&MaybeExecuteSRTFromBlockingPool, downloaded_path_, 190 FROM_HERE, base::Bind(&MaybeExecuteSRTFromBlockingPool, downloaded_path_,
191 base::ThreadTaskRunnerHandle::Get(), 191 base::ThreadTaskRunnerHandle::Get(),
192 base::Bind(&SRTGlobalError::DestroySelf, 192 base::Bind(&SRTGlobalError::DestroySelf,
193 base::Unretained(this)), 193 base::Unretained(this)),
194 base::Bind(&SRTGlobalError::FallbackToDownloadPage, 194 base::Bind(&SRTGlobalError::FallbackToDownloadPage,
195 base::Unretained(this)))); 195 base::Unretained(this))));
196 } 196 }
197 197
198 void SRTGlobalError::FallbackToDownloadPage() { 198 void SRTGlobalError::FallbackToDownloadPage() {
199 safe_browsing::RecordSRTPromptHistogram(safe_browsing::SRT_PROMPT_FALLBACK); 199 RecordSRTPromptHistogram(SRT_PROMPT_FALLBACK);
200 200
201 chrome::HostDesktopType desktop_type = chrome::GetActiveDesktop(); 201 chrome::HostDesktopType desktop_type = chrome::GetActiveDesktop();
202 Browser* browser = chrome::FindLastActiveWithHostDesktopType(desktop_type); 202 Browser* browser = chrome::FindLastActiveWithHostDesktopType(desktop_type);
203 if (browser) { 203 if (browser) {
204 browser->OpenURL(content::OpenURLParams( 204 browser->OpenURL(content::OpenURLParams(
205 GURL(kSRTDownloadURL), content::Referrer(), NEW_FOREGROUND_TAB, 205 GURL(kSRTDownloadURL), content::Referrer(), NEW_FOREGROUND_TAB,
206 ui::PAGE_TRANSITION_LINK, false)); 206 ui::PAGE_TRANSITION_LINK, false));
207 } 207 }
208 208
209 BrowserThread::PostBlockingPoolTask( 209 BrowserThread::PostBlockingPoolTask(
210 FROM_HERE, base::Bind(&DeleteFilesFromBlockingPool, downloaded_path_)); 210 FROM_HERE, base::Bind(&DeleteFilesFromBlockingPool, downloaded_path_));
211 DestroySelf(); 211 DestroySelf();
212 } 212 }
213 213
214 void SRTGlobalError::DestroySelf() { 214 void SRTGlobalError::DestroySelf() {
215 // This should only happen when user interacted with the bubble. 215 // This should only happen when user interacted with the bubble.
216 DCHECK(interacted_); 216 DCHECK(interacted_);
217 g_browser_process->local_state()->SetBoolean(prefs::kSwReporterPendingPrompt, 217 g_browser_process->local_state()->SetBoolean(prefs::kSwReporterPendingPrompt,
218 false); 218 false);
219 delete this; 219 delete this;
220 } 220 }
221
222 } // namespace safe_browsing
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/srt_global_error_win.h ('k') | chrome/browser/safe_browsing/test_database_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698