diff options
31 files changed, 232 insertions, 355 deletions
diff --git a/chrome/browser/component_updater/ppapi_utils.cc b/chrome/browser/component_updater/ppapi_utils.cc index 2443291..be1ebef 100644 --- a/chrome/browser/component_updater/ppapi_utils.cc +++ b/chrome/browser/component_updater/ppapi_utils.cc @@ -28,7 +28,6 @@ #include "ppapi/c/dev/ppb_truetype_font_dev.h" #include "ppapi/c/dev/ppb_url_util_dev.h" #include "ppapi/c/dev/ppb_var_deprecated.h" -#include "ppapi/c/dev/ppb_var_resource_dev.h" #include "ppapi/c/dev/ppb_video_capture_dev.h" #include "ppapi/c/dev/ppb_video_decoder_dev.h" #include "ppapi/c/dev/ppb_view_dev.h" diff --git a/content/renderer/pepper/plugin_module.cc b/content/renderer/pepper/plugin_module.cc index 4b3bc09..a1fd8d5 100644 --- a/content/renderer/pepper/plugin_module.cc +++ b/content/renderer/pepper/plugin_module.cc @@ -50,7 +50,6 @@ #include "ppapi/c/dev/ppb_truetype_font_dev.h" #include "ppapi/c/dev/ppb_url_util_dev.h" #include "ppapi/c/dev/ppb_var_deprecated.h" -#include "ppapi/c/dev/ppb_var_resource_dev.h" #include "ppapi/c/dev/ppb_video_capture_dev.h" #include "ppapi/c/dev/ppb_video_decoder_dev.h" #include "ppapi/c/dev/ppb_view_dev.h" diff --git a/native_client_sdk/src/examples/api/media_stream_video/media_stream_video.cc b/native_client_sdk/src/examples/api/media_stream_video/media_stream_video.cc index efcb725..831d98a 100644 --- a/native_client_sdk/src/examples/api/media_stream_video/media_stream_video.cc +++ b/native_client_sdk/src/examples/api/media_stream_video/media_stream_video.cc @@ -6,7 +6,6 @@ #include "ppapi/c/pp_errors.h" #include "ppapi/c/ppb_opengles2.h" #include "ppapi/cpp/completion_callback.h" -#include "ppapi/cpp/dev/var_resource_dev.h" #include "ppapi/cpp/graphics_3d.h" #include "ppapi/cpp/graphics_3d_client.h" #include "ppapi/cpp/instance.h" @@ -132,7 +131,7 @@ void MediaStreamVideoDemoInstance::HandleMessage(const pp::Var& var_message) { if (!var_track.is_resource()) return; - pp::Resource resource_track = pp::VarResource_Dev(var_track).AsResource(); + pp::Resource resource_track = var_track.AsResource(); video_track_ = pp::MediaStreamVideoTrack(resource_track); diff --git a/native_client_sdk/src/libraries/ppapi/library.dsc b/native_client_sdk/src/libraries/ppapi/library.dsc index 3e5e319..04fa67d 100644 --- a/native_client_sdk/src/libraries/ppapi/library.dsc +++ b/native_client_sdk/src/libraries/ppapi/library.dsc @@ -113,7 +113,6 @@ 'ppb_truetype_font_dev.h', 'ppb_url_util_dev.h', 'ppb_var_deprecated.h', - 'ppb_var_resource_dev.h', 'ppb_video_capture_dev.h', 'ppb_video_decoder_dev.h', 'ppb_view_dev.h', diff --git a/native_client_sdk/src/libraries/ppapi_cpp/library.dsc b/native_client_sdk/src/libraries/ppapi_cpp/library.dsc index 223e7c2..2722c40 100644 --- a/native_client_sdk/src/libraries/ppapi_cpp/library.dsc +++ b/native_client_sdk/src/libraries/ppapi_cpp/library.dsc @@ -90,7 +90,6 @@ 'string_wrapper_dev.cc', 'graphics_2d_dev.cc', 'widget_dev.cc', - 'var_resource_dev.cc', # ppapi/cpp/extensions/dev 'socket_dev.cc', @@ -193,7 +192,6 @@ 'to_c_type_converter_dev.h', 'truetype_font_dev.h', 'url_util_dev.h', - 'var_resource_dev.h', 'video_capture_client_dev.h', 'video_capture_dev.h', 'video_decoder_client_dev.h', diff --git a/ppapi/api/dev/ppb_var_resource_dev.idl b/ppapi/api/dev/ppb_var_resource_dev.idl deleted file mode 100644 index 2e5a6f3..0000000 --- a/ppapi/api/dev/ppb_var_resource_dev.idl +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright 2013 The Chromium Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -/** - * This file defines the <code>PPB_VarResource</code> struct providing - * a way to interact with resource vars. - */ - -label Chrome { - M32 = 0.1 -}; - -[macro="PPB_VAR_RESOURCE_DEV_INTERFACE"] -interface PPB_VarResource_Dev { - /** - * Converts a resource-type var to a <code>PP_Resource</code>. - * - * @param[in] var A <code>PP_Var</code> struct containing a resource-type var. - * - * @return A <code>PP_Resource</code> retrieved from the var, or 0 if the var - * is not a resource. The reference count of the resource is incremented on - * behalf of the caller. - */ - PP_Resource VarToResource([in] PP_Var var); - - /** - * Creates a new <code>PP_Var</code> from a given resource. - * - * @param[in] resource A <code>PP_Resource</code> to be wrapped in a var. - * - * @return A <code>PP_Var</code> created for this resource, with type - * <code>PP_VARTYPE_RESOURCE</code>. The reference count of the var is set to - * 1 on behalf of the caller. - */ - PP_Var VarFromResource([in] PP_Resource resource); -}; diff --git a/ppapi/api/ppb_var.idl b/ppapi/api/ppb_var.idl index 5bc6131..ecb3707 100644 --- a/ppapi/api/ppb_var.idl +++ b/ppapi/api/ppb_var.idl @@ -9,7 +9,8 @@ label Chrome { M14 = 1.0, - M18 = 1.1 + M18 = 1.1, + M34 = 1.2 }; /** @@ -112,5 +113,29 @@ interface PPB_Var { */ [version=1.0] str_t VarToUtf8([in] PP_Var var, [out] uint32_t len); + + /** + * Converts a resource-type var to a <code>PP_Resource</code>. + * + * @param[in] var A <code>PP_Var</code> struct containing a resource-type var. + * + * @return A <code>PP_Resource</code> retrieved from the var, or 0 if the var + * is not a resource. The reference count of the resource is incremented on + * behalf of the caller. + */ + [version=1.2] + PP_Resource VarToResource([in] PP_Var var); + + /** + * Creates a new <code>PP_Var</code> from a given resource. + * + * @param[in] resource A <code>PP_Resource</code> to be wrapped in a var. + * + * @return A <code>PP_Var</code> created for this resource, with type + * <code>PP_VARTYPE_RESOURCE</code>. The reference count of the var is set to + * 1 on behalf of the caller. + */ + [version=1.2] + PP_Var VarFromResource([in] PP_Resource resource); }; diff --git a/ppapi/c/dev/ppb_var_resource_dev.h b/ppapi/c/dev/ppb_var_resource_dev.h deleted file mode 100644 index 463f10a..0000000 --- a/ppapi/c/dev/ppb_var_resource_dev.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright 2013 The Chromium Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -/* From dev/ppb_var_resource_dev.idl modified Fri Oct 11 10:31:47 2013. */ - -#ifndef PPAPI_C_DEV_PPB_VAR_RESOURCE_DEV_H_ -#define PPAPI_C_DEV_PPB_VAR_RESOURCE_DEV_H_ - -#include "ppapi/c/pp_bool.h" -#include "ppapi/c/pp_macros.h" -#include "ppapi/c/pp_resource.h" -#include "ppapi/c/pp_stdint.h" -#include "ppapi/c/pp_var.h" - -#define PPB_VAR_RESOURCE_DEV_INTERFACE_0_1 "PPB_VarResource(Dev);0.1" -#define PPB_VAR_RESOURCE_DEV_INTERFACE PPB_VAR_RESOURCE_DEV_INTERFACE_0_1 - -/** - * @file - * This file defines the <code>PPB_VarResource</code> struct providing - * a way to interact with resource vars. - */ - - -/** - * @addtogroup Interfaces - * @{ - */ -struct PPB_VarResource_Dev_0_1 { - /** - * Converts a resource-type var to a <code>PP_Resource</code>. - * - * @param[in] var A <code>PP_Var</code> struct containing a resource-type var. - * - * @return A <code>PP_Resource</code> retrieved from the var, or 0 if the var - * is not a resource. The reference count of the resource is incremented on - * behalf of the caller. - */ - PP_Resource (*VarToResource)(struct PP_Var var); - /** - * Creates a new <code>PP_Var</code> from a given resource. - * - * @param[in] resource A <code>PP_Resource</code> to be wrapped in a var. - * - * @return A <code>PP_Var</code> created for this resource, with type - * <code>PP_VARTYPE_RESOURCE</code>. The reference count of the var is set to - * 1 on behalf of the caller. - */ - struct PP_Var (*VarFromResource)(PP_Resource resource); -}; - -typedef struct PPB_VarResource_Dev_0_1 PPB_VarResource_Dev; -/** - * @} - */ - -#endif /* PPAPI_C_DEV_PPB_VAR_RESOURCE_DEV_H_ */ - diff --git a/ppapi/c/ppb_var.h b/ppapi/c/ppb_var.h index 523622d..91a6592 100644 --- a/ppapi/c/ppb_var.h +++ b/ppapi/c/ppb_var.h @@ -3,7 +3,7 @@ * found in the LICENSE file. */ -/* From ppb_var.idl modified Wed Dec 14 18:08:00 2011. */ +/* From ppb_var.idl modified Thu Feb 6 13:48:33 2014. */ #ifndef PPAPI_C_PPB_VAR_H_ #define PPAPI_C_PPB_VAR_H_ @@ -11,12 +11,14 @@ #include "ppapi/c/pp_bool.h" #include "ppapi/c/pp_macros.h" #include "ppapi/c/pp_module.h" +#include "ppapi/c/pp_resource.h" #include "ppapi/c/pp_stdint.h" #include "ppapi/c/pp_var.h" #define PPB_VAR_INTERFACE_1_0 "PPB_Var;1.0" #define PPB_VAR_INTERFACE_1_1 "PPB_Var;1.1" -#define PPB_VAR_INTERFACE PPB_VAR_INTERFACE_1_1 +#define PPB_VAR_INTERFACE_1_2 "PPB_Var;1.2" +#define PPB_VAR_INTERFACE PPB_VAR_INTERFACE_1_2 /** * @file @@ -31,7 +33,7 @@ /** * PPB_Var API */ -struct PPB_Var_1_1 { +struct PPB_Var_1_2 { /** * AddRef() adds a reference to the given var. If this is not a refcounted * object, this function will do nothing so you can always call it no matter @@ -93,9 +95,29 @@ struct PPB_Var_1_1 { * @return A char* encoded in UTF-8. */ const char* (*VarToUtf8)(struct PP_Var var, uint32_t* len); + /** + * Converts a resource-type var to a <code>PP_Resource</code>. + * + * @param[in] var A <code>PP_Var</code> struct containing a resource-type var. + * + * @return A <code>PP_Resource</code> retrieved from the var, or 0 if the var + * is not a resource. The reference count of the resource is incremented on + * behalf of the caller. + */ + PP_Resource (*VarToResource)(struct PP_Var var); + /** + * Creates a new <code>PP_Var</code> from a given resource. + * + * @param[in] resource A <code>PP_Resource</code> to be wrapped in a var. + * + * @return A <code>PP_Var</code> created for this resource, with type + * <code>PP_VARTYPE_RESOURCE</code>. The reference count of the var is set to + * 1 on behalf of the caller. + */ + struct PP_Var (*VarFromResource)(PP_Resource resource); }; -typedef struct PPB_Var_1_1 PPB_Var; +typedef struct PPB_Var_1_2 PPB_Var; struct PPB_Var_1_0 { void (*AddRef)(struct PP_Var var); @@ -105,6 +127,13 @@ struct PPB_Var_1_0 { uint32_t len); const char* (*VarToUtf8)(struct PP_Var var, uint32_t* len); }; + +struct PPB_Var_1_1 { + void (*AddRef)(struct PP_Var var); + void (*Release)(struct PP_Var var); + struct PP_Var (*VarFromUtf8)(const char* data, uint32_t len); + const char* (*VarToUtf8)(struct PP_Var var, uint32_t* len); +}; /** * @} */ diff --git a/ppapi/cpp/dev/var_resource_dev.cc b/ppapi/cpp/dev/var_resource_dev.cc deleted file mode 100644 index 69fb15b..0000000 --- a/ppapi/cpp/dev/var_resource_dev.cc +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ppapi/cpp/dev/var_resource_dev.h" - -#include "ppapi/c/dev/ppb_var_resource_dev.h" -#include "ppapi/cpp/logging.h" -#include "ppapi/cpp/module_impl.h" - -namespace pp { - -namespace { - -template <> const char* interface_name<PPB_VarResource_Dev_0_1>() { - return PPB_VAR_RESOURCE_DEV_INTERFACE_0_1; -} - -} // namespace - -VarResource_Dev::VarResource_Dev(const pp::Resource& resource) : Var(Null()) { - if (!has_interface<PPB_VarResource_Dev_0_1>()) { - PP_NOTREACHED(); - return; - } - - // Note: Var(Null()) sets is_managed_ to true, so |var_| will be properly - // released upon destruction. - var_ = get_interface<PPB_VarResource_Dev_0_1>()->VarFromResource( - resource.pp_resource()); -} - -VarResource_Dev::VarResource_Dev(const Var& var) : Var(var) { - if (!var.is_resource()) { - PP_NOTREACHED(); - - // This takes care of releasing the reference that this object holds. - Var::operator=(Var(Null())); - } -} - -VarResource_Dev::VarResource_Dev(const VarResource_Dev& other) : Var(other) {} - -VarResource_Dev::~VarResource_Dev() {} - -VarResource_Dev& VarResource_Dev::operator=(const VarResource_Dev& other) { - Var::operator=(other); - return *this; -} - -Var& VarResource_Dev::operator=(const Var& other) { - if (other.is_resource()) { - Var::operator=(other); - } else { - PP_NOTREACHED(); - Var::operator=(Var(Null())); - } - return *this; -} - -pp::Resource VarResource_Dev::AsResource() { - if (!has_interface<PPB_VarResource_Dev_0_1>()) - return pp::Resource(); - - return pp::Resource( - pp::PASS_REF, - get_interface<PPB_VarResource_Dev_0_1>()->VarToResource(var_)); -} - -} // namespace pp diff --git a/ppapi/cpp/dev/var_resource_dev.h b/ppapi/cpp/dev/var_resource_dev.h deleted file mode 100644 index ab879a5..0000000 --- a/ppapi/cpp/dev/var_resource_dev.h +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef PPAPI_CPP_VAR_RESOURCE_DEV_H_ -#define PPAPI_CPP_VAR_RESOURCE_DEV_H_ - -#include "ppapi/cpp/resource.h" -#include "ppapi/cpp/var.h" - -/// @file -/// This file defines the API for interacting with resource vars. - -namespace pp { - -class VarResource_Dev : public Var { - public: - /// Constructs a <code>VarResource_Dev</code> given a resource. - explicit VarResource_Dev(const pp::Resource& resource); - - /// Constructs a <code>VarResource_Dev</code> given a var for which - /// is_resource() is true. This will refer to the same resource var, but allow - /// you to access methods specific to resources. - /// - /// @param[in] var A resource var. - explicit VarResource_Dev(const Var& var); - - /// Copy constructor. - VarResource_Dev(const VarResource_Dev& other); - - virtual ~VarResource_Dev(); - - /// Assignment operator. - VarResource_Dev& operator=(const VarResource_Dev& other); - - /// The <code>Var</code> assignment operator is overridden here so that we can - /// check for assigning a non-resource var to a <code>VarResource_Dev</code>. - /// - /// @param[in] other The resource var to be assigned. - /// - /// @return The resulting <code>VarResource_Dev</code> (as a - /// <code>Var</code>&). - virtual Var& operator=(const Var& other); - - /// Gets the resource contained in the var. - /// - /// @return The <code>pp::Resource</code> that is contained in the var. - pp::Resource AsResource(); -}; - -} // namespace pp - -#endif // PPAPI_CPP_VAR_RESOURCE_DEV_H_ diff --git a/ppapi/cpp/resource.h b/ppapi/cpp/resource.h index 311db6a..7823a73a 100644 --- a/ppapi/cpp/resource.h +++ b/ppapi/cpp/resource.h @@ -14,7 +14,7 @@ /// with the module. namespace pp { -class VarResource_Dev; +class Var; /// A reference counted module resource. class Resource { @@ -87,7 +87,7 @@ class Resource { void Clear(); private: - friend class VarResource_Dev; + friend class Var; PP_Resource pp_resource_; }; diff --git a/ppapi/cpp/var.cc b/ppapi/cpp/var.cc index cb8172c..e16b0e4 100644 --- a/ppapi/cpp/var.cc +++ b/ppapi/cpp/var.cc @@ -25,6 +25,9 @@ namespace pp { namespace { +template <> const char* interface_name<PPB_Var_1_2>() { + return PPB_VAR_INTERFACE_1_2; +} template <> const char* interface_name<PPB_Var_1_1>() { return PPB_VAR_INTERFACE_1_1; } @@ -42,7 +45,9 @@ inline bool NeedsRefcounting(const PP_Var& var) { // This helper function uses the latest available version of VarFromUtf8. Note // that version 1.0 of this method has a different API to later versions. PP_Var VarFromUtf8Helper(const char* utf8_str, uint32_t len) { - if (has_interface<PPB_Var_1_1>()) { + if (has_interface<PPB_Var_1_2>()) { + return get_interface<PPB_Var_1_2>()->VarFromUtf8(utf8_str, len); + } else if (has_interface<PPB_Var_1_1>()) { return get_interface<PPB_Var_1_1>()->VarFromUtf8(utf8_str, len); } else if (has_interface<PPB_Var_1_0>()) { return get_interface<PPB_Var_1_0>()->VarFromUtf8(Module::Get()->pp_module(), @@ -55,7 +60,10 @@ PP_Var VarFromUtf8Helper(const char* utf8_str, uint32_t len) { // This helper function uses the latest available version of AddRef. // Returns true on success, false if no appropriate interface was available. bool AddRefHelper(const PP_Var& var) { - if (has_interface<PPB_Var_1_1>()) { + if (has_interface<PPB_Var_1_2>()) { + get_interface<PPB_Var_1_2>()->AddRef(var); + return true; + } else if (has_interface<PPB_Var_1_1>()) { get_interface<PPB_Var_1_1>()->AddRef(var); return true; } else if (has_interface<PPB_Var_1_0>()) { @@ -68,7 +76,10 @@ bool AddRefHelper(const PP_Var& var) { // This helper function uses the latest available version of Release. // Returns true on success, false if no appropriate interface was available. bool ReleaseHelper(const PP_Var& var) { - if (has_interface<PPB_Var_1_1>()) { + if (has_interface<PPB_Var_1_2>()) { + get_interface<PPB_Var_1_2>()->Release(var); + return true; + } else if (has_interface<PPB_Var_1_1>()) { get_interface<PPB_Var_1_1>()->Release(var); return true; } else if (has_interface<PPB_Var_1_0>()) { @@ -125,6 +136,19 @@ Var::Var(const std::string& utf8_str) { is_managed_ = true; } +Var::Var(const pp::Resource& resource) { + if (has_interface<PPB_Var_1_2>()) { + var_ = get_interface<PPB_Var_1_2>()->VarFromResource( + resource.pp_resource()); + } else { + PP_NOTREACHED(); + return; + } + // Set |is_managed_| to true, so |var_| will be properly released upon + // destruction. + is_managed_ = true; +} + Var::Var(const PP_Var& var) { var_ = var; @@ -191,7 +215,8 @@ bool Var::operator==(const Var& other) const { case PP_VARTYPE_ARRAY: case PP_VARTYPE_ARRAY_BUFFER: case PP_VARTYPE_DICTIONARY: - default: // Objects, arrays, dictionaries. + case PP_VARTYPE_RESOURCE: + default: // Objects, arrays, dictionaries, resources. return var_.value.as_id == other.var_.value.as_id; } } @@ -230,7 +255,9 @@ std::string Var::AsString() const { uint32_t len; const char* str; - if (has_interface<PPB_Var_1_1>()) + if (has_interface<PPB_Var_1_2>()) + str = get_interface<PPB_Var_1_2>()->VarToUtf8(var_, &len); + else if (has_interface<PPB_Var_1_1>()) str = get_interface<PPB_Var_1_1>()->VarToUtf8(var_, &len); else if (has_interface<PPB_Var_1_0>()) str = get_interface<PPB_Var_1_0>()->VarToUtf8(var_, &len); @@ -239,6 +266,20 @@ std::string Var::AsString() const { return std::string(str, len); } +pp::Resource Var::AsResource() const { + if (!is_resource()) { + PP_NOTREACHED(); + return pp::Resource(); + } + + if (has_interface<PPB_Var_1_2>()) { + return pp::Resource(pp::PASS_REF, + get_interface<PPB_Var_1_2>()->VarToResource(var_)); + } else { + return pp::Resource(); + } +} + std::string Var::DebugString() const { char buf[256]; if (is_undefined()) { @@ -269,6 +310,8 @@ std::string Var::DebugString() const { snprintf(buf, sizeof(buf), "Var(DICTIONARY)"); } else if (is_array_buffer()) { snprintf(buf, sizeof(buf), "Var(ARRAY_BUFFER)"); + } else if (is_resource()) { + snprintf(buf, sizeof(buf), "Var(RESOURCE)"); } else { buf[0] = '\0'; } diff --git a/ppapi/cpp/var.h b/ppapi/cpp/var.h index c00c90a..a79f3c4 100644 --- a/ppapi/cpp/var.h +++ b/ppapi/cpp/var.h @@ -10,6 +10,7 @@ #include "ppapi/c/pp_var.h" #include "ppapi/cpp/pass_ref.h" +#include "ppapi/cpp/resource.h" /// @file /// This file defines the API for handling the passing of data types between @@ -50,6 +51,9 @@ class Var { /// A constructor used to create a UTF-8 character <code>Var</code>. Var(const std::string& utf8_str); // Must be encoded in UTF-8. + /// A constructor used to create a resource <code>Var</code>. + explicit Var(const pp::Resource& resource); + /// A constructor used when you have received a <code>Var</code> as a return /// value that has had its reference count incremented for you. /// @@ -209,6 +213,12 @@ class Var { /// @return A string version of this <code>Var</code>. std::string AsString() const; + /// Gets the resource contained in the var. If this object is not a resource, + /// it will assert in debug mode, and return a null resource. + /// + /// @return The <code>pp::Resource</code> that is contained in the var. + pp::Resource AsResource() const; + /// This function returns the internal <code>PP_Var</code> /// managed by this <code>Var</code> object. /// diff --git a/ppapi/examples/media_stream_audio/media_stream_audio.cc b/ppapi/examples/media_stream_audio/media_stream_audio.cc index f5761e5..b026fb3 100644 --- a/ppapi/examples/media_stream_audio/media_stream_audio.cc +++ b/ppapi/examples/media_stream_audio/media_stream_audio.cc @@ -10,7 +10,6 @@ #include <vector> #include "ppapi/cpp/audio_buffer.h" -#include "ppapi/cpp/dev/var_resource_dev.h" #include "ppapi/cpp/graphics_2d.h" #include "ppapi/cpp/image_data.h" #include "ppapi/cpp/instance.h" @@ -74,7 +73,7 @@ class MediaStreamAudioInstance : public pp::Instance { if (!var_track.is_resource()) return; - pp::Resource resource_track = pp::VarResource_Dev(var_track).AsResource(); + pp::Resource resource_track = var_track.AsResource(); audio_track_ = pp::MediaStreamAudioTrack(resource_track); audio_track_.GetBuffer(callback_factory_.NewCallbackWithOutput( &MediaStreamAudioInstance::OnGetBuffer)); diff --git a/ppapi/examples/media_stream_video/media_stream_video.cc b/ppapi/examples/media_stream_video/media_stream_video.cc index 3635e0e..b219712 100644 --- a/ppapi/examples/media_stream_video/media_stream_video.cc +++ b/ppapi/examples/media_stream_video/media_stream_video.cc @@ -5,7 +5,6 @@ #include "ppapi/c/pp_errors.h" #include "ppapi/c/ppb_opengles2.h" #include "ppapi/cpp/completion_callback.h" -#include "ppapi/cpp/dev/var_resource_dev.h" #include "ppapi/cpp/graphics_3d.h" #include "ppapi/cpp/graphics_3d_client.h" #include "ppapi/cpp/instance.h" @@ -132,7 +131,7 @@ void MediaStreamVideoDemoInstance::HandleMessage(const pp::Var& var_message) { if (!var_track.is_resource()) return; - pp::Resource resource_track = pp::VarResource_Dev(var_track).AsResource(); + pp::Resource resource_track = var_track.AsResource(); video_track_ = pp::MediaStreamVideoTrack(resource_track); diff --git a/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c b/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c index 6ffae96..8696279 100644 --- a/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c +++ b/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c @@ -25,7 +25,6 @@ #include "ppapi/c/dev/ppb_trace_event_dev.h" #include "ppapi/c/dev/ppb_truetype_font_dev.h" #include "ppapi/c/dev/ppb_url_util_dev.h" -#include "ppapi/c/dev/ppb_var_resource_dev.h" #include "ppapi/c/dev/ppb_video_capture_dev.h" #include "ppapi/c/dev/ppb_video_decoder_dev.h" #include "ppapi/c/dev/ppb_view_dev.h" @@ -176,6 +175,7 @@ static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLRequestInfo_1_0; static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLResponseInfo_1_0; static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_0; static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_1; +static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_2; static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarArray_1_0; static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarArrayBuffer_1_0; static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarDictionary_1_0; @@ -194,7 +194,6 @@ static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Printing_Dev_0_7; static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TrueTypeFont_Dev_0_1; static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6; static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7; -static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarResource_Dev_0_1; static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3; static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16; static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_Selection_Dev_0_3; @@ -1627,6 +1626,40 @@ static const char* Pnacl_M18_PPB_Var_VarToUtf8(struct PP_Var* var, uint32_t* len /* End wrapper methods for PPB_Var_1_1 */ +/* Begin wrapper methods for PPB_Var_1_2 */ + +static void Pnacl_M34_PPB_Var_AddRef(struct PP_Var* var) { + const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface; + iface->AddRef(*var); +} + +static void Pnacl_M34_PPB_Var_Release(struct PP_Var* var) { + const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface; + iface->Release(*var); +} + +static void Pnacl_M34_PPB_Var_VarFromUtf8(struct PP_Var* _struct_result, const char* data, uint32_t len) { + const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface; + *_struct_result = iface->VarFromUtf8(data, len); +} + +static const char* Pnacl_M34_PPB_Var_VarToUtf8(struct PP_Var* var, uint32_t* len) { + const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface; + return iface->VarToUtf8(*var, len); +} + +static PP_Resource Pnacl_M34_PPB_Var_VarToResource(struct PP_Var* var) { + const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface; + return iface->VarToResource(*var); +} + +static void Pnacl_M34_PPB_Var_VarFromResource(struct PP_Var* _struct_result, PP_Resource resource) { + const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface; + *_struct_result = iface->VarFromResource(resource); +} + +/* End wrapper methods for PPB_Var_1_2 */ + /* Begin wrapper methods for PPB_VarArray_1_0 */ static void Pnacl_M29_PPB_VarArray_Create(struct PP_Var* _struct_result) { @@ -2310,20 +2343,6 @@ static void Pnacl_M31_PPB_URLUtil_Dev_GetPluginReferrerURL(struct PP_Var* _struc /* End wrapper methods for PPB_URLUtil_Dev_0_7 */ -/* Begin wrapper methods for PPB_VarResource_Dev_0_1 */ - -static PP_Resource Pnacl_M32_PPB_VarResource_Dev_VarToResource(struct PP_Var* var) { - const struct PPB_VarResource_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_VarResource_Dev_0_1.real_iface; - return iface->VarToResource(*var); -} - -static void Pnacl_M32_PPB_VarResource_Dev_VarFromResource(struct PP_Var* _struct_result, PP_Resource resource) { - const struct PPB_VarResource_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_VarResource_Dev_0_1.real_iface; - *_struct_result = iface->VarFromResource(resource); -} - -/* End wrapper methods for PPB_VarResource_Dev_0_1 */ - /* Begin wrapper methods for PPB_VideoCapture_Dev_0_3 */ static PP_Resource Pnacl_M25_PPB_VideoCapture_Dev_Create(PP_Instance instance) { @@ -4563,6 +4582,15 @@ static struct PPB_Var_1_1 Pnacl_Wrappers_PPB_Var_1_1 = { .VarToUtf8 = (const char* (*)(struct PP_Var var, uint32_t* len))&Pnacl_M18_PPB_Var_VarToUtf8 }; +static struct PPB_Var_1_2 Pnacl_Wrappers_PPB_Var_1_2 = { + .AddRef = (void (*)(struct PP_Var var))&Pnacl_M34_PPB_Var_AddRef, + .Release = (void (*)(struct PP_Var var))&Pnacl_M34_PPB_Var_Release, + .VarFromUtf8 = (struct PP_Var (*)(const char* data, uint32_t len))&Pnacl_M34_PPB_Var_VarFromUtf8, + .VarToUtf8 = (const char* (*)(struct PP_Var var, uint32_t* len))&Pnacl_M34_PPB_Var_VarToUtf8, + .VarToResource = (PP_Resource (*)(struct PP_Var var))&Pnacl_M34_PPB_Var_VarToResource, + .VarFromResource = (struct PP_Var (*)(PP_Resource resource))&Pnacl_M34_PPB_Var_VarFromResource +}; + static struct PPB_VarArray_1_0 Pnacl_Wrappers_PPB_VarArray_1_0 = { .Create = (struct PP_Var (*)(void))&Pnacl_M29_PPB_VarArray_Create, .Get = (struct PP_Var (*)(struct PP_Var array, uint32_t index))&Pnacl_M29_PPB_VarArray_Get, @@ -4782,11 +4810,6 @@ static struct PPB_URLUtil_Dev_0_7 Pnacl_Wrappers_PPB_URLUtil_Dev_0_7 = { .GetPluginReferrerURL = (struct PP_Var (*)(PP_Instance instance, struct PP_URLComponents_Dev* components))&Pnacl_M31_PPB_URLUtil_Dev_GetPluginReferrerURL }; -static struct PPB_VarResource_Dev_0_1 Pnacl_Wrappers_PPB_VarResource_Dev_0_1 = { - .VarToResource = (PP_Resource (*)(struct PP_Var var))&Pnacl_M32_PPB_VarResource_Dev_VarToResource, - .VarFromResource = (struct PP_Var (*)(PP_Resource resource))&Pnacl_M32_PPB_VarResource_Dev_VarFromResource -}; - static struct PPB_VideoCapture_Dev_0_3 Pnacl_Wrappers_PPB_VideoCapture_Dev_0_3 = { .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M25_PPB_VideoCapture_Dev_Create, .IsVideoCapture = (PP_Bool (*)(PP_Resource video_capture))&Pnacl_M25_PPB_VideoCapture_Dev_IsVideoCapture, @@ -5516,6 +5539,12 @@ static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_1 = { .real_iface = NULL }; +static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_2 = { + .iface_macro = PPB_VAR_INTERFACE_1_2, + .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Var_1_2, + .real_iface = NULL +}; + static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarArray_1_0 = { .iface_macro = PPB_VAR_ARRAY_INTERFACE_1_0, .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_VarArray_1_0, @@ -5624,12 +5653,6 @@ static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7 = { .real_iface = NULL }; -static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarResource_Dev_0_1 = { - .iface_macro = PPB_VAR_RESOURCE_DEV_INTERFACE_0_1, - .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_VarResource_Dev_0_1, - .real_iface = NULL -}; - static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3 = { .iface_macro = PPB_VIDEOCAPTURE_DEV_INTERFACE_0_3, .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_VideoCapture_Dev_0_3, @@ -5945,6 +5968,7 @@ static struct __PnaclWrapperInfo *s_ppb_wrappers[] = { &Pnacl_WrapperInfo_PPB_URLResponseInfo_1_0, &Pnacl_WrapperInfo_PPB_Var_1_0, &Pnacl_WrapperInfo_PPB_Var_1_1, + &Pnacl_WrapperInfo_PPB_Var_1_2, &Pnacl_WrapperInfo_PPB_VarArray_1_0, &Pnacl_WrapperInfo_PPB_VarArrayBuffer_1_0, &Pnacl_WrapperInfo_PPB_VarDictionary_1_0, @@ -5962,7 +5986,6 @@ static struct __PnaclWrapperInfo *s_ppb_wrappers[] = { &Pnacl_WrapperInfo_PPB_TrueTypeFont_Dev_0_1, &Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6, &Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7, - &Pnacl_WrapperInfo_PPB_VarResource_Dev_0_1, &Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3, &Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16, &Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_10, diff --git a/ppapi/ppapi_shared.gypi b/ppapi/ppapi_shared.gypi index a562fbf..83ba96d 100644 --- a/ppapi/ppapi_shared.gypi +++ b/ppapi/ppapi_shared.gypi @@ -263,7 +263,6 @@ 'thunk/ppb_url_util_thunk.cc', 'thunk/ppb_var_array_thunk.cc', 'thunk/ppb_var_dictionary_thunk.cc', - 'thunk/ppb_var_resource_dev_thunk.cc', 'thunk/ppb_video_capture_api.h', 'thunk/ppb_video_capture_thunk.cc', 'thunk/ppb_video_decoder_api.h', diff --git a/ppapi/ppapi_sources.gypi b/ppapi/ppapi_sources.gypi index 032875b..920e931 100644 --- a/ppapi/ppapi_sources.gypi +++ b/ppapi/ppapi_sources.gypi @@ -91,7 +91,6 @@ 'c/dev/ppb_text_input_dev.h', 'c/dev/ppb_truetype_font_dev.h', 'c/dev/ppb_url_util_dev.h', - 'c/dev/ppb_var_resource_dev.h', 'c/dev/ppb_video_decoder_dev.h', 'c/dev/ppb_widget_dev.h', 'c/dev/ppb_zoom_dev.h', @@ -291,8 +290,6 @@ 'cpp/dev/truetype_font_dev.h', 'cpp/dev/url_util_dev.cc', 'cpp/dev/url_util_dev.h', - 'cpp/dev/var_resource_dev.cc', - 'cpp/dev/var_resource_dev.h', 'cpp/dev/video_capture_client_dev.cc', 'cpp/dev/video_capture_client_dev.h', 'cpp/dev/video_capture_dev.cc', diff --git a/ppapi/proxy/interface_list.cc b/ppapi/proxy/interface_list.cc index 6842d4fd..6a359bc 100644 --- a/ppapi/proxy/interface_list.cc +++ b/ppapi/proxy/interface_list.cc @@ -26,7 +26,6 @@ #include "ppapi/c/dev/ppb_truetype_font_dev.h" #include "ppapi/c/dev/ppb_url_util_dev.h" #include "ppapi/c/dev/ppb_var_deprecated.h" -#include "ppapi/c/dev/ppb_var_resource_dev.h" #include "ppapi/c/dev/ppb_video_capture_dev.h" #include "ppapi/c/dev/ppb_view_dev.h" #include "ppapi/c/extensions/dev/ppb_ext_socket_dev.h" @@ -238,6 +237,8 @@ InterfaceList::InterfaceList() { PPB_OpenGLES2_Shared::GetQueryInterface(), PERMISSION_NONE); AddPPB(PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0, PPB_Var_Shared::GetVarArrayBufferInterface1_0(), PERMISSION_NONE); + AddPPB(PPB_VAR_INTERFACE_1_2, + PPB_Var_Shared::GetVarInterface1_2(), PERMISSION_NONE); AddPPB(PPB_VAR_INTERFACE_1_1, PPB_Var_Shared::GetVarInterface1_1(), PERMISSION_NONE); AddPPB(PPB_VAR_INTERFACE_1_0, diff --git a/ppapi/proxy/ppb_var_unittest.cc b/ppapi/proxy/ppb_var_unittest.cc index 7315d00..5e25379 100644 --- a/ppapi/proxy/ppb_var_unittest.cc +++ b/ppapi/proxy/ppb_var_unittest.cc @@ -30,7 +30,7 @@ class PPB_VarTest : public PluginProxyTest { public: PPB_VarTest() : test_strings_(kNumStrings), vars_(kNumStrings), - ppb_var_(ppapi::PPB_Var_Shared::GetVarInterface1_1()) { + ppb_var_(ppapi::PPB_Var_Shared::GetVarInterface1_2()) { // Set the value of test_strings_[i] to "i". for (size_t i = 0; i < kNumStrings; ++i) test_strings_[i] = base::IntToString(i); @@ -102,7 +102,7 @@ class CreateVarThreadDelegate : public base::PlatformThread::Delegate { } virtual ~CreateVarThreadDelegate() {} virtual void ThreadMain() { - const PPB_Var* ppb_var = ppapi::PPB_Var_Shared::GetVarInterface1_1(); + const PPB_Var* ppb_var = ppapi::PPB_Var_Shared::GetVarInterface1_2(); for (size_t i = 0; i < size_; ++i) { vars_out_[i] = ppb_var->VarFromUtf8(strings_in_[i].c_str(), strings_in_[i].length()); @@ -125,7 +125,7 @@ class ChangeRefVarThreadDelegate : public base::PlatformThread::Delegate { } virtual ~ChangeRefVarThreadDelegate() {} virtual void ThreadMain() { - const PPB_Var* ppb_var = ppapi::PPB_Var_Shared::GetVarInterface1_1(); + const PPB_Var* ppb_var = ppapi::PPB_Var_Shared::GetVarInterface1_2(); // Increment and decrement the reference count for each var kRefsToAdd // times. Note that we always AddRef once before doing the matching Release, // to ensure that we never accidentally release the last reference. @@ -153,7 +153,7 @@ class RemoveRefVarThreadDelegate : public base::PlatformThread::Delegate { } virtual ~RemoveRefVarThreadDelegate() {} virtual void ThreadMain() { - const PPB_Var* ppb_var = ppapi::PPB_Var_Shared::GetVarInterface1_1(); + const PPB_Var* ppb_var = ppapi::PPB_Var_Shared::GetVarInterface1_2(); for (size_t i = 0; i < kNumStrings; ++i) { ppb_var->Release(vars_[i]); } diff --git a/ppapi/proxy/websocket_resource_unittest.cc b/ppapi/proxy/websocket_resource_unittest.cc index 5cfc71a..eac6d8f 100644 --- a/ppapi/proxy/websocket_resource_unittest.cc +++ b/ppapi/proxy/websocket_resource_unittest.cc @@ -46,7 +46,7 @@ PP_CompletionCallback MakeCallback() { PP_Var MakeStringVar(const std::string& string) { if (!ppb_var_) - ppb_var_ = ppapi::PPB_Var_Shared::GetVarInterface1_1(); + ppb_var_ = ppapi::PPB_Var_Shared::GetVarInterface1_2(); return ppb_var_->VarFromUtf8(string.c_str(), string.length()); } diff --git a/ppapi/shared_impl/ppb_var_shared.cc b/ppapi/shared_impl/ppb_var_shared.cc index 702a89a..6e1fb27 100644 --- a/ppapi/shared_impl/ppb_var_shared.cc +++ b/ppapi/shared_impl/ppb_var_shared.cc @@ -11,6 +11,8 @@ #include "ppapi/c/pp_var.h" #include "ppapi/shared_impl/ppapi_globals.h" #include "ppapi/shared_impl/proxy_lock.h" +#include "ppapi/shared_impl/resource_tracker.h" +#include "ppapi/shared_impl/resource_var.h" #include "ppapi/shared_impl/var.h" #include "ppapi/shared_impl/var_tracker.h" @@ -53,10 +55,34 @@ const char* VarToUtf8(PP_Var var, uint32_t* len) { return NULL; } +PP_Resource VarToResource(PP_Var var) { + ProxyAutoLock lock; + ResourceVar* resource = ResourceVar::FromPPVar(var); + if (!resource) + return 0; + PP_Resource pp_resource = resource->GetPPResource(); + PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(pp_resource); + return pp_resource; +} + +PP_Var VarFromResource(PP_Resource resource) { + ProxyAutoLock lock; + return PpapiGlobals::Get()->GetVarTracker()->MakeResourcePPVar(resource); +} + const PPB_Var var_interface = { &AddRefVar, &ReleaseVar, &VarFromUtf8, + &VarToUtf8, + &VarToResource, + &VarFromResource +}; + +const PPB_Var_1_1 var_interface1_1 = { + &AddRefVar, + &ReleaseVar, + &VarFromUtf8, &VarToUtf8 }; @@ -110,11 +136,16 @@ const PPB_VarArrayBuffer_1_0 var_arraybuffer_interface = { } // namespace // static -const PPB_Var_1_1* PPB_Var_Shared::GetVarInterface1_1() { +const PPB_Var_1_2* PPB_Var_Shared::GetVarInterface1_2() { return &var_interface; } // static +const PPB_Var_1_1* PPB_Var_Shared::GetVarInterface1_1() { + return &var_interface1_1; +} + +// static const PPB_Var_1_0* PPB_Var_Shared::GetVarInterface1_0() { return &var_interface1_0; } diff --git a/ppapi/shared_impl/ppb_var_shared.h b/ppapi/shared_impl/ppb_var_shared.h index 88078ba..b1076e0 100644 --- a/ppapi/shared_impl/ppb_var_shared.h +++ b/ppapi/shared_impl/ppb_var_shared.h @@ -17,6 +17,7 @@ namespace ppapi { class PPAPI_SHARED_EXPORT PPB_Var_Shared { public: + static const PPB_Var_1_2* GetVarInterface1_2(); static const PPB_Var_1_1* GetVarInterface1_1(); static const PPB_Var_1_0* GetVarInterface1_0(); static const PPB_VarArrayBuffer_1_0* GetVarArrayBufferInterface1_0(); diff --git a/ppapi/tests/test_post_message.cc b/ppapi/tests/test_post_message.cc index 83ae8a6..085de33 100644 --- a/ppapi/tests/test_post_message.cc +++ b/ppapi/tests/test_post_message.cc @@ -11,7 +11,6 @@ #include "ppapi/c/pp_var.h" #include "ppapi/c/ppb_file_io.h" -#include "ppapi/cpp/dev/var_resource_dev.h" #include "ppapi/cpp/file_io.h" #include "ppapi/cpp/file_ref.h" #include "ppapi/cpp/file_system.h" @@ -599,8 +598,7 @@ std::string TestPostMessage::TestSendingResource() { ASSERT_EQ(PostAsyncMessageFromJavaScriptAndWait(js_code), 1); pp::Var var = message_data_.back(); ASSERT_TRUE(var.is_resource()); - pp::VarResource_Dev var_resource(var); - pp::Resource result = var_resource.AsResource(); + pp::Resource result = var.AsResource(); ASSERT_TRUE(pp::FileSystem::IsFileSystem(result)); { pp::FileSystem file_system(result); diff --git a/ppapi/tests/test_var_resource.cc b/ppapi/tests/test_var_resource.cc index bf5c02e..5f185cc 100644 --- a/ppapi/tests/test_var_resource.cc +++ b/ppapi/tests/test_var_resource.cc @@ -19,10 +19,8 @@ bool TestVarResource::Init() { pp::Module::Get()->GetBrowserInterface(PPB_FILESYSTEM_INTERFACE)); var_interface_ = static_cast<const PPB_Var*>( pp::Module::Get()->GetBrowserInterface(PPB_VAR_INTERFACE)); - var_resource_interface_ = static_cast<const PPB_VarResource_Dev*>( - pp::Module::Get()->GetBrowserInterface(PPB_VAR_RESOURCE_DEV_INTERFACE)); return core_interface_ && file_system_interface_ && var_interface_ && - var_resource_interface_ && CheckTestingInterface(); + CheckTestingInterface(); } void TestVarResource::RunTests(const std::string& filter) { @@ -41,18 +39,18 @@ std::string TestVarResource::TestBasicResource() { ASSERT_NE(0, file_system); // Build a var to wrap the resource. - PP_Var var = var_resource_interface_->VarFromResource(file_system); + PP_Var var = var_interface_->VarFromResource(file_system); ASSERT_EQ(PP_VARTYPE_RESOURCE, var.type); // Reading back the resource should work. This will increment the reference // on the resource, so we must release it afterwards. - PP_Resource result = var_resource_interface_->VarToResource(var); + PP_Resource result = var_interface_->VarToResource(var); ASSERT_EQ(file_system, result); core_interface_->ReleaseResource(result); // Destroy the var, readback should now fail. var_interface_->Release(var); - result = var_resource_interface_->VarToResource(var); + result = var_interface_->VarToResource(var); ASSERT_EQ(0, result); // Release the resource. There should be no more references to it. @@ -76,32 +74,31 @@ std::string TestVarResource::TestInvalidAndEmpty() { invalid_resource.value.as_id = 31415926; // Invalid resource vars should give 0 as the return value. - PP_Resource result = - var_resource_interface_->VarToResource(invalid_resource); + PP_Resource result = var_interface_->VarToResource(invalid_resource); ASSERT_EQ(0, result); // Test writing and reading a non-existant resource. PP_Resource fake_resource = 27182818; - PP_Var var = var_resource_interface_->VarFromResource(fake_resource); + PP_Var var = var_interface_->VarFromResource(fake_resource); if (testing_interface()->IsOutOfProcess()) { // An out-of-process plugin is expected to generate null in this case. ASSERT_EQ(PP_VARTYPE_NULL, var.type); - result = var_resource_interface_->VarToResource(var); + result = var_interface_->VarToResource(var); ASSERT_EQ(0, result); } else { // An in-process plugin is expected to generate a valid resource var // (because it does not validate the resource). ASSERT_EQ(PP_VARTYPE_RESOURCE, var.type); - result = var_resource_interface_->VarToResource(var); + result = var_interface_->VarToResource(var); ASSERT_EQ(fake_resource, result); var_interface_->Release(var); } // Note: Not necessary to release the resource, since it does not exist. // Write the resource 0; expect a valid resource var with 0. - var = var_resource_interface_->VarFromResource(0); + var = var_interface_->VarFromResource(0); ASSERT_EQ(PP_VARTYPE_RESOURCE, var.type); - result = var_resource_interface_->VarToResource(var); + result = var_interface_->VarToResource(var); ASSERT_EQ(0, result); var_interface_->Release(var); } @@ -115,20 +112,19 @@ std::string TestVarResource::TestInvalidAndEmpty() { } std::string TestVarResource::TestWrongType() { - PP_Resource result = - var_resource_interface_->VarToResource(PP_MakeUndefined()); + PP_Resource result = var_interface_->VarToResource(PP_MakeUndefined()); ASSERT_EQ(0, result); - result = var_resource_interface_->VarToResource(PP_MakeNull()); + result = var_interface_->VarToResource(PP_MakeNull()); ASSERT_EQ(0, result); - result = var_resource_interface_->VarToResource(PP_MakeBool(PP_TRUE)); + result = var_interface_->VarToResource(PP_MakeBool(PP_TRUE)); ASSERT_EQ(0, result); - result = var_resource_interface_->VarToResource(PP_MakeInt32(42)); + result = var_interface_->VarToResource(PP_MakeInt32(42)); ASSERT_EQ(0, result); - result = var_resource_interface_->VarToResource(PP_MakeDouble(1.0)); + result = var_interface_->VarToResource(PP_MakeDouble(1.0)); ASSERT_EQ(0, result); PASS(); diff --git a/ppapi/tests/test_var_resource.h b/ppapi/tests/test_var_resource.h index 73645e5..66b211e 100644 --- a/ppapi/tests/test_var_resource.h +++ b/ppapi/tests/test_var_resource.h @@ -7,7 +7,6 @@ #include <string> -#include "ppapi/c/dev/ppb_var_resource_dev.h" #include "ppapi/c/ppb_file_system.h" #include "ppapi/c/ppb_var.h" #include "ppapi/tests/test_case.h" @@ -29,7 +28,6 @@ class TestVarResource : public TestCase { const PPB_Core* core_interface_; const PPB_FileSystem* file_system_interface_; const PPB_Var* var_interface_; - const PPB_VarResource_Dev* var_resource_interface_; }; #endif // PPAPI_TEST_TEST_VAR_RESOURCE_H_ diff --git a/ppapi/thunk/interfaces_legacy.h b/ppapi/thunk/interfaces_legacy.h index c9f7a3c..79cc758 100644 --- a/ppapi/thunk/interfaces_legacy.h +++ b/ppapi/thunk/interfaces_legacy.h @@ -34,6 +34,8 @@ LEGACY_IFACE(PPB_VAR_INTERFACE_1_0, ::ppapi::PPB_Var_Shared::GetVarInterface1_0()) LEGACY_IFACE(PPB_VAR_INTERFACE_1_1, ::ppapi::PPB_Var_Shared::GetVarInterface1_1()) +LEGACY_IFACE(PPB_VAR_INTERFACE_1_2, + ::ppapi::PPB_Var_Shared::GetVarInterface1_2()) LEGACY_IFACE(PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0, ::ppapi::PPB_Var_Shared::GetVarArrayBufferInterface1_0()) diff --git a/ppapi/thunk/interfaces_ppb_public_dev.h b/ppapi/thunk/interfaces_ppb_public_dev.h index b0f5911..aba5d4e 100644 --- a/ppapi/thunk/interfaces_ppb_public_dev.h +++ b/ppapi/thunk/interfaces_ppb_public_dev.h @@ -22,7 +22,6 @@ PROXIED_IFACE(PPB_MEMORY_DEV_INTERFACE_0_1, PPB_Memory_Dev_0_1) PROXIED_IFACE(PPB_PRINTING_DEV_INTERFACE_0_7, PPB_Printing_Dev_0_7) PROXIED_IFACE(PPB_TEXTINPUT_DEV_INTERFACE_0_2, PPB_TextInput_Dev_0_2) PROXIED_IFACE(PPB_TRUETYPEFONT_DEV_INTERFACE_0_1, PPB_TrueTypeFont_Dev_0_1) -PROXIED_IFACE(PPB_VAR_RESOURCE_DEV_INTERFACE_0_1, PPB_VarResource_Dev_0_1) PROXIED_IFACE(PPB_VIEW_DEV_INTERFACE_0_1, PPB_View_Dev_0_1) UNPROXIED_IFACE(PPB_ZOOM_DEV_INTERFACE_0_2, PPB_Zoom_Dev_0_2) PROXIED_IFACE(PPB_TRACE_EVENT_DEV_INTERFACE_0_1, PPB_Trace_Event_Dev_0_1) diff --git a/ppapi/thunk/ppb_var_resource_dev_thunk.cc b/ppapi/thunk/ppb_var_resource_dev_thunk.cc deleted file mode 100644 index e02ea5d..0000000 --- a/ppapi/thunk/ppb_var_resource_dev_thunk.cc +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ppapi/c/dev/ppb_var_resource_dev.h" -#include "ppapi/c/pp_var.h" -#include "ppapi/shared_impl/ppapi_globals.h" -#include "ppapi/shared_impl/proxy_lock.h" -#include "ppapi/shared_impl/resource_tracker.h" -#include "ppapi/shared_impl/resource_var.h" -#include "ppapi/shared_impl/var_tracker.h" -#include "ppapi/thunk/thunk.h" - -namespace ppapi { -namespace thunk { - -namespace { - -PP_Resource VarToResource(struct PP_Var var) { - ProxyAutoLock lock; - ResourceVar* resource = ResourceVar::FromPPVar(var); - if (!resource) - return 0; - PP_Resource pp_resource = resource->GetPPResource(); - PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(pp_resource); - return pp_resource; -} - -struct PP_Var VarFromResource(PP_Resource resource) { - ProxyAutoLock lock; - return PpapiGlobals::Get()->GetVarTracker()->MakeResourcePPVar(resource); -} - -const PPB_VarResource_Dev_0_1 g_ppb_varresource_dev_0_1_thunk = { - &VarToResource, - &VarFromResource -}; - -} // namespace - -const PPB_VarResource_Dev_0_1* GetPPB_VarResource_Dev_0_1_Thunk() { - return &g_ppb_varresource_dev_0_1_thunk; -} - -} // namespace thunk -} // namespace ppapi diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index e5adfa6..9f7c7f7 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml @@ -29690,6 +29690,7 @@ other types of suffix sets. <int value="944161065" label="PPB_Flash_DRM;1.1"/> <int value="946515854" label="PPB_View(Dev);0.1"/> <int value="948969343" label="PPB_OpenGLES2;1.0"/> + <int value="961061294" label="PPB_Var;1.2"/> <int value="961317980" label="PPB_Fullscreen;1.0"/> <int value="964595048" label="PPB_BrokerTrusted;0.2"/> <int value="965548627" label="PPB_Audio;1.1"/> @@ -29728,7 +29729,6 @@ other types of suffix sets. <int value="1374976378" label="PPB_OpenGLES2Query;1.0"/> <int value="1437724812" label="PPB_AudioConfig;1.0"/> <int value="1443771913" label="PPB_NetAddress;1.0"/> - <int value="1465557812" label="PPB_VarResource(Dev);0.1"/> <int value="1504691399" label="PPB_Flash;13.0"/> <int value="1505595424" label="PPB_Crypto(Dev);0.1"/> <int value="1508192415" label="PPB_VarDictionary;1.0"/> |