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

Unified Diff: chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc

Issue 100833002: Add AshDesktopMediaList and enable Desktop Capture API on Chrome OS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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
« no previous file with comments | « no previous file | chrome/browser/media/desktop_media_list_ash.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc
diff --git a/chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc b/chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc
index 9cd24f25f06242ef0d70b9abd83c64bd403c495f..eb487c1d7807e677669343793d58fbb16c050597 100644
--- a/chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc
+++ b/chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc
@@ -7,9 +7,11 @@
#include "base/compiler_specific.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/extensions/extension_tab_util.h"
+#include "chrome/browser/media/desktop_media_list_ash.h"
#include "chrome/browser/media/desktop_streams_registry.h"
#include "chrome/browser/media/media_capture_devices_dispatcher.h"
#include "chrome/browser/media/native_desktop_media_list.h"
+#include "chrome/browser/ui/ash/ash_util.h"
#include "chrome/common/extensions/api/tabs.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_process_host.h"
@@ -163,19 +165,29 @@ bool DesktopCaptureChooseDesktopMediaFunction::RunImpl() {
show_screens, show_windows);
picker_ = g_picker_factory->CreatePicker();
} else {
+#if defined(USE_ASH)
+ if (chrome::IsNativeWindowInAsh(parent_window)) {
+ media_list.reset(new DesktopMediaListAsh(
+ (show_screens ? DesktopMediaListAsh::SCREENS : 0) |
+ (show_windows ? DesktopMediaListAsh::WINDOWS : 0)));
+ } else
+#endif
+ {
+ webrtc::DesktopCaptureOptions options =
+ webrtc::DesktopCaptureOptions::CreateDefault();
+ options.set_disable_effects(false);
+ scoped_ptr<webrtc::ScreenCapturer> screen_capturer(
+ show_screens ? webrtc::ScreenCapturer::Create(options) : NULL);
+ scoped_ptr<webrtc::WindowCapturer> window_capturer(
+ show_windows ? webrtc::WindowCapturer::Create(options) : NULL);
+
+ media_list.reset(new NativeDesktopMediaList(
+ screen_capturer.Pass(), window_capturer.Pass()));
+ }
+
// DesktopMediaPicker is implemented only for Windows, OSX and
// Aura Linux builds.
-#if (defined(TOOLKIT_VIEWS) && !defined(OS_CHROMEOS)) || defined(OS_MACOSX)
- webrtc::DesktopCaptureOptions options =
- webrtc::DesktopCaptureOptions::CreateDefault();
- options.set_disable_effects(false);
- scoped_ptr<webrtc::ScreenCapturer> screen_capturer(
- show_screens ? webrtc::ScreenCapturer::Create(options) : NULL);
- scoped_ptr<webrtc::WindowCapturer> window_capturer(
- show_windows ? webrtc::WindowCapturer::Create(options) : NULL);
-
- media_list.reset(new NativeDesktopMediaList(
- screen_capturer.Pass(), window_capturer.Pass()));
+#if defined(TOOLKIT_VIEWS) || defined(OS_MACOSX)
picker_ = DesktopMediaPicker::Create();
#else
error_ = "Desktop Capture API is not yet implemented for this platform.";
« no previous file with comments | « no previous file | chrome/browser/media/desktop_media_list_ash.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698