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

Side by Side Diff: content/browser/renderer_host/file_utilities_message_filter.cc

Issue 292443004: Remove IPC_BEGIN_MESSAGE_MAP_EX macro since r270839 made all bad IPCs kill their child processes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/file_utilities_message_filter.h" 5 #include "content/browser/renderer_host/file_utilities_message_filter.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "content/browser/child_process_security_policy_impl.h" 8 #include "content/browser/child_process_security_policy_impl.h"
9 #include "content/common/file_utilities_messages.h" 9 #include "content/common/file_utilities_messages.h"
10 10
11 namespace content { 11 namespace content {
12 12
13 FileUtilitiesMessageFilter::FileUtilitiesMessageFilter(int process_id) 13 FileUtilitiesMessageFilter::FileUtilitiesMessageFilter(int process_id)
14 : BrowserMessageFilter(FileUtilitiesMsgStart), 14 : BrowserMessageFilter(FileUtilitiesMsgStart),
15 process_id_(process_id) { 15 process_id_(process_id) {
16 } 16 }
17 17
18 FileUtilitiesMessageFilter::~FileUtilitiesMessageFilter() { 18 FileUtilitiesMessageFilter::~FileUtilitiesMessageFilter() {
19 } 19 }
20 20
21 void FileUtilitiesMessageFilter::OverrideThreadForMessage( 21 void FileUtilitiesMessageFilter::OverrideThreadForMessage(
22 const IPC::Message& message, 22 const IPC::Message& message,
23 BrowserThread::ID* thread) { 23 BrowserThread::ID* thread) {
24 if (IPC_MESSAGE_CLASS(message) == FileUtilitiesMsgStart) 24 if (IPC_MESSAGE_CLASS(message) == FileUtilitiesMsgStart)
25 *thread = BrowserThread::FILE; 25 *thread = BrowserThread::FILE;
26 } 26 }
27 27
28 bool FileUtilitiesMessageFilter::OnMessageReceived(const IPC::Message& message, 28 bool FileUtilitiesMessageFilter::OnMessageReceived(
29 bool* message_was_ok) { 29 const IPC::Message& message) {
30 bool handled = true; 30 bool handled = true;
31 IPC_BEGIN_MESSAGE_MAP_EX(FileUtilitiesMessageFilter, message, *message_was_ok) 31 IPC_BEGIN_MESSAGE_MAP(FileUtilitiesMessageFilter, message)
32 IPC_MESSAGE_HANDLER(FileUtilitiesMsg_GetFileInfo, OnGetFileInfo) 32 IPC_MESSAGE_HANDLER(FileUtilitiesMsg_GetFileInfo, OnGetFileInfo)
33 IPC_MESSAGE_UNHANDLED(handled = false) 33 IPC_MESSAGE_UNHANDLED(handled = false)
34 IPC_END_MESSAGE_MAP() 34 IPC_END_MESSAGE_MAP()
35 return handled; 35 return handled;
36 } 36 }
37 37
38 void FileUtilitiesMessageFilter::OnGetFileInfo( 38 void FileUtilitiesMessageFilter::OnGetFileInfo(
39 const base::FilePath& path, 39 const base::FilePath& path,
40 base::File::Info* result, 40 base::File::Info* result,
41 base::File::Error* status) { 41 base::File::Error* status) {
42 *result = base::File::Info(); 42 *result = base::File::Info();
43 *status = base::File::FILE_OK; 43 *status = base::File::FILE_OK;
44 44
45 // Get file metadata only when the child process has been granted 45 // Get file metadata only when the child process has been granted
46 // permission to read the file. 46 // permission to read the file.
47 if (!ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile( 47 if (!ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile(
48 process_id_, path)) { 48 process_id_, path)) {
49 return; 49 return;
50 } 50 }
51 51
52 if (!base::GetFileInfo(path, result)) 52 if (!base::GetFileInfo(path, result))
53 *status = base::File::FILE_ERROR_FAILED; 53 *status = base::File::FILE_ERROR_FAILED;
54 } 54 }
55 55
56 } // namespace content 56 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698