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

Side by Side Diff: trunk/src/chrome/browser/ui/ash/screenshot_taker.cc

Issue 59153004: Revert 233787 "Eliminate Shell::RootWindowList in favor of aura:..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 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) 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 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 if (!screenshot_directory_for_test_.empty()) { 334 if (!screenshot_directory_for_test_.empty()) {
335 screenshot_directory = screenshot_directory_for_test_; 335 screenshot_directory = screenshot_directory_for_test_;
336 } else if (!GetScreenshotDirectory(&screenshot_directory)) { 336 } else if (!GetScreenshotDirectory(&screenshot_directory)) {
337 ShowNotification(ScreenshotTakerObserver::SCREENSHOT_GET_DIR_FAILED, 337 ShowNotification(ScreenshotTakerObserver::SCREENSHOT_GET_DIR_FAILED,
338 base::FilePath()); 338 base::FilePath());
339 return; 339 return;
340 } 340 }
341 std::string screenshot_basename = !screenshot_basename_for_test_.empty() ? 341 std::string screenshot_basename = !screenshot_basename_for_test_.empty() ?
342 screenshot_basename_for_test_ : GetScreenshotBaseFilename(); 342 screenshot_basename_for_test_ : GetScreenshotBaseFilename();
343 343
344 aura::Window::Windows root_windows = ash::Shell::GetAllRootWindows(); 344 ash::Shell::RootWindowList root_windows = ash::Shell::GetAllRootWindows();
345 // Reorder root_windows to take the primary root window's snapshot at first. 345 // Reorder root_windows to take the primary root window's snapshot at first.
346 aura::Window* primary_root = ash::Shell::GetPrimaryRootWindow(); 346 aura::Window* primary_root = ash::Shell::GetPrimaryRootWindow();
347 if (*(root_windows.begin()) != primary_root) { 347 if (*(root_windows.begin()) != primary_root) {
348 root_windows.erase(std::find( 348 root_windows.erase(std::find(
349 root_windows.begin(), root_windows.end(), primary_root)); 349 root_windows.begin(), root_windows.end(), primary_root));
350 root_windows.insert(root_windows.begin(), primary_root->GetDispatcher()); 350 root_windows.insert(root_windows.begin(), primary_root->GetDispatcher());
351 } 351 }
352 for (size_t i = 0; i < root_windows.size(); ++i) { 352 for (size_t i = 0; i < root_windows.size(); ++i) {
353 aura::Window* root_window = root_windows[i]; 353 aura::RootWindow* root_window = root_windows[i];
354 scoped_refptr<base::RefCountedBytes> png_data(new base::RefCountedBytes); 354 scoped_refptr<base::RefCountedBytes> png_data(new base::RefCountedBytes);
355 std::string basename = screenshot_basename; 355 std::string basename = screenshot_basename;
356 gfx::Rect rect = root_window->bounds(); 356 gfx::Rect rect = root_window->bounds();
357 if (root_windows.size() > 1) 357 if (root_windows.size() > 1)
358 basename += base::StringPrintf(" - Display %d", static_cast<int>(i + 1)); 358 basename += base::StringPrintf(" - Display %d", static_cast<int>(i + 1));
359 base::FilePath screenshot_path = 359 base::FilePath screenshot_path =
360 screenshot_directory.AppendASCII(basename + ".png"); 360 screenshot_directory.AppendASCII(basename + ".png");
361 if (GrabWindowSnapshot(root_window, rect, &png_data->data())) { 361 if (GrabWindowSnapshot(root_window, rect, &png_data->data())) {
362 PostSaveScreenshotTask( 362 PostSaveScreenshotTask(
363 base::Bind(&ScreenshotTaker::ShowNotification, factory_.GetWeakPtr()), 363 base::Bind(&ScreenshotTaker::ShowNotification, factory_.GetWeakPtr()),
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 } 498 }
499 499
500 void ScreenshotTaker::SetScreenshotBasenameForTest( 500 void ScreenshotTaker::SetScreenshotBasenameForTest(
501 const std::string& basename) { 501 const std::string& basename) {
502 screenshot_basename_for_test_ = basename; 502 screenshot_basename_for_test_ = basename;
503 } 503 }
504 504
505 void ScreenshotTaker::SetScreenshotProfileForTest(Profile* profile) { 505 void ScreenshotTaker::SetScreenshotProfileForTest(Profile* profile) {
506 profile_for_test_ = profile; 506 profile_for_test_ = profile;
507 } 507 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698