| Index: content/browser/child_process_security_policy_impl.h
|
| ===================================================================
|
| --- content/browser/child_process_security_policy_impl.h (revision 120580)
|
| +++ content/browser/child_process_security_policy_impl.h (working copy)
|
| @@ -2,8 +2,8 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef CONTENT_BROWSER_CHILD_PROCESS_SECURITY_POLICY_H_
|
| -#define CONTENT_BROWSER_CHILD_PROCESS_SECURITY_POLICY_H_
|
| +#ifndef CONTENT_BROWSER_CHILD_PROCESS_SECURITY_POLICY_IMPL_H_
|
| +#define CONTENT_BROWSER_CHILD_PROCESS_SECURITY_POLICY_IMPL_H_
|
|
|
| #pragma once
|
|
|
| @@ -11,41 +11,35 @@
|
| #include <set>
|
| #include <string>
|
|
|
| -#include "base/basictypes.h"
|
| +#include "base/compiler_specific.h"
|
| #include "base/gtest_prod_util.h"
|
| #include "base/memory/singleton.h"
|
| #include "base/synchronization/lock.h"
|
| -#include "content/common/content_export.h"
|
| +#include "content/public/browser/child_process_security_policy.h"
|
|
|
| class FilePath;
|
| class GURL;
|
|
|
| -// The ChildProcessSecurityPolicy class is used to grant and revoke security
|
| -// capabilities for child processes. For example, it restricts whether a child
|
| -// process is permitted to load file:// URLs based on whether the process
|
| -// has ever been commanded to load file:// URLs by the browser.
|
| -//
|
| -// ChildProcessSecurityPolicy is a singleton that may be used on any thread.
|
| -//
|
| -class CONTENT_EXPORT ChildProcessSecurityPolicy {
|
| +class CONTENT_EXPORT ChildProcessSecurityPolicyImpl
|
| + : NON_EXPORTED_BASE(public content::ChildProcessSecurityPolicy) {
|
| public:
|
| // Object can only be created through GetInstance() so the constructor is
|
| // private.
|
| - ~ChildProcessSecurityPolicy();
|
| + virtual ~ChildProcessSecurityPolicyImpl();
|
|
|
| - // There is one global ChildProcessSecurityPolicy object for the entire
|
| - // browser process. The object returned by this method may be accessed on
|
| - // any thread.
|
| - static ChildProcessSecurityPolicy* GetInstance();
|
| + static ChildProcessSecurityPolicyImpl* GetInstance();
|
|
|
| - // Web-safe schemes can be requested by any child process. Once a web-safe
|
| - // scheme has been registered, any child process can request URLs with
|
| - // that scheme. There is no mechanism for revoking web-safe schemes.
|
| - void RegisterWebSafeScheme(const std::string& scheme);
|
| + // ChildProcessSecurityPolicy implementation.
|
| + virtual void RegisterWebSafeScheme(const std::string& scheme) OVERRIDE;
|
| + virtual bool IsWebSafeScheme(const std::string& scheme) OVERRIDE;
|
| + virtual void RegisterDisabledSchemes(const std::set<std::string>& schemes)
|
| + OVERRIDE;
|
| + virtual void GrantPermissionsForFile(int child_id,
|
| + const FilePath& file,
|
| + int permissions) OVERRIDE;
|
| + virtual void GrantReadFile(int child_id, const FilePath& file) OVERRIDE;
|
| + virtual void GrantScheme(int child_id, const std::string& scheme) OVERRIDE;
|
|
|
| - // Returns true iff |scheme| has been registered as a web-safe scheme.
|
| - bool IsWebSafeScheme(const std::string& scheme);
|
| -
|
| // Pseudo schemes are treated differently than other schemes because they
|
| // cannot be requested like normal URLs. There is no mechanism for revoking
|
| // pseudo schemes.
|
| @@ -54,12 +48,6 @@
|
| // Returns true iff |scheme| has been registered as pseudo scheme.
|
| bool IsPseudoScheme(const std::string& scheme);
|
|
|
| - // Sets the list of disabled schemes.
|
| - // URLs using these schemes won't be loaded at all. The previous list of
|
| - // schemes is overwritten. An empty |schemes| disables this feature.
|
| - // Schemes listed as disabled take precedence over Web-safe schemes.
|
| - void RegisterDisabledSchemes(const std::set<std::string>& schemes);
|
| -
|
| // Returns true iff |scheme| is listed as a disabled scheme.
|
| bool IsDisabledScheme(const std::string& scheme);
|
|
|
| @@ -82,31 +70,16 @@
|
| // request the URL.
|
| void GrantRequestURL(int child_id, const GURL& url);
|
|
|
| - // Whenever the user picks a file from a <input type="file"> element, the
|
| - // browser should call this function to grant the child process the capability
|
| - // to upload the file to the web.
|
| - void GrantReadFile(int child_id, const FilePath& file);
|
| -
|
| // Grants the child process permission to enumerate all the files in
|
| // this directory and read those files.
|
| void GrantReadDirectory(int child_id, const FilePath& directory);
|
|
|
| - // Grants certain permissions to a file. |permissions| must be a bit-set of
|
| - // base::PlatformFileFlags.
|
| - void GrantPermissionsForFile(int child_id,
|
| - const FilePath& file,
|
| - int permissions);
|
| -
|
| // Revokes all permissions granted to the given file.
|
| void RevokeAllPermissionsForFile(int child_id, const FilePath& file);
|
|
|
| // Grants access permission to the given filesystem_id.
|
| void GrantAccessFileSystem(int child_id, const std::string& filesystem_id);
|
|
|
| - // Grants the child process the capability to access URLs of the provided
|
| - // scheme.
|
| - void GrantScheme(int child_id, const std::string& scheme);
|
| -
|
| // Grant the child process the ability to use Web UI Bindings.
|
| void GrantWebUIBindings(int child_id);
|
|
|
| @@ -166,9 +139,9 @@
|
| typedef std::map<int, SecurityState*> SecurityStateMap;
|
| typedef std::map<int, int> WorkerToMainProcessMap;
|
|
|
| - // Obtain an instance of ChildProcessSecurityPolicy via GetInstance().
|
| - ChildProcessSecurityPolicy();
|
| - friend struct DefaultSingletonTraits<ChildProcessSecurityPolicy>;
|
| + // Obtain an instance of ChildProcessSecurityPolicyImpl via GetInstance().
|
| + ChildProcessSecurityPolicyImpl();
|
| + friend struct DefaultSingletonTraits<ChildProcessSecurityPolicyImpl>;
|
|
|
| // Adds child process during registration.
|
| void AddChild(int child_id);
|
| @@ -207,7 +180,7 @@
|
| // corresponds to which main js thread child process.
|
| WorkerToMainProcessMap worker_map_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(ChildProcessSecurityPolicy);
|
| + DISALLOW_COPY_AND_ASSIGN(ChildProcessSecurityPolicyImpl);
|
| };
|
|
|
| -#endif // CONTENT_BROWSER_CHILD_PROCESS_SECURITY_POLICY_H_
|
| +#endif // CONTENT_BROWSER_CHILD_PROCESS_SECURITY_POLICY_IMPL_H_
|
|
|