Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/ui/ash/chrome_screenshot_grabber.h" | 5 #include "chrome/browser/ui/ash/chrome_screenshot_grabber.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
| 10 #include "ash/system/system_notifier.h" | 10 #include "ash/system/system_notifier.h" |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 343 base::FilePath()); | 343 base::FilePath()); |
| 344 return; | 344 return; |
| 345 } | 345 } |
| 346 | 346 |
| 347 base::FilePath screenshot_path = | 347 base::FilePath screenshot_path = |
| 348 screenshot_directory.AppendASCII(GetScreenshotBaseFilename() + ".png"); | 348 screenshot_directory.AppendASCII(GetScreenshotBaseFilename() + ".png"); |
| 349 screenshot_grabber_->TakeScreenshot(window, rect, screenshot_path); | 349 screenshot_grabber_->TakeScreenshot(window, rect, screenshot_path); |
| 350 content::RecordAction(base::UserMetricsAction("Screenshot_TakePartial")); | 350 content::RecordAction(base::UserMetricsAction("Screenshot_TakePartial")); |
| 351 } | 351 } |
| 352 | 352 |
| 353 void ChromeScreenshotGrabber::HandleTakeWindowScreenshot(aura::Window* window) { | |
| 354 if (ScreenshotsDisabled()) { | |
| 355 screenshot_grabber_->NotifyScreenshotCompleted( | |
| 356 ui::ScreenshotGrabberObserver::SCREENSHOTS_DISABLED, base::FilePath()); | |
| 357 return; | |
| 358 } | |
| 359 | |
| 360 base::FilePath screenshot_directory; | |
| 361 if (!GetScreenshotDirectory(&screenshot_directory)) { | |
| 362 screenshot_grabber_->NotifyScreenshotCompleted( | |
| 363 ui::ScreenshotGrabberObserver::SCREENSHOT_GET_DIR_FAILED, | |
| 364 base::FilePath()); | |
| 365 return; | |
| 366 } | |
| 367 | |
| 368 base::FilePath screenshot_path = | |
| 369 screenshot_directory.AppendASCII(GetScreenshotBaseFilename() + ".png"); | |
| 370 aura::Window* root_window = window->GetRootWindow(); | |
| 371 gfx::Rect root_rect = root_window->bounds(); | |
|
sky
2016/03/25 15:27:53
This code assumes window is a direct child of root
Qiang(Joe) Xu
2016/03/25 19:09:40
GetRootWindow() will get root window, it is not pa
sky
2016/03/25 20:37:08
GetRootWindow() walks up the tree starting at wind
| |
| 372 screenshot_grabber_->TakeScreenshot(window, root_rect, screenshot_path); | |
|
sky
2016/03/25 15:27:53
I'm confused by the coordinates here. You're passi
Qiang(Joe) Xu
2016/03/25 19:09:40
Here we should use the root window's coordinates a
sky
2016/03/25 20:37:08
This is the comment says for the function you're u
Qiang(Joe) Xu
2016/03/25 21:15:54
I get it:
My original one is: passing active_windo
sky
2016/03/25 22:58:43
I don't think that's right either. The problem wit
| |
| 373 content::RecordAction(base::UserMetricsAction("Screenshot_TakeWindow")); | |
| 374 } | |
| 375 | |
| 353 bool ChromeScreenshotGrabber::CanTakeScreenshot() { | 376 bool ChromeScreenshotGrabber::CanTakeScreenshot() { |
| 354 return screenshot_grabber_->CanTakeScreenshot(); | 377 return screenshot_grabber_->CanTakeScreenshot(); |
| 355 } | 378 } |
| 356 | 379 |
| 357 void ChromeScreenshotGrabber::PrepareFileAndRunOnBlockingPool( | 380 void ChromeScreenshotGrabber::PrepareFileAndRunOnBlockingPool( |
| 358 const base::FilePath& path, | 381 const base::FilePath& path, |
| 359 scoped_refptr<base::TaskRunner> blocking_task_runner, | 382 scoped_refptr<base::TaskRunner> blocking_task_runner, |
| 360 const FileCallback& callback) { | 383 const FileCallback& callback) { |
| 361 #if defined(OS_CHROMEOS) | 384 #if defined(OS_CHROMEOS) |
| 362 Profile* profile = ProfileManager::GetActiveUserProfile(); | 385 Profile* profile = ProfileManager::GetActiveUserProfile(); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 430 #endif | 453 #endif |
| 431 | 454 |
| 432 void ChromeScreenshotGrabber::SetProfileForTest(Profile* profile) { | 455 void ChromeScreenshotGrabber::SetProfileForTest(Profile* profile) { |
| 433 profile_for_test_ = profile; | 456 profile_for_test_ = profile; |
| 434 } | 457 } |
| 435 | 458 |
| 436 Profile* ChromeScreenshotGrabber::GetProfile() { | 459 Profile* ChromeScreenshotGrabber::GetProfile() { |
| 437 return profile_for_test_ ? profile_for_test_ | 460 return profile_for_test_ ? profile_for_test_ |
| 438 : ProfileManager::GetActiveUserProfile(); | 461 : ProfileManager::GetActiveUserProfile(); |
| 439 } | 462 } |
| OLD | NEW |