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

Unified Diff: chrome/browser/renderer_host/file_utilities_message_filter.cc

Issue 6532073: Move core pieces of browser\renderer_host to src\content. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 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: chrome/browser/renderer_host/file_utilities_message_filter.cc
===================================================================
--- chrome/browser/renderer_host/file_utilities_message_filter.cc (revision 75488)
+++ chrome/browser/renderer_host/file_utilities_message_filter.cc (working copy)
@@ -1,106 +0,0 @@
-// Copyright (c) 2010 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.
-
-#include "chrome/browser/renderer_host/file_utilities_message_filter.h"
-
-#include "base/file_util.h"
-#include "chrome/browser/child_process_security_policy.h"
-#include "chrome/common/file_utilities_messages.h"
-
-
-FileUtilitiesMessageFilter::FileUtilitiesMessageFilter(int process_id)
- : process_id_(process_id) {
-}
-
-FileUtilitiesMessageFilter::~FileUtilitiesMessageFilter() {
-}
-
-void FileUtilitiesMessageFilter::OverrideThreadForMessage(
- const IPC::Message& message,
- BrowserThread::ID* thread) {
- if (IPC_MESSAGE_CLASS(message) == FileUtilitiesMsgStart)
- *thread = BrowserThread::FILE;
-}
-
-bool FileUtilitiesMessageFilter::OnMessageReceived(const IPC::Message& message,
- bool* message_was_ok) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP_EX(FileUtilitiesMessageFilter, message, *message_was_ok)
- IPC_MESSAGE_HANDLER(FileUtilitiesMsg_GetFileSize, OnGetFileSize)
- IPC_MESSAGE_HANDLER(FileUtilitiesMsg_GetFileModificationTime,
- OnGetFileModificationTime)
- IPC_MESSAGE_HANDLER(FileUtilitiesMsg_OpenFile, OnOpenFile)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
-}
-
-void FileUtilitiesMessageFilter::OnGetFileSize(const FilePath& path,
- int64* result) {
- // Get file size only when the child process has been granted permission to
- // upload the file.
- if (!ChildProcessSecurityPolicy::GetInstance()->CanReadFile(
- process_id_, path)) {
- *result = -1;
- return;
- }
-
- base::PlatformFileInfo file_info;
- file_info.size = 0;
- file_util::GetFileInfo(path, &file_info);
- *result = file_info.size;
-}
-
-void FileUtilitiesMessageFilter::OnGetFileModificationTime(
- const FilePath& path, base::Time* result) {
- // Get file modification time only when the child process has been granted
- // permission to upload the file.
- if (!ChildProcessSecurityPolicy::GetInstance()->CanReadFile(
- process_id_, path)) {
- *result = base::Time();
- return;
- }
-
- base::PlatformFileInfo file_info;
- file_info.size = 0;
- file_util::GetFileInfo(path, &file_info);
- *result = file_info.last_modified;
-}
-
-void FileUtilitiesMessageFilter::OnOpenFile(
- const FilePath& path,
- int mode,
- IPC::PlatformFileForTransit* result) {
- // Open the file only when the child process has been granted permission to
- // upload the file.
- // TODO(jianli): Do we need separate permission to control opening the file?
- if (!ChildProcessSecurityPolicy::GetInstance()->CanReadFile(
- process_id_, path)) {
-#if defined(OS_WIN)
- *result = base::kInvalidPlatformFileValue;
-#elif defined(OS_POSIX)
- *result = base::FileDescriptor(base::kInvalidPlatformFileValue, true);
-#endif
- return;
- }
-
- base::PlatformFile file_handle = base::CreatePlatformFile(
- path,
- (mode == 0) ? (base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ)
- : (base::PLATFORM_FILE_CREATE_ALWAYS |
- base::PLATFORM_FILE_WRITE),
- NULL, NULL);
-
-#if defined(OS_WIN)
- // Duplicate the file handle so that the renderer process can access the file.
- if (!DuplicateHandle(GetCurrentProcess(), file_handle,
- peer_handle(), result, 0, false,
- DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS)) {
- // file_handle is closed whether or not DuplicateHandle succeeds.
- *result = INVALID_HANDLE_VALUE;
- }
-#else
- *result = base::FileDescriptor(file_handle, true);
-#endif
-}

Powered by Google App Engine
This is Rietveld 408576698