Chromium Code Reviews| 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 |