diff options
author | karen@chromium.org <karen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-10 20:34:34 +0000 |
---|---|---|
committer | karen@chromium.org <karen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-10 20:34:34 +0000 |
commit | 4d52c6c3ea7d51b0a50d3cb63d029f15acd342ed (patch) | |
tree | f3ecf78ac22627ccbbc3232427684fa1bd90b5d0 | |
parent | 46e6d1d05d4765fb6b66eebb3a99c984e89c2911 (diff) | |
download | chromium_src-4d52c6c3ea7d51b0a50d3cb63d029f15acd342ed.zip chromium_src-4d52c6c3ea7d51b0a50d3cb63d029f15acd342ed.tar.gz chromium_src-4d52c6c3ea7d51b0a50d3cb63d029f15acd342ed.tar.bz2 |
Merge 220970 "Prevent hanging client by making WebContentsDelega..."
> Prevent hanging client by making WebContentsDelegate::RequestMediaAccessPermission reject request by default.
>
> When clients of WebContentDelegate calls RequestMediaAccessPermission, they expect a callback.
> Some derived classes of WebContentDelegate don't override RequestMediaAccessPermission, which results in client hanging forever.
> By making WebContentsDelegate::RequestMediaAccessPermission reject request by default, the client will always get callback.
> The subclasses of WebContentDelegate can override the behavior when needed.
>
> BUG=282591
> R=joi@chromium.org
>
> Review URL: https://codereview.chromium.org/23532021
TBR=wjia@chromium.org
Review URL: https://codereview.chromium.org/23684046
git-svn-id: svn://svn.chromium.org/chrome/branches/1599/src@222331 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | content/public/browser/web_contents_delegate.cc | 7 | ||||
-rw-r--r-- | content/public/browser/web_contents_delegate.h | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc index 6810002..964206d 100644 --- a/content/public/browser/web_contents_delegate.cc +++ b/content/public/browser/web_contents_delegate.cc @@ -149,6 +149,13 @@ content::ColorChooser* WebContentsDelegate::OpenColorChooser( return NULL; } +void WebContentsDelegate::RequestMediaAccessPermission( + WebContents* web_contents, + const MediaStreamRequest& request, + const MediaResponseCallback& callback) { + callback.Run(MediaStreamDevices(), scoped_ptr<MediaStreamUI>()); +} + bool WebContentsDelegate::RequestPpapiBrokerPermission( WebContents* web_contents, const GURL& url, diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h index 23d2336..aa1bb4e 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h @@ -424,7 +424,7 @@ class CONTENT_EXPORT WebContentsDelegate { virtual void RequestMediaAccessPermission( WebContents* web_contents, const MediaStreamRequest& request, - const MediaResponseCallback& callback) {} + const MediaResponseCallback& callback); // Requests permission to access the PPAPI broker. The delegate should return // true and call the passed in |callback| with the result, or return false |