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

Unified Diff: chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc

Issue 11705003: Change PepperFlashBrowserHost to use CookieSettings to get the LSO settings (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years 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: 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)));
}

Powered by Google App Engine
This is Rietveld 408576698