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; |
+} |