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

Side by Side Diff: chrome/browser/extensions/api/desktop_capture/desktop_capture_api.cc

Issue 100833002: Add AshDesktopMediaList and enable Desktop Capture API on Chrome OS. (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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_api.h" 5 #include "chrome/browser/extensions/api/desktop_capture/desktop_capture_api.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/extensions/extension_tab_util.h" 9 #include "chrome/browser/extensions/extension_tab_util.h"
10 #include "chrome/browser/media/ash_desktop_media_list.h"
10 #include "chrome/browser/media/desktop_streams_registry.h" 11 #include "chrome/browser/media/desktop_streams_registry.h"
11 #include "chrome/browser/media/media_capture_devices_dispatcher.h" 12 #include "chrome/browser/media/media_capture_devices_dispatcher.h"
12 #include "chrome/browser/media/native_desktop_media_list.h" 13 #include "chrome/browser/media/native_desktop_media_list.h"
13 #include "chrome/common/extensions/api/tabs.h" 14 #include "chrome/common/extensions/api/tabs.h"
14 #include "content/public/browser/browser_thread.h" 15 #include "content/public/browser/browser_thread.h"
15 #include "content/public/browser/render_process_host.h" 16 #include "content/public/browser/render_process_host.h"
16 #include "content/public/browser/render_view_host.h" 17 #include "content/public/browser/render_view_host.h"
17 #include "content/public/browser/web_contents.h" 18 #include "content/public/browser/web_contents.h"
18 #include "content/public/browser/web_contents_view.h" 19 #include "content/public/browser/web_contents_view.h"
19 #include "third_party/webrtc/modules/desktop_capture/desktop_capture_options.h" 20 #include "third_party/webrtc/modules/desktop_capture/desktop_capture_options.h"
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 } 159 }
159 160
160 scoped_ptr<DesktopMediaList> media_list; 161 scoped_ptr<DesktopMediaList> media_list;
161 if (g_picker_factory) { 162 if (g_picker_factory) {
162 media_list = g_picker_factory->CreateModel( 163 media_list = g_picker_factory->CreateModel(
163 show_screens, show_windows); 164 show_screens, show_windows);
164 picker_ = g_picker_factory->CreatePicker(); 165 picker_ = g_picker_factory->CreatePicker();
165 } else { 166 } else {
166 // DesktopMediaPicker is implemented only for Windows, OSX and 167 // DesktopMediaPicker is implemented only for Windows, OSX and
167 // Aura Linux builds. 168 // Aura Linux builds.
168 #if (defined(TOOLKIT_VIEWS) && !defined(OS_CHROMEOS)) || defined(OS_MACOSX) 169 #if defined(USE_ASH)
170 media_list.reset(new AshDesktopMediaList(
171 (show_screens ? AshDesktopMediaList::SCREENS : 0) |
172 (show_windows ? AshDesktopMediaList::WINDOWS : 0)));
173 picker_ = DesktopMediaPicker::Create();
174 #elif defined(TOOLKIT_VIEWS) || defined(OS_MACOSX)
169 webrtc::DesktopCaptureOptions options = 175 webrtc::DesktopCaptureOptions options =
170 webrtc::DesktopCaptureOptions::CreateDefault(); 176 webrtc::DesktopCaptureOptions::CreateDefault();
171 options.set_disable_effects(false); 177 options.set_disable_effects(false);
172 scoped_ptr<webrtc::ScreenCapturer> screen_capturer( 178 scoped_ptr<webrtc::ScreenCapturer> screen_capturer(
173 show_screens ? webrtc::ScreenCapturer::Create(options) : NULL); 179 show_screens ? webrtc::ScreenCapturer::Create(options) : NULL);
174 scoped_ptr<webrtc::WindowCapturer> window_capturer( 180 scoped_ptr<webrtc::WindowCapturer> window_capturer(
175 show_windows ? webrtc::WindowCapturer::Create(options) : NULL); 181 show_windows ? webrtc::WindowCapturer::Create(options) : NULL);
176 182
177 media_list.reset(new NativeDesktopMediaList( 183 media_list.reset(new NativeDesktopMediaList(
178 screen_capturer.Pass(), window_capturer.Pass())); 184 screen_capturer.Pass(), window_capturer.Pass()));
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 265
260 void DesktopCaptureRequestsRegistry::CancelRequest(int process_id, 266 void DesktopCaptureRequestsRegistry::CancelRequest(int process_id,
261 int request_id) { 267 int request_id) {
262 RequestsMap::iterator it = requests_.find(RequestId(process_id, request_id)); 268 RequestsMap::iterator it = requests_.find(RequestId(process_id, request_id));
263 if (it != requests_.end()) 269 if (it != requests_.end())
264 it->second->Cancel(); 270 it->second->Cancel();
265 } 271 }
266 272
267 273
268 } // namespace extensions 274 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698