| 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
|
|
|