Enable Enterprise enrollment on desktop builds.
[chromium-blink-merge.git] / chrome / common / extensions / api / tab_capture.idl
blob7e3e2a2567f560f3dcc4939ebe1eb080e538d149
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // Use the <code>chrome.tabCapture</code> API to interact with tab media
6 // streams.
7 namespace tabCapture {
9 enum TabCaptureState {
10 pending,
11 active,
12 stopped,
13 error
16 dictionary CaptureInfo {
17 // The id of the tab whose status changed.
18 long tabId;
20 // The new capture status of the tab.
21 TabCaptureState status;
23 // Whether an element in the tab being captured is in fullscreen mode.
24 boolean fullscreen;
27 // MediaTrackConstraints for the media streams that will be passed to WebRTC.
28 // See section on MediaTrackConstraints:
29 // http://dev.w3.org/2011/webrtc/editor/getusermedia.html
30 dictionary MediaStreamConstraint {
31 object mandatory;
32 object? _optional;
35 // Whether we are requesting tab video and/or audio and the
36 // MediaTrackConstraints that should be set for these streams.
37 dictionary CaptureOptions {
38 boolean? audio;
39 boolean? video;
40 MediaStreamConstraint? audioConstraints;
41 MediaStreamConstraint? videoConstraints;
44 callback GetTabMediaCallback =
45 void ([instanceOf=LocalMediaStream] object stream);
47 callback GetCapturedTabsCallback = void (CaptureInfo[] result);
49 interface Functions {
50 // Captures the visible area of the currently active tab.
51 // This method can only be used on the currently active page after the
52 // extension has been <em>invoked</em>, similar to the way that
53 // <a href="activeTab.html">activeTab</a> works.
54 // |options| : Configures the returned media stream.
55 // |callback| : Callback with either the stream returned or null.
56 static void capture(CaptureOptions options,
57 GetTabMediaCallback callback);
59 // Returns a list of tabs that have requested capture or are being
60 // captured, i.e. status != stopped and status != error.
61 // This allows extensions to inform the user that there is an existing
62 // tab capture that would prevent a new tab capture from succeeding (or
63 // to prevent redundant requests for the same tab).
64 static void getCapturedTabs(GetCapturedTabsCallback callback);
67 interface Events {
68 // Event fired when the capture status of a tab changes.
69 // This allows extension authors to keep track of the capture status of
70 // tabs to keep UI elements like page actions and infobars in sync.
71 static void onStatusChanged(CaptureInfo info);