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

Side by Side Diff: content/renderer/pepper/pepper_plugin_delegate_impl.cc

Issue 19723010: Pepper Message Filters: Port to use explicit permission grants in ChildProcessSecurityPolicy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@0044-write-support-remove-child-process-security-policy-bitmask-usage
Patch Set: Created 7 years, 4 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
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/renderer/pepper/pepper_plugin_delegate_impl.h" 5 #include "content/renderer/pepper/pepper_plugin_delegate_impl.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <cstddef> 8 #include <cstddef>
9 #include <map> 9 #include <map>
10 #include <queue> 10 #include <queue>
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 #include "media/video/capture/video_capture_proxy.h" 74 #include "media/video/capture/video_capture_proxy.h"
75 #include "ppapi/c/dev/pp_video_dev.h" 75 #include "ppapi/c/dev/pp_video_dev.h"
76 #include "ppapi/c/pp_errors.h" 76 #include "ppapi/c/pp_errors.h"
77 #include "ppapi/c/private/ppb_flash.h" 77 #include "ppapi/c/private/ppb_flash.h"
78 #include "ppapi/host/ppapi_host.h" 78 #include "ppapi/host/ppapi_host.h"
79 #include "ppapi/proxy/host_dispatcher.h" 79 #include "ppapi/proxy/host_dispatcher.h"
80 #include "ppapi/proxy/ppapi_messages.h" 80 #include "ppapi/proxy/ppapi_messages.h"
81 #include "ppapi/proxy/url_loader_resource.h" 81 #include "ppapi/proxy/url_loader_resource.h"
82 #include "ppapi/shared_impl/api_id.h" 82 #include "ppapi/shared_impl/api_id.h"
83 #include "ppapi/shared_impl/file_path.h" 83 #include "ppapi/shared_impl/file_path.h"
84 #include "ppapi/shared_impl/file_type_conversion.h"
84 #include "ppapi/shared_impl/platform_file.h" 85 #include "ppapi/shared_impl/platform_file.h"
85 #include "ppapi/shared_impl/ppapi_globals.h" 86 #include "ppapi/shared_impl/ppapi_globals.h"
86 #include "ppapi/shared_impl/ppapi_permissions.h" 87 #include "ppapi/shared_impl/ppapi_permissions.h"
87 #include "ppapi/shared_impl/ppapi_preferences.h" 88 #include "ppapi/shared_impl/ppapi_preferences.h"
88 #include "ppapi/shared_impl/ppb_device_ref_shared.h" 89 #include "ppapi/shared_impl/ppb_device_ref_shared.h"
89 #include "ppapi/shared_impl/ppp_instance_combined.h" 90 #include "ppapi/shared_impl/ppp_instance_combined.h"
90 #include "ppapi/shared_impl/resource_tracker.h" 91 #include "ppapi/shared_impl/resource_tracker.h"
91 #include "ppapi/shared_impl/socket_option_data.h" 92 #include "ppapi/shared_impl/socket_option_data.h"
92 #include "ppapi/thunk/enter.h" 93 #include "ppapi/thunk/enter.h"
93 #include "ppapi/thunk/ppb_tcp_server_socket_private_api.h" 94 #include "ppapi/thunk/ppb_tcp_server_socket_private_api.h"
(...skipping 800 matching lines...) Expand 10 before | Expand all | Expand 10 after
894 if (!plugin_module) 895 if (!plugin_module)
895 return; 896 return;
896 897
897 PepperBrokerImpl* broker = 898 PepperBrokerImpl* broker =
898 static_cast<PepperBrokerImpl*>(plugin_module->GetBroker()); 899 static_cast<PepperBrokerImpl*>(plugin_module->GetBroker());
899 broker->OnBrokerPermissionResult(client.get(), result); 900 broker->OnBrokerPermissionResult(client.get(), result);
900 } 901 }
901 902
902 bool PepperPluginDelegateImpl::AsyncOpenFile( 903 bool PepperPluginDelegateImpl::AsyncOpenFile(
903 const base::FilePath& path, 904 const base::FilePath& path,
904 int flags, 905 int pp_open_flags,
905 const AsyncOpenFileCallback& callback) { 906 const AsyncOpenFileCallback& callback) {
906 int message_id = pending_async_open_files_.Add( 907 int message_id = pending_async_open_files_.Add(
907 new AsyncOpenFileCallback(callback)); 908 new AsyncOpenFileCallback(callback));
908 IPC::Message* msg = new ViewHostMsg_AsyncOpenFile( 909 IPC::Message* msg = new ViewHostMsg_AsyncOpenPepperFile(
909 render_view_->routing_id(), path, flags, message_id); 910 render_view_->routing_id(), path, pp_open_flags, message_id);
910 return render_view_->Send(msg); 911 return render_view_->Send(msg);
911 } 912 }
912 913
913 void PepperPluginDelegateImpl::OnAsyncFileOpened( 914 void PepperPluginDelegateImpl::OnAsyncFileOpened(
914 base::PlatformFileError error_code, 915 base::PlatformFileError error_code,
915 base::PlatformFile file, 916 base::PlatformFile file,
916 int message_id) { 917 int message_id) {
917 AsyncOpenFileCallback* callback = 918 AsyncOpenFileCallback* callback =
918 pending_async_open_files_.Lookup(message_id); 919 pending_async_open_files_.Lookup(message_id);
919 DCHECK(callback); 920 DCHECK(callback);
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1055 const ReadDirectoryCallback& success_callback, 1056 const ReadDirectoryCallback& success_callback,
1056 const StatusCallback& error_callback) { 1057 const StatusCallback& error_callback) {
1057 FileSystemDispatcher* file_system_dispatcher = 1058 FileSystemDispatcher* file_system_dispatcher =
1058 ChildThread::current()->file_system_dispatcher(); 1059 ChildThread::current()->file_system_dispatcher();
1059 file_system_dispatcher->ReadDirectory( 1060 file_system_dispatcher->ReadDirectory(
1060 directory_path, success_callback, error_callback); 1061 directory_path, success_callback, error_callback);
1061 } 1062 }
1062 1063
1063 void PepperPluginDelegateImpl::AsyncOpenFileSystemURL( 1064 void PepperPluginDelegateImpl::AsyncOpenFileSystemURL(
1064 const GURL& path, 1065 const GURL& path,
1065 int flags, 1066 int pp_open_flags,
1066 const AsyncOpenFileSystemURLCallback& callback) { 1067 const AsyncOpenFileSystemURLCallback& callback) {
1068 // TODO(tommycli): Eventually just pass the Pepper flags straight to the
1069 // FileSystemDispatcher so it can handle doing the security check.
1070 int platform_file_flags = 0;
1071 if (!ppapi::PepperFileOpenFlagsToPlatformFileFlags(
1072 pp_open_flags, &platform_file_flags)) {
1073 DidFailOpenFileSystemURL(callback, base::PLATFORM_FILE_ERROR_FAILED);
1074 return;
1075 }
1076
1067 FileSystemDispatcher* file_system_dispatcher = 1077 FileSystemDispatcher* file_system_dispatcher =
1068 ChildThread::current()->file_system_dispatcher(); 1078 ChildThread::current()->file_system_dispatcher();
1069 file_system_dispatcher->OpenFile( 1079 file_system_dispatcher->OpenFile(
1070 path, flags, 1080 path, platform_file_flags,
1071 base::Bind(&DidOpenFileSystemURL, callback), 1081 base::Bind(&DidOpenFileSystemURL, callback),
1072 base::Bind(&DidFailOpenFileSystemURL, callback)); 1082 base::Bind(&DidFailOpenFileSystemURL, callback));
1073 } 1083 }
1074 1084
1075 void PepperPluginDelegateImpl::SyncGetFileSystemPlatformPath( 1085 void PepperPluginDelegateImpl::SyncGetFileSystemPlatformPath(
1076 const GURL& url, base::FilePath* platform_path) { 1086 const GURL& url, base::FilePath* platform_path) {
1077 RenderThreadImpl::current()->Send(new FileSystemHostMsg_SyncGetPlatformPath( 1087 RenderThreadImpl::current()->Send(new FileSystemHostMsg_SyncGetPlatformPath(
1078 url, platform_path)); 1088 url, platform_path));
1079 } 1089 }
1080 1090
(...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after
1637 should_close_source); 1647 should_close_source);
1638 } 1648 }
1639 1649
1640 bool PepperPluginDelegateImpl::IsRunningInProcess(PP_Instance instance) const { 1650 bool PepperPluginDelegateImpl::IsRunningInProcess(PP_Instance instance) const {
1641 RendererPpapiHostImpl* host = 1651 RendererPpapiHostImpl* host =
1642 RendererPpapiHostImpl::GetForPPInstance(instance); 1652 RendererPpapiHostImpl::GetForPPInstance(instance);
1643 return host && host->IsRunningInProcess(); 1653 return host && host->IsRunningInProcess();
1644 } 1654 }
1645 1655
1646 } // namespace content 1656 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698