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

Unified Diff: content/public/browser/web_contents_media_capture_id.h

Issue 1503563004: Desktop chrome tab capture-chooseDesktopMedia() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review round 3 Created 5 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 side-by-side diff with in-line comments
Download patch
Index: content/public/browser/web_contents_media_capture_id.h
diff --git a/content/public/browser/web_contents_media_capture_id.h b/content/public/browser/web_contents_media_capture_id.h
new file mode 100644
index 0000000000000000000000000000000000000000..f96e09a5bd4d4b93923b0fceef9ecbbc40b76b30
--- /dev/null
+++ b/content/public/browser/web_contents_media_capture_id.h
@@ -0,0 +1,66 @@
+// Copyright (c) 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_PUBLIC_BROWSER_WEB_CONTENTS_MEDIA_CAPTURE_ID_H_
+#define CONTENT_PUBLIC_BROWSER_WEB_CONTENTS_MEDIA_CAPTURE_ID_H_
+
+#include <string>
+
+#include "content/common/content_export.h"
+
+namespace content {
+const char kWebContentsCaptureScheme[] = "web-contents-media-stream";
miu 2015/12/15 01:38:53 This string should be defined in the .cc file. In
GeorgeZ 2015/12/16 00:07:39 This string is also used by DesktopMediaId to judg
+
+struct CONTENT_EXPORT WebContentsMediaCaptureId {
+ public:
+ // Represents an "unset" value for either |render_process_id| or
+ // |main_render_frame_id|.
+ static const int kInvalidId = -1;
+
+ WebContentsMediaCaptureId() = default;
+ WebContentsMediaCaptureId(int render_process_id, int main_render_frame_id)
+ : render_process_id(render_process_id),
+ main_render_frame_id(main_render_frame_id) {}
+
+ WebContentsMediaCaptureId(int render_process_id,
+ int main_render_frame_id,
+ bool enable_auto_throttling)
+ : render_process_id(render_process_id),
+ main_render_frame_id(main_render_frame_id),
+ enable_auto_throttling(enable_auto_throttling) {}
+
+ bool operator<(const WebContentsMediaCaptureId& other) const;
+ bool operator==(const WebContentsMediaCaptureId& other) const;
+
+ // Return true if render_process_id or main_render_frame_id is invalid.
+ bool is_null() const;
+
+ std::string ToString() const;
+
+ // Tab video and audio capture need render process id and render frame id.
+ int render_process_id = kInvalidId;
+ int main_render_frame_id = kInvalidId;
+
+ bool enable_auto_throttling = false;
+
+ // Create WebContentsMediaCaptureId based on a string.
+ static WebContentsMediaCaptureId Parse(const std::string& str);
+
+ // Check whether the device id indicates that this is a web contents stream.
+ static bool IsWebContentsDeviceId(const std::string& device_id);
+
+ // Function to extract the target render frame id's from a media stream
+ // request's device id.
+ static bool ExtractTabCaptureTarget(const std::string& device_id,
+ int* render_process_id,
+ int* main_render_frame_id);
+
+ // Parses the media stream request |device_id| and returns true if both 1) the
+ // format is valid, and 2) the throttling option is set to auto.
+ static bool IsAutoThrottlingOptionSet(const std::string& device_id);
+};
+
+} // namespace content
+
+#endif // CONTENT_PUBLIC_BROWSER_WEB_CONTENTS_MEDIA_CAPTURE_ID_H_

Powered by Google App Engine
This is Rietveld 408576698