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

Unified Diff: chrome/browser/renderer_host/pepper/flash_lso_settings_helper.h

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/flash_lso_settings_helper.h
diff --git a/chrome/browser/renderer_host/pepper/flash_lso_settings_helper.h b/chrome/browser/renderer_host/pepper/flash_lso_settings_helper.h
new file mode 100644
index 0000000000000000000000000000000000000000..bb6acba3ab70461d049b13f02c1a6d5b871764d9
--- /dev/null
+++ b/chrome/browser/renderer_host/pepper/flash_lso_settings_helper.h
@@ -0,0 +1,90 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_RENDERER_HOST_PEPPER_FLASH_LSO_SETTINGS_HELPER_H_
+#define CHROME_BROWSER_RENDERER_HOST_PEPPER_FLASH_LSO_SETTINGS_HELPER_H_
+
+#include "base/basictypes.h"
+#include "base/callback.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
+#include "content/public/browser/notification_observer.h"
+#include "content/public/browser/notification_registrar.h"
+#include "ppapi/c/private/ppb_flash.h"
+
+class GURL;
+class Profile;
+
+namespace content {
+class ResourceContext;
+}
+
+namespace chrome {
+
+// This class aids in getting the Flash LSO Settings.
+class FlashLSOSettingsHelper
+ : public base::RefCountedThreadSafe<FlashLSOSettingsHelper>,
+ public content::NotificationObserver {
+ public:
+ explicit FlashLSOSettingsHelper(int render_process_id);
+
+ // Get the Flash local data restrictions for the given document/plugin URLs.
yzshen1 2012/12/29 02:04:05 Get->Gets (and some other places in this file).
raymes 2012/12/29 03:21:57 Done.
+ // Should only be called from the IO thread. |callback| will be run with the
+ // data restriction settings on the IO thread. It may be run synchronously or
+ // asynchronously.
+ void GetLocalDataRestrictions(
+ const GURL& document_url,
+ const GURL& plugin_url,
+ base::Callback<void(PP_FlashLSORestrictions)> callback);
yzshen1 2012/12/29 02:04:05 Usually we pass const & for callback, right?
raymes 2012/12/29 03:21:57 Done.
+
+ private:
+ virtual ~FlashLSOSettingsHelper();
+ friend class base::RefCountedThreadSafe<FlashLSOSettingsHelper>;
+
+ // Run |callback| with the local data restrictions for the given resource
+ // context. The resource context is cached locally.
+ void GetLocalDataRestrictionsHelper(
+ const GURL& document_url,
+ const GURL& plugin_url,
+ base::Callback<void(PP_FlashLSORestrictions)> callback,
yzshen1 2012/12/29 02:04:05 ditto.
raymes 2012/12/29 03:21:57 Done.
+ content::ResourceContext* resource_context);
+
+ // Gets the resource context for the given render process ID. The resource
+ // context belongs to the Profile which lives on the UI thread so this should
+ // be run on the UI thread. This also registers this class for a notification
+ // on profile destruction so that the resource context is not accessed after
+ // that point.
+ content::ResourceContext* GetResourceContext(int render_process_id);
+
+ // content::NotificationObserver implementation.
+ virtual void Observe(int type,
+ const content::NotificationSource& source,
+ const content::NotificationDetails& details) OVERRIDE;
+
+ // Clear |resource_context_| on the IO thread when the profile is destroyed.
+ void ClearResourceContext();
+
+ // The render process ID of the renderer process to get LSO settings for.
+ // Should only be accessed on the IO thread.
+ int render_process_id_;
+
+ // Whether the |resource_context_| has been initialized yet. Should only be
+ // accessed from the IO thread.
+ bool initialized_;
+
+ // For fetching the Flash LSO settings. Should only be accessed from the IO
+ // thread.
+ content::ResourceContext* resource_context_;
+
+ // Registrar for receiving profile destruction notifications. Should only be
+ // accessed from the UI thread.
+ scoped_ptr<content::NotificationRegistrar> registrar_;
+
+
+ DISALLOW_COPY_AND_ASSIGN(FlashLSOSettingsHelper);
+};
+
+} // namespace chrome
+
+#endif // CHROME_BROWSER_RENDERER_HOST_PEPPER_FLASH_LSO_SETTINGS_HELPER_H_

Powered by Google App Engine
This is Rietveld 408576698