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

Side by Side Diff: chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.cc

Issue 15521002: Flag and whitelist to allow crxfs api in NaCl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ifdef Created 7 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
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 "chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory .h" 5 #include "chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory .h"
6 6
7 #include "chrome/browser/renderer_host/pepper/pepper_broker_message_filter.h" 7 #include "chrome/browser/renderer_host/pepper/pepper_broker_message_filter.h"
8 #include "chrome/browser/renderer_host/pepper/pepper_crx_file_system_message_fil ter.h" 8 #include "chrome/browser/renderer_host/pepper/pepper_crx_file_system_message_fil ter.h"
9 #include "chrome/browser/renderer_host/pepper/pepper_extensions_common_message_f ilter.h" 9 #include "chrome/browser/renderer_host/pepper/pepper_extensions_common_message_f ilter.h"
10 #include "chrome/browser/renderer_host/pepper/pepper_flash_browser_host.h" 10 #include "chrome/browser/renderer_host/pepper/pepper_flash_browser_host.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 if (host_->GetPpapiHost()->permissions().HasPermission( 63 if (host_->GetPpapiHost()->permissions().HasPermission(
64 ppapi::PERMISSION_PRIVATE)) { 64 ppapi::PERMISSION_PRIVATE)) {
65 switch (message.type()) { 65 switch (message.type()) {
66 case PpapiHostMsg_Broker_Create::ID: { 66 case PpapiHostMsg_Broker_Create::ID: {
67 scoped_refptr<ResourceMessageFilter> broker_filter( 67 scoped_refptr<ResourceMessageFilter> broker_filter(
68 new PepperBrokerMessageFilter(instance, host_)); 68 new PepperBrokerMessageFilter(instance, host_));
69 return scoped_ptr<ResourceHost>(new MessageFilterHost( 69 return scoped_ptr<ResourceHost>(new MessageFilterHost(
70 host_->GetPpapiHost(), instance, params.pp_resource(), 70 host_->GetPpapiHost(), instance, params.pp_resource(),
71 broker_filter)); 71 broker_filter));
72 } 72 }
73 case PpapiHostMsg_Ext_CrxFileSystem_Create::ID: {
74 PepperCrxFileSystemMessageFilter* crxfs_filter =
75 PepperCrxFileSystemMessageFilter::Create(instance, host_);
76 if (!crxfs_filter)
77 return scoped_ptr<ResourceHost>();
78 return scoped_ptr<ResourceHost>(new MessageFilterHost(
79 host, instance, params.pp_resource(), crxfs_filter));
80 }
81 case PpapiHostMsg_Talk_Create::ID: 73 case PpapiHostMsg_Talk_Create::ID:
82 return scoped_ptr<ResourceHost>(new PepperTalkHost( 74 return scoped_ptr<ResourceHost>(new PepperTalkHost(
83 host_, instance, params.pp_resource())); 75 host_, instance, params.pp_resource()));
84 } 76 }
85 } 77 }
86 78
87 // Flash interfaces. 79 // Flash interfaces.
88 if (host_->GetPpapiHost()->permissions().HasPermission( 80 if (host_->GetPpapiHost()->permissions().HasPermission(
89 ppapi::PERMISSION_FLASH)) { 81 ppapi::PERMISSION_FLASH)) {
90 switch (message.type()) { 82 switch (message.type()) {
91 case PpapiHostMsg_Flash_Create::ID: 83 case PpapiHostMsg_Flash_Create::ID:
92 return scoped_ptr<ResourceHost>(new PepperFlashBrowserHost( 84 return scoped_ptr<ResourceHost>(new PepperFlashBrowserHost(
93 host_, instance, params.pp_resource())); 85 host_, instance, params.pp_resource()));
94 case PpapiHostMsg_FlashClipboard_Create::ID: { 86 case PpapiHostMsg_FlashClipboard_Create::ID: {
95 scoped_refptr<ResourceMessageFilter> clipboard_filter( 87 scoped_refptr<ResourceMessageFilter> clipboard_filter(
96 new PepperFlashClipboardMessageFilter); 88 new PepperFlashClipboardMessageFilter);
97 return scoped_ptr<ResourceHost>(new MessageFilterHost( 89 return scoped_ptr<ResourceHost>(new MessageFilterHost(
98 host_->GetPpapiHost(), instance, params.pp_resource(), 90 host_->GetPpapiHost(), instance, params.pp_resource(),
99 clipboard_filter)); 91 clipboard_filter));
100 } 92 }
101 case PpapiHostMsg_FlashDeviceID_Create::ID: 93 case PpapiHostMsg_FlashDeviceID_Create::ID:
102 return scoped_ptr<ResourceHost>(new PepperFlashDeviceIDHost( 94 return scoped_ptr<ResourceHost>(new PepperFlashDeviceIDHost(
103 host_, instance, params.pp_resource())); 95 host_, instance, params.pp_resource()));
104 } 96 }
105 } 97 }
98
99 // Permissions for the following interfaces will be checked at the
100 // time of the corresponding instance's methods calls (because
101 // permission check can be performed only on the UI
102 // thread). Currently these interfaces are available only for
103 // whitelisted apps which may not have access to the other private
104 // interfaces.
105 if (message.type() == PpapiHostMsg_Ext_CrxFileSystem_Create::ID) {
106 PepperCrxFileSystemMessageFilter* crxfs_filter =
107 PepperCrxFileSystemMessageFilter::Create(instance, host_);
108 if (!crxfs_filter)
109 return scoped_ptr<ResourceHost>();
110 return scoped_ptr<ResourceHost>(new MessageFilterHost(
111 host, instance, params.pp_resource(), crxfs_filter));
112 }
113
106 return scoped_ptr<ResourceHost>(); 114 return scoped_ptr<ResourceHost>();
107 } 115 }
108 116
109 } // namespace chrome 117 } // namespace chrome
OLDNEW
« no previous file with comments | « chrome/browser/pepper_permission_util.cc ('k') | chrome/browser/renderer_host/pepper/pepper_crx_file_system_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698