summaryrefslogtreecommitdiffstats
path: root/WebCore/bridge/Bridge.h
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-01-21 10:38:22 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-01-21 10:38:22 -0800
commit031f2784518da97d8493c76709dc87ac2fac8d68 (patch)
tree73031e0c18fdf3b61170e92d19dc913ca7d50483 /WebCore/bridge/Bridge.h
parent0926ef1b86138ebea85100fdd825f89726482972 (diff)
parenta6466ffc1f777725ad54838722865978fb23277d (diff)
downloadexternal_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.h110
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