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

Unified Diff: content/browser/renderer_host/pepper/pepper_message_filter.cc

Issue 10919169: Change how PepperMessageFilter is constructed, to simplify its use. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 3 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: content/browser/renderer_host/pepper/pepper_message_filter.cc
===================================================================
--- content/browser/renderer_host/pepper/pepper_message_filter.cc (revision 155271)
+++ content/browser/renderer_host/pepper/pepper_message_filter.cc (working copy)
@@ -76,7 +76,6 @@
: process_type_(type),
process_id_(process_id),
resource_context_(browser_context->GetResourceContext()),
- host_resolver_(NULL),
next_socket_id_(1) {
DCHECK(type == RENDERER);
DCHECK(browser_context);
@@ -87,15 +86,13 @@
}
PepperMessageFilter::PepperMessageFilter(ProcessType type,
- net::HostResolver* host_resolver)
+ int render_process_id)
: process_type_(type),
- process_id_(0),
+ process_id_(render_process_id),
brettw 2012/09/10 22:27:11 I'm not totally following this. In the case of Fla
resource_context_(NULL),
- host_resolver_(host_resolver),
next_socket_id_(1),
incognito_(false) {
DCHECK(type == PLUGIN);
- DCHECK(host_resolver);
}
void PepperMessageFilter::OverrideThreadForMessage(
@@ -179,11 +176,6 @@
GetAndSendNetworkList();
}
-net::HostResolver* PepperMessageFilter::GetHostResolver() {
- return resource_context_ ?
- resource_context_->GetHostResolver() : host_resolver_;
-}
-
net::CertVerifier* PepperMessageFilter::GetCertVerifier() {
if (!cert_verifier_.get())
cert_verifier_.reset(net::CertVerifier::CreateDefault());
@@ -271,6 +263,7 @@
const std::string& host,
uint16_t port) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ EnsureResourceContextSet();
BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
base::Bind(&PepperMessageFilter::DoTCPConnect, this,
CanUseSocketAPIs(routing_id), routing_id, socket_id, host, port));
@@ -288,8 +281,8 @@
return;
}
- if (routing_id == iter->second->routing_id() && allowed)
- iter->second->Connect(host, port);
+ if (routing_id == iter->second->routing_id() && allowed && resource_context_)
+ iter->second->Connect(host, port, resource_context_->GetHostResolver());
else
iter->second->SendConnectACKError();
}
@@ -539,6 +532,7 @@
const ppapi::HostPortPair& host_port,
const PP_HostResolver_Private_Hint& hint) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ EnsureResourceContextSet();
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
base::Bind(&PepperMessageFilter::DoHostResolverResolve, this,
@@ -597,7 +591,7 @@
// The lookup request will delete itself on completion.
PepperLookupRequest<OnHostResolverResolveBoundInfo>* lookup_request =
new PepperLookupRequest<OnHostResolverResolveBoundInfo>(
- GetHostResolver(),
+ resource_context_->GetHostResolver(), // must be on IO thread.
request_info,
bound_info.release(),
base::Bind(&PepperMessageFilter::OnHostResolverResolveLookupFinished,
@@ -735,17 +729,20 @@
const GURL& document_url,
const GURL& plugin_url,
PP_FlashLSORestrictions* restrictions) {
- content::ContentBrowserClient* client =
- content::GetContentClient()->browser();
- if (!client->AllowPluginLocalDataAccess(document_url, plugin_url,
- resource_context_)) {
- *restrictions = PP_FLASHLSORESTRICTIONS_BLOCK;
- return;
- }
+ if (resource_context_) {
bbudge 2012/09/07 23:56:49 I'm not sure if we can change the thread that this
+ content::ContentBrowserClient* client =
+ content::GetContentClient()->browser();
+ if (!client->AllowPluginLocalDataAccess(document_url, plugin_url,
+ resource_context_)) {
+ *restrictions = PP_FLASHLSORESTRICTIONS_BLOCK;
+ return;
+ }
- if (client->AllowPluginLocalDataSessionOnly(plugin_url, resource_context_)) {
- *restrictions = PP_FLASHLSORESTRICTIONS_IN_MEMORY;
- return;
+ if (client->AllowPluginLocalDataSessionOnly(
+ plugin_url, resource_context_)) {
+ *restrictions = PP_FLASHLSORESTRICTIONS_IN_MEMORY;
+ return;
+ }
}
*restrictions = PP_FLASHLSORESTRICTIONS_NONE;
@@ -878,3 +875,14 @@
ppapi::API_ID_PPB_NETWORKMANAGER_PRIVATE, *it, *list_copy));
}
}
+
+void PepperMessageFilter::EnsureResourceContextSet() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ if (!resource_context_) {
+ content::RenderProcessHost* rph =
+ content::RenderProcessHost::FromID(process_id_);
+ if (rph)
+ resource_context_ = rph->GetBrowserContext()->GetResourceContext();
+ }
+}
+

Powered by Google App Engine
This is Rietveld 408576698