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

Unified Diff: chrome/browser/media/desktop_media_list_ash.cc

Issue 2307083002: Cleanup: move WebRTC related files from chrome/browser/media to chrome/browser/media/webrtc/ (Closed)
Patch Set: Removed file wrongly resuscitated during rebase Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/desktop_media_list_ash.cc
diff --git a/chrome/browser/media/desktop_media_list_ash.cc b/chrome/browser/media/desktop_media_list_ash.cc
deleted file mode 100644
index 3bda77f48695dd208a60311b9264137d83a9c745..0000000000000000000000000000000000000000
--- a/chrome/browser/media/desktop_media_list_ash.cc
+++ /dev/null
@@ -1,142 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/media/desktop_media_list_ash.h"
-
-#include "ash/common/shell_window_ids.h"
-#include "ash/shell.h"
-#include "chrome/grit/generated_resources.h"
-#include "content/public/browser/browser_thread.h"
-#include "media/base/video_util.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/gfx/image/image.h"
-#include "ui/snapshot/snapshot.h"
-
-using content::BrowserThread;
-
-namespace {
-
-// Update the list twice per second.
-const int kDefaultUpdatePeriod = 500;
-
-} // namespace
-
-DesktopMediaListAsh::DesktopMediaListAsh(int source_types)
- : DesktopMediaListBase(
- base::TimeDelta::FromMilliseconds(kDefaultUpdatePeriod)),
- source_types_(source_types),
- pending_window_capture_requests_(0),
- weak_factory_(this) {}
-
-DesktopMediaListAsh::~DesktopMediaListAsh() {}
-
-void DesktopMediaListAsh::Refresh() {
- std::vector<SourceDescription> new_sources;
- EnumerateSources(&new_sources);
-
- UpdateSourcesList(new_sources);
-}
-
-void DesktopMediaListAsh::EnumerateWindowsForRoot(
- std::vector<DesktopMediaListAsh::SourceDescription>* sources,
- aura::Window* root_window,
- int container_id) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-
- aura::Window* container = ash::Shell::GetContainer(root_window, container_id);
- if (!container)
- return;
- for (aura::Window::Windows::const_iterator it = container->children().begin();
- it != container->children().end(); ++it) {
- if (!(*it)->IsVisible() || !(*it)->CanFocus())
- continue;
- content::DesktopMediaID id = content::DesktopMediaID::RegisterAuraWindow(
- content::DesktopMediaID::TYPE_WINDOW, *it);
- if (id.aura_id == view_dialog_id_.aura_id)
- continue;
- SourceDescription window_source(id, (*it)->title());
- sources->push_back(window_source);
-
- CaptureThumbnail(window_source.id, *it);
- }
-}
-
-void DesktopMediaListAsh::EnumerateSources(
- std::vector<DesktopMediaListAsh::SourceDescription>* sources) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-
- aura::Window::Windows root_windows = ash::Shell::GetAllRootWindows();
-
- for (size_t i = 0; i < root_windows.size(); ++i) {
- if (source_types_ & SCREENS) {
- SourceDescription screen_source(
- content::DesktopMediaID::RegisterAuraWindow(
- content::DesktopMediaID::TYPE_SCREEN, root_windows[i]),
- root_windows[i]->title());
-
- if (root_windows[i] == ash::Shell::GetPrimaryRootWindow())
- sources->insert(sources->begin(), screen_source);
- else
- sources->push_back(screen_source);
-
- if (screen_source.name.empty()) {
- if (root_windows.size() > 1) {
- // 'Screen' in 'Screen 1, Screen 2, etc ' might be inflected in some
- // languages depending on the number although rather unlikely. To be
- // safe, use the plural format.
- // TODO(jshin): Revert to GetStringFUTF16Int (with native digits)
- // if none of UI languages inflects 'Screen' in this context.
- screen_source.name = l10n_util::GetPluralStringFUTF16(
- IDS_DESKTOP_MEDIA_PICKER_MULTIPLE_SCREEN_NAME,
- static_cast<int>(i + 1));
- } else {
- screen_source.name = l10n_util::GetStringUTF16(
- IDS_DESKTOP_MEDIA_PICKER_SINGLE_SCREEN_NAME);
- }
- }
-
- CaptureThumbnail(screen_source.id, root_windows[i]);
- }
-
- if (source_types_ & WINDOWS) {
- EnumerateWindowsForRoot(
- sources, root_windows[i], ash::kShellWindowId_DefaultContainer);
- EnumerateWindowsForRoot(
- sources, root_windows[i], ash::kShellWindowId_AlwaysOnTopContainer);
- EnumerateWindowsForRoot(
- sources, root_windows[i], ash::kShellWindowId_DockedContainer);
- }
- }
-}
-
-void DesktopMediaListAsh::CaptureThumbnail(content::DesktopMediaID id,
- aura::Window* window) {
- gfx::Rect window_rect(window->bounds().width(), window->bounds().height());
- gfx::Rect scaled_rect = media::ComputeLetterboxRegion(
- gfx::Rect(thumbnail_size_), window_rect.size());
-
- ++pending_window_capture_requests_;
- ui::GrabWindowSnapshotAndScaleAsync(
- window,
- window_rect,
- scaled_rect.size(),
- BrowserThread::GetBlockingPool(),
- base::Bind(&DesktopMediaListAsh::OnThumbnailCaptured,
- weak_factory_.GetWeakPtr(),
- id));
-}
-
-void DesktopMediaListAsh::OnThumbnailCaptured(content::DesktopMediaID id,
- const gfx::Image& image) {
- UpdateSourceThumbnail(id, image.AsImageSkia());
-
- --pending_window_capture_requests_;
- DCHECK_GE(pending_window_capture_requests_, 0);
-
- if (!pending_window_capture_requests_) {
- // Once we've finished capturing all windows post a task for the next list
- // update.
- ScheduleNextRefresh();
- }
-}
« no previous file with comments | « chrome/browser/media/desktop_media_list_ash.h ('k') | chrome/browser/media/desktop_media_list_ash_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698