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

Unified Diff: chrome/common/extensions/api/tab_capture.idl

Issue 1221483002: New tabCapture.captureOffscreenTab API, initially for Presentation API 1UA mode (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revived and refreshed after API proposal process. Moar tests. Created 5 years, 3 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/api/tab_capture.idl
diff --git a/chrome/common/extensions/api/tab_capture.idl b/chrome/common/extensions/api/tab_capture.idl
index c6489d6f6980c167c3b898864692979588bec2d5..7fee5dcc4c4d5f6cb0364d288490297a573755c3 100644
--- a/chrome/common/extensions/api/tab_capture.idl
+++ b/chrome/common/extensions/api/tab_capture.idl
@@ -66,6 +66,39 @@ namespace tabCapture {
// to prevent redundant requests for the same tab).
// |callback| : Callback invoked with CaptureInfo[] for captured tabs.
static void getCapturedTabs(GetCapturedTabsCallback callback);
+
+ // Locates, or creates on-demand, an off-screen tab identified by a
+ // |startUrl| and |id|. When created, the off-screen tab is automatically
not at google - send to devlin 2015/09/25 16:56:03 Where does the id come from?
miu 2015/09/25 17:35:32 This is explained a few sentences later in this pa
not at google - send to devlin 2015/09/25 17:42:04 Yeah I didn't read on, but my follow-up was, it do
miu 2015/09/25 18:47:54 See line 268 in tab_capture_api.cc. It is passed
not at google - send to devlin 2015/09/25 19:13:24 ok, 3rd question: can the API generate one itself?
miu 2015/09/25 21:59:17 As I was answering your question, I'm now thinking
not at google - send to devlin 2015/09/25 22:29:55 Yes I'd like to avoid having an ID here. If you wa
miu 2015/09/26 20:40:14 Done. However, I forgot to mention there is a sec
not at google - send to devlin 2015/09/30 01:32:11 I'll reply there.
miu 2015/09/30 19:46:38 Didn't see a comment there. Does that mean this i
+ // navigated to the given |startUrl|. Then, capture is started and a
+ // MediaStream is returned via |callback|. |id| can be any client-provided
+ // string. It is used only to disambiguate off-screen tabs with the same
+ // |startUrl|.
+ //
+ // Off-screen tabs are isolated from the user's normal browser experience.
+ // They do not show up in the browser window or tab strip, nor are they
+ // visible to extensions (e.g., via the chrome.tabs.* APIs).
+ //
+ // An off-screen tab remains alive until one of three events occurs: 1. All
+ // MediaStreams providing its captured content are closed; 2. the page
+ // self-closes (e.g., via window.close()); 3. the extension that called
+ // captureOffscreenTab() is unloaded.
+ //
+ // Sandboxing: The off-screen tab does not have any access whatsoever to the
+ // local user profile (including cookies, HTTP auth, etc.). Instead, it is
+ // provided its own dedicated, non-shared off-the-record profile. Also, it
not at google - send to devlin 2015/09/25 22:29:55 Can we say "sandboxed" instead of "off-the-record"
miu 2015/09/26 20:40:14 Done.
+ // cannot access any interactive resources such as keyboard/mouse input,
+ // media recording devices (e.g., web cams), copy/paste to/from the system
+ // clipboard, etc.
+ //
+ // Note: This is a new API, currently only available via whitelisting, and
not at google - send to devlin 2015/09/25 22:29:55 whitelisting? This is dev channel now right? The d
miu 2015/09/26 20:40:14 I wasn't sure we were ready for dev-channel yet, g
not at google - send to devlin 2015/09/30 01:32:11 Makes sense. Just double checking.
+ // may change without notice.
+ //
+ // |options| : Constraints for the capture and returned MediaStream.
+ // |callback| : <code>null</code> on error.
+ static void captureOffscreenTab(DOMString startUrl,
+ DOMString id,
+ CaptureOptions options,
+ GetTabMediaCallback callback);
};
interface Events {

Powered by Google App Engine
This is Rietveld 408576698