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

Unified Diff: chrome/browser/media/tab_capture_access_handler.cc

Issue 1873293002: Report if video capturing meets output protection requirement. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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/browser/media/tab_capture_access_handler.cc
diff --git a/chrome/browser/media/tab_capture_access_handler.cc b/chrome/browser/media/tab_capture_access_handler.cc
index 50d05424c848217b059407b6cecd8cad1db738e3..d87e47b7d31db943409eb5f64fbbd9923b419f5a 100644
--- a/chrome/browser/media/tab_capture_access_handler.cc
+++ b/chrome/browser/media/tab_capture_access_handler.cc
@@ -13,8 +13,11 @@
#include "content/public/browser/web_contents.h"
#include "extensions/common/permissions/permissions_data.h"
-TabCaptureAccessHandler::TabCaptureAccessHandler() {
-}
+TabCaptureAccessHandler::TabCaptureAccessHandler()
+ : render_process_id_(-1),
+ render_frame_id_(-1),
+ is_capturing_link_secure_(false),
+ extension_whitelisted_(false) {}
TabCaptureAccessHandler::~TabCaptureAccessHandler() {
}
@@ -78,8 +81,44 @@ void TabCaptureAccessHandler::HandleRequest(
ui = MediaCaptureDevicesDispatcher::GetInstance()
->GetMediaStreamCaptureIndicator()
->RegisterMediaStream(web_contents, devices);
+ render_process_id_ = request.render_process_id;
+ render_frame_id_ = request.render_frame_id;
}
+ extension_whitelisted_ = MediaCaptureDevicesDispatcher::IsOriginForCasting(
+ request.security_origin);
callback.Run(devices, devices.empty() ? content::MEDIA_DEVICE_INVALID_STATE
: content::MEDIA_DEVICE_OK,
std::move(ui));
}
+
+bool TabCaptureAccessHandler::IsCaptureInProgress(int render_process_id,
+ int render_frame_id,
+ bool* is_link_secure) {
+ if ((render_frame_id == render_frame_id_) &&
+ (render_process_id == render_process_id_)) {
+ *is_link_secure = is_capturing_link_secure_ && extension_whitelisted_;
+ return true;
+ }
+ *is_link_secure = false;
+ return false;
+}
+
+void TabCaptureAccessHandler::UpdateCapturingLinkSecured(
+ int render_process_id,
+ int render_frame_id,
+ int page_request_id,
+ content::MediaStreamType stream_type,
+ bool is_secure) {
+ if (stream_type != content::MEDIA_TAB_VIDEO_CAPTURE ||
+ render_process_id != render_process_id_ ||
+ render_frame_id != render_frame_id_) {
+ return;
+ }
+
+ is_capturing_link_secure_ = is_secure;
+
+ VLOG(1) << "TabCaptureAccessHandler:"
+ << " render_process_id: " << render_process_id
+ << " render_frame_id: " << render_frame_id
+ << " is_capturing_link_secure_: " << is_secure;
+}

Powered by Google App Engine
This is Rietveld 408576698