Firefox 9 DevMode Plugin
Review at http://gwt-code-reviews.appspot.com/1620803
Review by: conroy@google.com
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10837 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/plugins/common/HostChannel.cpp b/plugins/common/HostChannel.cpp
index bff1b21..2cabb01 100644
--- a/plugins/common/HostChannel.cpp
+++ b/plugins/common/HostChannel.cpp
@@ -83,6 +83,7 @@
disconnectFromHost();
return false;
}
+
switch (type) {
case MESSAGE_TYPE_PROTOCOL_VERSION:
{
@@ -237,11 +238,10 @@
char type;
while (true) {
flush();
- Debug::log(Debug::Spam) << "Waiting for response, flushed output"
- << Debug::flush;
+ Debug::log(Debug::Debugging) << "Waiting for response, flushed output" << Debug::flush;
if (!readByte(type)) {
if (isConnected()) {
- Debug::log(Debug::Error) << "Failed to receive message type"
+ Debug::log(Debug::Debugging) << "Failed to receive message type"
<< Debug::flush;
}
return 0;
@@ -254,7 +254,7 @@
Debug::log(Debug::Error) << "Failed to receive invoke message" << Debug::flush;
return 0;
}
- Value returnValue;
+ gwt::Value returnValue;
bool exception = handler->invoke(*this, imsg->getThis(), imsg->getMethodName(),
imsg->getNumArgs(), imsg->getArgs(), &returnValue);
handler->sendFreeValues(*this);
@@ -269,7 +269,7 @@
Debug::log(Debug::Error) << "Failed to receive invoke special message" << Debug::flush;
return 0;
}
- Value returnValue;
+ gwt::Value returnValue;
bool exception = handler->invokeSpecial(*this, imsg->getDispatchId(),
imsg->getNumArgs(), imsg->getArgs(), &returnValue);
handler->sendFreeValues(*this);
@@ -319,81 +319,81 @@
}
}
-bool HostChannel::readValue(Value& valueRef) {
+bool HostChannel::readValue(gwt::Value& valueRef) {
char typeBuf;
if (!readByte(typeBuf)) return false;
- Value::ValueType type = Value::ValueType(typeBuf);
+ gwt::Value::ValueType type = gwt::Value::ValueType(typeBuf);
switch (type) {
- case Value::NULL_TYPE:
+ case gwt::Value::NULL_TYPE:
valueRef.setNull();
return true;
- case Value::UNDEFINED:
+ case gwt::Value::UNDEFINED:
valueRef.setUndefined();
return true;
- case Value::BOOLEAN:
+ case gwt::Value::BOOLEAN:
{
char val;
if (!readByte(val)) return false;
valueRef.setBoolean(val != 0);
}
return true;
- case Value::BYTE:
+ case gwt::Value::BYTE:
{
char val;
if (!readByte(val)) return false;
valueRef.setByte(val);
}
return true;
- case Value::CHAR:
+ case gwt::Value::CHAR:
{
short val;
if (!readShort(val)) return false;
valueRef.setChar(val);
}
return true;
- case Value::SHORT:
+ case gwt::Value::SHORT:
{
short val;
if (!readShort(val)) return false;
valueRef.setShort(val);
}
return true;
- case Value::STRING:
+ case gwt::Value::STRING:
{
std::string val;
if (!readString(val)) return false;
valueRef.setString(val);
}
return true;
- case Value::INT:
+ case gwt::Value::INT:
{
int val;
if (!readInt(val)) return false;
valueRef.setInt(val);
}
return true;
- case Value::LONG:
+ case gwt::Value::LONG:
{
int64_t val;
if (!readLong(val)) return false;
valueRef.setLong(val);
}
return true;
- case Value::DOUBLE:
+ case gwt::Value::DOUBLE:
{
double val;
if (!readDouble(val)) return false;
valueRef.setDouble(val);
}
return true;
- case Value::JAVA_OBJECT:
+ case gwt::Value::JAVA_OBJECT:
{
int objId;
if (!readInt(objId)) return false;
valueRef.setJavaObject(objId);
}
return true;
- case Value::JS_OBJECT:
+ case gwt::Value::JS_OBJECT:
{
int val;
if (!readInt(val)) return false;
@@ -407,35 +407,35 @@
return false;
}
-bool HostChannel::sendValue(const Value& value) {
- Value::ValueType type = value.getType();
+bool HostChannel::sendValue(const gwt::Value& value) {
+ gwt::Value::ValueType type = value.getType();
if (!sendByte(type)) return false;
switch (type) {
- case Value::NULL_TYPE:
- case Value::UNDEFINED:
+ case gwt::Value::NULL_TYPE:
+ case gwt::Value::UNDEFINED:
// Null and Undefined only have the tag byte, no data
return true;
- case Value::BOOLEAN:
+ case gwt::Value::BOOLEAN:
return sendByte(value.getBoolean() ? 1 : 0);
- case Value::BYTE:
+ case gwt::Value::BYTE:
return sendByte(value.getByte());
- case Value::CHAR:
+ case gwt::Value::CHAR:
return sendShort(short(value.getChar()));
- case Value::SHORT:
+ case gwt::Value::SHORT:
return sendShort(value.getShort());
- case Value::INT:
+ case gwt::Value::INT:
return sendInt(value.getInt());
- case Value::LONG:
+ case gwt::Value::LONG:
return sendLong(value.getLong());
- case Value::STRING:
+ case gwt::Value::STRING:
return sendString(value.getString());
- case Value::DOUBLE:
+ case gwt::Value::DOUBLE:
return sendDouble(value.getDouble());
- case Value::FLOAT:
+ case gwt::Value::FLOAT:
return sendFloat(value.getFloat());
- case Value::JS_OBJECT:
+ case gwt::Value::JS_OBJECT:
return sendInt(value.getJsObjectId());
- case Value::JAVA_OBJECT:
+ case gwt::Value::JAVA_OBJECT:
return sendInt(value.getJavaObjectId());
default:
Debug::log(Debug::Error) << "Unhandled value type sent to server: " << type << Debug::flush;
diff --git a/plugins/common/HostChannel.h b/plugins/common/HostChannel.h
index 3c5c5e3..e8a53ec 100644
--- a/plugins/common/HostChannel.h
+++ b/plugins/common/HostChannel.h
@@ -131,8 +131,8 @@
return sendString(str.c_str(), static_cast<uint32_t>(str.length()));
}
- bool readValue(Value& valueRef);
- bool sendValue(const Value& value);
+ bool readValue(gwt::Value& valueRef);
+ bool sendValue(const gwt::Value& value);
ReturnMessage* reactToMessages(SessionHandler* handler, bool expectReturn);
diff --git a/plugins/common/InvokeMessage.cpp b/plugins/common/InvokeMessage.cpp
index 90fc790..9207f81 100644
--- a/plugins/common/InvokeMessage.cpp
+++ b/plugins/common/InvokeMessage.cpp
@@ -38,7 +38,7 @@
printf("Failed to read method name\n");
return 0;
}
- Value thisRef;
+ gwt::Value thisRef;
if (!channel.readValue(thisRef)) {
// TODO(jat): error handling
printf("Failed to read thisRef\n");
@@ -50,7 +50,7 @@
printf("Failed to read #args\n");
return 0;
}
- scoped_array<Value> args(new Value[numArgs]);
+ scoped_array<gwt::Value> args(new gwt::Value[numArgs]);
for (int i = 0; i < numArgs; ++i) {
if (!channel.readValue(args[i])) {
// TODO(jat): error handling
@@ -66,8 +66,8 @@
*
* Note that the method to be invoked is sent as an integer (a dispatch id) to the server.
*/
-bool InvokeMessage::send(HostChannel& channel, const Value& thisRef, int methodDispatchId,
- int numArgs, const Value* args) {
+bool InvokeMessage::send(HostChannel& channel, const gwt::Value& thisRef, int methodDispatchId,
+ int numArgs, const gwt::Value* args) {
if (!channel.sendByte(TYPE)) return false;
if (!channel.sendInt(methodDispatchId)) return false;
if (!channel.sendValue(thisRef)) return false;
diff --git a/plugins/common/InvokeMessage.h b/plugins/common/InvokeMessage.h
index 7d57e30..0296d75 100644
--- a/plugins/common/InvokeMessage.h
+++ b/plugins/common/InvokeMessage.h
@@ -36,32 +36,32 @@
static const char TYPE = MESSAGE_TYPE_INVOKE;
static const int TOSTRING_DISP_ID = 0;
private:
- Value thisRef;
+ gwt::Value thisRef;
std::string methodName;
int methodDispatchId;
int numArgs;
- const Value* args;
+ const gwt::Value* args;
protected:
/**
* @param args array of arguments -- InvokeMessage takes ownership and will
* destroy when it is destroyed.
*/
- InvokeMessage(const Value& thisRef, const std::string& methodName,
- int numArgs, const Value* args) : thisRef(thisRef), methodName(methodName),
+ InvokeMessage(const gwt::Value& thisRef, const std::string& methodName,
+ int numArgs, const gwt::Value* args) : thisRef(thisRef), methodName(methodName),
numArgs(numArgs), args(args) {}
public:
~InvokeMessage();
virtual char getType() const;
- Value getThis() const { return thisRef; }
+ gwt::Value getThis() const { return thisRef; }
const std::string& getMethodName() const { return methodName; }
int getNumArgs() const { return numArgs; }
- const Value* const getArgs() const { return args; }
+ const gwt::Value* const getArgs() const { return args; }
static InvokeMessage* receive(HostChannel& channel);
- static bool send(HostChannel& channel, const Value& thisRef, int methodDispatchId,
- int numArgs, const Value* args);
+ static bool send(HostChannel& channel, const gwt::Value& thisRef, int methodDispatchId,
+ int numArgs, const gwt::Value* args);
};
#endif
diff --git a/plugins/common/InvokeSpecialMessage.cpp b/plugins/common/InvokeSpecialMessage.cpp
index 5fd1540..0a9f418 100644
--- a/plugins/common/InvokeSpecialMessage.cpp
+++ b/plugins/common/InvokeSpecialMessage.cpp
@@ -45,7 +45,7 @@
printf("Failed to read #args\n");
return 0;
}
- scoped_array<Value> args(new Value[numArgs]);
+ scoped_array<gwt::Value> args(new gwt::Value[numArgs]);
for (int i = 0; i < numArgs; ++i) {
if (!channel.readValue(args[i])) {
// TODO(jat): error handling
@@ -63,7 +63,7 @@
* Request the server perform a special method and return the result.
*/
bool InvokeSpecialMessage::send(HostChannel& channel, int dispatchId,
- int numArgs, const Value* args) {
+ int numArgs, const gwt::Value* args) {
if (!channel.sendByte(TYPE)) return false;
if (!channel.sendByte(dispatchId)) return false;
if (!channel.sendInt(numArgs)) return false;
diff --git a/plugins/common/InvokeSpecialMessage.h b/plugins/common/InvokeSpecialMessage.h
index 5888cc1..84c90ff 100644
--- a/plugins/common/InvokeSpecialMessage.h
+++ b/plugins/common/InvokeSpecialMessage.h
@@ -34,15 +34,15 @@
private:
SessionHandler::SpecialMethodId dispatchId;
int numArgs;
- const Value* args;
+ const gwt::Value* args;
protected:
/**
* @param args array of arguments -- InvokeMessage takes ownership and will
* destroy when it is destroyed.
*/
- InvokeSpecialMessage(SessionHandler::SpecialMethodId dispatchId, int numArgs, const Value* args) : dispatchId(dispatchId),
- numArgs(numArgs), args(args) {}
+ InvokeSpecialMessage(SessionHandler::SpecialMethodId dispatchId, int numArgs,
+ const gwt::Value* args) : dispatchId(dispatchId), numArgs(numArgs), args(args) {}
public:
~InvokeSpecialMessage();
@@ -50,10 +50,10 @@
SessionHandler::SpecialMethodId getDispatchId() const { return dispatchId; }
int getNumArgs() const { return numArgs; }
- const Value* const getArgs() const { return args; }
+ const gwt::Value* const getArgs() const { return args; }
static InvokeSpecialMessage* receive(HostChannel& channel);
static bool send(HostChannel& channel, int dispatchId, int numArgs,
- const Value* args);
+ const gwt::Value* args);
};
#endif
diff --git a/plugins/common/LoadModuleMessage.cpp b/plugins/common/LoadModuleMessage.cpp
index 1ee4ab3..525383b 100644
--- a/plugins/common/LoadModuleMessage.cpp
+++ b/plugins/common/LoadModuleMessage.cpp
@@ -30,7 +30,7 @@
const std::string& tabKey, const std::string& sessionKey,
const std::string& moduleName, const std::string& userAgent,
SessionHandler* handler) {
- Debug::log(Debug::Spam) << "LoadModule(url=\"" << url << "\", tabKey=\""
+ Debug::log(Debug::Debugging) << "LoadModule(url=\"" << url << "\", tabKey=\""
<< "\", sessionKey=\"" << sessionKey << "\", module=\"" << moduleName
<< "\")" << Debug::flush;
if (!channel.sendByte(TYPE) || !channel.sendString(url)
@@ -45,6 +45,5 @@
if (!ret.get()) {
return false;
}
-
return !ret.get()->isException();
}
diff --git a/plugins/common/ReturnMessage.cpp b/plugins/common/ReturnMessage.cpp
index 0149c1f..159d009 100644
--- a/plugins/common/ReturnMessage.cpp
+++ b/plugins/common/ReturnMessage.cpp
@@ -27,7 +27,7 @@
// TODO(jat): error handling
return 0;
}
- Value retval;
+ gwt::Value retval;
if (!channel.readValue(retval)) {
// TODO(jat): error handling
return 0;
@@ -35,7 +35,7 @@
return new ReturnMessage(isException != 0, retval);
}
-bool ReturnMessage::send(HostChannel& channel, bool isException, const Value& retval) {
+bool ReturnMessage::send(HostChannel& channel, bool isException, const gwt::Value& retval) {
if (!channel.sendByte(TYPE)) return false;
if (!channel.sendByte(isException ? 1 : 0)) return false;
return channel.sendValue(retval);
diff --git a/plugins/common/ReturnMessage.h b/plugins/common/ReturnMessage.h
index 374b9fe..29141ec 100644
--- a/plugins/common/ReturnMessage.h
+++ b/plugins/common/ReturnMessage.h
@@ -34,17 +34,17 @@
static const char TYPE = MESSAGE_TYPE_RETURN;
private:
bool bisException;
- Value retval;
+ gwt::Value retval;
public:
- ReturnMessage(bool isException, const Value& retValue) : bisException(isException),
+ ReturnMessage(bool isException, const gwt::Value& retValue) : bisException(isException),
retval(retValue) {}
bool isException() const { return bisException; }
- const Value& getReturnValue() const { return retval; }
+ const gwt::Value& getReturnValue() const { return retval; }
virtual char getType() const;
static ReturnMessage* receive(HostChannel& channel);
- static bool send(HostChannel& channel, bool isException, const Value& retValue);
+ static bool send(HostChannel& channel, bool isException, const gwt::Value& retValue);
};
#endif
diff --git a/plugins/common/ServerMethods.cpp b/plugins/common/ServerMethods.cpp
index 0be51b0..672b44a 100644
--- a/plugins/common/ServerMethods.cpp
+++ b/plugins/common/ServerMethods.cpp
@@ -27,26 +27,26 @@
using std::string;
-Value ServerMethods::getProperty(HostChannel& channel, SessionHandler* handler, int objectRef,
+gwt::Value ServerMethods::getProperty(HostChannel& channel, SessionHandler* handler, int objectRef,
int dispatchId) {
if (!channel.isConnected()) {
Debug::log(Debug::Debugging) << "Ignoring getProperty after disconnect"
<< Debug::flush;
- return Value();
+ return gwt::Value();
}
- Value args[2];
+ gwt::Value args[2];
args[0].setInt(objectRef);
args[1].setInt(dispatchId);
if (!InvokeSpecialMessage::send(channel, SPECIAL_GET_PROPERTY, 2, args)) {
Debug::log(Debug::Error) << " failed to send invoke of GetProperty(disp=" << dispatchId
<< ", obj=" << objectRef << ")" << Debug::flush;
- return Value();
+ return gwt::Value();
}
scoped_ptr<ReturnMessage> retMsg(channel.reactToMessagesWhileWaitingForReturn(handler));
if (!retMsg.get()) {
Debug::log(Debug::Error) << "getProperty: get return value failed for GetProperty(disp="
<< dispatchId << ", obj=" << objectRef << ")" << Debug::flush;
- return Value();
+ return gwt::Value();
}
return retMsg->getReturnValue();
}
@@ -62,7 +62,7 @@
<< Debug::flush;
return -2;
}
- Value arg;
+ gwt::Value arg;
arg.setString(name);
if (!InvokeSpecialMessage::send(channel, SPECIAL_HAS_METHOD, 1, &arg)) {
Debug::log(Debug::Error) << "hasMethod: invoke(hasMethod) failed" << Debug::flush;
@@ -73,7 +73,7 @@
Debug::log(Debug::Error) << "hasMethod: get return value failed" << Debug::flush;
return -2;
}
- Value retval = retMsg->getReturnValue();
+ gwt::Value retval = retMsg->getReturnValue();
// TODO(jat): better error handling?
return retval.isInt() ? retval.getInt() : -2;
}
@@ -89,7 +89,7 @@
<< Debug::flush;
return -2;
}
- Value arg;
+ gwt::Value arg;
arg.setString(name);
if (!InvokeSpecialMessage::send(channel, SPECIAL_HAS_PROPERTY, 1, &arg)) {
Debug::log(Debug::Error) << "hasProperty: invoke(hasProperty) failed" << Debug::flush;
@@ -100,20 +100,20 @@
Debug::log(Debug::Error) << "hasProperty: get return value failed" << Debug::flush;
return -2;
}
- Value retval = retMsg->getReturnValue();
+ gwt::Value retval = retMsg->getReturnValue();
// TODO(jat): better error handling?
return retval.isInt() ? retval.getInt() : -2;
}
bool ServerMethods::setProperty(HostChannel& channel, SessionHandler* handler, int objectRef,
- int dispatchId, const Value& value) {
+ int dispatchId, const gwt::Value& value) {
if (!channel.isConnected()) {
Debug::log(Debug::Debugging) << "Ignoring setProperty after disconnect"
<< Debug::flush;
return false;
}
// TODO(jat): error handling?
- Value args[3];
+ gwt::Value args[3];
args[0].setInt(objectRef);
args[1].setInt(dispatchId);
args[2] = value;
diff --git a/plugins/common/ServerMethods.h b/plugins/common/ServerMethods.h
index 3ff0134..02bf921 100644
--- a/plugins/common/ServerMethods.h
+++ b/plugins/common/ServerMethods.h
@@ -33,7 +33,7 @@
* @param dispatchID dispatch ID of field
* @return the value of the property, undef if none (or on error)
*/
- static Value getProperty(HostChannel& channel, SessionHandler* handler, int objectRef,
+ static gwt::Value getProperty(HostChannel& channel, SessionHandler* handler, int objectRef,
int dispatchId);
/**
@@ -63,7 +63,7 @@
* @return false if an error occurred
*/
static bool setProperty(HostChannel& channel, SessionHandler* handler, int objectRef,
- int dispatchId, const Value& value);
+ int dispatchId, const gwt::Value& value);
/**
* Tell the server that the client no longer has any references to the specified
diff --git a/plugins/common/SessionHandler.h b/plugins/common/SessionHandler.h
index aebd00d..159f762 100644
--- a/plugins/common/SessionHandler.h
+++ b/plugins/common/SessionHandler.h
@@ -84,8 +84,9 @@
*
* Returns true if an exception occurred.
*/
- virtual bool invoke(HostChannel& channel, const Value& thisObj, const std::string& methodName,
- int numArgs, const Value* const args, Value* returnValue)=0;
+ virtual bool invoke(HostChannel& channel, const gwt::Value& thisObj,
+ const std::string& methodName, int numArgs, const gwt::Value* const args,
+ gwt::Value* returnValue) = 0;
/**
* Invoke a plugin-provided method with the given args. As above, this method does not own
@@ -94,7 +95,7 @@
* Returns true if an exception occurred.
*/
virtual bool invokeSpecial(HostChannel& channel, SpecialMethodId method, int numArgs,
- const Value* const args, Value* returnValue) = 0;
+ const gwt::Value* const args, gwt::Value* returnValue) = 0;
/**
* Send any queued up free values back to the server.
diff --git a/plugins/common/Value.h b/plugins/common/Value.h
index d19b0b5..ab50f5e 100644
--- a/plugins/common/Value.h
+++ b/plugins/common/Value.h
@@ -27,6 +27,7 @@
#include "BrowserChannel.h"
+namespace gwt {
class Value {
public:
enum ValueType {
@@ -393,4 +394,6 @@
return dbg;
}
+} // namespace gwt
+
#endif
diff --git a/plugins/xpcom/FFSessionHandler.cpp b/plugins/xpcom/FFSessionHandler.cpp
index 8bc5ceb..7bc3dc0 100755
--- a/plugins/xpcom/FFSessionHandler.cpp
+++ b/plugins/xpcom/FFSessionHandler.cpp
@@ -206,9 +206,9 @@
// TODO(jat): implement
}
-bool FFSessionHandler::invoke(HostChannel& channel, const Value& thisObj, const std::string& methodName,
- int numArgs, const Value* const args, Value* returnValue) {
- Debug::log(Debug::Spam) << "FFSessionHandler::invoke " << thisObj.toString()
+bool FFSessionHandler::invoke(HostChannel& channel, const gwt::Value& thisObj, const std::string& methodName,
+ int numArgs, const gwt::Value* const args, gwt::Value* returnValue) {
+ Debug::log(Debug::Debugging) << "FFSessionHandler::invoke " << thisObj.toString()
<< "::" << methodName << Debug::flush;
JSContext* ctx = getJSContext();
@@ -300,7 +300,7 @@
* Returns true if an exception occurred.
*/
bool FFSessionHandler::invokeSpecial(HostChannel& channel, SpecialMethodId method, int numArgs,
- const Value* const args, Value* returnValue) {
+ const gwt::Value* const args, gwt::Value* returnValue) {
Debug::log(Debug::Spam) << "FFSessionHandler::invokeSpecial" << Debug::flush;
return false;
}
@@ -434,7 +434,7 @@
return JS_NewUCString(ctx, buf, p - buf);
}
-void FFSessionHandler::makeValueFromJsval(Value& retVal, JSContext* ctx,
+void FFSessionHandler::makeValueFromJsval(gwt::Value& retVal, JSContext* ctx,
const jsval& value) {
if (JSVAL_IS_VOID(value)) {
retVal.setUndefined();
@@ -491,24 +491,24 @@
}
void FFSessionHandler::makeJsvalFromValue(jsval& retVal, JSContext* ctx,
- const Value& value) {
+ const gwt::Value& value) {
switch (value.getType()) {
- case Value::NULL_TYPE:
+ case gwt::Value::NULL_TYPE:
retVal = JSVAL_NULL;
break;
- case Value::BOOLEAN:
+ case gwt::Value::BOOLEAN:
retVal = BOOLEAN_TO_JSVAL(value.getBoolean());
break;
- case Value::BYTE:
+ case gwt::Value::BYTE:
retVal = INT_TO_JSVAL((int) value.getByte());
break;
- case Value::CHAR:
+ case gwt::Value::CHAR:
retVal = INT_TO_JSVAL((int) value.getChar());
break;
- case Value::SHORT:
+ case gwt::Value::SHORT:
retVal = INT_TO_JSVAL((int) value.getShort());
break;
- case Value::INT: {
+ case gwt::Value::INT: {
int intValue = value.getInt();
if (INT_FITS_IN_JSVAL(intValue)) {
retVal = INT_TO_JSVAL(intValue);
@@ -518,22 +518,22 @@
break;
}
// TODO(jat): do we still need long support in the wire format and Value?
-// case Value::LONG:
+// case gwt::Value::LONG:
// retVal = value.getLong();
// break;
- case Value::FLOAT:
+ case gwt::Value::FLOAT:
JS_NewNumberValue(ctx, (jsdouble) value.getFloat(), &retVal);
break;
- case Value::DOUBLE:
+ case gwt::Value::DOUBLE:
JS_NewNumberValue(ctx, (jsdouble) value.getDouble(), &retVal);
break;
- case Value::STRING:
+ case gwt::Value::STRING:
{
JSString* str = stringUtf8(ctx, value.getString());
retVal = STRING_TO_JSVAL(str);
}
break;
- case Value::JAVA_OBJECT:
+ case gwt::Value::JAVA_OBJECT:
{
int javaId = value.getJavaObjectId();
std::map<int, JSObject*>::iterator i = javaObjectsById.find(javaId);
@@ -549,7 +549,7 @@
}
}
break;
- case Value::JS_OBJECT:
+ case gwt::Value::JS_OBJECT:
{
int jsId = value.getJsObjectId();
if (!JS_GetElement(ctx, jsObjectsById, jsId, &retVal)) {
@@ -560,7 +560,7 @@
}
}
break;
- case Value::UNDEFINED:
+ case gwt::Value::UNDEFINED:
retVal = JSVAL_VOID;
break;
default:
diff --git a/plugins/xpcom/FFSessionHandler.h b/plugins/xpcom/FFSessionHandler.h
index 0a2b1fc..f7941bf 100755
--- a/plugins/xpcom/FFSessionHandler.h
+++ b/plugins/xpcom/FFSessionHandler.h
@@ -26,17 +26,19 @@
#include "jsapi.h"
class HostChannel;
-class Value;
+namespace gwt {
+ class Value;
+}
class FFSessionHandler : public SessionData, public SessionHandler {
friend class JavaObject;
public:
FFSessionHandler(HostChannel* channel);
~FFSessionHandler(void);
- virtual void makeValueFromJsval(Value& retVal, JSContext* ctx,
+ virtual void makeValueFromJsval(gwt::Value& retVal, JSContext* ctx,
const jsval& value);
virtual void makeJsvalFromValue(jsval& retVal, JSContext* ctx,
- const Value& value);
+ const gwt::Value& value);
virtual void freeJavaObject(int objectId);
void disconnect();
@@ -44,10 +46,10 @@
virtual void disconnectDetectedImpl();
virtual void freeValue(HostChannel& channel, int idCount, const int* ids);
virtual void loadJsni(HostChannel& channel, const std::string& js);
- virtual bool invoke(HostChannel& channel, const Value& thisObj, const std::string& methodName,
- int numArgs, const Value* const args, Value* returnValue);
+ virtual bool invoke(HostChannel& channel, const gwt::Value& thisObj, const std::string& methodName,
+ int numArgs, const gwt::Value* const args, gwt::Value* returnValue);
virtual bool invokeSpecial(HostChannel& channel, SpecialMethodId method, int numArgs,
- const Value* const args, Value* returnValue);
+ const gwt::Value* const args, gwt::Value* returnValue);
virtual void sendFreeValues(HostChannel& channel);
virtual void fatalError(HostChannel& channel, const std::string& message);
diff --git a/plugins/xpcom/JavaObject.cpp b/plugins/xpcom/JavaObject.cpp
index 440858f..e63019b 100644
--- a/plugins/xpcom/JavaObject.cpp
+++ b/plugins/xpcom/JavaObject.cpp
@@ -148,14 +148,16 @@
*rval = JSVAL_VOID;
return JS_TRUE;
}
- Debug::log(Debug::Error) << "Getting unexpected string property "
- << dumpJsVal(ctx, id) << Debug::flush;
+ // TODO: dumpJsVal can no longer handle this case
+ //Debug::log(Debug::Error) << "Getting unexpected string property "
+ // << dumpJsVal(ctx, id) << Debug::flush;
// TODO: throw a better exception here
return JS_FALSE;
}
if (!JSID_IS_INT(id)) {
- Debug::log(Debug::Error) << "Getting non-int/non-string property "
- << dumpJsVal(ctx, id) << Debug::flush;
+ // TODO: dumpJsVal can no longer handle this case
+ //Debug::log(Debug::Error) << "Getting non-int/non-string property "
+ // << dumpJsVal(ctx, id) << Debug::flush;
// TODO: throw a better exception here
return JS_FALSE;
}
@@ -164,7 +166,7 @@
HostChannel* channel = data->getHostChannel();
SessionHandler* handler = data->getSessionHandler();
- Value value = ServerMethods::getProperty(*channel, handler, objectRef, dispId);
+ gwt::Value value = ServerMethods::getProperty(*channel, handler, objectRef, dispId);
data->makeJsvalFromValue(*rval, ctx, value);
return JS_TRUE;
}
@@ -192,7 +194,7 @@
int objectRef = JavaObject::getObjectId(ctx, obj);
int dispId = JSID_TO_INT(id);
- Value value;
+ gwt::Value value;
data->makeValueFromJsval(value, ctx, *vp);
HostChannel* channel = data->getHostChannel();
@@ -301,7 +303,7 @@
int oid = getObjectId(ctx, obj);
Debug::log(Debug::Spam) << "JavaObject::toString(id=" << oid << ")"
<< Debug::flush;
- Value javaThis;
+ gwt::Value javaThis;
javaThis.setJavaObject(oid);
// we ignore any supplied parameters
return invokeJava(ctx, data, javaThis, InvokeMessage::TOSTRING_DISP_ID, 0,
@@ -346,7 +348,7 @@
}
Debug::log(Debug::Spam) << "Data = " << data << Debug::flush;
- Value javaThis;
+ gwt::Value javaThis;
if (!JSVAL_IS_NULL(argv[1])) {
JSObject* thisObj = JSVAL_TO_OBJECT(argv[1]);
if (isJavaObject(ctx, thisObj)) {
@@ -392,17 +394,17 @@
* and the second element is the actual return value or exception.
*/
JSBool JavaObject::invokeJava(JSContext* ctx, SessionData* data,
- const Value& javaThis, int dispId, int numArgs, const jsval* jsargs,
+ const gwt::Value& javaThis, int dispId, int numArgs, const jsval* jsargs,
jsval* rval) {
HostChannel* channel = data->getHostChannel();
SessionHandler* handler = data->getSessionHandler();
- scoped_array<Value> args(new Value[numArgs]);
+ scoped_array<gwt::Value> args(new gwt::Value[numArgs]);
for (int i = 0; i < numArgs; ++i) {
data->makeValueFromJsval(args[i], ctx, jsargs[i]);
}
bool isException = false;
- Value returnValue;
+ gwt::Value returnValue;
if (!InvokeMessage::send(*channel, javaThis, dispId, numArgs, args.get())) {
Debug::log(Debug::Debugging) << "JavaObject::call failed to send invoke message" << Debug::flush;
} else {
diff --git a/plugins/xpcom/JavaObject.h b/plugins/xpcom/JavaObject.h
index acfb0a9..ea32ee7 100755
--- a/plugins/xpcom/JavaObject.h
+++ b/plugins/xpcom/JavaObject.h
@@ -20,7 +20,9 @@
#include "jsapi.h"
class SessionData;
-class Value;
+namespace gwt {
+ class Value;
+}
#if GECKO_VERSION < 2000
#define jsid jsval
@@ -61,7 +63,7 @@
private:
static SessionData* getSessionData(JSContext* ctx, JSObject* obj);
static JSBool invokeJava(JSContext* ctx, SessionData* data,
- const Value& javaThis, int dispId, int numArgs, const jsval* jsargs,
+ const gwt::Value& javaThis, int dispId, int numArgs, const jsval* jsargs,
jsval* rval);
};
diff --git a/plugins/xpcom/Makefile b/plugins/xpcom/Makefile
index 28f8bf4..dd4624e 100644
--- a/plugins/xpcom/Makefile
+++ b/plugins/xpcom/Makefile
@@ -77,7 +77,11 @@
#default ALLARCHFLAGS for post-FF4
ALLARCHCFLAGS = -arch i386 -arch x86_64 -Xarch_i386 -DFLAG32BIT=32 -Xarch_x86_64 -DFLAG32BIT=64
+# Python xpidl tool is the new hotness post-FF9
+XPIDL_TOOL = python
+
ifeq ($(BROWSER),ff3)
+XPIDL_TOOL = binary
MOZALLOC_DLLFLAGS =
GECKO_VERSION = 1.9.0
CFLAGS += -DGECKO_VERSION=1900
@@ -87,6 +91,7 @@
endif
else
ifeq ($(BROWSER),ff3+)
+XPIDL_TOOL = binary
MOZALLOC_DLLFLAGS =
GECKO_VERSION = 1.9.0
CFLAGS += -DGECKO_VERSION=1901
@@ -97,6 +102,7 @@
endif
else
ifeq ($(BROWSER),ff35)
+XPIDL_TOOL = binary
MOZALLOC_DLLFLAGS =
GECKO_VERSION = 1.9.1
CFLAGS += -DGECKO_VERSION=1910
@@ -106,6 +112,7 @@
endif
else
ifeq ($(BROWSER),ff36)
+XPIDL_TOOL = binary
MOZALLOC_DLLFLAGS =
GECKO_VERSION = 1.9.2
CFLAGS += -DGECKO_VERSION=1920
@@ -115,26 +122,36 @@
endif
else
ifeq ($(BROWSER),ff40)
+XPIDL_TOOL = binary
GECKO_VERSION = 2.0.0
CFLAGS += -DGECKO_VERSION=2000
else
ifeq ($(BROWSER),ff50)
+XPIDL_TOOL = binary
GECKO_VERSION = 5.0.0
CFLAGS += -DGECKO_VERSION=5000
else
ifeq ($(BROWSER),ff60)
+XPIDL_TOOL = binary
GECKO_VERSION = 6.0.0
CFLAGS += -DGECKO_VERSION=6000
else
ifeq ($(BROWSER),ff70)
+XPIDL_TOOL = binary
GECKO_VERSION = 7.0.0
CFLAGS += -DGECKO_VERSION=7000
else
ifeq ($(BROWSER),ff80)
+XPIDL_TOOL = binary
GECKO_VERSION = 8.0.0
CFLAGS += -DGECKO_VERSION=8000
else
-$(error Unrecognized BROWSER of $(BROWSER) - options are ff3, ff3+, ff35, ff36, ff40, ff50, ff60, ff70, f80)
+ifeq ($(BROWSER),ff90)
+GECKO_VERSION = 9.0.0
+CFLAGS += -DGECKO_VERSION=9000
+else
+$(error Unrecognized BROWSER of $(BROWSER) - options are ff3, ff3+, ff35, ff36, ff40, ff50, ff60, ff70, ff80, ff90)
+endif
endif
endif
endif
@@ -171,7 +188,17 @@
GECKO_SDK = $(SDK_PATH)/gecko-$(GECKO_VERSION)
GECKO_PLAT_INC = $(GECKO_SDK)/$(GECKO_PLATFORM)/include
GECKO_LIBS = $(GECKO_SDK)/$(GECKO_PLATFORM)/lib$(GECKO_MINOR_VERSION)
+
+ifeq ($(XPIDL_TOOL),python)
+XPIDL = $(GECKO_SDK)/bin/xpidl.py
+XPIDL_HEADER = $(GECKO_SDK)/bin/header.py
+XPIDL_TYPELIBS = $(GECKO_SDK)/bin/typelib.py
+else
XPIDL = $(GECKO_SDK)/$(GECKO_PLATFORM)/bin/xpidl
+XPIDL_HEADER = $(GECKO_SDK)/$(GECKO_PLATFORM)/bin/xpidl -m header
+XPIDL_TYPELIBS = $(GECKO_SDK)/$(GECKO_PLATFORM)/bin/xpidl -m typelib
+endif
+
XPIDL_FLAGS = -I$(GECKO_SDK)/idl
DLLFLAGS += \
@@ -225,6 +252,8 @@
$(MAKE) lib BROWSER=ff60 ARCH=x86_64
$(MAKE) lib BROWSER=ff70 ARCH=x86_64
$(MAKE) lib BROWSER=ff80 ARCH=x86_64
+ $(MAKE) lib BROWSER=ff90 ARCH=x86
+ $(MAKE) lib BROWSER=ff90 ARCH=x86_64
macplatforms:
$(MAKE) lib BROWSER=ff3
@@ -235,6 +264,7 @@
$(MAKE) lib BROWSER=ff60
$(MAKE) lib BROWSER=ff70
$(MAKE) lib BROWSER=ff80
+ $(MAKE) lib BROWSER=ff90
SRCS = \
ExternalWrapper.cpp \
@@ -259,10 +289,10 @@
(cd $(EXTENSION_OUTDIR) && zip -r -D -9 $(DIR)/$(INSTALLER_XPI) * -x '*/.svn/*' -x 'META-INF/*')
$(FF_TYPELIB): IOOPHM.idl
- [ ! -x $(XPIDL) -o \( -e $(FF_TYPELIB) -a ! -w $(FF_TYPELIB) \) ] || $(XPIDL) $(XPIDL_FLAGS) -m typelib -e $@ $<
+ [ ! -x $(XPIDL) -o \( -e $(FF_TYPELIB) -a ! -w $(FF_TYPELIB) \) ] || $(XPIDL_TYPELIBS) $(XPIDL_FLAGS) -o $@ $<
$(FF_HEADER): IOOPHM.idl $(OBJ_OUTDIR)
- [ ! -x $(XPIDL) -o \( -e $(FF_HEADER) -a ! -w $(FF_HEADER) \) ] || $(XPIDL) $(XPIDL_FLAGS) -m header -e $@ $<
+ [ ! -x $(XPIDL) -o \( -e $(FF_HEADER) -a ! -w $(FF_HEADER) \) ] || $(XPIDL_HEADER) $(XPIDL_FLAGS) -o $@ $<
$(FF_DLL): $(FF_OBJS) $(COMMON)
$(CXX) -o $@ $(FF_OBJS) $(COMMON) $(DLLFLAGS)
diff --git a/plugins/xpcom/Preferences.h b/plugins/xpcom/Preferences.h
index bf9a25c..2bc0a81 100644
--- a/plugins/xpcom/Preferences.h
+++ b/plugins/xpcom/Preferences.h
@@ -26,7 +26,9 @@
#include "nsIPrefBranch2.h"
class HostChannel;
-class Value;
+namespace gwt {
+ class Value;
+}
class Preferences : public nsIObserver {
NS_DECL_ISUPPORTS
diff --git a/plugins/xpcom/SessionData.h b/plugins/xpcom/SessionData.h
index 3d28742..35c66c1 100755
--- a/plugins/xpcom/SessionData.h
+++ b/plugins/xpcom/SessionData.h
@@ -57,13 +57,13 @@
* Convert a value from the JavaScript into something that can be sent back
* to the OOPHM host.
*/
- virtual void makeValueFromJsval(Value& retVal, JSContext* ctx, const jsval& value)=0;
+ virtual void makeValueFromJsval(gwt::Value& retVal, JSContext* ctx, const jsval& value)=0;
/*
* Convert a value from the OOPHM host into something that can be passed into
* the JavaScript execution environment.
*/
- virtual void makeJsvalFromValue(jsval& retVal, JSContext* ctx, const Value& value)=0;
+ virtual void makeJsvalFromValue(jsval& retVal, JSContext* ctx, const gwt::Value& value)=0;
/*
* Removes the JavaObject wrapper with the given id and notifies the host.
diff --git a/plugins/xpcom/VisualStudio/ff90-xpcom.vcproj b/plugins/xpcom/VisualStudio/ff90-xpcom.vcproj
new file mode 100755
index 0000000..51ee65c
--- /dev/null
+++ b/plugins/xpcom/VisualStudio/ff90-xpcom.vcproj
@@ -0,0 +1,845 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="ff90-xpcom"
+ ProjectGUID="{6BF0C2CE-CB0C-421B-A67C-1E448371D24D}"
+ RootNamespace="ff90-xpcom"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug90"
+ IntermediateDirectory="Debug90"
+ ConfigurationType="2"
+ UseOfMFC="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""$(ProjectDir)\..\..\common";..\prebuilt\ff90\include;"..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include";"..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\mozilla";"..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\WINNT_x86-msvc\include";"..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpconnect";"..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\WINNT_x86-msvc\include""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FIREFOXPLUGIN_EXPORTS;GWT_DEBUGLEVEL=Debugging;XPCOM_GLUE;XPCOM_GLUE_USE_NSPR;MOZILLA_STRICT_API;BROWSER_FF8;GECKO_VERSION=9000"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ TreatWChar_tAsBuiltInType="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ ResourceOutputFileName="$(IntDir)/$(TargetName).res"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib Advapi32.lib xpcomglue_s.lib xpcom.lib nspr4.lib mozalloc.lib xul.lib mozjs.lib"
+ ShowProgress="2"
+ OutputFile="$(ProjectDir)\..\prebuilt\extension\lib\WINNT_x86-msvc\ff90\xpGwtDevPlugin.dll"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories=""..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\WINNT_x86-msvc\lib""
+ ModuleDefinitionFile="$(ProjectDir)\..\xpGwtDevPlugin.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)\$(TargetName).lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release90"
+ IntermediateDirectory="Release90"
+ ConfigurationType="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ EnableIntrinsicFunctions="true"
+ AdditionalIncludeDirectories=""$(ProjectDir)\..\..\common";..\prebuilt\ff90\include;"..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include";"..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\mozilla";"..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\WINNT_x86-msvc\include";"..\..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpconnect""
+ PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL;FIREFOXPLUGIN_EXPORTS;GWT_DEBUGLEVEL=Debugging;XPCOM_GLUE;XPCOM_GLUE_USE_NSPR;MOZILLA_STRICT_API;BROWSER_FF8;GECKO_VERSION=9000;$(NOINHERIT)"
+ ExceptionHandling="1"
+ RuntimeLibrary="0"
+ TreatWChar_tAsBuiltInType="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ ResourceOutputFileName="$(IntDir)/$(TargetName).res"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib Advapi32.lib xpcomglue_s.lib xpcom.lib nspr4.lib mozalloc.lib xul.lib mozjs.lib"
+ ShowProgress="2"
+ OutputFile="$(ProjectDir)\..\prebuilt\extension\lib\WINNT_x86-msvc\ff90\xpGwtDevPlugin.dll"
+ LinkIncremental="0"
+ AdditionalLibraryDirectories=""..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\WINNT_x86-msvc\lib""
+ ModuleDefinitionFile="$(ProjectDir)\..\xpGwtDevPlugin.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)\$(TargetName).lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\ExternalWrapper.h"
+ >
+ </File>
+ <File
+ RelativePath="..\FFSessionHandler.h"
+ >
+ </File>
+ <File
+ RelativePath="..\prebuilt\ff90\include\IOOPHM.h"
+ >
+ </File>
+ <File
+ RelativePath="..\JavaObject.h"
+ >
+ </File>
+ <File
+ RelativePath="..\JSRunner.h"
+ >
+ </File>
+ <File
+ RelativePath="..\mozincludes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Preferences.h"
+ >
+ </File>
+ <File
+ RelativePath="..\RootedObject.h"
+ >
+ </File>
+ <File
+ RelativePath="..\SessionData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\XpcomDebug.h"
+ >
+ </File>
+ <Filter
+ Name="common"
+ >
+ <File
+ RelativePath="..\..\common\AllowedConnections.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\BrowserChannel.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\ByteOrder.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\CheckVersionsMessage.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\ChooseTransportMessage.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Debug.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\DebugLevel.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\FatalErrorMessage.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\FreeValueMessage.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\HashMap.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\HostChannel.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\InvokeMessage.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\InvokeSpecialMessage.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\LoadJsniMessage.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\LoadModuleMessage.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Message.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Platform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\ProtocolVersionMessage.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\QuitMessage.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\ReturnMessage.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\scoped_ptr\scoped_ptr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\ServerMethods.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\SessionHandler.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Socket.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\SwitchTransportMessage.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Value.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="gecko"
+ >
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\WINNT_x86-msvc\include\js-config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\js\jsapi.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\js\jsautocfg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\js\jscompat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\js\jsconfig.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\WINNT_x86-msvc\include\jscpucfg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\jscpucfg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\jsinttypes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\js\jslong.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\jsosdep.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\js\jsotypes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\js\jsproto.tbl"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\js\jspubtd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\js\jstypes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\js\jsutil.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\js\jsutil.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\js\jsutil.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\js\jsutil.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\WINNT_x86-msvc\include\mozilla-config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpconnect\nsAXPCNativeCallContext.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsCOMPtr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nscore.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\nscore.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsCycleCollector.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsDebug.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsError.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\widget\nsEvent.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsICategoryManager.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsIClassInfo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsIClassInfoImpl.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsIComponentManager.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsID.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\nsIEnumerator.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\nsIException.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\nsIExceptionService.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsIFactory.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsIGenericFactory.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\necko\nsIHttpProtocolHandler.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\nsIInterfaceInfo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\nsIInterfaceInfoManager.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpconnect\nsIJSContextStack.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsIMemory.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsIModule.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\caps\nsIPrincipal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsIProgrammingLanguage.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\necko\nsIProtocolHandler.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\necko\nsIProxiedProtocolHandler.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpconnect\nsIScriptableInterfaces.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\dom\nsIScriptGlobalObject.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\dom\nsIScriptObjectPrincipal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\caps\nsISecurityCheckedComponent.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\nsISerializable.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsIServiceManager.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\nsISimpleEnumerator.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsISimpleEnumerator.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\nsISupports.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsISupports.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\nsISupportsBase.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsISupportsBase.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsISupportsImpl.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\nsISupportsUtils.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsISupportsUtils.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsIURI.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\nsIVariant.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpconnect\nsIXPConnect.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsMemory.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\necko\nsNetCID.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsrootidl.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\nsrootidl.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsServiceManagerUtils.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsStringAPI.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsTraceRefcnt.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsXPCOM.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsXPCOMCID.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\nsXPCOMStrings.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\pratom.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\prcpucfg.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\prinrval.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\prlock.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\prlog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\prlong.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\obsolete\protypes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\prthread.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\prtime.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\prtypes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpconnect\xpccomponents.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpconnect\xpcexception.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpconnect\xpcjsid.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\WINNT_x86-msvc\include\xpcom-config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\xpt_arena.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\xpt_struct.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-9.0.0\include\xpcom\xptinfo.h"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ <File
+ RelativePath="..\xpGwtDevPlugin.rc"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\ExternalWrapper.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\FFSessionHandler.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\JavaObject.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\JSRunner.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ModuleOOPHM.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ GeneratePreprocessedFile="0"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Preferences.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\XpcomDebug.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\xpGwtDevPlugin.def"
+ >
+ </File>
+ <Filter
+ Name="common"
+ >
+ <File
+ RelativePath="..\..\common\AllowedConnections.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\CheckVersionsMessage.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\ChooseTransportMessage.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Debug.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\FatalErrorMessage.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\FreeValueMessage.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\HostChannel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\InvokeMessage.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\InvokeSpecialMessage.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\LoadJsniMessage.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\LoadModuleMessage.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\ProtocolVersionMessage.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\ReturnMessage.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\ServerMethods.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Socket.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\SwitchTransportMessage.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/plugins/xpcom/XpcomDebug.cpp b/plugins/xpcom/XpcomDebug.cpp
index 826cf04..cb18b29 100644
--- a/plugins/xpcom/XpcomDebug.cpp
+++ b/plugins/xpcom/XpcomDebug.cpp
@@ -77,7 +77,8 @@
snprintf(buf, sizeof(buf), "bool(%s)", JSVAL_TO_BOOLEAN(v) ? "true"
: " false");
} else {
- snprintf(buf, sizeof(buf), "unknown(%08x)", (unsigned) v);
+ // TODO(acleung): When we run into this, use the other api to figure out what v is.
+ // snprintf(buf, sizeof(buf), "unknown(%08x)", (unsigned) v);
}
buf[sizeof(buf) - 1] = 0;
return std::string(buf);
diff --git a/plugins/xpcom/install-template.rdf b/plugins/xpcom/install-template.rdf
index 21c3ba0..163ed5a 100644
--- a/plugins/xpcom/install-template.rdf
+++ b/plugins/xpcom/install-template.rdf
@@ -12,7 +12,7 @@
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>3.0</em:minVersion>
- <em:maxVersion>8.0.*</em:maxVersion>
+ <em:maxVersion>9.0.*</em:maxVersion>
</Description>
</em:targetApplication>
diff --git a/plugins/xpcom/prebuilt/extension/chrome.manifest b/plugins/xpcom/prebuilt/extension/chrome.manifest
index f5f39dd..fd48201 100644
--- a/plugins/xpcom/prebuilt/extension/chrome.manifest
+++ b/plugins/xpcom/prebuilt/extension/chrome.manifest
@@ -38,5 +38,12 @@
binary-component lib/Darwin-gcc3/ff80/libgwt_dev_ff80.dylib ABI=Darwin_x86-gcc3 appversion<=8.0.*
binary-component lib/WINNT_x86-msvc/ff80/xpGwtDevPlugin.dll ABI=WINNT_x86-msvc appversion<=8.0.*
+# Firefox 9
+binary-component lib/Linux_x86_64-gcc3/ff90/libgwt_dev_ff90.so ABI=Linux_x86_64-gcc3 appversion<=9.0.*
+binary-component lib/Linux_x86-gcc3/ff90/libgwt_dev_ff90.so ABI=Linux_x86-gcc3 appversion<=9.0.*
+binary-component lib/Darwin-gcc3/ff90/libgwt_dev_ff90.dylib ABI=Darwin_x86_64-gcc3 appversion<=9.0.*
+binary-component lib/Darwin-gcc3/ff90/libgwt_dev_ff90.dylib ABI=Darwin_x86-gcc3 appversion<=9.0.*
+binary-component lib/WINNT_x86-msvc/ff90/xpGwtDevPlugin.dll ABI=WINNT_x86-msvc appversion<=9.0.*
+
interfaces components/IOOPHM.xpt
contract @gwt.google.com/ExternalWrapper;1 {028DD88B-6D65-401D-AAFD-17E497D15D09}
diff --git a/plugins/xpcom/prebuilt/extension/lib/Darwin-gcc3/ff90/libgwt_dev_ff90.dylib b/plugins/xpcom/prebuilt/extension/lib/Darwin-gcc3/ff90/libgwt_dev_ff90.dylib
new file mode 100755
index 0000000..8b6b066
--- /dev/null
+++ b/plugins/xpcom/prebuilt/extension/lib/Darwin-gcc3/ff90/libgwt_dev_ff90.dylib
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3+/libgwt_dev_ff3+.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3+/libgwt_dev_ff3+.so
index fe05e1b..5bd1445 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3+/libgwt_dev_ff3+.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3+/libgwt_dev_ff3+.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3/libgwt_dev_ff3.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3/libgwt_dev_ff3.so
index e1bf96b..6f16d23 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3/libgwt_dev_ff3.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3/libgwt_dev_ff3.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff35/libgwt_dev_ff35.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff35/libgwt_dev_ff35.so
index 910e4fe..6be2bfa 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff35/libgwt_dev_ff35.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff35/libgwt_dev_ff35.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff36/libgwt_dev_ff36.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff36/libgwt_dev_ff36.so
index 9fe2794..8bfca75 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff36/libgwt_dev_ff36.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff36/libgwt_dev_ff36.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff40/libgwt_dev_ff40.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff40/libgwt_dev_ff40.so
index e33d5cc..3b7fd5c 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff40/libgwt_dev_ff40.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff40/libgwt_dev_ff40.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff50/libgwt_dev_ff50.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff50/libgwt_dev_ff50.so
index 1b159b0..f14318d 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff50/libgwt_dev_ff50.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff50/libgwt_dev_ff50.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff60/libgwt_dev_ff60.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff60/libgwt_dev_ff60.so
index dbbe645..4eeeb88 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff60/libgwt_dev_ff60.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff60/libgwt_dev_ff60.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff70/libgwt_dev_ff70.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff70/libgwt_dev_ff70.so
index 3493fef..9e72523 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff70/libgwt_dev_ff70.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff70/libgwt_dev_ff70.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff80/libgwt_dev_ff80.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff80/libgwt_dev_ff80.so
index 5592fed..8c0d4f4 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff80/libgwt_dev_ff80.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff80/libgwt_dev_ff80.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff90/libgwt_dev_ff90.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff90/libgwt_dev_ff90.so
new file mode 100755
index 0000000..7a2bfff
--- /dev/null
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff90/libgwt_dev_ff90.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3+/libgwt_dev_ff3+.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3+/libgwt_dev_ff3+.so
index 7adf26f..78e1d94 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3+/libgwt_dev_ff3+.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3+/libgwt_dev_ff3+.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3/libgwt_dev_ff3.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3/libgwt_dev_ff3.so
index 33a32e1..70db0c6 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3/libgwt_dev_ff3.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3/libgwt_dev_ff3.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff35/libgwt_dev_ff35.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff35/libgwt_dev_ff35.so
index 06b9ddc..0d44a8d 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff35/libgwt_dev_ff35.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff35/libgwt_dev_ff35.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff36/libgwt_dev_ff36.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff36/libgwt_dev_ff36.so
index 5ec651a..fbbb3c5 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff36/libgwt_dev_ff36.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff36/libgwt_dev_ff36.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff40/libgwt_dev_ff40.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff40/libgwt_dev_ff40.so
index 055a3fd..2e7566e 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff40/libgwt_dev_ff40.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff40/libgwt_dev_ff40.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff50/libgwt_dev_ff50.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff50/libgwt_dev_ff50.so
index 6b8dbdb..a528ffc 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff50/libgwt_dev_ff50.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff50/libgwt_dev_ff50.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff60/libgwt_dev_ff60.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff60/libgwt_dev_ff60.so
index 8474cf7..eeae984 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff60/libgwt_dev_ff60.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff60/libgwt_dev_ff60.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff70/libgwt_dev_ff70.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff70/libgwt_dev_ff70.so
index ff0e788..724bb52 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff70/libgwt_dev_ff70.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff70/libgwt_dev_ff70.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff80/libgwt_dev_ff80.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff80/libgwt_dev_ff80.so
index f45c575..4fe7633 100755
--- a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff80/libgwt_dev_ff80.so
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff80/libgwt_dev_ff80.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff90/libgwt_dev_ff90.so b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff90/libgwt_dev_ff90.so
new file mode 100755
index 0000000..065c062
--- /dev/null
+++ b/plugins/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff90/libgwt_dev_ff90.so
Binary files differ
diff --git a/plugins/xpcom/prebuilt/extension/lib/WINNT_x86-msvc/ff90/xpGwtDevPlugin.dll b/plugins/xpcom/prebuilt/extension/lib/WINNT_x86-msvc/ff90/xpGwtDevPlugin.dll
new file mode 100755
index 0000000..bcf7476
--- /dev/null
+++ b/plugins/xpcom/prebuilt/extension/lib/WINNT_x86-msvc/ff90/xpGwtDevPlugin.dll
Binary files differ
diff --git a/plugins/xpcom/prebuilt/gwt-dev-plugin.xpi b/plugins/xpcom/prebuilt/gwt-dev-plugin.xpi
index a332a8d..d52faa5 100644
--- a/plugins/xpcom/prebuilt/gwt-dev-plugin.xpi
+++ b/plugins/xpcom/prebuilt/gwt-dev-plugin.xpi
Binary files differ
diff --git a/plugins/xpcom/prebuilt/update.rdf b/plugins/xpcom/prebuilt/update.rdf
index 9ca0f40..7581898 100644
--- a/plugins/xpcom/prebuilt/update.rdf
+++ b/plugins/xpcom/prebuilt/update.rdf
@@ -14,7 +14,7 @@
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>3.0</em:minVersion>
- <em:maxVersion>8.0.*</em:maxVersion>
+ <em:maxVersion>9.0.*</em:maxVersion>
<em:updateLink>https://dl-ssl.google.com/gwt/plugins/firefox/gwt-dev-plugin.xpi</em:updateLink>
<em:updateInfoURL>https://dl-ssl.google.com/gwt/plugins/firefox/gwt-dev-plugin-info.xhtml?locale=%APP_LOCALE%</em:updateInfoURL>