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

Unified Diff: chrome/browser/media/desktop_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: Addressed oshima and nasko's comments, and rebased. Created 4 years, 7 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/desktop_capture_access_handler.cc
diff --git a/chrome/browser/media/desktop_capture_access_handler.cc b/chrome/browser/media/desktop_capture_access_handler.cc
index 6cd8e90cd1e30c585f8b8322c8ed3dde9dbfdbc2..6aa8d20f3160666abbc341c6375dc26af9399d4f 100644
--- a/chrome/browser/media/desktop_capture_access_handler.cc
+++ b/chrome/browser/media/desktop_capture_access_handler.cc
@@ -39,38 +39,12 @@
#if defined(OS_CHROMEOS)
#include "ash/shell.h"
-#include "base/sha1.h"
#endif // defined(OS_CHROMEOS)
using content::BrowserThread;
namespace {
-bool IsExtensionWhitelistedForScreenCapture(
- const extensions::Extension* extension) {
- if (!extension)
- return false;
-
-#if defined(OS_CHROMEOS)
- std::string hash = base::SHA1HashString(extension->id());
- std::string hex_hash = base::HexEncode(hash.c_str(), hash.length());
-
- // crbug.com/446688
- return hex_hash == "4F25792AF1AA7483936DE29C07806F203C7170A0" ||
- hex_hash == "BD8781D757D830FC2E85470A1B6E8A718B7EE0D9" ||
- hex_hash == "4AC2B6C63C6480D150DFDA13E4A5956EB1D0DDBB" ||
- hex_hash == "81986D4F846CEDDDB962643FA501D1780DD441BB";
-#else
- return false;
-#endif // defined(OS_CHROMEOS)
-}
-
-bool IsBuiltInExtension(const GURL& origin) {
- return
- // Feedback Extension.
- origin.spec() == "chrome-extension://gfdkimpbcpahaombhbimeihdjnejgicl/";
-}
-
// Helper to get title of the calling application shown in the screen capture
// notification.
base::string16 GetApplicationTitle(content::WebContents* web_contents,
@@ -241,6 +215,8 @@ void DesktopCaptureAccessHandler::ProcessScreenCaptureAccessRequest(
DCHECK_EQ(request.video_type, content::MEDIA_DESKTOP_VIDEO_CAPTURE);
+ UpdateExtensionTrusted(request, extension);
+
bool loopback_audio_supported = false;
#if defined(USE_CRAS) || defined(OS_WIN)
// Currently loopback audio capture is supported only on Windows and ChromeOS.
@@ -445,41 +421,7 @@ void DesktopCaptureAccessHandler::HandleRequest(
ui = GetDevicesForDesktopCapture(&devices, media_id, capture_audio, true,
GetApplicationTitle(web_contents, extension),
base::UTF8ToUTF16(original_extension_name));
-
+ UpdateExtensionTrusted(request, extension);
callback.Run(devices, content::MEDIA_DEVICE_OK, std::move(ui));
}
-void DesktopCaptureAccessHandler::UpdateMediaRequestState(
- int render_process_id,
- int render_frame_id,
- int page_request_id,
- content::MediaStreamType stream_type,
- content::MediaRequestState state) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
- // Track desktop capture sessions. Tracking is necessary to avoid unbalanced
- // session counts since not all requests will reach MEDIA_REQUEST_STATE_DONE,
- // but they will all reach MEDIA_REQUEST_STATE_CLOSING.
- if (stream_type != content::MEDIA_DESKTOP_VIDEO_CAPTURE)
- return;
-
- if (state == content::MEDIA_REQUEST_STATE_DONE) {
- DesktopCaptureSession session = {
- render_process_id, render_frame_id, page_request_id};
- desktop_capture_sessions_.push_back(session);
- } else if (state == content::MEDIA_REQUEST_STATE_CLOSING) {
- for (DesktopCaptureSessions::iterator it =
- desktop_capture_sessions_.begin();
- it != desktop_capture_sessions_.end(); ++it) {
- if (it->render_process_id == render_process_id &&
- it->render_frame_id == render_frame_id &&
- it->page_request_id == page_request_id) {
- desktop_capture_sessions_.erase(it);
- break;
- }
- }
- }
-}
-
-bool DesktopCaptureAccessHandler::IsCaptureInProgress() {
- return desktop_capture_sessions_.size() > 0;
-}
« no previous file with comments | « chrome/browser/media/desktop_capture_access_handler.h ('k') | chrome/browser/media/media_capture_devices_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698