summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaren@chromium.org <karen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-10 20:34:34 +0000
committerkaren@chromium.org <karen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-10 20:34:34 +0000
commit4d52c6c3ea7d51b0a50d3cb63d029f15acd342ed (patch)
treef3ecf78ac22627ccbbc3232427684fa1bd90b5d0
parent46e6d1d05d4765fb6b66eebb3a99c984e89c2911 (diff)
downloadchromium_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.cc7
-rw-r--r--content/public/browser/web_contents_delegate.h2
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