summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/component_updater/ppapi_utils.cc1
-rw-r--r--content/renderer/pepper/plugin_module.cc1
-rw-r--r--native_client_sdk/src/examples/api/media_stream_video/media_stream_video.cc3
-rw-r--r--native_client_sdk/src/libraries/ppapi/library.dsc1
-rw-r--r--native_client_sdk/src/libraries/ppapi_cpp/library.dsc2
-rw-r--r--ppapi/api/dev/ppb_var_resource_dev.idl38
-rw-r--r--ppapi/api/ppb_var.idl27
-rw-r--r--ppapi/c/dev/ppb_var_resource_dev.h60
-rw-r--r--ppapi/c/ppb_var.h37
-rw-r--r--ppapi/cpp/dev/var_resource_dev.cc70
-rw-r--r--ppapi/cpp/dev/var_resource_dev.h53
-rw-r--r--ppapi/cpp/resource.h4
-rw-r--r--ppapi/cpp/var.cc53
-rw-r--r--ppapi/cpp/var.h10
-rw-r--r--ppapi/examples/media_stream_audio/media_stream_audio.cc3
-rw-r--r--ppapi/examples/media_stream_video/media_stream_video.cc3
-rw-r--r--ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c79
-rw-r--r--ppapi/ppapi_shared.gypi1
-rw-r--r--ppapi/ppapi_sources.gypi3
-rw-r--r--ppapi/proxy/interface_list.cc3
-rw-r--r--ppapi/proxy/ppb_var_unittest.cc8
-rw-r--r--ppapi/proxy/websocket_resource_unittest.cc2
-rw-r--r--ppapi/shared_impl/ppb_var_shared.cc33
-rw-r--r--ppapi/shared_impl/ppb_var_shared.h1
-rw-r--r--ppapi/tests/test_post_message.cc4
-rw-r--r--ppapi/tests/test_var_resource.cc34
-rw-r--r--ppapi/tests/test_var_resource.h2
-rw-r--r--ppapi/thunk/interfaces_legacy.h2
-rw-r--r--ppapi/thunk/interfaces_ppb_public_dev.h1
-rw-r--r--ppapi/thunk/ppb_var_resource_dev_thunk.cc46
-rw-r--r--tools/metrics/histograms/histograms.xml2
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"/>