| Index: chrome/browser/media/extension_media_access_handler.h
|
| diff --git a/chrome/browser/media/extension_media_access_handler.h b/chrome/browser/media/extension_media_access_handler.h
|
| index 3f6a1461f407aae914e6fd44eacc8f8000b3c202..95e072b30ddb68d766cad8956e289ec09b7c25ad 100644
|
| --- a/chrome/browser/media/extension_media_access_handler.h
|
| +++ b/chrome/browser/media/extension_media_access_handler.h
|
| @@ -5,7 +5,9 @@
|
| #ifndef CHROME_BROWSER_MEDIA_EXTENSION_MEDIA_ACCESS_HANDLER_H_
|
| #define CHROME_BROWSER_MEDIA_EXTENSION_MEDIA_ACCESS_HANDLER_H_
|
|
|
| +#include "chrome/browser/extensions/extension_install_prompt.h"
|
| #include "chrome/browser/media/media_access_handler.h"
|
| +#include "extensions/common/extension_id.h"
|
|
|
| class MediaStreamCaptureIndicator;
|
|
|
| @@ -27,6 +29,42 @@ class ExtensionMediaAccessHandler : public MediaAccessHandler {
|
| const content::MediaStreamRequest& request,
|
| const content::MediaResponseCallback& callback,
|
| const extensions::Extension* extension) override;
|
| +
|
| + private:
|
| + // Original HandleRequest function was split in two parts to allow prompting
|
| + // the user for input, this is the second part.
|
| + void HandleRequestContinuation(content::WebContents* web_contents,
|
| + const content::MediaStreamRequest& request,
|
| + const content::MediaResponseCallback& callback,
|
| + const extensions::Extension* extension);
|
| +
|
| + // Function used to resolve user decision regarding allowing audio/video.
|
| + void ResolvePermissionPrompt(
|
| + content::WebContents* web_contents,
|
| + const content::MediaStreamRequest& request,
|
| + const content::MediaResponseCallback& callback,
|
| + const extensions::Extension* extension,
|
| + ExtensionInstallPrompt::Result prompt_result);
|
| +
|
| + std::unique_ptr<ExtensionInstallPrompt> prompt_;
|
| +
|
| + // Class used to cache user choice regarding allowing audio/video capture.
|
| + class UserChoice {
|
| + public:
|
| + // Helper function for checking if audio/video is disallowed by user choice.
|
| + bool Disallowed(content::MediaStreamType type) const;
|
| + // Helper function which returns true if audio/video wasn't prompted yet.
|
| + bool NeedsPrompting(content::MediaStreamType type) const;
|
| + void Set(content::MediaStreamType type, bool allowed);
|
| +
|
| + private:
|
| + bool audio_prompted_ = false;
|
| + bool audio_allowed_ = false;
|
| + bool video_prompted_ = false;
|
| + bool video_allowed_ = false;
|
| + };
|
| +
|
| + std::map<extensions::ExtensionId, UserChoice> user_choice_cache_;
|
| };
|
|
|
| #endif // CHROME_BROWSER_MEDIA_EXTENSION_MEDIA_ACCESS_HANDLER_H_
|
|
|