1b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian/* 254dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block * Copyright 2010, The Android Open Source Project 3b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * 4b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * Redistribution and use in source and binary forms, with or without 5b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * modification, are permitted provided that the following conditions 6b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * are met: 7b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * * Redistributions of source code must retain the above copyright 8b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * notice, this list of conditions and the following disclaimer. 9b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * * Redistributions in binary form must reproduce the above copyright 10b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * notice, this list of conditions and the following disclaimer in the 11b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * documentation and/or other materials provided with the distribution. 12b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * 13b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY 14b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 1609e3a0d3e5e0725e32330137c505146270a2fc84Steve Block * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 17b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24b2318f335c407832166c7568f3e50afedad5b9dbFeng Qian */ 257fa30a60f66c19c8e6fb91ef799bca4d8d6f57f2Feng Qian 2654dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block#ifndef JavaNPObjectV8_h 2754dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block#define JavaNPObjectV8_h 287fa30a60f66c19c8e6fb91ef799bca4d8d6f57f2Feng Qian 2981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if ENABLE(JAVA_BRIDGE) 3081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 3154dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block#include "npruntime.h" 3254dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block#include <wtf/RefPtr.h> 337fa30a60f66c19c8e6fb91ef799bca4d8d6f57f2Feng Qian 3454dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block 3554dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Blocknamespace JSC { 3654dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block 3754dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Blocknamespace Bindings { 3854dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block 3954dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Blockclass JavaInstance; 407fa30a60f66c19c8e6fb91ef799bca4d8d6f57f2Feng Qian 417fa30a60f66c19c8e6fb91ef799bca4d8d6f57f2Feng Qianstruct JavaNPObject { 4254dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block NPObject m_object; 4354dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block RefPtr<JavaInstance> m_instance; 447fa30a60f66c19c8e6fb91ef799bca4d8d6f57f2Feng Qian}; 457fa30a60f66c19c8e6fb91ef799bca4d8d6f57f2Feng Qian 4649a6d4f2c272010e14806805cb2ca55e6fe8a782Steve BlockNPObject* JavaInstanceToNPObject(JavaInstance*); 4754dec9637e20bfba1857f3d54df3c43ce94ff97bSteve BlockJavaInstance* ExtractJavaInstance(NPObject*); 4854dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block 4909e3a0d3e5e0725e32330137c505146270a2fc84Steve Blockbool JavaNPObjectHasMethod(NPObject*, NPIdentifier name); 5009e3a0d3e5e0725e32330137c505146270a2fc84Steve Blockbool JavaNPObjectInvoke(NPObject*, NPIdentifier methodName, const NPVariant* args, uint32_t argCount, NPVariant* result); 5109e3a0d3e5e0725e32330137c505146270a2fc84Steve Blockbool JavaNPObjectHasProperty(NPObject*, NPIdentifier name); 5209e3a0d3e5e0725e32330137c505146270a2fc84Steve Blockbool JavaNPObjectGetProperty(NPObject*, NPIdentifier name, NPVariant* result); 537fa30a60f66c19c8e6fb91ef799bca4d8d6f57f2Feng Qian 5454dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block} // namespace Bindings 557fa30a60f66c19c8e6fb91ef799bca4d8d6f57f2Feng Qian 5654dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block} // namespace JSC 577fa30a60f66c19c8e6fb91ef799bca4d8d6f57f2Feng Qian 5881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#endif // ENABLE(JAVA_BRIDGE) 5981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 6054dec9637e20bfba1857f3d54df3c43ce94ff97bSteve Block#endif // JavaNPObjectV8_h 61