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

Unified Diff: experimental/c_salt/npapi/javascript_object_proxy.cc

Issue 10928195: First round of dead file removal (Closed) Base URL: https://github.com/samclegg/nativeclient-sdk.git@master
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « experimental/c_salt/npapi/javascript_object_proxy.h ('k') | experimental/c_salt/npapi/npn_bridge.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: experimental/c_salt/npapi/javascript_object_proxy.cc
diff --git a/experimental/c_salt/npapi/javascript_object_proxy.cc b/experimental/c_salt/npapi/javascript_object_proxy.cc
deleted file mode 100644
index 6ee2063cf3080ee3d18670b0b27b624d46799983..0000000000000000000000000000000000000000
--- a/experimental/c_salt/npapi/javascript_object_proxy.cc
+++ /dev/null
@@ -1,192 +0,0 @@
-// Copyright 2010 The Ginsu 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 "c_salt/npapi/javascript_object_proxy.h"
-
-#include "c_salt/npapi/scoped_npid_to_string_converter.h"
-#include "c_salt/variant.h"
-
-namespace c_salt {
-
-namespace npapi {
-
-namespace {
- // RAII wrappers for NPVariant that calls NPN_ReleaseVariantValue on
- // destruction. NPVariantSentry is for most uses where you want to create an
- // NPVariant on the stack and have it released at the end of scope. In those
- // cases, simply create an NPVariantSentry, and when you need to use the
- // NPVariant it owns, call my_sentry.np_variant() to get a reference to it.
- class NPVariantSentry {
- public:
- NPVariantSentry() : np_variant_() {}
- NPVariant& np_variant() { return np_variant_; }
- ~NPVariantSentry() { NPN_ReleaseVariantValue(&np_variant_); }
- private:
- NPVariant np_variant_;
- };
- // NPVariantPtrSentry is used when you want to own the NPVariant some other
- // way, but you want NPN_ReleaseVariantValue to be invoked when the
- // NPVariantPtrSentry goes out of scope.
- class NPVariantPtrSentry {
- public:
- NPVariantPtrSentry() : np_variant_(NULL) {}
- explicit NPVariantPtrSentry(NPVariant* np_variant)
- : np_variant_(np_variant) {}
- NPVariant* np_variant() { return np_variant_; }
- void set_np_variant(NPVariant* np_variant) {
- release();
- np_variant_ = np_variant;
- }
- void release() {
- if (np_variant_) {
- NPN_ReleaseVariantValue(np_variant_);
- }
- np_variant_ = NULL;
- }
- ~NPVariantPtrSentry() { release(); }
- private:
- NPVariant* np_variant_;
- };
-}
-
-JavaScriptObjectProxy::JavaScriptObjectProxy(NPObject* np_object,
- NPP instance)
- : instance_(instance), np_object_(np_object), variant_converter_(instance) {
- NPN_RetainObject(np_object_);
-}
-
-JavaScriptObjectProxy::~JavaScriptObjectProxy() {
- NPN_ReleaseObject(np_object_);
-}
-
-void JavaScriptObjectProxy::Invalidate() {
- instance_ = NULL;
- np_object_ = NULL;
-}
-
-bool JavaScriptObjectProxy::Valid() const {
- return (instance_ && np_object_);
-}
-
-bool JavaScriptObjectProxy::HasScriptMethod(const std::string& name) {
- if (!Valid()) return false;
- NPIdentifier name_id = NPN_GetStringIdentifier(name.c_str());
- return NPN_HasMethod(instance_, np_object_, name_id);
-}
-
-bool
-JavaScriptObjectProxy::InvokeScriptMethod(
- const std::string& method_name,
- const SharedVariant* params_begin,
- const SharedVariant* params_end,
- ::c_salt::SharedVariant* return_value) {
- if (!Valid()) return false;
- // Allocate a vector of NPVariants to hold the parameters and convet the
- // c_salt variants to them.
- std::size_t arg_count = params_end - params_begin;
- std::vector<NPVariant> np_var_vector(arg_count);
- // Make a vector of sentries to ensure the NPVariants are cleaned up
- // regardless of how we exit this function.
- std::vector<NPVariantPtrSentry> np_var_sentry_vector(arg_count);
- for (size_t i = 0; i < arg_count; ++i) {
- // Point the i-th sentry at the i-th NPVariant. Note that it's not
- // necessary prior to this, as the i-th sentry is still NULL until after the
- // conversion.
- np_var_sentry_vector[i].set_np_variant(&np_var_vector[i]);
- variant_converter_.ConvertVariantToNPVariant(*params_begin[i],
- &np_var_vector[i]);
- }
- bool success = false;
- NPVariantSentry return_var;
- if (!method_name.empty()) {
- NPIdentifier name_id = NPN_GetStringIdentifier(method_name.c_str());
- success = NPN_Invoke(instance_,
- np_object_,
- name_id,
- &(*np_var_vector.begin()),
- np_var_vector.size(),
- &return_var.np_variant());
- } else {
- success = NPN_InvokeDefault(instance_,
- np_object_,
- &(*np_var_vector.begin()),
- np_var_vector.size(),
- &return_var.np_variant());
- }
- if (success) {
- (*return_value) =
- variant_converter_.CreateVariantFromNPVariant(return_var.np_variant());
- }
- return success;
-}
-
-void JavaScriptObjectProxy::GetAllPropertyNames(
- std::vector<std::string>* prop_names)
- const {
- if (!Valid()) return;
- if (prop_names) {
- // Use the copy-and-swap idiom to ensure prop_names is only modified if
- // everything succeeds.
- std::vector<std::string> keys;
- NPIdentifier* npid_array;
- uint32_t array_size;
- if (NPN_Enumerate(instance_, np_object_, &npid_array, &array_size)) {
- keys.resize(array_size);
- for (uint32_t i = 0; i < array_size; ++i) {
- keys[i] = ScopedNPIdToStringConverter(npid_array[i]).string_value();
- }
- }
- NPN_MemFree(npid_array);
- prop_names->swap(keys);
- }
-}
-
-bool JavaScriptObjectProxy::HasScriptProperty(const std::string& name) {
- if (!Valid()) return false;
- NPIdentifier name_id = NPN_GetStringIdentifier(name.c_str());
- return NPN_HasProperty(instance_, np_object_, name_id);
-}
-
-bool
-JavaScriptObjectProxy::GetScriptProperty(const std::string& name,
- SharedVariant* return_value) const {
- if (!Valid()) return false;
- assert(return_value);
- if (NULL == return_value) {
- return false;
- }
- NPIdentifier name_id = NPN_GetStringIdentifier(name.c_str());
- NPVariantSentry result;
- bool success = NPN_GetProperty(instance_,
- np_object_,
- name_id,
- &result.np_variant());
- if (success) {
- *return_value = variant_converter_.
- CreateVariantFromNPVariant(result.np_variant());
- }
- return success;
-}
-
-bool JavaScriptObjectProxy::SetScriptProperty(const std::string& name,
- const SharedVariant& value) {
- if (!Valid()) return false;
- NPIdentifier name_id = NPN_GetStringIdentifier(name.c_str());
- NPVariantSentry np_var;
- variant_converter_.ConvertVariantToNPVariant(*value, &np_var.np_variant());
- bool success = NPN_SetProperty(instance_,
- np_object_,
- name_id,
- &np_var.np_variant());
- return success;
-}
-
-bool JavaScriptObjectProxy::RemoveScriptProperty(const std::string& name) {
- if (!Valid()) return false;
- NPIdentifier name_id = NPN_GetStringIdentifier(name.c_str());
- return NPN_RemoveProperty(instance_, np_object_, name_id);
-}
-
-} // namespace npapi
-} // namespace c_salt
« no previous file with comments | « experimental/c_salt/npapi/javascript_object_proxy.h ('k') | experimental/c_salt/npapi/npn_bridge.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698