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

Unified Diff: content/browser/child_process_security_policy_impl.h

Issue 9360014: Create a content public browser API around the ChildProcessSecurityPolicy class. The implementati... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 8 years, 10 months 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: 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_
« no previous file with comments | « content/browser/child_process_security_policy_browsertest.cc ('k') | content/browser/child_process_security_policy_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698