Chromium Code Reviews| Index: content/browser/renderer_host/pepper_file_message_filter.cc |
| =================================================================== |
| --- content/browser/renderer_host/pepper_file_message_filter.cc (revision 138610) |
| +++ content/browser/renderer_host/pepper_file_message_filter.cc (working copy) |
| @@ -12,7 +12,6 @@ |
| #include "content/browser/child_process_security_policy_impl.h" |
| #include "content/browser/renderer_host/render_process_host_impl.h" |
| #include "content/common/pepper_file_messages.h" |
| -#include "content/public/browser/browser_context.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "ipc/ipc_platform_file.h" |
| #include "webkit/plugins/ppapi/file_path.h" |
| @@ -37,11 +36,9 @@ |
| base::PLATFORM_FILE_EXCLUSIVE_WRITE | |
| base::PLATFORM_FILE_WRITE_ATTRIBUTES; |
| -PepperFileMessageFilter::PepperFileMessageFilter( |
| - int child_id, content::BrowserContext* browser_context) |
| +PepperFileMessageFilter::PepperFileMessageFilter(int child_id) |
| : child_id_(child_id), |
| channel_(NULL) { |
| - pepper_path_ = GetDataDirName(browser_context->GetPath()); |
| } |
| void PepperFileMessageFilter::OverrideThreadForMessage( |
| @@ -225,6 +222,30 @@ |
| FilePath PepperFileMessageFilter::ValidateAndConvertPepperFilePath( |
| const webkit::ppapi::PepperFilePath& pepper_path, int flags) { |
| FilePath file_path; // Empty path returned on error. |
| + if (pepper_path.domain() == webkit::ppapi::PepperFilePath::DOMAIN_ABSOLUTE) { |
| + if (pepper_path.path().IsAbsolute() && |
|
brettw
2012/05/29 18:14:15
Indent 2 less spaces.
|
| + ChildProcessSecurityPolicyImpl::GetInstance()->HasPermissionsForFile( |
| + child_id(), pepper_path.path(), flags)) |
| + file_path = pepper_path.path(); |
| + } |
| + return file_path; |
| +} |
| + |
| +PepperTrustedFileMessageFilter::PepperTrustedFileMessageFilter( |
| + int child_id, |
| + const std::string& plugin_name, |
| + const FilePath& profile_data_directory) |
| + : PepperFileMessageFilter(child_id) { |
|
brettw
2012/05/29 18:14:15
Colon should be indented 4 spaces total.
|
| + plugin_data_directory_ = |
| + GetDataDirName(profile_data_directory).Append(plugin_name); |
| +} |
| + |
| +PepperTrustedFileMessageFilter::~PepperTrustedFileMessageFilter() { |
| +} |
| + |
| +FilePath PepperTrustedFileMessageFilter::ValidateAndConvertPepperFilePath( |
| + const webkit::ppapi::PepperFilePath& pepper_path, int flags) { |
| + FilePath file_path; // Empty path returned on error. |
| switch(pepper_path.domain()) { |
| case webkit::ppapi::PepperFilePath::DOMAIN_ABSOLUTE: |
| if (pepper_path.path().IsAbsolute() && |
| @@ -235,7 +256,7 @@ |
| case webkit::ppapi::PepperFilePath::DOMAIN_MODULE_LOCAL: |
| if (!pepper_path.path().IsAbsolute() && |
| !pepper_path.path().ReferencesParent()) |
| - file_path = pepper_path_.Append(pepper_path.path()); |
| + file_path = plugin_data_directory_.Append(pepper_path.path()); |
| break; |
| default: |
| NOTREACHED(); |