| Index: content/browser/renderer_host/pepper_message_filter.h
|
| diff --git a/content/browser/renderer_host/pepper_message_filter.h b/content/browser/renderer_host/pepper_message_filter.h
|
| index e55a5237b351fa3ff5becd7158086197984b3244..38596c4f89cfe7184338d263c34b55248d1f09b7 100644
|
| --- a/content/browser/renderer_host/pepper_message_filter.h
|
| +++ b/content/browser/renderer_host/pepper_message_filter.h
|
| @@ -7,15 +7,18 @@
|
| #pragma once
|
|
|
| #include <map>
|
| +#include <set>
|
| #include <string>
|
|
|
| #include "base/basictypes.h"
|
| #include "base/memory/linked_ptr.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/process.h"
|
| +#include "base/synchronization/lock.h"
|
| #include "base/time.h"
|
| #include "content/browser/font_list_async.h"
|
| #include "content/public/browser/browser_message_filter.h"
|
| +#include "googleurl/src/gurl.h"
|
| #include "net/base/ssl_config_service.h"
|
| #include "ppapi/c/pp_stdint.h"
|
|
|
| @@ -40,7 +43,8 @@ class HostResolver;
|
| // handle requests that out-of-process plugins send directly to the browser.
|
| class PepperMessageFilter : public content::BrowserMessageFilter {
|
| public:
|
| - explicit PepperMessageFilter(content::ResourceContext* resource_context);
|
| + PepperMessageFilter(int process_id,
|
| + content::ResourceContext* resource_context);
|
| explicit PepperMessageFilter(net::HostResolver* host_resolver);
|
| virtual ~PepperMessageFilter();
|
|
|
| @@ -56,6 +60,9 @@ class PepperMessageFilter : public content::BrowserMessageFilter {
|
|
|
| const net::SSLConfig& ssl_config() { return ssl_config_; }
|
|
|
| + // Notify PepperMessageFilter about site for given render.
|
| + static void SetRenderSite(int process_id, int routing_id, const GURL& url);
|
| +
|
| private:
|
| #if defined(ENABLE_FLAPPER_HACKS)
|
| // Message handlers.
|
| @@ -121,6 +128,12 @@ class PepperMessageFilter : public content::BrowserMessageFilter {
|
|
|
| uint32 GenerateSocketID();
|
|
|
| + // Return true if render with given ID can use socket APIs.
|
| + bool CanUseSocketAPIs(int32 render_id);
|
| +
|
| + // Notify and site URL for given render.
|
| + void SetRenderSite(int render_id, const GURL& url);
|
| +
|
| // When non-NULL, this should be used instead of the host_resolver_.
|
| content::ResourceContext* const resource_context_;
|
|
|
| @@ -128,6 +141,21 @@ class PepperMessageFilter : public content::BrowserMessageFilter {
|
| // GetHostResolver instead of accessing directly.
|
| net::HostResolver* host_resolver_;
|
|
|
| + // ID of corresponding RenderProcessHost.
|
| + int process_id_;
|
| +
|
| + // Map of render process IDs to corresponding PepperMessageFilters.
|
| + typedef std::map<int, PepperMessageFilter*> PepperMessageFilterMap;
|
| + static PepperMessageFilterMap instance_map_;
|
| + static base::Lock instance_map_mutex_;
|
| +
|
| + // Set of origins that can use socket APIs from in-process plugins and NaCl.
|
| + std::set<std::string> allowed_socket_origins_;
|
| +
|
| + // Set render IDs that can use socket APIs from in-process plugins and NaCl.
|
| + std::set<int> allowed_socket_renders_;
|
| + base::Lock allowed_socket_renders_mutex_;
|
| +
|
| // The default SSL configuration settings are used, as opposed to Chrome's SSL
|
| // settings.
|
| net::SSLConfig ssl_config_;
|
|
|