OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/api/desktop_capture/desktop_capture_base.h" | 5 #include "chrome/browser/extensions/api/desktop_capture/desktop_capture_base.h" |
6 | 6 |
7 #include <tuple> | 7 #include <tuple> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| 11 #include "base/memory/ptr_util.h" |
11 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
12 #include "build/build_config.h" | 13 #include "build/build_config.h" |
13 #include "chrome/browser/extensions/extension_tab_util.h" | 14 #include "chrome/browser/extensions/extension_tab_util.h" |
14 #include "chrome/browser/media/combined_desktop_media_list.h" | 15 #include "chrome/browser/media/combined_desktop_media_list.h" |
15 #include "chrome/browser/media/desktop_media_list_ash.h" | 16 #include "chrome/browser/media/desktop_media_list_ash.h" |
16 #include "chrome/browser/media/desktop_streams_registry.h" | 17 #include "chrome/browser/media/desktop_streams_registry.h" |
17 #include "chrome/browser/media/media_capture_devices_dispatcher.h" | 18 #include "chrome/browser/media/media_capture_devices_dispatcher.h" |
18 #include "chrome/browser/media/native_desktop_media_list.h" | 19 #include "chrome/browser/media/native_desktop_media_list.h" |
19 #include "chrome/browser/media/tab_desktop_media_list.h" | 20 #include "chrome/browser/media/tab_desktop_media_list.h" |
20 #include "chrome/browser/ui/ash/ash_util.h" | 21 #include "chrome/browser/ui/ash/ash_util.h" |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 } | 120 } |
120 } | 121 } |
121 | 122 |
122 if (!show_screens && !show_windows && !show_tabs) { | 123 if (!show_screens && !show_windows && !show_tabs) { |
123 error_ = kEmptySourcesListError; | 124 error_ = kEmptySourcesListError; |
124 return false; | 125 return false; |
125 } | 126 } |
126 | 127 |
127 const gfx::NativeWindow parent_window = | 128 const gfx::NativeWindow parent_window = |
128 web_contents->GetTopLevelNativeWindow(); | 129 web_contents->GetTopLevelNativeWindow(); |
129 scoped_ptr<DesktopMediaList> media_list; | 130 std::unique_ptr<DesktopMediaList> media_list; |
130 if (g_picker_factory) { | 131 if (g_picker_factory) { |
131 media_list = g_picker_factory->CreateModel(show_screens, show_windows, | 132 media_list = g_picker_factory->CreateModel(show_screens, show_windows, |
132 show_tabs, request_audio); | 133 show_tabs, request_audio); |
133 picker_ = g_picker_factory->CreatePicker(); | 134 picker_ = g_picker_factory->CreatePicker(); |
134 } else { | 135 } else { |
135 std::vector<scoped_ptr<DesktopMediaList>> media_lists; | 136 std::vector<std::unique_ptr<DesktopMediaList>> media_lists; |
136 // Create a screens/windows list and push it into media_lists. | 137 // Create a screens/windows list and push it into media_lists. |
137 if (show_screens || show_windows) { | 138 if (show_screens || show_windows) { |
138 #if defined(USE_ASH) | 139 #if defined(USE_ASH) |
139 if (chrome::IsNativeWindowInAsh(parent_window)) { | 140 if (chrome::IsNativeWindowInAsh(parent_window)) { |
140 media_lists.push_back(make_scoped_ptr(new DesktopMediaListAsh( | 141 media_lists.push_back(base::WrapUnique(new DesktopMediaListAsh( |
141 (show_screens ? DesktopMediaListAsh::SCREENS : 0) | | 142 (show_screens ? DesktopMediaListAsh::SCREENS : 0) | |
142 (show_windows ? DesktopMediaListAsh::WINDOWS : 0)))); | 143 (show_windows ? DesktopMediaListAsh::WINDOWS : 0)))); |
143 } | 144 } |
144 #endif | 145 #endif |
145 if (!media_list) { | 146 if (!media_list) { |
146 webrtc::DesktopCaptureOptions options = | 147 webrtc::DesktopCaptureOptions options = |
147 webrtc::DesktopCaptureOptions::CreateDefault(); | 148 webrtc::DesktopCaptureOptions::CreateDefault(); |
148 options.set_disable_effects(false); | 149 options.set_disable_effects(false); |
149 scoped_ptr<webrtc::ScreenCapturer> screen_capturer( | 150 std::unique_ptr<webrtc::ScreenCapturer> screen_capturer( |
150 show_screens ? webrtc::ScreenCapturer::Create(options) : NULL); | 151 show_screens ? webrtc::ScreenCapturer::Create(options) : NULL); |
151 scoped_ptr<webrtc::WindowCapturer> window_capturer( | 152 std::unique_ptr<webrtc::WindowCapturer> window_capturer( |
152 show_windows ? webrtc::WindowCapturer::Create(options) : NULL); | 153 show_windows ? webrtc::WindowCapturer::Create(options) : NULL); |
153 | 154 |
154 media_lists.push_back(make_scoped_ptr(new NativeDesktopMediaList( | 155 media_lists.push_back(base::WrapUnique(new NativeDesktopMediaList( |
155 std::move(screen_capturer), std::move(window_capturer)))); | 156 std::move(screen_capturer), std::move(window_capturer)))); |
156 } | 157 } |
157 } | 158 } |
158 | 159 |
159 if (show_tabs) | 160 if (show_tabs) |
160 media_lists.push_back(make_scoped_ptr(new TabDesktopMediaList())); | 161 media_lists.push_back(base::WrapUnique(new TabDesktopMediaList())); |
161 | 162 |
162 DCHECK(!media_lists.empty()); | 163 DCHECK(!media_lists.empty()); |
163 | 164 |
164 if (media_lists.size() == 1) { | 165 if (media_lists.size() == 1) { |
165 media_list = std::move(media_lists[0]); | 166 media_list = std::move(media_lists[0]); |
166 } else { | 167 } else { |
167 media_list.reset(new CombinedDesktopMediaList(media_lists)); | 168 media_list.reset(new CombinedDesktopMediaList(media_lists)); |
168 } | 169 } |
169 | 170 |
170 // DesktopMediaPicker is implemented only for Windows, OSX and | 171 // DesktopMediaPicker is implemented only for Windows, OSX and |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 | 268 |
268 void DesktopCaptureRequestsRegistry::CancelRequest(int process_id, | 269 void DesktopCaptureRequestsRegistry::CancelRequest(int process_id, |
269 int request_id) { | 270 int request_id) { |
270 RequestsMap::iterator it = requests_.find(RequestId(process_id, request_id)); | 271 RequestsMap::iterator it = requests_.find(RequestId(process_id, request_id)); |
271 if (it != requests_.end()) | 272 if (it != requests_.end()) |
272 it->second->Cancel(); | 273 it->second->Cancel(); |
273 } | 274 } |
274 | 275 |
275 | 276 |
276 } // namespace extensions | 277 } // namespace extensions |
OLD | NEW |