diff options
| author | Steve Block <steveblock@google.com> | 2010-01-21 10:38:22 -0800 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-01-21 10:38:22 -0800 |
| commit | 031f2784518da97d8493c76709dc87ac2fac8d68 (patch) | |
| tree | 73031e0c18fdf3b61170e92d19dc913ca7d50483 /WebCore/bridge/Bridge.h | |
| parent | 0926ef1b86138ebea85100fdd825f89726482972 (diff) | |
| parent | a6466ffc1f777725ad54838722865978fb23277d (diff) | |
| download | external_webkit-031f2784518da97d8493c76709dc87ac2fac8d68.zip external_webkit-031f2784518da97d8493c76709dc87ac2fac8d68.tar.gz external_webkit-031f2784518da97d8493c76709dc87ac2fac8d68.tar.bz2 | |
Merge changes I1b4ba984,I6cadc4f4,Icf99c709,Id22d59b7,I63f3c4ed
* changes:
Fixes style in V8 jni_runtime.[cpp|h]
Updates V8 version of JavaString to use a private implementation class.
Move V8 jni_npobject to bridge/jni/v8/JavaNPObjectV8 and fix style
Move V8 jni_instance to bridge/jni/v8/JavaInstanceV8 and fix style
Cherry-pick WebKit change 53620 to move bridge interfaces Field, Class, Instance and Array from Bridge to BridgeJSC
Diffstat (limited to 'WebCore/bridge/Bridge.h')
| -rw-r--r-- | WebCore/bridge/Bridge.h | 110 |
1 files changed, 2 insertions, 108 deletions
diff --git a/WebCore/bridge/Bridge.h b/WebCore/bridge/Bridge.h index 71c72c3..d92cd15 100644 --- a/WebCore/bridge/Bridge.h +++ b/WebCore/bridge/Bridge.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2003, 2008, 2009 Apple Inc. All rights reserved. + * Copyright 2010, The Android Open Source Project * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -26,35 +27,12 @@ #ifndef Bridge_h #define Bridge_h -#include <runtime/JSString.h> -#include <wtf/HashMap.h> -#include <wtf/RefCounted.h> -#include <wtf/Vector.h> +#include "BridgeJSC.h" namespace JSC { -class ArgList; -class Identifier; -class JSGlobalObject; -class PropertyNameArray; -class RuntimeObjectImp; - namespace Bindings { -class Instance; -class Method; -class RootObject; - -typedef Vector<Method*> MethodList; - -class Field { -public: - virtual JSValue valueFromInstance(ExecState*, const Instance*) const = 0; - virtual void setValueToInstance(ExecState*, const Instance*, JSValue) const = 0; - - virtual ~Field() { } -}; - class Method : public Noncopyable { public: virtual int numParameters() const = 0; @@ -62,90 +40,6 @@ public: virtual ~Method() { } }; -class Class : public Noncopyable { -public: - virtual MethodList methodsNamed(const Identifier&, Instance*) const = 0; - virtual Field* fieldNamed(const Identifier&, Instance*) const = 0; - virtual JSValue fallbackObject(ExecState*, Instance*, const Identifier&) { return jsUndefined(); } - - virtual ~Class() { } -}; - -typedef void (*KJSDidExecuteFunctionPtr)(ExecState*, JSObject* rootObject); - -class Instance : public RefCounted<Instance> { -public: - Instance(PassRefPtr<RootObject>); - - static void setDidExecuteFunction(KJSDidExecuteFunctionPtr func); - static KJSDidExecuteFunctionPtr didExecuteFunction(); - - // These functions are called before and after the main entry points into - // the native implementations. They can be used to establish and cleanup - // any needed state. - void begin(); - void end(); - - virtual Class* getClass() const = 0; - RuntimeObjectImp* createRuntimeObject(ExecState*); - void willInvalidateRuntimeObject(); - void willDestroyRuntimeObject(); - - // Returns false if the value was not set successfully. - virtual bool setValueOfUndefinedField(ExecState*, const Identifier&, JSValue) { return false; } - - virtual JSValue invokeMethod(ExecState*, const MethodList&, const ArgList& args) = 0; - - virtual bool supportsInvokeDefaultMethod() const { return false; } - virtual JSValue invokeDefaultMethod(ExecState*, const ArgList&) { return jsUndefined(); } - - virtual bool supportsConstruct() const { return false; } - virtual JSValue invokeConstruct(ExecState*, const ArgList&) { return JSValue(); } - - virtual void getPropertyNames(ExecState*, PropertyNameArray&) { } - - virtual JSValue defaultValue(ExecState*, PreferredPrimitiveType) const = 0; - - virtual JSValue valueOf(ExecState* exec) const = 0; - - RootObject* rootObject() const; - - virtual ~Instance(); - - virtual bool getOwnPropertySlot(JSObject*, ExecState*, const Identifier&, PropertySlot&) { return false; } - virtual bool getOwnPropertyDescriptor(JSObject*, ExecState*, const Identifier&, PropertyDescriptor&) { return false; } - virtual void put(JSObject*, ExecState*, const Identifier&, JSValue, PutPropertySlot&) { } - -protected: - virtual void virtualBegin() { } - virtual void virtualEnd() { } - virtual RuntimeObjectImp* newRuntimeObject(ExecState*); - - RefPtr<RootObject> m_rootObject; - -private: - RuntimeObjectImp* m_runtimeObject; -}; - -class Array : public Noncopyable { -public: - Array(PassRefPtr<RootObject>); - virtual ~Array(); - - virtual void setValueAt(ExecState*, unsigned index, JSValue) const = 0; - virtual JSValue valueAt(ExecState*, unsigned index) const = 0; - virtual unsigned int getLength() const = 0; - -protected: - RefPtr<RootObject> m_rootObject; -}; - -const char* signatureForParameters(const ArgList&); - -typedef HashMap<RefPtr<UString::Rep>, MethodList*> MethodListMap; -typedef HashMap<RefPtr<UString::Rep>, Method*> MethodMap; -typedef HashMap<RefPtr<UString::Rep>, Field*> FieldMap; - } // namespace Bindings } // namespace JSC |
