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

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

Issue 1503563004: Desktop chrome tab capture-chooseDesktopMedia() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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/extensions/api/desktop_capture/desktop_capture_base.cc
diff --git a/chrome/browser/extensions/api/desktop_capture/desktop_capture_base.cc b/chrome/browser/extensions/api/desktop_capture/desktop_capture_base.cc
index 04c3685110401a8a43a598b0e45f69ea92f522df..240502bd0bb2cc3b823879a04a2d885915bae905 100644
--- a/chrome/browser/extensions/api/desktop_capture/desktop_capture_base.cc
+++ b/chrome/browser/extensions/api/desktop_capture/desktop_capture_base.cc
@@ -29,7 +29,6 @@ namespace {
const char kInvalidSourceNameError[] = "Invalid source type specified.";
const char kEmptySourcesListError[] =
"At least one source type must be specified.";
-const char kTabCaptureNotSupportedError[] = "Tab capture is not supported yet.";
DesktopCaptureChooseDesktopMediaFunctionBase::PickerFactory* g_picker_factory =
NULL;
@@ -76,6 +75,7 @@ bool DesktopCaptureChooseDesktopMediaFunctionBase::Execute(
bool show_screens = false;
bool show_windows = false;
+ bool show_tabs = false;
for (auto source_type : sources) {
switch (source_type) {
@@ -92,12 +92,12 @@ bool DesktopCaptureChooseDesktopMediaFunctionBase::Execute(
break;
case api::desktop_capture::DESKTOP_CAPTURE_SOURCE_TYPE_TAB:
- error_ = kTabCaptureNotSupportedError;
- return false;
+ show_tabs = true;
Sergey Ulanov 2016/01/13 19:06:11 tab capture is still not implemented yet. leave th
GeorgeZ 2016/01/13 22:29:02 Done.
+ break;
}
}
- if (!show_screens && !show_windows) {
+ if (!show_screens && !show_windows && !show_tabs) {
error_ = kEmptySourcesListError;
return false;
}
@@ -111,10 +111,10 @@ bool DesktopCaptureChooseDesktopMediaFunctionBase::Execute(
picker_ = g_picker_factory->CreatePicker();
} else {
#if defined(USE_ASH)
+ const int source_types = (show_screens ? DesktopMediaListAsh::SCREENS : 0) |
Sergey Ulanov 2016/01/13 19:06:11 Move this inside the if statement below, but I'm n
GeorgeZ 2016/01/13 22:29:02 Done.
+ (show_windows ? DesktopMediaListAsh::WINDOWS : 0);
if (chrome::IsNativeWindowInAsh(parent_window)) {
- media_list.reset(new DesktopMediaListAsh(
- (show_screens ? DesktopMediaListAsh::SCREENS : 0) |
- (show_windows ? DesktopMediaListAsh::WINDOWS : 0)));
+ media_list.reset(new DesktopMediaListAsh(source_types));
}
#endif
if (!media_list) {
@@ -125,9 +125,8 @@ bool DesktopCaptureChooseDesktopMediaFunctionBase::Execute(
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(std::move(screen_capturer),
- std::move(window_capturer)));
+ media_list.reset(new NativeDesktopMediaList(
+ std::move(screen_capturer), std::move(window_capturer)));
}
// DesktopMediaPicker is implemented only for Windows, OSX and

Powered by Google App Engine
This is Rietveld 408576698