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/ui/ash/screenshot_taker.h" | 5 #include "chrome/browser/ui/ash/screenshot_taker.h" |
6 | 6 |
7 #include <climits> | 7 #include <climits> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "ash/shell.h" | 10 #include "ash/shell.h" |
(...skipping 21 matching lines...) Expand all Loading... |
32 #include "ui/base/l10n/l10n_util.h" | 32 #include "ui/base/l10n/l10n_util.h" |
33 #include "ui/base/resource/resource_bundle.h" | 33 #include "ui/base/resource/resource_bundle.h" |
34 #include "ui/gfx/image/image.h" | 34 #include "ui/gfx/image/image.h" |
35 | 35 |
36 #if defined(OS_CHROMEOS) | 36 #if defined(OS_CHROMEOS) |
37 #include "chrome/browser/chromeos/drive/file_system_util.h" | 37 #include "chrome/browser/chromeos/drive/file_system_util.h" |
38 #include "chrome/browser/chromeos/extensions/file_manager/file_manager_util.h" | 38 #include "chrome/browser/chromeos/extensions/file_manager/file_manager_util.h" |
39 #include "chrome/browser/chromeos/login/user_manager.h" | 39 #include "chrome/browser/chromeos/login/user_manager.h" |
40 #include "chrome/browser/notifications/desktop_notification_service.h" | 40 #include "chrome/browser/notifications/desktop_notification_service.h" |
41 #include "chrome/browser/notifications/desktop_notification_service_factory.h" | 41 #include "chrome/browser/notifications/desktop_notification_service_factory.h" |
| 42 #include "chromeos/login/login_state.h" |
42 #endif | 43 #endif |
43 | 44 |
44 namespace { | 45 namespace { |
45 // The minimum interval between two screenshot commands. It has to be | 46 // The minimum interval between two screenshot commands. It has to be |
46 // more than 1000 to prevent the conflict of filenames. | 47 // more than 1000 to prevent the conflict of filenames. |
47 const int kScreenshotMinimumIntervalInMS = 1000; | 48 const int kScreenshotMinimumIntervalInMS = 1000; |
48 | 49 |
49 const char kNotificationId[] = "screenshot"; | 50 const char kNotificationId[] = "screenshot"; |
50 | 51 |
51 const char kNotificationOriginUrl[] = "chrome://screenshot"; | 52 const char kNotificationOriginUrl[] = "chrome://screenshot"; |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 l10n_util::GetStringUTF16(IDS_MESSAGE_CENTER_NOTIFIER_SCREENSHOT_NAME), | 346 l10n_util::GetStringUTF16(IDS_MESSAGE_CENTER_NOTIFIER_SCREENSHOT_NAME), |
346 replace_id, | 347 replace_id, |
347 new ScreenshotTakerNotificationDelegate(success, screenshot_path)); | 348 new ScreenshotTakerNotificationDelegate(success, screenshot_path)); |
348 } | 349 } |
349 | 350 |
350 void ScreenshotTaker::ShowNotification( | 351 void ScreenshotTaker::ShowNotification( |
351 ScreenshotTakerObserver::Result screenshot_result, | 352 ScreenshotTakerObserver::Result screenshot_result, |
352 const base::FilePath& screenshot_path) { | 353 const base::FilePath& screenshot_path) { |
353 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 354 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
354 #if defined(OS_CHROMEOS) | 355 #if defined(OS_CHROMEOS) |
| 356 // Do not show a notification that a screenshot was taken while no user is |
| 357 // logged in, since it is confusing for the user to get a message about it |
| 358 // after he logs in (crbug.com/235217). |
| 359 if (!chromeos::LoginState::Get()->IsUserLoggedIn()) |
| 360 return; |
| 361 |
355 // TODO(sschmitz): make this work for Windows. | 362 // TODO(sschmitz): make this work for Windows. |
356 DesktopNotificationService* const service = | 363 DesktopNotificationService* const service = |
357 DesktopNotificationServiceFactory::GetForProfile(GetProfile()); | 364 DesktopNotificationServiceFactory::GetForProfile(GetProfile()); |
358 if (service->IsNotifierEnabled( | 365 if (service->IsNotifierEnabled( |
359 message_center::NotifierId(message_center::NotifierId::SCREENSHOT))) { | 366 message_center::NotifierId(message_center::NotifierId::SCREENSHOT))) { |
360 scoped_ptr<Notification> notification( | 367 scoped_ptr<Notification> notification( |
361 CreateNotification(screenshot_result, screenshot_path)); | 368 CreateNotification(screenshot_result, screenshot_path)); |
362 g_browser_process->notification_ui_manager()->Add(*notification, | 369 g_browser_process->notification_ui_manager()->Add(*notification, |
363 GetProfile()); | 370 GetProfile()); |
364 } | 371 } |
(...skipping 26 matching lines...) Expand all Loading... |
391 } | 398 } |
392 | 399 |
393 void ScreenshotTaker::SetScreenshotBasenameForTest( | 400 void ScreenshotTaker::SetScreenshotBasenameForTest( |
394 const std::string& basename) { | 401 const std::string& basename) { |
395 screenshot_basename_for_test_ = basename; | 402 screenshot_basename_for_test_ = basename; |
396 } | 403 } |
397 | 404 |
398 void ScreenshotTaker::SetScreenshotProfileForTest(Profile* profile) { | 405 void ScreenshotTaker::SetScreenshotProfileForTest(Profile* profile) { |
399 profile_for_test_ = profile; | 406 profile_for_test_ = profile; |
400 } | 407 } |
OLD | NEW |