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

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

Issue 100303004: Use FakeDesktopMediaList for Desktop Capture API tests. (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
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 fb94f77f45c7c90e5e4a97b16989ce42a7bef453..9cd24f25f06242ef0d70b9abd83c64bd403c495f 100644
--- a/chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc
+++ b/chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc
@@ -16,6 +16,7 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_view.h"
+#include "third_party/webrtc/modules/desktop_capture/desktop_capture_options.h"
#include "third_party/webrtc/modules/desktop_capture/screen_capturer.h"
#include "third_party/webrtc/modules/desktop_capture/window_capturer.h"
@@ -126,8 +127,9 @@ bool DesktopCaptureChooseDesktopMediaFunction::RunImpl() {
render_process_id_ = render_view->GetProcess()->GetID();
render_view_id_ = render_view->GetRoutingID();
- scoped_ptr<webrtc::ScreenCapturer> screen_capturer;
- scoped_ptr<webrtc::WindowCapturer> window_capturer;
+
+ bool show_screens = false;
+ bool show_windows = false;
for (std::vector<api::desktop_capture::DesktopCaptureSourceType>::iterator
it = params->sources.begin(); it != params->sources.end(); ++it) {
@@ -137,17 +139,11 @@ bool DesktopCaptureChooseDesktopMediaFunction::RunImpl() {
return false;
case api::desktop_capture::DESKTOP_CAPTURE_SOURCE_TYPE_SCREEN:
-#if defined(OS_WIN)
- // ScreenCapturerWin disables Aero by default.
- screen_capturer.reset(
- webrtc::ScreenCapturer::CreateWithDisableAero(false));
-#else
- screen_capturer.reset(webrtc::ScreenCapturer::Create());
-#endif
+ show_screens = true;
break;
case api::desktop_capture::DESKTOP_CAPTURE_SOURCE_TYPE_WINDOW:
- window_capturer.reset(webrtc::WindowCapturer::Create());
+ show_windows = true;
break;
case api::desktop_capture::DESKTOP_CAPTURE_SOURCE_TYPE_TAB:
@@ -156,7 +152,7 @@ bool DesktopCaptureChooseDesktopMediaFunction::RunImpl() {
}
}
- if (!screen_capturer && !window_capturer) {
+ if (!show_screens && !show_windows) {
error_ = kEmptySourcesListError;
return false;
}
@@ -164,19 +160,25 @@ bool DesktopCaptureChooseDesktopMediaFunction::RunImpl() {
scoped_ptr<DesktopMediaList> media_list;
if (g_picker_factory) {
media_list = g_picker_factory->CreateModel(
- screen_capturer.Pass(), window_capturer.Pass());
+ show_screens, show_windows);
picker_ = g_picker_factory->CreatePicker();
} else {
// 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()));
picker_ = DesktopMediaPicker::Create();
#else
- const char kNotImplementedError[] =
- "Desktop Capture API is not yet implemented for this platform.";
- error_ = kNotImplementedError;
+ error_ = "Desktop Capture API is not yet implemented for this platform.";
return false;
#endif
}

Powered by Google App Engine
This is Rietveld 408576698