Chromium Code Reviews| Index: chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc |
| diff --git a/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc b/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc |
| index f8e601db41e245801c327d7f2956776b798dd7a0..be0c3f04a16c2ed83d9a2a5c23cae94ce16b0afc 100644 |
| --- a/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc |
| +++ b/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc |
| @@ -4,13 +4,10 @@ |
| #include "chrome/browser/renderer_host/pepper/pepper_flash_browser_host.h" |
| +#include "base/callback.h" |
| #include "base/time.h" |
| -#include "content/public/browser/browser_context.h" |
| +#include "chrome/browser/renderer_host/pepper/flash_lso_settings_helper.h" |
| #include "content/public/browser/browser_ppapi_host.h" |
| -#include "content/public/browser/browser_thread.h" |
| -#include "content/public/browser/content_browser_client.h" |
| -#include "content/public/browser/render_process_host.h" |
| -#include "content/public/browser/resource_context.h" |
| #include "googleurl/src/gurl.h" |
| #include "ipc/ipc_message_macros.h" |
| #include "ppapi/c/pp_errors.h" |
| @@ -27,36 +24,19 @@ |
| #endif |
| using content::BrowserPpapiHost; |
| -using content::BrowserThread; |
| -using content::RenderProcessHost; |
| -using content::ResourceContext; |
| namespace chrome { |
| -namespace { |
| - |
| -// Get the ResourceContext on the UI thread for the given render process ID. |
| -ResourceContext* GetResourceContext(int render_process_id) { |
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| - RenderProcessHost* render_process_host = RenderProcessHost::FromID( |
| - render_process_id); |
| - if (render_process_host && render_process_host->GetBrowserContext()) |
| - return render_process_host->GetBrowserContext()->GetResourceContext(); |
| - return NULL; |
| -} |
| - |
| -} // namespace |
| - |
| PepperFlashBrowserHost::PepperFlashBrowserHost( |
| BrowserPpapiHost* host, |
| PP_Instance instance, |
| PP_Resource resource) |
| : ResourceHost(host->GetPpapiHost(), instance, resource), |
| host_(host), |
| - resource_context_(NULL), |
| weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { |
| - int unused; |
| - host->GetRenderViewIDsForInstance(instance, &render_process_id_, &unused); |
| + int render_process_id, unused; |
| + host->GetRenderViewIDsForInstance(instance, &render_process_id, &unused); |
| + lso_settings_helper_ = new FlashLSOSettingsHelper(render_process_id); |
| } |
| PepperFlashBrowserHost::~PepperFlashBrowserHost() { |
| @@ -108,50 +88,18 @@ int32_t PepperFlashBrowserHost::OnMsgGetLocalTimeZoneOffset( |
| int32_t PepperFlashBrowserHost::OnMsgGetLocalDataRestrictions( |
| ppapi::host::HostMessageContext* context) { |
| - // Getting the LocalDataRestrictions needs to be done on the IO thread, |
| - // however it relies on the ResourceContext which can only be accessed from |
| - // the UI thread. We lazily initialize |resource_context_| by grabbing the |
| - // pointer from the UI thread and then call |GetLocalDataRestrictions| with |
| - // it. |
| - GURL document_url = host_->GetDocumentURLForInstance(pp_instance()); |
| - GURL plugin_url = host_->GetPluginURLForInstance(pp_instance()); |
| - if (resource_context_) { |
| - GetLocalDataRestrictions(context->MakeReplyMessageContext(), document_url, |
| - plugin_url, resource_context_); |
| - } else { |
| - BrowserThread::PostTaskAndReplyWithResult(BrowserThread::UI, FROM_HERE, |
| - base::Bind(&GetResourceContext, render_process_id_), |
| - base::Bind(&PepperFlashBrowserHost::GetLocalDataRestrictions, |
| - weak_factory_.GetWeakPtr(), |
| - context->MakeReplyMessageContext(), |
| - document_url, plugin_url)); |
| - } |
| + lso_settings_helper_->GetLocalDataRestrictions( |
| + host_->GetDocumentURLForInstance(pp_instance()), |
| + host_->GetPluginURLForInstance(pp_instance()), |
| + base::Bind(&PepperFlashBrowserHost::OnGetLocalDataRestrictions, |
| + weak_factory_.GetWeakPtr(), |
| + context->MakeReplyMessageContext())); |
| return PP_OK_COMPLETIONPENDING; |
| } |
| -void PepperFlashBrowserHost::GetLocalDataRestrictions( |
| +void PepperFlashBrowserHost::OnGetLocalDataRestrictions( |
|
yzshen1
2012/12/29 02:04:05
Nit, optional: maybe OnLocalDataRestrictionsRetrie
raymes
2012/12/29 21:15:40
Done.
|
| ppapi::host::ReplyMessageContext reply_context, |
| - const GURL& document_url, |
| - const GURL& plugin_url, |
| - ResourceContext* resource_context) { |
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| - // Note that the resource context lives on the IO thread and is owned by the |
| - // browser profile so its lifetime should outlast ours. |
| - if (!resource_context_) |
| - resource_context_ = resource_context; |
| - |
| - PP_FlashLSORestrictions restrictions = PP_FLASHLSORESTRICTIONS_NONE; |
| - if (resource_context_ && document_url.is_valid() && plugin_url.is_valid()) { |
| - content::ContentBrowserClient* client = |
| - content::GetContentClient()->browser(); |
| - if (!client->AllowPluginLocalDataAccess(document_url, plugin_url, |
| - resource_context_)) { |
| - restrictions = PP_FLASHLSORESTRICTIONS_BLOCK; |
| - } else if (client->AllowPluginLocalDataSessionOnly(plugin_url, |
| - resource_context_)) { |
| - restrictions = PP_FLASHLSORESTRICTIONS_IN_MEMORY; |
| - } |
| - } |
| + PP_FlashLSORestrictions restrictions) { |
| SendReply(reply_context, PpapiPluginMsg_Flash_GetLocalDataRestrictionsReply( |
| static_cast<int32_t>(restrictions))); |
| } |