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

Unified Diff: ppapi/proxy/interface_list.cc

Issue 112343005: Pepper: Finish support for dev channel APIs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: style nit Created 7 years 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: ppapi/proxy/interface_list.cc
diff --git a/ppapi/proxy/interface_list.cc b/ppapi/proxy/interface_list.cc
index 57cd79cd97c8c3d7078d7bd87d659aa2563728e6..a67565d90f6031c5e250ed0fa4364c577823074f 100644
--- a/ppapi/proxy/interface_list.cc
+++ b/ppapi/proxy/interface_list.cc
@@ -172,29 +172,41 @@ InterfaceList::InterfaceList() {
#define PROXIED_IFACE(iface_str, iface_struct) \
AddPPB(iface_str, \
INTERFACE_THUNK_NAME(iface_struct)(), \
- current_required_permission);
+ current_required_permission, \
+ requires_dev_channel);
{
Permission current_required_permission = PERMISSION_NONE;
+ bool requires_dev_channel = false;
#include "ppapi/thunk/interfaces_ppb_private_no_permissions.h"
#include "ppapi/thunk/interfaces_ppb_public_stable.h"
}
{
Permission current_required_permission = PERMISSION_DEV;
+ bool requires_dev_channel = false;
#include "ppapi/thunk/interfaces_ppb_public_dev.h"
}
{
Permission current_required_permission = PERMISSION_PRIVATE;
+ bool requires_dev_channel = false;
#include "ppapi/thunk/interfaces_ppb_private.h"
}
{
#if !defined(OS_NACL)
Permission current_required_permission = PERMISSION_FLASH;
+ bool requires_dev_channel = false;
#include "ppapi/thunk/interfaces_ppb_private_flash.h"
#endif // !defined(OS_NACL)
}
-
- // TODO(teravest): Add dev channel interfaces here.
+ {
+ // TODO(teravest): These lines should be uncommented when a dev channel
+ // interface is added. They're commented right now because they cause an
+ // unused variable warning.
+ //
+ // Permission current_required_permission = PERMISSION_NONE;
+ // bool requires_dev_channel = true;
+ // #include "ppapi/thunk/interfaces_ppb_public_dev_channel.h"
+ }
#undef PROXIED_API
#undef PROXIED_IFACE
@@ -206,34 +218,38 @@ InterfaceList::InterfaceList() {
AddProxy(API_ID_RESOURCE_CREATION, &ResourceCreationProxy::Create);
AddProxy(API_ID_PPP_CLASS, &PPP_Class_Proxy::Create);
AddPPB(PPB_CORE_INTERFACE_1_0,
- PPB_Core_Proxy::GetPPB_Core_Interface(), PERMISSION_NONE);
+ PPB_Core_Proxy::GetPPB_Core_Interface(), PERMISSION_NONE, false);
AddPPB(PPB_MESSAGELOOP_INTERFACE_1_0,
- PPB_MessageLoop_Proxy::GetInterface(), PERMISSION_NONE);
+ PPB_MessageLoop_Proxy::GetInterface(), PERMISSION_NONE, false);
AddPPB(PPB_OPENGLES2_INTERFACE_1_0,
- PPB_OpenGLES2_Shared::GetInterface(), PERMISSION_NONE);
+ PPB_OpenGLES2_Shared::GetInterface(), PERMISSION_NONE, false);
AddPPB(PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0,
- PPB_OpenGLES2_Shared::GetInstancedArraysInterface(), PERMISSION_NONE);
+ PPB_OpenGLES2_Shared::GetInstancedArraysInterface(),
+ PERMISSION_NONE, false);
AddPPB(PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0,
- PPB_OpenGLES2_Shared::GetFramebufferBlitInterface(), PERMISSION_NONE);
+ PPB_OpenGLES2_Shared::GetFramebufferBlitInterface(),
+ PERMISSION_NONE, false);
AddPPB(PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0,
PPB_OpenGLES2_Shared::GetFramebufferMultisampleInterface(),
- PERMISSION_NONE);
+ PERMISSION_NONE, false);
AddPPB(PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0,
PPB_OpenGLES2_Shared::GetChromiumEnableFeatureInterface(),
- PERMISSION_NONE);
+ PERMISSION_NONE, false);
AddPPB(PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0,
- PPB_OpenGLES2_Shared::GetChromiumMapSubInterface(), PERMISSION_NONE);
+ PPB_OpenGLES2_Shared::GetChromiumMapSubInterface(),
+ PERMISSION_NONE, false);
AddPPB(PPB_OPENGLES2_CHROMIUMMAPSUB_DEV_INTERFACE_1_0,
- PPB_OpenGLES2_Shared::GetChromiumMapSubInterface(), PERMISSION_NONE);
+ PPB_OpenGLES2_Shared::GetChromiumMapSubInterface(),
+ PERMISSION_NONE, false);
AddPPB(PPB_OPENGLES2_QUERY_INTERFACE_1_0,
- PPB_OpenGLES2_Shared::GetQueryInterface(), PERMISSION_NONE);
+ PPB_OpenGLES2_Shared::GetQueryInterface(), PERMISSION_NONE, false);
AddPPB(PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0,
PPB_Var_Shared::GetVarArrayBufferInterface1_0(),
- PERMISSION_NONE);
+ PERMISSION_NONE, false);
AddPPB(PPB_VAR_INTERFACE_1_1,
- PPB_Var_Shared::GetVarInterface1_1(), PERMISSION_NONE);
+ PPB_Var_Shared::GetVarInterface1_1(), PERMISSION_NONE, false);
AddPPB(PPB_VAR_INTERFACE_1_0,
- PPB_Var_Shared::GetVarInterface1_0(), PERMISSION_NONE);
+ PPB_Var_Shared::GetVarInterface1_0(), PERMISSION_NONE, false);
#if !defined(OS_NACL)
// PPB (browser) interfaces.
@@ -242,11 +258,11 @@ InterfaceList::InterfaceList() {
AddProxy(API_ID_PPB_INSTANCE_PRIVATE, &ProxyFactory<PPB_Instance_Proxy>);
AddPPB(PPB_INSTANCE_PRIVATE_INTERFACE_0_1,
thunk::GetPPB_Instance_Private_0_1_Thunk(),
- PERMISSION_PRIVATE);
+ PERMISSION_PRIVATE, false);
AddProxy(API_ID_PPB_VAR_DEPRECATED, &ProxyFactory<PPB_Var_Deprecated_Proxy>);
AddPPB(PPB_VAR_DEPRECATED_INTERFACE,
- PPB_Var_Deprecated_Proxy::GetProxyInterface(), PERMISSION_DEV);
+ PPB_Var_Deprecated_Proxy::GetProxyInterface(), PERMISSION_DEV, false);
// TODO(tomfinegan): Figure out where to put these once we refactor things
// to load the PPP interface struct from the PPB interface.
@@ -257,7 +273,7 @@ InterfaceList::InterfaceList() {
#endif
AddProxy(API_ID_PPB_TESTING, &ProxyFactory<PPB_Testing_Proxy>);
AddPPB(PPB_TESTING_PRIVATE_INTERFACE,
- PPB_Testing_Proxy::GetProxyInterface(), PERMISSION_TESTING);
+ PPB_Testing_Proxy::GetProxyInterface(), PERMISSION_TESTING, false);
// PPP (plugin) interfaces.
// TODO(brettw) move these to interface_list*.h
@@ -323,7 +339,8 @@ const void* InterfaceList::GetInterfaceForPPB(const std::string& name) const {
if (found == name_to_browser_info_.end())
return NULL;
- // Dev channel checking goes here.
+ if (found->second.requires_dev_channel && !g_supports_dev_channel.Get())
+ return NULL;
if (g_process_global_permissions.Get().HasPermission(
found->second.required_permission))
@@ -357,15 +374,17 @@ void InterfaceList::AddProxy(ApiID id,
void InterfaceList::AddPPB(const char* name,
const void* iface,
- Permission perm) {
+ Permission perm,
+ bool requires_dev_channel) {
DCHECK(name_to_browser_info_.find(name) == name_to_browser_info_.end());
- name_to_browser_info_[name] = InterfaceInfo(iface, perm);
+ name_to_browser_info_[name] =
+ InterfaceInfo(iface, perm, requires_dev_channel);
}
void InterfaceList::AddPPP(const char* name,
const void* iface) {
DCHECK(name_to_plugin_info_.find(name) == name_to_plugin_info_.end());
- name_to_plugin_info_[name] = InterfaceInfo(iface, PERMISSION_NONE);
+ name_to_plugin_info_[name] = InterfaceInfo(iface, PERMISSION_NONE, false);
}
} // namespace proxy

Powered by Google App Engine
This is Rietveld 408576698