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 |