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

Side by Side Diff: chrome/browser/download/notification/download_item_notification.cc

Issue 2771233002: Remove the wrapper functions content::RecordAction et al (Closed)
Patch Set: Rebased 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/download/notification/download_item_notification.h" 5 #include "chrome/browser/download/notification/download_item_notification.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
11 #include "base/metrics/user_metrics.h"
11 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
12 #include "base/task_scheduler/post_task.h" 13 #include "base/task_scheduler/post_task.h"
13 #include "build/build_config.h" 14 #include "build/build_config.h"
14 #include "chrome/app/vector_icons/vector_icons.h" 15 #include "chrome/app/vector_icons/vector_icons.h"
15 #include "chrome/browser/browser_process.h" 16 #include "chrome/browser/browser_process.h"
16 #include "chrome/browser/download/download_crx_util.h" 17 #include "chrome/browser/download/download_crx_util.h"
17 #include "chrome/browser/download/download_item_model.h" 18 #include "chrome/browser/download/download_item_model.h"
18 #include "chrome/browser/download/notification/download_notification_manager.h" 19 #include "chrome/browser/download/notification/download_notification_manager.h"
19 #include "chrome/browser/notifications/notification.h" 20 #include "chrome/browser/notifications/notification.h"
20 #include "chrome/browser/notifications/notification_ui_manager.h" 21 #include "chrome/browser/notifications/notification_ui_manager.h"
21 #include "chrome/browser/notifications/profile_notification.h" 22 #include "chrome/browser/notifications/profile_notification.h"
22 #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" 23 #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
23 #include "chrome/common/url_constants.h" 24 #include "chrome/common/url_constants.h"
24 #include "chrome/grit/chromium_strings.h" 25 #include "chrome/grit/chromium_strings.h"
25 #include "chrome/grit/generated_resources.h" 26 #include "chrome/grit/generated_resources.h"
26 #include "chrome/grit/theme_resources.h" 27 #include "chrome/grit/theme_resources.h"
27 #include "components/mime_util/mime_util.h" 28 #include "components/mime_util/mime_util.h"
28 #include "components/url_formatter/elide_url.h" 29 #include "components/url_formatter/elide_url.h"
29 #include "content/public/browser/browser_context.h" 30 #include "content/public/browser/browser_context.h"
30 #include "content/public/browser/browser_thread.h" 31 #include "content/public/browser/browser_thread.h"
31 #include "content/public/browser/download_interrupt_reasons.h" 32 #include "content/public/browser/download_interrupt_reasons.h"
32 #include "content/public/browser/download_item.h" 33 #include "content/public/browser/download_item.h"
33 #include "content/public/browser/page_navigator.h" 34 #include "content/public/browser/page_navigator.h"
34 #include "content/public/browser/user_metrics.h"
35 #include "content/public/browser/web_contents.h" 35 #include "content/public/browser/web_contents.h"
36 #include "net/base/mime_util.h" 36 #include "net/base/mime_util.h"
37 #include "third_party/skia/include/core/SkCanvas.h" 37 #include "third_party/skia/include/core/SkCanvas.h"
38 #include "ui/base/l10n/l10n_util.h" 38 #include "ui/base/l10n/l10n_util.h"
39 #include "ui/base/l10n/time_format.h" 39 #include "ui/base/l10n/time_format.h"
40 #include "ui/base/resource/resource_bundle.h" 40 #include "ui/base/resource/resource_bundle.h"
41 #include "ui/base/text/bytes_formatting.h" 41 #include "ui/base/text/bytes_formatting.h"
42 #include "ui/gfx/codec/jpeg_codec.h" 42 #include "ui/gfx/codec/jpeg_codec.h"
43 #include "ui/gfx/color_palette.h" 43 #include "ui/gfx/color_palette.h"
44 #include "ui/gfx/image/image.h" 44 #include "ui/gfx/image/image.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 container_image.drawColor(kImageBackgroundColor); 114 container_image.drawColor(kImageBackgroundColor);
115 container_image.drawBitmapRect( 115 container_image.drawBitmapRect(
116 original_bitmap, source_rect, SkRect::MakeSize(container_size), &paint); 116 original_bitmap, source_rect, SkRect::MakeSize(container_size), &paint);
117 117
118 return container_bitmap; 118 return container_bitmap;
119 } 119 }
120 120
121 void RecordButtonClickAction(DownloadCommands::Command command) { 121 void RecordButtonClickAction(DownloadCommands::Command command) {
122 switch (command) { 122 switch (command) {
123 case DownloadCommands::SHOW_IN_FOLDER: 123 case DownloadCommands::SHOW_IN_FOLDER:
124 content::RecordAction( 124 base::RecordAction(
125 UserMetricsAction("DownloadNotification.Button_ShowInFolder")); 125 UserMetricsAction("DownloadNotification.Button_ShowInFolder"));
126 break; 126 break;
127 case DownloadCommands::OPEN_WHEN_COMPLETE: 127 case DownloadCommands::OPEN_WHEN_COMPLETE:
128 content::RecordAction( 128 base::RecordAction(
129 UserMetricsAction("DownloadNotification.Button_OpenWhenComplete")); 129 UserMetricsAction("DownloadNotification.Button_OpenWhenComplete"));
130 break; 130 break;
131 case DownloadCommands::ALWAYS_OPEN_TYPE: 131 case DownloadCommands::ALWAYS_OPEN_TYPE:
132 content::RecordAction( 132 base::RecordAction(
133 UserMetricsAction("DownloadNotification.Button_AlwaysOpenType")); 133 UserMetricsAction("DownloadNotification.Button_AlwaysOpenType"));
134 break; 134 break;
135 case DownloadCommands::PLATFORM_OPEN: 135 case DownloadCommands::PLATFORM_OPEN:
136 content::RecordAction( 136 base::RecordAction(
137 UserMetricsAction("DownloadNotification.Button_PlatformOpen")); 137 UserMetricsAction("DownloadNotification.Button_PlatformOpen"));
138 break; 138 break;
139 case DownloadCommands::CANCEL: 139 case DownloadCommands::CANCEL:
140 content::RecordAction( 140 base::RecordAction(
141 UserMetricsAction("DownloadNotification.Button_Cancel")); 141 UserMetricsAction("DownloadNotification.Button_Cancel"));
142 break; 142 break;
143 case DownloadCommands::DISCARD: 143 case DownloadCommands::DISCARD:
144 content::RecordAction( 144 base::RecordAction(
145 UserMetricsAction("DownloadNotification.Button_Discard")); 145 UserMetricsAction("DownloadNotification.Button_Discard"));
146 break; 146 break;
147 case DownloadCommands::KEEP: 147 case DownloadCommands::KEEP:
148 content::RecordAction( 148 base::RecordAction(UserMetricsAction("DownloadNotification.Button_Keep"));
149 UserMetricsAction("DownloadNotification.Button_Keep"));
150 break; 149 break;
151 case DownloadCommands::LEARN_MORE_SCANNING: 150 case DownloadCommands::LEARN_MORE_SCANNING:
152 content::RecordAction( 151 base::RecordAction(
153 UserMetricsAction("DownloadNotification.Button_LearnScanning")); 152 UserMetricsAction("DownloadNotification.Button_LearnScanning"));
154 break; 153 break;
155 case DownloadCommands::LEARN_MORE_INTERRUPTED: 154 case DownloadCommands::LEARN_MORE_INTERRUPTED:
156 content::RecordAction( 155 base::RecordAction(
157 UserMetricsAction("DownloadNotification.Button_LearnInterrupted")); 156 UserMetricsAction("DownloadNotification.Button_LearnInterrupted"));
158 break; 157 break;
159 case DownloadCommands::PAUSE: 158 case DownloadCommands::PAUSE:
160 content::RecordAction( 159 base::RecordAction(
161 UserMetricsAction("DownloadNotification.Button_Pause")); 160 UserMetricsAction("DownloadNotification.Button_Pause"));
162 break; 161 break;
163 case DownloadCommands::RESUME: 162 case DownloadCommands::RESUME:
164 content::RecordAction( 163 base::RecordAction(
165 UserMetricsAction("DownloadNotification.Button_Resume")); 164 UserMetricsAction("DownloadNotification.Button_Resume"));
166 break; 165 break;
167 case DownloadCommands::COPY_TO_CLIPBOARD: 166 case DownloadCommands::COPY_TO_CLIPBOARD:
168 content::RecordAction( 167 base::RecordAction(
169 UserMetricsAction("DownloadNotification.Button_CopyToClipboard")); 168 UserMetricsAction("DownloadNotification.Button_CopyToClipboard"));
170 break; 169 break;
171 case DownloadCommands::ANNOTATE: 170 case DownloadCommands::ANNOTATE:
172 content::RecordAction( 171 base::RecordAction(
173 UserMetricsAction("DownloadNotification.Button_Annotate")); 172 UserMetricsAction("DownloadNotification.Button_Annotate"));
174 break; 173 break;
175 } 174 }
176 } 175 }
177 176
178 } // anonymous namespace 177 } // anonymous namespace
179 178
180 DownloadItemNotification::DownloadItemNotification( 179 DownloadItemNotification::DownloadItemNotification(
181 content::DownloadItem* item, 180 content::DownloadItem* item,
182 DownloadNotificationManagerForProfile* manager) 181 DownloadNotificationManagerForProfile* manager)
(...skipping 30 matching lines...) Expand all
213 bool DownloadItemNotification::HasNotificationClickedListener() { 212 bool DownloadItemNotification::HasNotificationClickedListener() {
214 if (item_->IsDangerous()) { 213 if (item_->IsDangerous()) {
215 // Dangerous notifications don't have a click handler. 214 // Dangerous notifications don't have a click handler.
216 return false; 215 return false;
217 } 216 }
218 return true; 217 return true;
219 } 218 }
220 219
221 void DownloadItemNotification::OnNotificationClose() { 220 void DownloadItemNotification::OnNotificationClose() {
222 if (item_ && item_->IsDangerous() && !item_->IsDone()) { 221 if (item_ && item_->IsDangerous() && !item_->IsDone()) {
223 content::RecordAction( 222 base::RecordAction(
224 UserMetricsAction("DownloadNotification.Close_Dangerous")); 223 UserMetricsAction("DownloadNotification.Close_Dangerous"));
225 closed_ = true; // Should be set before cancelling the download. 224 closed_ = true; // Should be set before cancelling the download.
226 item_->Cancel(true /* by_user */); 225 item_->Cancel(true /* by_user */);
227 return; 226 return;
228 } 227 }
229 228
230 if (image_decode_status_ == IN_PROGRESS) { 229 if (image_decode_status_ == IN_PROGRESS) {
231 image_decode_status_ = NOT_STARTED; 230 image_decode_status_ = NOT_STARTED;
232 ImageDecoder::Cancel(this); 231 ImageDecoder::Cancel(this);
233 } 232 }
234 } 233 }
235 234
236 void DownloadItemNotification::OnNotificationClick() { 235 void DownloadItemNotification::OnNotificationClick() {
237 if (item_->IsDangerous()) { 236 if (item_->IsDangerous()) {
238 content::RecordAction( 237 base::RecordAction(
239 UserMetricsAction("DownloadNotification.Click_Dangerous")); 238 UserMetricsAction("DownloadNotification.Click_Dangerous"));
240 // Do nothing. 239 // Do nothing.
241 return; 240 return;
242 } 241 }
243 242
244 switch (item_->GetState()) { 243 switch (item_->GetState()) {
245 case content::DownloadItem::IN_PROGRESS: 244 case content::DownloadItem::IN_PROGRESS:
246 content::RecordAction( 245 base::RecordAction(
247 UserMetricsAction("DownloadNotification.Click_InProgress")); 246 UserMetricsAction("DownloadNotification.Click_InProgress"));
248 item_->SetOpenWhenComplete(!item_->GetOpenWhenComplete()); // Toggle 247 item_->SetOpenWhenComplete(!item_->GetOpenWhenComplete()); // Toggle
249 break; 248 break;
250 case content::DownloadItem::CANCELLED: 249 case content::DownloadItem::CANCELLED:
251 case content::DownloadItem::INTERRUPTED: 250 case content::DownloadItem::INTERRUPTED:
252 content::RecordAction( 251 base::RecordAction(
253 UserMetricsAction("DownloadNotification.Click_Stopped")); 252 UserMetricsAction("DownloadNotification.Click_Stopped"));
254 GetBrowser()->OpenURL(content::OpenURLParams( 253 GetBrowser()->OpenURL(content::OpenURLParams(
255 GURL(chrome::kChromeUIDownloadsURL), content::Referrer(), 254 GURL(chrome::kChromeUIDownloadsURL), content::Referrer(),
256 WindowOpenDisposition::NEW_FOREGROUND_TAB, ui::PAGE_TRANSITION_LINK, 255 WindowOpenDisposition::NEW_FOREGROUND_TAB, ui::PAGE_TRANSITION_LINK,
257 false /* is_renderer_initiated */)); 256 false /* is_renderer_initiated */));
258 CloseNotificationByUser(); 257 CloseNotificationByUser();
259 break; 258 break;
260 case content::DownloadItem::COMPLETE: 259 case content::DownloadItem::COMPLETE:
261 content::RecordAction( 260 base::RecordAction(
262 UserMetricsAction("DownloadNotification.Click_Completed")); 261 UserMetricsAction("DownloadNotification.Click_Completed"));
263 item_->OpenDownload(); 262 item_->OpenDownload();
264 CloseNotificationByUser(); 263 CloseNotificationByUser();
265 break; 264 break;
266 case content::DownloadItem::MAX_DOWNLOAD_STATE: 265 case content::DownloadItem::MAX_DOWNLOAD_STATE:
267 NOTREACHED(); 266 NOTREACHED();
268 } 267 }
269 } 268 }
270 269
271 void DownloadItemNotification::OnNotificationButtonClick(int button_index) { 270 void DownloadItemNotification::OnNotificationButtonClick(int button_index) {
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after
931 const std::string notification_id_in_message_center = notification->id(); 930 const std::string notification_id_in_message_center = notification->id();
932 931
933 message_center::NotificationList::Notifications visible_notifications = 932 message_center::NotificationList::Notifications visible_notifications =
934 message_center_->GetVisibleNotifications(); 933 message_center_->GetVisibleNotifications();
935 for (auto* notification : visible_notifications) { 934 for (auto* notification : visible_notifications) {
936 if (notification->id() == notification_id_in_message_center) 935 if (notification->id() == notification_id_in_message_center)
937 return true; 936 return true;
938 } 937 }
939 return false; 938 return false;
940 } 939 }
OLDNEW
« no previous file with comments | « chrome/browser/devtools/devtools_window.cc ('k') | chrome/browser/extensions/api/feedback_private/feedback_private_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698