Merge all platforms into a single XPI, changes the names to the latest name
of the plugin, adds code to compute the JS window of the calling code and
the top-level URL directly rather than relying on the value passed in, and
implements tab identity.

A side effect of the changes to compute window/URL is that FF1.5-2 are not
currently supported, though we may add it back in the future if there is demand
and we can find another way to do this.

Patch by: sgross, jat
Review by: jat, rice


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@6742 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/common/Debug.cpp b/common/Debug.cpp
index 66382bd..586c1b6 100644
--- a/common/Debug.cpp
+++ b/common/Debug.cpp
@@ -76,7 +76,7 @@
   strncpy_s(bufPtr, buflen, str, len);
   bufPtr += len;
 #else
-  printf("%s", str);
+  fputs(str, stdout);
 #endif
 }
 #endif
diff --git a/xpcom/ExternalWrapper.cpp b/xpcom/ExternalWrapper.cpp
index afb7040..ce9013e 100644
--- a/xpcom/ExternalWrapper.cpp
+++ b/xpcom/ExternalWrapper.cpp
@@ -23,6 +23,15 @@
 #include "nsMemory.h"
 #include "nsServiceManagerUtils.h"
 #include "nsIPromptService.h"
+#include "nsIDOMWindow.h"
+#include "nsIDOMWindowInternal.h"
+#include "nsIDOMLocation.h"
+#include "nsXPCOMStrings.h"
+#include "nsICategoryManager.h"
+#include "nsIJSContextStack.h"
+#include "nsIScriptContext.h"
+#include "nsIScriptGlobalObject.h"
+#include "nsPIDOMWindow.h"
 
 #ifndef NS_IMPL_ISUPPORTS2_CI
 #include "nsIClassInfoImpl.h" // 1.9 only
@@ -69,34 +78,181 @@
   return NS_OK;
 }
 
+/**
+ * Get JS window object.
+ *
+ * @param win output parameter to store the window object
+ * @return true on success
+ */
+static bool getWindowObject(nsIDOMWindow** win) {
+  // Get JSContext from stack.
+  nsCOMPtr<nsIJSContextStack> stack =
+      do_GetService("@mozilla.org/js/xpc/ContextStack;1");
+  if (!stack) {
+    Debug::log(Debug::Error) << "getWindowObject: no context stack"
+        << Debug::flush;
+    return false;
+  }
+  JSContext *cx;
+  if (NS_FAILED(stack->Peek(&cx)) || !cx) {
+    Debug::log(Debug::Error) << "getWindowObject: no context on stack"
+        << Debug::flush;
+    return false;
+  }
+  if (!(::JS_GetOptions(cx) & JSOPTION_PRIVATE_IS_NSISUPPORTS)) {
+    Debug::log(Debug::Error)
+        << "getWindowObject: context doesn't have nsISupports" << Debug::flush;
+    return false;
+  }
+
+  nsCOMPtr<nsIScriptContext> scx =
+    do_QueryInterface(static_cast<nsISupports *>
+                                 (::JS_GetContextPrivate(cx)));
+  if (!scx) {
+    Debug::log(Debug::Error) << "getWindowObject: no script context"
+        << Debug::flush;
+    return false;
+  }
+  nsCOMPtr<nsIScriptGlobalObject> globalObj = scx->GetGlobalObject();
+  if (!globalObj) {
+    Debug::log(Debug::Error) << "getWindowObject: no global object"
+        << Debug::flush;
+    return false;
+  }
+  nsCOMPtr<nsPIDOMWindow> window = do_QueryInterface(globalObj);
+  if (!window) {
+    Debug::log(Debug::Error) << "getWindowObject: window is null"
+        << Debug::flush;
+    return false;
+  }
+  NS_ADDREF(*win = window);
+  return true;
+}
+
+/**
+ * Get the URL of a window.
+ *
+ * @param win DOMWindowInternal instance
+ * @param url output wide string for the URL
+ * @return true if successful
+ */
+static bool getWindowUrl(nsIDOMWindowInternal* win, nsAString& url) {
+  nsCOMPtr<nsIDOMLocation> loc;
+  if (win->GetLocation(getter_AddRefs(loc)) != NS_OK) {
+    Debug::log(Debug::Info) << "Unable to get location" << Debug::flush;
+    return false;
+  }
+  if (loc->GetHref(url) != NS_OK) {
+    Debug::log(Debug::Info) << "Unable to get URL" << Debug::flush;
+    return false;
+  }
+  return true;
+}
+
+/**
+ * Get the top-level window for a given window, and its URL.
+ *
+ * @param win window to start from
+ * @param topWinRet output parameter to store top window
+ * @param topUrl output parameter to store URL
+ * @return true on success, false on error (already logged)
+ */
+static bool getTopWindow(nsIDOMWindow* win, nsIDOMWindowInternal** topWinRet,
+    nsAString& topUrl) {
+  nsCOMPtr<nsIDOMWindow> topWin;
+  if (win->GetTop(getter_AddRefs(topWin)) != NS_OK) {
+    Debug::log(Debug::Error) << "Unable to get top window" << Debug::flush;
+    return false;
+  }
+  nsresult rv;
+  nsCOMPtr<nsIDOMWindowInternal> topWinInt = do_QueryInterface(topWin, &rv);
+  if (rv != NS_OK) {
+    Debug::log(Debug::Error) << "Unable to QI DOMWindowInternal"
+        << Debug::flush;
+    return false;
+  }
+  nsCOMPtr<nsIDOMWindowInternal> opener;
+  if (topWinInt->GetOpener(getter_AddRefs(opener)) != NS_OK) {
+    Debug::log(Debug::Debugging) << "Unable to get opener" << Debug::flush;
+    *topWinRet = topWinInt;
+    return true;
+  }
+  if (!getWindowUrl(topWinInt, topUrl)) {
+    Debug::log(Debug::Error) << "Unable to get url of top window"
+        << Debug::flush;
+    return false;
+  }
+  while (opener) {
+    nsCOMPtr<nsIDOMWindow> nextTopWin;
+    if (opener->GetTop(getter_AddRefs(nextTopWin)) != NS_OK) {
+      Debug::log(Debug::Debugging) << "Unable to get next top" << Debug::flush;
+      break;
+    }
+    if (nextTopWin == topWin) {
+      // prevent infinite loop -- see issue 4199:
+      // http://code.google.com/p/google-web-toolkit/issues/detail?id=4199
+      break;
+    }
+    nsCOMPtr<nsIDOMWindowInternal> nextTopWinInt = do_QueryInterface(
+        nextTopWin, &rv);
+    if (rv != NS_OK) {
+      Debug::log(Debug::Warning) << "Unable to QI DOMWindowInternal on next"
+          << Debug::flush;
+      break;
+    }
+    if (!getWindowUrl(nextTopWinInt, topUrl)) {
+      break;
+    }
+    Debug::log(Debug::Debugging) << " current url: " << topUrl << Debug::flush;
+    topWin = nextTopWin;
+    topWinInt = nextTopWinInt;
+    if (topWinInt->GetOpener(getter_AddRefs(opener)) != NS_OK) {
+      break;
+    }
+  }
+  Debug::log(Debug::Info) << "  Top url: " << topUrl << Debug::flush;
+  *topWinRet = topWinInt;
+  return true;
+}
+
 std::string ExternalWrapper::computeTabIdentity() {
   std::string returnVal;
   if (!windowWatcher) {
     return returnVal;
   }
-  nsCOMPtr<nsIDOMWindow> topWindow(domWindow);
-  if (topWindow->GetTop(getter_AddRefs(topWindow)) != NS_OK) {
-    Debug::log(Debug::Warning) << "Unable to get top window" << Debug::flush;
+  // The nsPIDOMWindow interface of our top-level window appears to be stable
+  // across refreshes, so we will use that for our tab ID.
+  nsCOMPtr<nsPIDOMWindow> privateWin = do_QueryInterface(topWindow);
+  if (!privateWin) {
     return returnVal;
   }
-  nsCOMPtr<nsIWebBrowserChrome> chrome;
-  if (windowWatcher->GetChromeForWindow(topWindow.get(),
-      getter_AddRefs(chrome)) != NS_OK) {
-    Debug::log(Debug::Warning) << "Unable to get browser chrome for window"
-        << Debug::flush;
-    return returnVal;
-  }
-  Debug::log(Debug::Debugging) << "computeTabIdentity: browserChrome = "
-      << (void*) chrome.get() << Debug::flush;
-  // TODO(jat): find a way to get the tab from the chrome window
+  char buf[20]; // typically 8-16 hex digits plus 0x, not horrible if truncated
+  snprintf(buf, sizeof(buf), "%p", privateWin.get());
+  buf[19] = 0; // ensure null termination
+  returnVal = buf;
   return returnVal;
 }
 
-NS_IMETHODIMP ExternalWrapper::Init(nsIDOMWindow* domWindow,
+// TODO(jat): remove suppliedWindow and update hosted.html API
+NS_IMETHODIMP ExternalWrapper::Init(nsIDOMWindow* suppliedWindow,
     PRBool *_retval) {
-  Debug::log(Debug::Spam) << "Init" << Debug::flush;
-  this->domWindow = domWindow;
-  *_retval = true;
+  Debug::log(Debug::Debugging) << "Plugin initialized from hosted.html"
+      << Debug::flush;
+  *_retval = false;
+  nsCOMPtr<nsIDOMWindow> computedWindow;
+  if (getWindowObject(getter_AddRefs(computedWindow))) {
+    Debug::log(Debug::Debugging) << " passed window=" << suppliedWindow
+        << ", computed=" << computedWindow << Debug::flush;
+    domWindow = computedWindow;
+  } else {
+    Debug::log(Debug::Warning) << " using supplied window object"
+        << Debug::flush;
+    // TODO(jat): remove this
+    domWindow = suppliedWindow;
+  }
+  if (getTopWindow(domWindow, getter_AddRefs(topWindow), url)) {
+    *_retval = true;
+  }
   return NS_OK;
 }
 
@@ -106,11 +262,11 @@
   if (!promptService) {
     return false;
   }
-  NS_ConvertASCIItoUTF16 title("Allow GWT Development Mode Connection");
+  NS_ConvertASCIItoUTF16 title("Allow GWT Developer Plugin Connection");
   NS_ConvertASCIItoUTF16 text("This web server is requesting a GWT "
-      "development mode connection -- do you want to allow it?");
+      "developer plugin connection -- do you want to allow it?");
   NS_ConvertASCIItoUTF16 checkMsg("Remember this decision for this server "
-      "(change in GWT plugin preferences)");
+      "(change in GWT Developer Plugin preferences)");
   PRBool remember = false;
   PRBool include = true;
   if (promptService->ConfirmCheck(domWindow.get(), title.get(), text.get(),
@@ -123,16 +279,18 @@
   return include;
 }
 
-NS_IMETHODIMP ExternalWrapper::Connect(const nsACString& url,
+// TODO(jat): remove suppliedUrl and update hosted.html API
+NS_IMETHODIMP ExternalWrapper::Connect(const nsACString& suppliedUrl,
 		const nsACString& sessionKey, const nsACString& aAddr,
 		const nsACString& aModuleName, const nsACString& hostedHtmlVersion,
 		PRBool *_retval) {
-  Debug::log(Debug::Spam) << "Connect(url=" << url << ", sessionKey="
+  Debug::log(Debug::Info) << "Connect(url=" <<  url << ", sessionKey="
       << sessionKey << ", address=" << aAddr << ", module=" << aModuleName
       << ", hostedHtmlVersion=" << hostedHtmlVersion << Debug::flush;
 
   // TODO: string utilities?
-  nsCString urlAutoStr(url);
+  nsCString urlAutoStr;
+  NS_UTF16ToCString(url, NS_CSTRING_ENCODING_UTF8, urlAutoStr);
   nsCString sessionKeyAutoStr(sessionKey);
   nsCString addrAutoStr(aAddr);
   nsCString moduleAutoStr(aModuleName);
@@ -158,6 +316,9 @@
   std::string hostPart = hostedUrl.substr(0, index);
   std::string portPart = hostedUrl.substr(index + 1);
 
+  // TODO(jat): leaks HostChannel -- need to save it in a session object and
+  // return that so the host page can call a disconnect method on it at unload
+  // time or when it gets GC'd.
   HostChannel* channel = new HostChannel();
 
   Debug::log(Debug::Debugging) << "Connecting..." << Debug::flush;
@@ -173,8 +334,7 @@
 
   std::string hostedHtmlVersionStr(hostedHtmlVersionAutoStr.get());
   if (!channel->init(sessionHandler.get(), BROWSERCHANNEL_PROTOCOL_VERSION,
-      BROWSERCHANNEL_PROTOCOL_VERSION,
-      hostedHtmlVersionStr)) {
+      BROWSERCHANNEL_PROTOCOL_VERSION, hostedHtmlVersionStr)) {
     *_retval = false;
     return NS_OK;
   }
@@ -211,13 +371,16 @@
   return strcmp(ascii, utf8.get()) == 0;
 }
 
-NS_IMETHODIMP ExternalWrapper::CanCreateWrapper(const nsIID * iid, char **_retval) {
-  Debug::log(Debug::Spam) << "ExternalWrapper::CanCreateWrapper" << Debug::flush;
+NS_IMETHODIMP ExternalWrapper::CanCreateWrapper(const nsIID * iid,
+    char **_retval) {
+  Debug::log(Debug::Spam) << "ExternalWrapper::CanCreateWrapper"
+      << Debug::flush;
   *_retval = cloneAllAccess();
   return NS_OK;
 }
 
-NS_IMETHODIMP ExternalWrapper::CanCallMethod(const nsIID * iid, const PRUnichar *methodName, char **_retval) {
+NS_IMETHODIMP ExternalWrapper::CanCallMethod(const nsIID * iid,
+    const PRUnichar *methodName, char **_retval) {
   Debug::log(Debug::Spam) << "ExternalWrapper::CanCallMethod" << Debug::flush;
   if (strEquals(methodName, "connect") || strEquals(methodName, "init")) {
     *_retval = cloneAllAccess();
@@ -227,12 +390,14 @@
   return NS_OK;
 }
 
-NS_IMETHODIMP ExternalWrapper::CanGetProperty(const nsIID * iid, const PRUnichar *propertyName, char **_retval) {
+NS_IMETHODIMP ExternalWrapper::CanGetProperty(const nsIID * iid,
+    const PRUnichar *propertyName, char **_retval) {
   Debug::log(Debug::Spam) << "ExternalWrapper::CanGetProperty" << Debug::flush;
   *_retval = nsnull;
   return NS_OK;
 }
-NS_IMETHODIMP ExternalWrapper::CanSetProperty(const nsIID * iid, const PRUnichar *propertyName, char **_retval) {
+NS_IMETHODIMP ExternalWrapper::CanSetProperty(const nsIID * iid,
+    const PRUnichar *propertyName, char **_retval) {
   Debug::log(Debug::Spam) << "ExternalWrapper::CanSetProperty" << Debug::flush;
   *_retval = nsnull;
   return NS_OK;
diff --git a/xpcom/ExternalWrapper.h b/xpcom/ExternalWrapper.h
index d840827..9d012e1 100755
--- a/xpcom/ExternalWrapper.h
+++ b/xpcom/ExternalWrapper.h
@@ -41,7 +41,7 @@
   { 0xAA, 0xFD, 0x17, 0xE4, 0x97, 0xD1, 0x5D, 0x09 } }
 
 #define OOPHM_CONTRACTID "@gwt.google.com/oophm/ExternalWrapper;1"
-#define OOPHM_CLASSNAME "GWT Hosted-mode component"
+#define OOPHM_CLASSNAME "GWT DevMode component"
 
 class ExternalWrapper : public IOOPHM,
                         public nsISecurityCheckedComponent {
@@ -54,6 +54,8 @@
 
 private:
   nsCOMPtr<nsIDOMWindow> domWindow;
+  nsCOMPtr<nsIDOMWindowInternal> topWindow;
+  nsString url;
   nsCOMPtr<Preferences> preferences;
   scoped_ptr<FFSessionHandler> sessionHandler;
   nsCOMPtr<nsIWindowWatcher> windowWatcher;
@@ -74,10 +76,18 @@
 
 };
 
-inline Debug::DebugStream& operator<<(Debug::DebugStream& dbg, const nsACString& str) {
+inline Debug::DebugStream& operator<<(Debug::DebugStream& dbg,
+    const nsACString& str) {
   nsCString copy(str);
   dbg << copy.get();
   return dbg;
 }
 
+inline Debug::DebugStream& operator<<(Debug::DebugStream& dbg,
+    const nsAString& str) {
+  NS_ConvertUTF16toUTF8 copy(str);
+  dbg << copy.get();
+  return dbg;
+}
+
 #endif
diff --git a/xpcom/FFSessionHandler.cpp b/xpcom/FFSessionHandler.cpp
index 06a4534..a2b5cc4 100755
--- a/xpcom/FFSessionHandler.cpp
+++ b/xpcom/FFSessionHandler.cpp
@@ -48,7 +48,7 @@
 
   if (cx == nsnull) {
     // TODO(jat): figure out why this can be null at plugin unload time
-    Debug::log(Debug::Error) << "GWT DMP: Null JS context" << Debug::flush;
+    Debug::log(Debug::Error) << "GWT Dev Plugin: Null JS context" << Debug::flush;
   }
 
   return cx;
diff --git a/xpcom/Makefile b/xpcom/Makefile
index f36f9dc..ae8ab58 100644
--- a/xpcom/Makefile
+++ b/xpcom/Makefile
@@ -24,8 +24,10 @@
 DEFAULT_FIREFOX_LIBS ?= /Applications/Firefox.app/Contents/MacOS
 RUN_PATH_FLAG = -executable_path
 DLL_SUFFIX = .dylib
-DLLFLAGS = -bundle -arch $(MARCH)
-TARGET_PLATFORM = Darwin_$(ARCH)-gcc3
+DLLFLAGS = -bundle $(ALLARCHCFLAGS)
+CFLAGS += $(ALLARCHCFLAGS)
+CXXFLAGS += $(ALLARCHCFLAGS)
+TARGET_PLATFORM = Darwin-gcc3
 # Mac puts multiple architectures into the same files
 GECKO_PLATFORM = Darwin-gcc3
 else
@@ -51,6 +53,7 @@
 BROWSER=ff3
 endif
 
+CFLAGS += -DBROWSER=$(BROWSER)
 GECKO_MINOR_VERSION=
 ifeq ($(BROWSER),ff2)
 BROWSER_VERSION   = 1.8
@@ -86,11 +89,11 @@
 COMMON            = ../common/libcommon$(FLAG32BIT).a
 
 OBJ_OUTDIR        = build/$(TARGET_PLATFORM)-$(BROWSER)
-EXTENSION_OUTDIR  = prebuilt/extension-$(BROWSER)
-FF_PLATFORM_DIR   = $(EXTENSION_OUTDIR)/platform/$(TARGET_PLATFORM)
+EXTENSION_OUTDIR  = prebuilt/extension
+FF_PLATFORM_DIR   = $(EXTENSION_OUTDIR)/lib/$(TARGET_PLATFORM)/$(BROWSER)
 
-INSTALLER_XPI     = prebuilt/gwt-dmp-$(BROWSER).xpi
-FF_DLL            = $(OBJ_OUTDIR)/libgwt_dmp_$(BROWSER)$(DLL_SUFFIX)
+INSTALLER_XPI     = prebuilt/gwt-dev-plugin.xpi
+FF_DLL            = $(OBJ_OUTDIR)/libgwt_dev_$(BROWSER)$(DLL_SUFFIX)
 #FF_TYPELIB        = build/IOOPHM.xpt
 #FF_HEADER         = $(OBJ_OUTDIR)/IOOPHM.h
 FF_TYPELIB        = prebuilt/extension/components/IOOPHM.xpt
@@ -119,11 +122,11 @@
 
 INC += -I$(GECKO_PLAT_INC) -I$(GECKO_SDK)/include -I$(dir $(FF_HEADER))
 
-VERSION=0.9.$(shell ./getversion).$(shell date +%Y%m%d%H%M%S)
+VERSION ?= 0.9.$(shell ./getversion).$(shell date +%Y%m%d%H%M%S)
 
 .PHONY: all xpi lib common browser clean depend install install-platform find-ff-libs
 
-all:: common xpi
+all:: common lib xpi
 
 lib:: browser $(OBJ_OUTDIR) $(EXTENSION_OUTDIR) $(FF_DLL)
 xpi:: $(EXTENSION_OUTDIR) $(INSTALLER_XPI)
@@ -140,17 +143,16 @@
 #	    $(error Missing Firefox libraries at $(GECKO_LIBS))
 #	fi
 
-# Not needed currently, but keeping around for now in case we change back to
-# putting it in build
-$(EXTENSION_OUTDIR):
-	rm -rf $@
-	mkdir -p $@
-	#cp -r prebuilt/extension/. $(EXTENSION_OUTDIR)
-	cp -r prebuilt/extension-$(BROWSER)/. $(EXTENSION_OUTDIR)
-	@mkdir -p $@/components
+generate-install:: $(EXTENSION_OUTDIR) install-template.rdf
+	sed -e s/GWT_DEV_PLUGIN_VERSION/$(VERSION)/ install-template.rdf >$(INSTALL_RDF)
 
-generate-install:: $(EXTENSION_OUTDIR) install-template-$(BROWSER).rdf
-	sed -e s/GWT_OOPHM_VERSION/$(VERSION)/ install-template-$(BROWSER).rdf >$(INSTALL_RDF)
+linuxplatforms:
+	$(MAKE) BROWSER=ff3 ARCH=x86
+	$(MAKE) BROWSER=ff3+ ARCH=x86
+	$(MAKE) BROWSER=ff35 ARCH=x86
+	$(MAKE) BROWSER=ff3 ARCH=x86_64
+	$(MAKE) BROWSER=ff3+ ARCH=x86_64
+	$(MAKE) BROWSER=ff35 ARCH=x86_64
 
 SRCS =	\
 		ExternalWrapper.cpp \
@@ -168,26 +170,22 @@
 $(OBJ_OUTDIR)::
 	@mkdir -p $@
 
-$(INSTALLER_XPI): $(FF_TYPELIB) $(EXTENSION_OUTDIR) generate-install $(shell find prebuilt/extension $(EXTENSION_OUTDIR)) $(FF_DLL)
+$(INSTALLER_XPI): $(FF_TYPELIB) $(EXTENSION_OUTDIR) generate-install $(shell find prebuilt/extension $(EXTENSION_OUTDIR))
 	@mkdir -p $(EXTENSION_OUTDIR)/components
-	(cd prebuilt/extension; find . \( -name .svn -prune \) -o -print | cpio -pmdua ../../$(EXTENSION_OUTDIR))
+	#(cd prebuilt/extension; find . \( -name .svn -prune \) -o -print | cpio -pmdua ../../$(EXTENSION_OUTDIR))
 	-rm $(INSTALLER_XPI)
 	(cd $(EXTENSION_OUTDIR) && zip -r -D -9 $(DIR)/$(INSTALLER_XPI) * -x '*/.svn/*' -x 'META-INF/*')
 
 $(FF_TYPELIB): IOOPHM.idl
 	$(XPIDL) $(XPIDL_FLAGS) -m typelib -e $@ $<
 
-$(FF_HEADER): IOOPHM.idl
+$(FF_HEADER): IOOPHM.idl $(OBJ_OUTDIR)
 	$(XPIDL) $(XPIDL_FLAGS) -m header -e $@ $<
 
 $(FF_DLL): $(FF_OBJS) $(COMMON)
 	$(CXX) -m$(FLAG32BIT) -o $@ $(FF_OBJS) $(COMMON) $(DLLFLAGS) 
-	@mkdir -p $(FF_PLATFORM_DIR)/components
-	cp $(FF_DLL) $(FF_PLATFORM_DIR)/components/
-#ifeq ($(OS),mac)
-#	@mkdir -p $(subst x86,ppc,$(FF_PLATFORM_DIR))/components
-#	cp $(FF_DLL) $(subst x86,ppc,$(FF_PLATFORM_DIR))/components/
-#endif
+	@mkdir -p $(FF_PLATFORM_DIR)
+	cp $(FF_DLL) $(FF_PLATFORM_DIR)/
 
 $(OBJ_OUTDIR)/%.o: %.cpp $(FF_HEADER)
 	$(CXX) $(CXXFLAGS) -c -o $@ -I. -I../common $<
@@ -200,8 +198,8 @@
 
 install-platform:
 ifdef BROWSER
-	@-mkdir -p $(subst $(EXTENSION_OUTDIR),prebuilt/extension-$(BROWSER),$(FF_PLATFORM_DIR))/components
-	-cp $(FF_DLL) $(subst $(EXTENSION_OUTDIR),prebuilt/extension-$(BROWSER),$(FF_PLATFORM_DIR))/components
+	@-mkdir -p $(FF_PLATFORM_DIR)
+	-cp $(FF_DLL) $(FF_PLATFORM_DIR))/
 ifeq ($(OS),mac)
 	@-mkdir -p $(subst $(EXTENSION_OUTDIR),prebuilt/extension-$(BROWSER),$(subst x86,ppc,$(FF_PLATFORM_DIR)))/components
 	-cp $(FF_DLL) $(subst $(EXTENSION_OUTDIR),prebuilt/extension-$(BROWSER),$(subst x86,ppc,$(FF_PLATFORM_DIR)))/components
@@ -209,6 +207,8 @@
 else
 	@$(MAKE) $@ BROWSER=ff2
 	@$(MAKE) $@ BROWSER=ff3
+	@$(MAKE) $@ BROWSER=ff3+
+	@$(MAKE) $@ BROWSER=ff35
 endif
 
 DEPEND = g++ -MM -MT'$$(OBJ_OUTDIR)/$(patsubst %.cpp,%.o,$(src))' \
diff --git a/xpcom/ModuleOOPHM.cpp b/xpcom/ModuleOOPHM.cpp
index 6fda93c..9d3093f 100644
--- a/xpcom/ModuleOOPHM.cpp
+++ b/xpcom/ModuleOOPHM.cpp
@@ -22,6 +22,7 @@
 #include "nsICategoryManager.h"
 #include "nsISupports.h"
 #include "nsIXULAppInfo.h"
+#include "nsIXULRuntime.h"
 #include "nsServiceManagerUtils.h"
 #include "nsXPCOMCID.h"
 
@@ -29,6 +30,10 @@
 #include "nsIClassInfoImpl.h" // 1.9 only
 #endif
 
+// Allow a macro to be treated as a C string, ie -Dfoo=bar; QUOTE(foo) = "bar"
+#define QUOTE_HELPER(x) #x
+#define QUOTE(x) QUOTE_HELPER(x)
+
 #ifdef _WINDOWS
 #include <windows.h>
 
@@ -112,36 +117,30 @@
 
 NSGETMODULE_ENTRY_POINT(ExternalWrapperModule) (nsIComponentManager *servMgr,
     nsIFile* location, nsIModule** result) {
-  Debug::log(Debug::Debugging) << "GWT DMP ExternalWrapperModule entry point"
-      << Debug::flush;
-
-  // CURRENTLY BUILT AS SEPARATE PLUGINS FOR FF1.5/2 and FF3, so the below
-  // comments are out of date.
-  //
-  // This module is compiled once against Gecko 1.8 (Firefox 1.5 and 2) and
-  // once against Gecko 1.9 (Firefox 3). We need to make sure that we are
-  // only loaded into the environment we were compiled against.
   nsresult nr;
-  nsCOMPtr<nsIXULAppInfo> app_info =
-      do_GetService("@mozilla.org/xre/app-info;1", &nr);
+  nsCOMPtr<nsIXULAppInfo> app_info
+      = do_GetService("@mozilla.org/xre/app-info;1", &nr);
   if (NS_FAILED(nr) || !app_info) {
     return NS_ERROR_FAILURE;
   }
-
   nsCString gecko_version;
   app_info->GetPlatformVersion(gecko_version);
-  Debug::log(Debug::Info)
-      << "Initializing GWT Development Mode Plugin - gecko version = "
-      << gecko_version.BeginReading() << Debug::flush;
-#if defined(BROWSER_FF2)
-  if (strncmp(gecko_version.BeginReading(), "1.8", 3) != 0) {
+  nsCString browser_version;
+  app_info->GetVersion(browser_version);
+  nsCOMPtr<nsIXULRuntime> xulRuntime
+      = do_GetService("@mozilla.org/xre/app-info;1", &nr);
+  if (NS_FAILED(nr) || !app_info) {
     return NS_ERROR_FAILURE;
   }
-#elif defined(BROWSER_FF3)
-  if (strncmp(gecko_version.BeginReading(), "1.9", 3) != 0) {
-    return NS_ERROR_FAILURE;
-  }
-#endif
-
+  nsCString os;
+  xulRuntime->GetOS(os);
+  nsCString abi;
+  xulRuntime->GetXPCOMABI(abi);
+  Debug::log(Debug::Info) << "Initializing GWT Development Mode Plugin"
+      << Debug::flush;
+  Debug::log(Debug::Info) << "  gecko=" << gecko_version.BeginReading()
+      << ", firefox=" << browser_version.BeginReading() << ", abi="
+      << os.BeginReading() << "_" << abi.BeginReading() << ", built for "
+      QUOTE(BROWSER) << Debug::flush;
   return NS_NewGenericModule2(&kModuleInfo, result);
 }
diff --git a/xpcom/Preferences.cpp b/xpcom/Preferences.cpp
index 0951711..055200c 100644
--- a/xpcom/Preferences.cpp
+++ b/xpcom/Preferences.cpp
@@ -27,8 +27,8 @@
 #include "nsIPrefBranch2.h"
 #include "nsServiceManagerUtils.h"
 
-#define DMP_PREFS_PREFIX "gwt-dmp."
-#define DMP_ACCESS_LIST "accessList"
+#define GWT_DEV_PREFS_PREFIX "gwt-dev-plugin."
+#define GWT_DEV_ACCESS_LIST "accessList"
 
 NS_IMPL_ADDREF(Preferences)
 NS_IMPL_RELEASE(Preferences)
@@ -38,14 +38,15 @@
   nsCOMPtr<nsIPrefService> prefService = do_GetService(
       NS_PREFSERVICE_CONTRACTID);
   if (!prefService) {
-    Debug::log(Debug::Error) << "Unable to get preference service" << Debug::flush;
+    Debug::log(Debug::Error) << "Unable to get preference service"
+        << Debug::flush;
     return;
   }
   nsCOMPtr<nsIPrefBranch> branch;
-  prefService->GetBranch(DMP_PREFS_PREFIX, getter_AddRefs(branch));
+  prefService->GetBranch(GWT_DEV_PREFS_PREFIX, getter_AddRefs(branch));
   if (!branch) {
-    Debug::log(Debug::Error) << "Unable to get gwt-dmp. preference branch"
-        << Debug::flush;
+    Debug::log(Debug::Error) << "Unable to get " GWT_DEV_PREFS_PREFIX
+        " preference branch" << Debug::flush;
     return;
   }
   prefs = do_QueryInterface(branch);
@@ -53,9 +54,10 @@
     Debug::log(Debug::Error) << "Unable to get nsIPrefBranch2" << Debug::flush;
     return;
   }
-  prefs->AddObserver(DMP_ACCESS_LIST, this, PR_FALSE);
+  prefs->AddObserver(GWT_DEV_ACCESS_LIST, this, PR_FALSE);
   nsCString prefValue;
-  if (branch->GetCharPref(DMP_ACCESS_LIST, getter_Copies(prefValue)) == NS_OK) {
+  if (branch->GetCharPref(GWT_DEV_ACCESS_LIST, getter_Copies(prefValue))
+      == NS_OK) {
     loadAccessList(prefValue.get());
   }
 }
@@ -74,7 +76,8 @@
   nsCOMPtr<nsIPrefBranch> prefs(do_QueryInterface(aSubject, &rv));
   NS_ENSURE_SUCCESS(rv, rv);
   nsCString prefValue;
-  if (prefs->GetCharPref(DMP_ACCESS_LIST, getter_Copies(prefValue)) == NS_OK) {
+  if (prefs->GetCharPref(GWT_DEV_ACCESS_LIST, getter_Copies(prefValue))
+      == NS_OK) {
     loadAccessList(prefValue.get());
   }
   return NS_OK;
@@ -82,7 +85,8 @@
 
 void Preferences::addNewRule(const std::string& pattern, bool exclude) {
   nsCString prefValue;
-  if (prefs->GetCharPref(DMP_ACCESS_LIST, getter_Copies(prefValue)) != NS_OK) {
+  if (prefs->GetCharPref(GWT_DEV_ACCESS_LIST, getter_Copies(prefValue))
+      != NS_OK) {
     Debug::log(Debug::Error) << "Unable to retrieve access list preference"
         << Debug::flush;
     return;
@@ -96,7 +100,7 @@
     pref += '!';
   }
   pref += pattern;
-  if (prefs->SetCharPref(DMP_ACCESS_LIST, pref.c_str()) != NS_OK) {
+  if (prefs->SetCharPref(GWT_DEV_ACCESS_LIST, pref.c_str()) != NS_OK) {
     Debug::log(Debug::Error) << "Unable to save modified access list preference"
         << Debug::flush;
     return;
@@ -114,6 +118,6 @@
 
 Preferences::~Preferences() {
   if (prefs) {
-    prefs->RemoveObserver(DMP_ACCESS_LIST, this);
+    prefs->RemoveObserver(GWT_DEV_ACCESS_LIST, this);
   }
 }
diff --git a/xpcom/VisualStudio/ff2-xpcom.vcproj b/xpcom/VisualStudio/ff2-xpcom.vcproj
index 50674b5..4b20999 100755
--- a/xpcom/VisualStudio/ff2-xpcom.vcproj
+++ b/xpcom/VisualStudio/ff2-xpcom.vcproj
@@ -40,7 +40,7 @@
 			<Tool

 				Name="VCCLCompilerTool"

 				Optimization="0"

-				AdditionalIncludeDirectories="&quot;$(ProjectDir)\..\..\common&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\caps&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\dom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\js&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\necko&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\string&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\widget&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\xpcom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\xpconnect&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include&quot;"

+				AdditionalIncludeDirectories="&quot;$(ProjectDir)\..\..\common&quot;;&quot;..\prebuilt\ff2\incldue&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\caps&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\dom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\js&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\necko&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\string&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\widget&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\xpcom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include\xpconnect&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\include&quot;"

 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FIREFOXPLUGIN_EXPORTS;GWT_DEBUGLEVEL=Warning;XPCOM_GLUE;XPCOM_GLUE_USE_NSPR;MOZILLA_STRICT_API"

 				MinimalRebuild="true"

 				BasicRuntimeChecks="3"

@@ -64,10 +64,10 @@
 				Name="VCLinkerTool"

 				AdditionalDependencies="ws2_32.lib xpcomglue_s.lib xpcom.lib nspr4.lib js3250.dll"

 				ShowProgress="2"

-				OutputFile="$(ProjectDir)\..\extension-ff2\platform\WINNT_x86-msvc\components\xpOOPHM.dll"

+				OutputFile="$(ProjectDir)\..\extension\lib\WINNT_x86-msvc\ff2\xpGWTDMP.dll"

 				LinkIncremental="1"

 				AdditionalLibraryDirectories="&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\WINNT_x86-msvc\lib&quot;"

-				ModuleDefinitionFile="$(ProjectDir)\..\xpOOPHM.def"

+				ModuleDefinitionFile="$(ProjectDir)\..\xpGWTDMP.def"

 				GenerateDebugInformation="true"

 				ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"

 				SubSystem="2"

@@ -143,10 +143,10 @@
 				Name="VCLinkerTool"

 				AdditionalDependencies="ws2_32.lib xpcomglue_s.lib xpcom.lib nspr4.lib js3250.lib"

 				ShowProgress="2"

-				OutputFile="..\extension\platform\WINNT_x86-msvc\components\xpOOPHM.dll"

+				OutputFile="$(ProjectDir)\..\prebuilt\extension\lib\WINNT_x86-msvc\ff2\xpGWTDMP.dll"

 				LinkIncremental="0"

 				AdditionalLibraryDirectories="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.8\WINNT_x86-msvc\lib"

-				ModuleDefinitionFile="..\xpOOPHM.def"

+				ModuleDefinitionFile="..\xpGWTDMP.def"

 				GenerateDebugInformation="true"

 				ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"

 				SubSystem="2"

@@ -693,7 +693,7 @@
 			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"

 			>

 			<File

-				RelativePath="..\xpOOPHM.rc"

+				RelativePath="..\xpGWTDMP.rc"

 				>

 			</File>

 		</Filter>

@@ -791,7 +791,7 @@
 				>

 			</File>

 			<File

-				RelativePath="..\xpOOPHM.def"

+				RelativePath="..\xpGWTDMP.def"

 				>

 			</File>

 		</Filter>

diff --git a/xpcom/VisualStudio/ff3-xpcom.sln b/xpcom/VisualStudio/ff3-xpcom.sln
deleted file mode 100755
index a14bef1..0000000
--- a/xpcom/VisualStudio/ff3-xpcom.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-

-Microsoft Visual Studio Solution File, Format Version 9.00

-# Visual Studio 2005

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ff3-xpcom", "ff3-xpcom.vcproj", "{6BF0C2CE-CB0C-421B-A67C-1E448371D24C}"

-EndProject

-Global

-	GlobalSection(SolutionConfigurationPlatforms) = preSolution

-		Debug|Win32 = Debug|Win32

-		Release|Win32 = Release|Win32

-	EndGlobalSection

-	GlobalSection(ProjectConfigurationPlatforms) = postSolution

-		{6BF0C2CE-CB0C-421B-A67C-1E448371D24C}.Debug|Win32.ActiveCfg = Debug|Win32

-		{6BF0C2CE-CB0C-421B-A67C-1E448371D24C}.Debug|Win32.Build.0 = Debug|Win32

-		{6BF0C2CE-CB0C-421B-A67C-1E448371D24C}.Release|Win32.ActiveCfg = Release|Win32

-		{6BF0C2CE-CB0C-421B-A67C-1E448371D24C}.Release|Win32.Build.0 = Release|Win32

-	EndGlobalSection

-	GlobalSection(SolutionProperties) = preSolution

-		HideSolutionNode = FALSE

-	EndGlobalSection

-EndGlobal

diff --git a/xpcom/VisualStudio/ff3-xpcom.vcproj b/xpcom/VisualStudio/ff3-xpcom.vcproj
index 37d0f43..e8058f7 100755
--- a/xpcom/VisualStudio/ff3-xpcom.vcproj
+++ b/xpcom/VisualStudio/ff3-xpcom.vcproj
@@ -40,7 +40,7 @@
 			<Tool

 				Name="VCCLCompilerTool"

 				Optimization="0"

-				AdditionalIncludeDirectories="&quot;$(ProjectDir)\..\..\common&quot;;&quot;..\prebuilt\ff3\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\WINNT_x86-msvc\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\caps&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\dom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\necko&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\string&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\widget&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpconnect&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include&quot;"

+				AdditionalIncludeDirectories="&quot;$(ProjectDir)\..\..\common&quot;;&quot;..\prebuilt\ff3\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\WINNT_x86-msvc\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include&quot;"

 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FIREFOXPLUGIN_EXPORTS;GWT_DEBUGLEVEL=Warning;XPCOM_GLUE;XPCOM_GLUE_USE_NSPR;MOZILLA_STRICT_API;BROWSER_FF3"

 				MinimalRebuild="true"

 				BasicRuntimeChecks="3"

@@ -65,10 +65,10 @@
 				Name="VCLinkerTool"

 				AdditionalDependencies="ws2_32.lib xpcomglue_s.lib xpcom.lib nspr4.lib js3250.lib"

 				ShowProgress="2"

-				OutputFile="$(ProjectDir)\..\prebuilt\extension-ff3\platform\WINNT_x86-msvc\components\xpOOPHM.dll"

+				OutputFile="$(ProjectDir)\..\prebuilt\extension\lib\WINNT_x86-msvc\ff3\xpGwtDevPlugin.dll"

 				LinkIncremental="1"

 				AdditionalLibraryDirectories="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\WINNT_x86-msvc\lib"

-				ModuleDefinitionFile="$(ProjectDir)\..\xpOOPHM.def"

+				ModuleDefinitionFile="$(ProjectDir)\..\xpGwtDevPlugin.def"

 				GenerateDebugInformation="true"

 				ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"

 				SubSystem="2"

@@ -125,10 +125,10 @@
 				Name="VCCLCompilerTool"

 				Optimization="3"

 				EnableIntrinsicFunctions="true"

-				AdditionalIncludeDirectories="&quot;$(ProjectDir)\..\..\common&quot;;&quot;..\prebuilt\ff3\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\WINNT_x86-msvc\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\caps&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\dom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\necko&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\string&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\widget&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpconnect&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include&quot;"

-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;FIREFOXPLUGIN_EXPORTS;GWT_DEBUGLEVEL=Warning;XPCOM_GLUE;XPCOM_GLUE_USE_NSPR;MOZILLA_STRICT_API;BROWSER_FF3"

+				AdditionalIncludeDirectories="&quot;$(ProjectDir)\..\..\common&quot;;&quot;..\prebuilt\ff3\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\WINNT_x86-msvc\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include&quot;"

+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;FIREFOXPLUGIN_EXPORTS;GWT_DEBUGLEVEL=Warning;XPCOM_GLUE;XPCOM_GLUE_USE_NSPR;MOZILLA_STRICT_API;BROWSER_FF3;BROWSER=ff3"

 				ExceptionHandling="1"

-				RuntimeLibrary="2"

+				RuntimeLibrary="0"

 				TreatWChar_tAsBuiltInType="false"

 				UsePrecompiledHeader="0"

 				WarningLevel="3"

@@ -140,6 +140,7 @@
 			/>

 			<Tool

 				Name="VCResourceCompilerTool"

+				ResourceOutputFileName="$(IntDir)/$(TargetName).res"

 			/>

 			<Tool

 				Name="VCPreLinkEventTool"

@@ -148,10 +149,10 @@
 				Name="VCLinkerTool"

 				AdditionalDependencies="ws2_32.lib xpcomglue_s.lib xpcom.lib nspr4.lib js3250.lib"

 				ShowProgress="2"

-				OutputFile="..\extension\platform\WINNT_x86-msvc\components\xpOOPHM.dll"

+				OutputFile="$(ProjectDir)\..\prebuilt\extension\lib\WINNT_x86-msvc\ff3\xpGwtDevPlugin.dll"

 				LinkIncremental="0"

 				AdditionalLibraryDirectories="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\WINNT_x86-msvc\lib"

-				ModuleDefinitionFile="..\xpOOPHM.def"

+				ModuleDefinitionFile="$(ProjectDir)\..\xpGwtDevPlugin.def"

 				GenerateDebugInformation="true"

 				ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"

 				SubSystem="2"

@@ -263,19 +264,19 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js\jsapi.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\jsapi.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js\jsautocfg.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\jsautocfg.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js\jscompat.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\jscompat.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js\jsconfig.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\jsconfig.h"

 				>

 			</File>

 			<File

@@ -283,7 +284,7 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js\jslong.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\jslong.h"

 				>

 			</File>

 			<File

@@ -291,15 +292,15 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js\jsotypes.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\jsotypes.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js\jsproto.tbl"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\jsproto.tbl"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js\jspubtd.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\jspubtd.h"

 				>

 			</File>

 			<File

@@ -307,23 +308,23 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js\jstypes.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\jstypes.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js\jsutil.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\jsutil.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js\jsutil.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\jsutil.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js\jsutil.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\jsutil.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\js\jsutil.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\jsutil.h"

 				>

 			</File>

 			<File

@@ -363,7 +364,7 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpconnect\nsAXPCNativeCallContext.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsAXPCNativeCallContext.h"

 				>

 			</File>

 			<File

@@ -371,7 +372,7 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\nscore.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nscore.h"

 				>

 			</File>

 			<File

@@ -391,7 +392,7 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\widget\nsEvent.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsEvent.h"

 				>

 			</File>

 			<File

@@ -415,15 +416,15 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\nsIEnumerator.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIEnumerator.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\nsIException.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIException.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\nsIExceptionService.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIExceptionService.h"

 				>

 			</File>

 			<File

@@ -435,19 +436,19 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\necko\nsIHttpProtocolHandler.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIHttpProtocolHandler.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\nsIInterfaceInfo.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIInterfaceInfo.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\nsIInterfaceInfoManager.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIInterfaceInfoManager.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpconnect\nsIJSContextStack.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIJSContextStack.h"

 				>

 			</File>

 			<File

@@ -459,7 +460,7 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\caps\nsIPrincipal.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIPrincipal.h"

 				>

 			</File>

 			<File

@@ -467,31 +468,31 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\necko\nsIProtocolHandler.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIProtocolHandler.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\necko\nsIProxiedProtocolHandler.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIProxiedProtocolHandler.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpconnect\nsIScriptableInterfaces.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIScriptableInterfaces.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\dom\nsIScriptGlobalObject.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIScriptGlobalObject.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\dom\nsIScriptObjectPrincipal.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIScriptObjectPrincipal.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\caps\nsISecurityCheckedComponent.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsISecurityCheckedComponent.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\nsISerializable.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsISerializable.h"

 				>

 			</File>

 			<File

@@ -503,11 +504,7 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\nsISimpleEnumerator.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\nsISupports.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsISimpleEnumerator.h"

 				>

 			</File>

 			<File

@@ -515,7 +512,11 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\nsISupportsBase.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsISupports.h"

+				>

+			</File>

+			<File

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsISupportsBase.h"

 				>

 			</File>

 			<File

@@ -531,7 +532,7 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\nsISupportsUtils.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsISupportsUtils.h"

 				>

 			</File>

 			<File

@@ -539,11 +540,11 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\nsIVariant.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIVariant.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpconnect\nsIXPConnect.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsIXPConnect.h"

 				>

 			</File>

 			<File

@@ -551,7 +552,7 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\necko\nsNetCID.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsNetCID.h"

 				>

 			</File>

 			<File

@@ -559,7 +560,7 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\nsrootidl.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\nsrootidl.h"

 				>

 			</File>

 			<File

@@ -675,15 +676,15 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpconnect\xpccomponents.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpccomponents.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpconnect\xpcexception.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcexception.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpconnect\xpcjsid.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcjsid.h"

 				>

 			</File>

 			<File

@@ -695,15 +696,15 @@
 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\xpt_arena.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpt_arena.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\xpt_struct.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpt_struct.h"

 				>

 			</File>

 			<File

-				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xpcom\xptinfo.h"

+				RelativePath="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.0\include\xptinfo.h"

 				>

 			</File>

 		</Filter>

@@ -713,7 +714,7 @@
 			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"

 			>

 			<File

-				RelativePath="..\xpOOPHM.rc"

+				RelativePath="..\xpGwtDevPlugin.rc"

 				>

 			</File>

 		</Filter>

@@ -827,7 +828,7 @@
 				>

 			</File>

 			<File

-				RelativePath="..\xpOOPHM.def"

+				RelativePath="..\xpGwtDevPlugin.def"

 				>

 			</File>

 		</Filter>

diff --git a/xpcom/VisualStudio/ff35-xpcom.vcproj b/xpcom/VisualStudio/ff35-xpcom.vcproj
index 3be29b9..9e96c85 100755
--- a/xpcom/VisualStudio/ff35-xpcom.vcproj
+++ b/xpcom/VisualStudio/ff35-xpcom.vcproj
@@ -40,7 +40,7 @@
 			<Tool

 				Name="VCCLCompilerTool"

 				Optimization="0"

-				AdditionalIncludeDirectories="&quot;$(ProjectDir)\..\..\common&quot;;..\prebuilt\ff3\include;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\WINNT_x86-msvc\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\caps&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\dom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\js&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\necko&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\string&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\widget&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\xpcom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\xpconnect&quot;"

+				AdditionalIncludeDirectories="&quot;$(ProjectDir)\..\..\common&quot;;..\prebuilt\ff35\include;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\WINNT_x86-msvc\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\caps&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\dom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\js&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\necko&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\string&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\widget&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\xpcom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\xpconnect&quot;"

 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FIREFOXPLUGIN_EXPORTS;GWT_DEBUGLEVEL=Warning;XPCOM_GLUE;XPCOM_GLUE_USE_NSPR;MOZILLA_STRICT_API;BROWSER_FF3"

 				MinimalRebuild="true"

 				BasicRuntimeChecks="3"

@@ -65,10 +65,10 @@
 				Name="VCLinkerTool"

 				AdditionalDependencies="ws2_32.lib xpcomglue_s.lib xpcom.lib nspr4.lib js3250.lib"

 				ShowProgress="2"

-				OutputFile="$(ProjectDir)\..\prebuilt\extension-ff35\platform\WINNT_x86-msvc\components\xpOOPHM.dll"

+				OutputFile="$(ProjectDir)\..\prebuilt\extension\lib\WINNT_x86-msvc\ff35\xpGwtDevPlugin.dll"

 				LinkIncremental="1"

 				AdditionalLibraryDirectories="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\WINNT_x86-msvc\lib"

-				ModuleDefinitionFile="$(ProjectDir)\..\xpOOPHM.def"

+				ModuleDefinitionFile="$(ProjectDir)\..\xpGwtDevPlugin.def"

 				GenerateDebugInformation="true"

 				ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"

 				SubSystem="2"

@@ -125,10 +125,10 @@
 				Name="VCCLCompilerTool"

 				Optimization="3"

 				EnableIntrinsicFunctions="true"

-				AdditionalIncludeDirectories="&quot;$(ProjectDir)\..\..\common&quot;;..\prebuilt\ff3\include;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\WINNT_x86-msvc\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\caps&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\dom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\js&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\necko&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\string&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\widget&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\xpcom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\xpconnect&quot;"

-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;FIREFOXPLUGIN_EXPORTS;GWT_DEBUGLEVEL=Warning;XPCOM_GLUE;XPCOM_GLUE_USE_NSPR;MOZILLA_STRICT_API;BROWSER_FF3"

+				AdditionalIncludeDirectories="&quot;$(ProjectDir)\..\..\common&quot;;..\prebuilt\ff35\include;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\WINNT_x86-msvc\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\caps&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\dom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\js&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\necko&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\string&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\widget&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\xpcom&quot;;&quot;..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\include\xpconnect&quot;"

+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;FIREFOXPLUGIN_EXPORTS;GWT_DEBUGLEVEL=Warning;XPCOM_GLUE;XPCOM_GLUE_USE_NSPR;MOZILLA_STRICT_API;BROWSER_FF3;BROWSER=ff35"

 				ExceptionHandling="1"

-				RuntimeLibrary="2"

+				RuntimeLibrary="0"

 				TreatWChar_tAsBuiltInType="false"

 				UsePrecompiledHeader="0"

 				WarningLevel="3"

@@ -140,6 +140,7 @@
 			/>

 			<Tool

 				Name="VCResourceCompilerTool"

+				ResourceOutputFileName="$(IntDir)/$(TargetName).res"

 			/>

 			<Tool

 				Name="VCPreLinkEventTool"

@@ -148,10 +149,10 @@
 				Name="VCLinkerTool"

 				AdditionalDependencies="ws2_32.lib xpcomglue_s.lib xpcom.lib nspr4.lib js3250.lib"

 				ShowProgress="2"

-				OutputFile="..\extension\platform\WINNT_x86-msvc\components\xpOOPHM.dll"

+				OutputFile="$(ProjectDir)\..\prebuilt\extension\lib\WINNT_x86-msvc\ff35\xpGwtDevPlugin.dll"

 				LinkIncremental="0"

 				AdditionalLibraryDirectories="..\..\..\..\plugin-sdks\gecko-sdks\gecko-1.9.1\WINNT_x86-msvc\lib"

-				ModuleDefinitionFile="..\xpOOPHM.def"

+				ModuleDefinitionFile="$(ProjectDir)\..\xpGwtDevPlugin.def"

 				GenerateDebugInformation="true"

 				ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"

 				SubSystem="2"

@@ -255,7 +256,7 @@
 				>

 			</File>

 			<File

-				RelativePath="..\prebuilt\ff3\include\IOOPHM.h"

+				RelativePath="..\prebuilt\ff35\include\IOOPHM.h"

 				>

 			</File>

 			<File

@@ -717,7 +718,7 @@
 			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"

 			>

 			<File

-				RelativePath="..\xpOOPHM.rc"

+				RelativePath="..\xpGwtDevPlugin.rc"

 				>

 			</File>

 		</Filter>

@@ -827,7 +828,7 @@
 				>

 			</File>

 			<File

-				RelativePath="..\xpOOPHM.def"

+				RelativePath="..\xpGwtDevPlugin.def"

 				>

 			</File>

 		</Filter>

diff --git a/xpcom/VisualStudio/firefox-xpcom.sln b/xpcom/VisualStudio/firefox-xpcom.sln
deleted file mode 100755
index a50fc62..0000000
--- a/xpcom/VisualStudio/firefox-xpcom.sln
+++ /dev/null
@@ -1,26 +0,0 @@
-

-Microsoft Visual Studio Solution File, Format Version 9.00

-# Visual C++ Express 2005

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "firefox-xpcom", "firefox-xpcom.vcproj", "{6BF0C2CE-CB0C-421B-A67C-1E448371D24A}"

-EndProject

-Global

-	GlobalSection(SolutionConfigurationPlatforms) = preSolution

-		Debug|Win32 = Debug|Win32

-		Debug|Win64 = Debug|Win64

-		Release|Win32 = Release|Win32

-		Release|Win64 = Release|Win64

-	EndGlobalSection

-	GlobalSection(ProjectConfigurationPlatforms) = postSolution

-		{6BF0C2CE-CB0C-421B-A67C-1E448371D24A}.Debug|Win32.ActiveCfg = Debug|Win32

-		{6BF0C2CE-CB0C-421B-A67C-1E448371D24A}.Debug|Win32.Build.0 = Debug|Win32

-		{6BF0C2CE-CB0C-421B-A67C-1E448371D24A}.Debug|Win64.ActiveCfg = Debug|Win32

-		{6BF0C2CE-CB0C-421B-A67C-1E448371D24A}.Debug|Win64.Build.0 = Debug|Win32

-		{6BF0C2CE-CB0C-421B-A67C-1E448371D24A}.Release|Win32.ActiveCfg = Release|Win32

-		{6BF0C2CE-CB0C-421B-A67C-1E448371D24A}.Release|Win32.Build.0 = Release|Win32

-		{6BF0C2CE-CB0C-421B-A67C-1E448371D24A}.Release|Win64.ActiveCfg = Release|Win32

-		{6BF0C2CE-CB0C-421B-A67C-1E448371D24A}.Release|Win64.Build.0 = Release|Win32

-	EndGlobalSection

-	GlobalSection(SolutionProperties) = preSolution

-		HideSolutionNode = FALSE

-	EndGlobalSection

-EndGlobal

diff --git a/xpcom/VisualStudio/firefox-xpcom.vcproj b/xpcom/VisualStudio/firefox-xpcom.vcproj
deleted file mode 100755
index 94b9004..0000000
--- a/xpcom/VisualStudio/firefox-xpcom.vcproj
+++ /dev/null
@@ -1,767 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<VisualStudioProject

-	ProjectType="Visual C++"

-	Version="8.00"

-	Name="firefox-xpcom"

-	ProjectGUID="{6BF0C2CE-CB0C-421B-A67C-1E448371D24A}"

-	RootNamespace="firefox-xpcom"

-	Keyword="Win32Proj"

-	>

-	<Platforms>

-		<Platform

-			Name="Win32"

-		/>

-	</Platforms>

-	<ToolFiles>

-	</ToolFiles>

-	<Configurations>

-		<Configuration

-			Name="Debug|Win32"

-			OutputDirectory="Debug"

-			IntermediateDirectory="Debug"

-			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="&quot;$(ProjectDir)\..\..\common&quot;;&quot;S:\xulrunner-sdk-win\sdk\include&quot;;&quot;S:\xulrunner-sdk-win\include\caps&quot;;&quot;s:\xulrunner-sdk-win\include\dom&quot;;&quot;s:\xulrunner-sdk-win\include\js&quot;;&quot;s:\xulrunner-sdk-win\include\necko&quot;;&quot;s:\xulrunner-sdk-win\include\string&quot;;&quot;s:\xulrunner-sdk-win\include\widget&quot;;&quot;s:\xulrunner-sdk-win\include\xpcom&quot;;&quot;s:\xulrunner-sdk-win\include\xpconnect&quot;;&quot;S:\xulrunner-sdk-win\include&quot;"

-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FIREFOXPLUGIN_EXPORTS;GWT_DEBUGLEVEL=Warning;XPCOM_GLUE;XPCOM_GLUE_USE_NSPR;MOZILLA_STRICT_API"

-				MinimalRebuild="true"

-				BasicRuntimeChecks="3"

-				RuntimeLibrary="1"

-				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 xpcomglue_s.lib xpcom.lib nspr4.lib js3250.lib"

-				ShowProgress="2"

-				OutputFile="$(ProjectDir)\..\extension\platform\WINNT_x86-msvc\components\xpOOPHM.dll"

-				LinkIncremental="1"

-				AdditionalLibraryDirectories="..\..\..\..\xulrunner-sdk-win\lib"

-				ModuleDefinitionFile="$(ProjectDir)\..\xpOOPHM.def"

-				GenerateDebugInformation="true"

-				ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"

-				SubSystem="2"

-				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="VCWebDeploymentTool"

-			/>

-			<Tool

-				Name="VCPostBuildEventTool"

-			/>

-		</Configuration>

-		<Configuration

-			Name="Release|Win32"

-			OutputDirectory="Release"

-			IntermediateDirectory="Release"

-			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="&quot;..\..\common&quot;"

-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;FIREFOXPLUGIN_EXPORTS;GWT_DEBUGLEVEL=Warning;XPCOM_GLUE;XPCOM_GLUE_USE_NSPR;MOZILLA_STRICT_API"

-				ExceptionHandling="1"

-				RuntimeLibrary="2"

-				UsePrecompiledHeader="0"

-				WarningLevel="3"

-				Detect64BitPortabilityProblems="false"

-				DebugInformationFormat="3"

-			/>

-			<Tool

-				Name="VCManagedResourceCompilerTool"

-			/>

-			<Tool

-				Name="VCResourceCompilerTool"

-			/>

-			<Tool

-				Name="VCPreLinkEventTool"

-			/>

-			<Tool

-				Name="VCLinkerTool"

-				AdditionalDependencies="ws2_32.lib xpcomglue_s.lib xpcom.lib nspr4.lib js3250.lib"

-				ShowProgress="2"

-				OutputFile="..\extension\platform\WINNT_x86-msvc\components\xpOOPHM.dll"

-				LinkIncremental="0"

-				AdditionalLibraryDirectories="..\..\..\..\xulrunner-sdk-win\lib"

-				ModuleDefinitionFile="..\xpOOPHM.def"

-				GenerateDebugInformation="true"

-				ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"

-				SubSystem="2"

-				OptimizeReferences="2"

-				EnableCOMDATFolding="2"

-				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="VCWebDeploymentTool"

-			/>

-			<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="..\..\common\AllowedConnections.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\BrowserChannel.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\ByteOrder.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\Debug.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\DebugLevel.h"

-				>

-			</File>

-			<File

-				RelativePath="..\ExternalWrapper.h"

-				>

-			</File>

-			<File

-				RelativePath="..\FFSessionHandler.h"

-				>

-			</File>

-			<File

-				RelativePath="..\XpcomDebug.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="..\JavaObject.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\js\jsapi.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\js\jsautocfg.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\js\jscompat.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\js\jsconfig.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\js\jslong.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\js\jsotypes.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\js\jsproto.tbl"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\js\jspubtd.h"

-				>

-			</File>

-			<File

-				RelativePath="..\JSRunner.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\js\jstypes.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\js\jsutil.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\js\jsutil.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\js\jsutil.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\js\jsutil.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\LoadJsniMessage.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\LoadModuleMessage.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\Message.h"

-				>

-			</File>

-			<File

-				RelativePath="..\ModuleOOPHM.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\mozilla-config.h"

-				>

-			</File>

-			<File

-				RelativePath="..\mozincludes.h"

-				>

-			</File>

-			<File

-				RelativePath="..\npapi\npapi.h"

-				>

-			</File>

-			<File

-				RelativePath="..\npapi\nphostapi.h"

-				>

-			</File>

-			<File

-				RelativePath="..\npapi\npruntime.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpconnect\nsAXPCNativeCallContext.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsCOMPtr.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\nscore.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nscore.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsCycleCollector.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsDebug.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsError.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\widget\nsEvent.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsICategoryManager.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsIClassInfo.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsIClassInfoImpl.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsIComponentManager.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsID.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\nsIEnumerator.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\nsIException.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\nsIExceptionService.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsIFactory.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsIGenericFactory.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\necko\nsIHttpProtocolHandler.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\nsIInterfaceInfo.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\nsIInterfaceInfoManager.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpconnect\nsIJSContextStack.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsIMemory.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsIModule.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\caps\nsIPrincipal.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsIProgrammingLanguage.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\necko\nsIProtocolHandler.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\necko\nsIProxiedProtocolHandler.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpconnect\nsIScriptableInterfaces.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\dom\nsIScriptGlobalObject.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\dom\nsIScriptObjectPrincipal.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\caps\nsISecurityCheckedComponent.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\nsISerializable.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsIServiceManager.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\nsISimpleEnumerator.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsISimpleEnumerator.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\nsISupports.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsISupports.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsISupportsBase.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\nsISupportsBase.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsISupportsImpl.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsISupportsUtils.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\nsISupportsUtils.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsIURI.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\nsIVariant.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpconnect\nsIXPConnect.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsMemory.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\necko\nsNetCID.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsrootidl.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\nsrootidl.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsServiceManagerUtils.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsStringAPI.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsTraceRefcnt.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsXPCOM.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsXPCOMCID.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\nsXPCOMStrings.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\Platform.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\pratom.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\prcpucfg.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\prinrval.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\prlock.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\prlog.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\prlong.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\obsolete\protypes.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\prthread.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\prtime.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\prtypes.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\QuitMessage.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\ReturnMessage.h"

-				>

-			</File>

-			<File

-				RelativePath="..\RootedObject.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\scoped_ptr\scoped_ptr.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\ServerMethods.h"

-				>

-			</File>

-			<File

-				RelativePath="..\SessionData.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\SessionHandler.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\Socket.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\Value.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpconnect\xpccomponents.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpconnect\xpcexception.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpconnect\xpcjsid.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\sdk\include\xpcom-config.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\xpt_arena.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\xpt_struct.h"

-				>

-			</File>

-			<File

-				RelativePath="..\..\..\..\xulrunner-sdk-win\include\xpcom\xptinfo.h"

-				>

-			</File>

-		</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="..\xpOOPHM.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="..\..\common\AllowedConnections.cpp"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\Debug.cpp"

-				>

-			</File>

-			<File

-				RelativePath="..\ExternalWrapper.cpp"

-				>

-			</File>

-			<File

-				RelativePath="..\FFSessionHandler.cpp"

-				>

-			</File>

-			<File

-				RelativePath="..\XpcomDebug.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="..\JavaObject.cpp"

-				>

-			</File>

-			<File

-				RelativePath="..\JSRunner.cpp"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\LoadJsniMessage.cpp"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\LoadModuleMessage.cpp"

-				>

-			</File>

-			<File

-				RelativePath="..\ModuleOOPHM.cpp"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\ReturnMessage.cpp"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\ServerMethods.cpp"

-				>

-			</File>

-			<File

-				RelativePath="..\..\common\Socket.cpp"

-				>

-			</File>

-			<File

-				RelativePath="..\xpOOPHM.def"

-				>

-			</File>

-		</Filter>

-	</Files>

-	<Globals>

-	</Globals>

-</VisualStudioProject>

diff --git a/xpcom/install-template-ff2.rdf b/xpcom/install-template-ff2.rdf
deleted file mode 100644
index 29b66d0..0000000
--- a/xpcom/install-template-ff2.rdf
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0"?>
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
-  <Description about="urn:mozilla:install-manifest">
-    <em:id>gwt-dmp-ff2@gwt.google.com</em:id>
-    <em:name>GWT Development Mode Plugin (XPCOM) for FF v1.5-2.x</em:name>
-    <em:version>GWT_OOPHM_VERSION</em:version>
-    <em:type>2</em:type>
-    <em:targetApplication>
-      <Description>
-        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-        <em:minVersion>1.5</em:minVersion>
-        <em:maxVersion>2.*</em:maxVersion>
-      </Description>
-    </em:targetApplication>
-
-    <!-- Front End MetaData -->
-    <em:description>A plugin to support GWT development-mode in XPCOM-based browsers</em:description>
-    <em:creator>Google, Inc.</em:creator>
-    <em:homepageURL>http://code.google.com/webtoolkit/</em:homepageURL>
-    <em:iconURL>chrome://gwt-dmp/skin/icon.png</em:iconURL>
-
-    <em:targetPlatform>Linux_x86-gcc3</em:targetPlatform>
-    <em:targetPlatform>Linux_x86_64-gcc3</em:targetPlatform>
-    <em:targetPlatform>Darwin_x86-gcc3</em:targetPlatform>
-    <em:targetPlatform>Darwin_ppc-gcc3</em:targetPlatform>
-
-    <em:optionsURL>chrome://gwt-dmp/content/options.xul</em:optionsURL>
-
-    <!-- TODO
-
-    # replace default about dialog
-    <em:aboutURL>chrome://gwt-dmp/content/about.xul</em:aboutURL>
-
-    # updates, see http://developer.mozilla.org/en/docs/Extension_Versioning%2C_Update_and_Compatibility#Update_RDF_Format
-    <em:updateURL>https://xxx.google.com/.../update.rdf</em:updateURL>
-    <em:updateURL>http://google-web-toolkit.googlecode.com/svn/trunk/plugins/xpcom/prebuilt/update.rdf</em:updateURL>
-
-    # platforms - any others?
-    <em:targetPlatform>WINNT_x86-msvc</em:targetPlatform>
-    <em:targetPlatform>SunOS_sparc-sunc</em:targetPlatform>
-    <em:targetPlatform>SunOS_x86-sunc</em:targetPlatform>
-    -->
-
-  </Description>
-</RDF>
diff --git a/xpcom/install-template-ff3+.rdf b/xpcom/install-template-ff3+.rdf
deleted file mode 100644
index 6cb592b..0000000
--- a/xpcom/install-template-ff3+.rdf
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0"?>
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
-  <Description about="urn:mozilla:install-manifest">
-    <em:id>gwt-dmp-ff3p@gwt.google.com</em:id>
-    <em:name>GWT Development Mode Plugin (XPCOM) for FF v3.x (alt libraries)</em:name>
-    <em:version>GWT_OOPHM_VERSION</em:version>
-    <em:type>2</em:type>
-    <em:targetApplication>
-      <Description>
-        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-        <em:minVersion>3</em:minVersion>
-        <em:maxVersion>3.3.*</em:maxVersion>
-      </Description>
-    </em:targetApplication>
-
-    <!-- Front End MetaData -->
-    <em:description>A plugin to support GWT development-mode in XPCOM-based browsers</em:description>
-    <em:creator>Google, Inc.</em:creator>
-    <em:homepageURL>http://code.google.com/webtoolkit/</em:homepageURL>
-    <em:iconURL>chrome://gwt-dmp/skin/icon.png</em:iconURL>
-
-    <em:targetPlatform>Linux_x86-gcc3</em:targetPlatform>
-    <em:targetPlatform>Linux_x86_64-gcc3</em:targetPlatform>
-
-    <em:optionsURL>chrome://gwt-dmp/content/options.xul</em:optionsURL>
-
-    <!-- TODO
-    # prefs dialog
-
-    # replace default about dialog
-    <em:aboutURL>chrome://gwt-dmp/content/about.xul</em:aboutURL>
-
-    # updates, see http://developer.mozilla.org/en/docs/Extension_Versioning%2C_Update_and_Compatibility#Update_RDF_Format
-    <em:updateURL>https://xxx.google.com/.../update.rdf</em:updateURL>
-    <em:updateURL>http://google-web-toolkit.googlecode.com/svn/trunk/plugins/xpcom/prebuilt/update.rdf</em:updateURL>
-
-    # platforms - any others?
-    <em:targetPlatform>SunOS_sparc-sunc</em:targetPlatform>
-    <em:targetPlatform>SunOS_x86-sunc</em:targetPlatform>
-    <em:targetPlatform>WINNT_x86-msvc</em:targetPlatform>
-    <em:targetPlatform>Darwin_x86-gcc3</em:targetPlatform>
-    <em:targetPlatform>Darwin_ppc-gcc3</em:targetPlatform>
-    -->
-
-  </Description>
-</RDF>
diff --git a/xpcom/install-template-ff3.rdf b/xpcom/install-template-ff3.rdf
deleted file mode 100644
index 7653ccb..0000000
--- a/xpcom/install-template-ff3.rdf
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0"?>
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
-  <Description about="urn:mozilla:install-manifest">
-    <em:id>gwt-dmp-ff3@gwt.google.com</em:id>
-    <em:name>GWT Development Mode Plugin (XPCOM) for FF v3.x</em:name>
-    <em:version>GWT_OOPHM_VERSION</em:version>
-    <em:type>2</em:type>
-    <em:targetApplication>
-      <Description>
-        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-        <em:minVersion>3</em:minVersion>
-        <em:maxVersion>3.3.*</em:maxVersion>
-      </Description>
-    </em:targetApplication>
-
-    <!-- Front End MetaData -->
-    <em:description>A plugin to support GWT development-mode in XPCOM-based browsers</em:description>
-    <em:creator>Google, Inc.</em:creator>
-    <em:homepageURL>http://code.google.com/webtoolkit/</em:homepageURL>
-    <em:iconURL>chrome://gwt-dmp/skin/icon.png</em:iconURL>
-
-    <em:targetPlatform>Linux_x86-gcc3</em:targetPlatform>
-    <em:targetPlatform>Linux_x86_64-gcc3</em:targetPlatform>
-    <em:targetPlatform>WINNT_x86-msvc</em:targetPlatform>
-    <em:targetPlatform>Darwin_x86-gcc3</em:targetPlatform>
-    <em:targetPlatform>Darwin_ppc-gcc3</em:targetPlatform>
-
-    <em:optionsURL>chrome://gwt-dmp/content/options.xul</em:optionsURL>
-
-    <!-- TODO
-
-    # replace default about dialog
-    <em:aboutURL>chrome://gwt-dmp/content/about.xul</em:aboutURL>
-
-    # updates, see http://developer.mozilla.org/en/docs/Extension_Versioning%2C_Update_and_Compatibility#Update_RDF_Format
-    <em:updateURL>https://xxx.google.com/.../update.rdf</em:updateURL>
-    <em:updateURL>http://google-web-toolkit.googlecode.com/svn/trunk/plugins/xpcom/prebuilt/update.rdf</em:updateURL>
-
-    # platforms - any others?
-    <em:targetPlatform>SunOS_sparc-sunc</em:targetPlatform>
-    <em:targetPlatform>SunOS_x86-sunc</em:targetPlatform>
-    -->
-
-  </Description>
-</RDF>
diff --git a/xpcom/install-template-ff35.rdf b/xpcom/install-template-ff35.rdf
deleted file mode 100644
index faeb80e..0000000
--- a/xpcom/install-template-ff35.rdf
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0"?>
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
-  <Description about="urn:mozilla:install-manifest">
-    <em:id>gwt-dmp-ff35@gwt.google.com</em:id>
-    <em:name>GWT Development Mode Plugin (XPCOM) for FF v3.5+</em:name>
-    <em:version>GWT_OOPHM_VERSION</em:version>
-    <em:type>2</em:type>
-    <em:targetApplication>
-      <Description>
-        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-        <em:minVersion>3.4</em:minVersion>
-        <em:maxVersion>3.*</em:maxVersion>
-      </Description>
-    </em:targetApplication>
-
-    <!-- Front End MetaData -->
-    <em:description>A plugin to support GWT development-mode in XPCOM-based browsers</em:description>
-    <em:creator>Google, Inc.</em:creator>
-    <em:homepageURL>http://code.google.com/webtoolkit/</em:homepageURL>
-    <em:iconURL>chrome://gwt-dmp/skin/icon.png</em:iconURL>
-
-    <em:targetPlatform>Linux_x86-gcc3</em:targetPlatform>
-    <em:targetPlatform>Linux_x86_64-gcc3</em:targetPlatform>
-    <em:targetPlatform>WINNT_x86-msvc</em:targetPlatform>
-    <em:targetPlatform>Darwin_x86-gcc3</em:targetPlatform>
-    <em:targetPlatform>Darwin_ppc-gcc3</em:targetPlatform>
-
-    <em:optionsURL>chrome://gwt-dmp/content/options.xul</em:optionsURL>
-
-    <!-- TODO
-
-    # replace default about dialog
-    <em:aboutURL>chrome://gwt-dmp/content/about.xul</em:aboutURL>
-
-    # updates, see http://developer.mozilla.org/en/docs/Extension_Versioning%2C_Update_and_Compatibility#Update_RDF_Format
-    <em:updateURL>https://xxx.google.com/.../update.rdf</em:updateURL>
-    <em:updateURL>http://google-web-toolkit.googlecode.com/svn/trunk/plugins/xpcom/prebuilt/update.rdf</em:updateURL>
-
-    # platforms - any others?
-    <em:targetPlatform>SunOS_sparc-sunc</em:targetPlatform>
-    <em:targetPlatform>SunOS_x86-sunc</em:targetPlatform>
-    -->
-
-  </Description>
-</RDF>
diff --git a/xpcom/install-template.rdf b/xpcom/install-template.rdf
new file mode 100644
index 0000000..ee74fea
--- /dev/null
+++ b/xpcom/install-template.rdf
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+
+  <Description about="urn:mozilla:install-manifest">
+    <em:id>gwt-dev-plugin@google.com</em:id>
+    <em:name>GWT Developer Plugin for Firefox</em:name>
+    <em:version>GWT_DEV_PLUGIN_VERSION</em:version>
+    <em:type>2</em:type>
+    <em:targetApplication>
+      <Description>
+        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
+        <!-- TODO: can we add 1.5-2.0 back?  Do we care? -->
+        <em:minVersion>3.0</em:minVersion>
+        <em:maxVersion>3.5.*</em:maxVersion>
+      </Description>
+    </em:targetApplication>
+
+    <!-- Front End MetaData -->
+    <em:description>A plugin to support GWT development-mode in XPCOM-based browsers</em:description>
+    <em:creator>Google, Inc.</em:creator>
+    <em:homepageURL>http://code.google.com/webtoolkit/</em:homepageURL>
+    <em:iconURL>chrome://gwt-dev-plugin/skin/icon.png</em:iconURL>
+
+    <em:targetPlatform>Linux_x86-gcc3</em:targetPlatform>
+    <em:targetPlatform>Linux_x86_64-gcc3</em:targetPlatform>
+    <em:targetPlatform>WINNT_x86-msvc</em:targetPlatform>
+    <em:targetPlatform>Darwin_x86-gcc3</em:targetPlatform>
+    <em:targetPlatform>Darwin_ppc-gcc3</em:targetPlatform>
+
+    <em:optionsURL>chrome://gwt-dev-plugin/content/options.xul</em:optionsURL>
+
+    <!-- updates, see http://developer.mozilla.org/en/docs/Extension_Versioning%2C_Update_and_Compatibility#Update_RDF_Format -->
+    <em:updateURL><![CDATA[https://dl-ssl.google.com/gwt/plugins/firefox/gwt-dev-plugin-updates.rdf?guid=%ITEM_ID%&version=%ITEM_VERSION%&application=%APP_ID%&appversion=%APP_VERSION%&locale=%APP_LOCALE%]]></em:updateURL>
+
+    <!-- TODO
+    # replace default about dialog
+    <em:aboutURL>chrome://gwt-dmp/content/about.xul</em:aboutURL>
+
+    # more platforms - any others?  OS/ABI for FreeBSD?
+    <em:targetPlatform>SunOS_sparc-sunc</em:targetPlatform>
+    <em:targetPlatform>SunOS_x86-sunc</em:targetPlatform>
+    <em:targetPlatform>SunOS_x86_64-sunc</em:targetPlatform>
+    -->
+
+  </Description>
+</RDF>
diff --git a/xpcom/prebuilt/extension-ff2/components/IOOPHM.xpt b/xpcom/prebuilt/extension-ff2/components/IOOPHM.xpt
deleted file mode 100644
index 683c881..0000000
--- a/xpcom/prebuilt/extension-ff2/components/IOOPHM.xpt
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff2/platform/Darwin_ppc-gcc3/components/libgwt_dmp_ff2.dylib b/xpcom/prebuilt/extension-ff2/platform/Darwin_ppc-gcc3/components/libgwt_dmp_ff2.dylib
deleted file mode 100755
index 9e224cd..0000000
--- a/xpcom/prebuilt/extension-ff2/platform/Darwin_ppc-gcc3/components/libgwt_dmp_ff2.dylib
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff2/platform/Darwin_x86-gcc3/components/libgwt_dmp_ff2.dylib b/xpcom/prebuilt/extension-ff2/platform/Darwin_x86-gcc3/components/libgwt_dmp_ff2.dylib
deleted file mode 100755
index f9ad6ad..0000000
--- a/xpcom/prebuilt/extension-ff2/platform/Darwin_x86-gcc3/components/libgwt_dmp_ff2.dylib
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff2/platform/Linux_x86-gcc3/components/libgwt_dmp_ff2.so b/xpcom/prebuilt/extension-ff2/platform/Linux_x86-gcc3/components/libgwt_dmp_ff2.so
deleted file mode 100755
index eecc748..0000000
--- a/xpcom/prebuilt/extension-ff2/platform/Linux_x86-gcc3/components/libgwt_dmp_ff2.so
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff2/platform/Linux_x86_64-gcc3/components/libgwt_dmp_ff2.so b/xpcom/prebuilt/extension-ff2/platform/Linux_x86_64-gcc3/components/libgwt_dmp_ff2.so
deleted file mode 100755
index 46bd8fc..0000000
--- a/xpcom/prebuilt/extension-ff2/platform/Linux_x86_64-gcc3/components/libgwt_dmp_ff2.so
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff3+/components/IOOPHM.xpt b/xpcom/prebuilt/extension-ff3+/components/IOOPHM.xpt
deleted file mode 100644
index 683c881..0000000
--- a/xpcom/prebuilt/extension-ff3+/components/IOOPHM.xpt
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff3+/platform/Linux_x86-gcc3/components/libgwt_dmp_ff3+.so b/xpcom/prebuilt/extension-ff3+/platform/Linux_x86-gcc3/components/libgwt_dmp_ff3+.so
deleted file mode 100755
index 4eaf84a..0000000
--- a/xpcom/prebuilt/extension-ff3+/platform/Linux_x86-gcc3/components/libgwt_dmp_ff3+.so
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff3+/platform/Linux_x86_64-gcc3/components/libgwt_dmp_ff3+.so b/xpcom/prebuilt/extension-ff3+/platform/Linux_x86_64-gcc3/components/libgwt_dmp_ff3+.so
deleted file mode 100755
index 0e2f99e..0000000
--- a/xpcom/prebuilt/extension-ff3+/platform/Linux_x86_64-gcc3/components/libgwt_dmp_ff3+.so
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff3+/skin/icon.png b/xpcom/prebuilt/extension-ff3+/skin/icon.png
deleted file mode 100644
index 7ba8270..0000000
--- a/xpcom/prebuilt/extension-ff3+/skin/icon.png
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff3/components/IOOPHM.xpt b/xpcom/prebuilt/extension-ff3/components/IOOPHM.xpt
deleted file mode 100644
index 683c881..0000000
--- a/xpcom/prebuilt/extension-ff3/components/IOOPHM.xpt
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff3/platform/Darwin_ppc-gcc3/components/libgwt_dmp_ff3.dylib b/xpcom/prebuilt/extension-ff3/platform/Darwin_ppc-gcc3/components/libgwt_dmp_ff3.dylib
deleted file mode 100755
index 81df2bf..0000000
--- a/xpcom/prebuilt/extension-ff3/platform/Darwin_ppc-gcc3/components/libgwt_dmp_ff3.dylib
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff3/platform/Darwin_x86-gcc3/components/libgwt_dmp_ff3.dylib b/xpcom/prebuilt/extension-ff3/platform/Darwin_x86-gcc3/components/libgwt_dmp_ff3.dylib
deleted file mode 100755
index a23866a..0000000
--- a/xpcom/prebuilt/extension-ff3/platform/Darwin_x86-gcc3/components/libgwt_dmp_ff3.dylib
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff3/platform/Linux_x86-gcc3/components/libgwt_dmp_ff3.so b/xpcom/prebuilt/extension-ff3/platform/Linux_x86-gcc3/components/libgwt_dmp_ff3.so
deleted file mode 100755
index 637dc24..0000000
--- a/xpcom/prebuilt/extension-ff3/platform/Linux_x86-gcc3/components/libgwt_dmp_ff3.so
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff3/platform/Linux_x86_64-gcc3/components/libgwt_dmp_ff3.so b/xpcom/prebuilt/extension-ff3/platform/Linux_x86_64-gcc3/components/libgwt_dmp_ff3.so
deleted file mode 100755
index 3fd64cc..0000000
--- a/xpcom/prebuilt/extension-ff3/platform/Linux_x86_64-gcc3/components/libgwt_dmp_ff3.so
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff3/platform/WINNT_x86-msvc/components/xpOOPHM.dll b/xpcom/prebuilt/extension-ff3/platform/WINNT_x86-msvc/components/xpOOPHM.dll
deleted file mode 100755
index 09a0119..0000000
--- a/xpcom/prebuilt/extension-ff3/platform/WINNT_x86-msvc/components/xpOOPHM.dll
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff3/skin/icon.png b/xpcom/prebuilt/extension-ff3/skin/icon.png
deleted file mode 100644
index 7ba8270..0000000
--- a/xpcom/prebuilt/extension-ff3/skin/icon.png
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff35/components/IOOPHM.xpt b/xpcom/prebuilt/extension-ff35/components/IOOPHM.xpt
deleted file mode 100644
index 683c881..0000000
--- a/xpcom/prebuilt/extension-ff35/components/IOOPHM.xpt
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff35/platform/Darwin_ppc-gcc3/components/libgwt_dmp_ff35.dylib b/xpcom/prebuilt/extension-ff35/platform/Darwin_ppc-gcc3/components/libgwt_dmp_ff35.dylib
deleted file mode 100755
index e483be4..0000000
--- a/xpcom/prebuilt/extension-ff35/platform/Darwin_ppc-gcc3/components/libgwt_dmp_ff35.dylib
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff35/platform/Darwin_x86-gcc3/components/libgwt_dmp_ff35.dylib b/xpcom/prebuilt/extension-ff35/platform/Darwin_x86-gcc3/components/libgwt_dmp_ff35.dylib
deleted file mode 100755
index 74c9132..0000000
--- a/xpcom/prebuilt/extension-ff35/platform/Darwin_x86-gcc3/components/libgwt_dmp_ff35.dylib
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff35/platform/Linux_x86-gcc3/components/libgwt_dmp_ff35.so b/xpcom/prebuilt/extension-ff35/platform/Linux_x86-gcc3/components/libgwt_dmp_ff35.so
deleted file mode 100755
index 8844bc7..0000000
--- a/xpcom/prebuilt/extension-ff35/platform/Linux_x86-gcc3/components/libgwt_dmp_ff35.so
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff35/platform/Linux_x86_64-gcc3/components/libgwt_dmp_ff35.so b/xpcom/prebuilt/extension-ff35/platform/Linux_x86_64-gcc3/components/libgwt_dmp_ff35.so
deleted file mode 100755
index ef27b46..0000000
--- a/xpcom/prebuilt/extension-ff35/platform/Linux_x86_64-gcc3/components/libgwt_dmp_ff35.so
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff35/platform/WINNT_x86-msvc/components/xpOOPHM.dll b/xpcom/prebuilt/extension-ff35/platform/WINNT_x86-msvc/components/xpOOPHM.dll
deleted file mode 100755
index 5b20eca..0000000
--- a/xpcom/prebuilt/extension-ff35/platform/WINNT_x86-msvc/components/xpOOPHM.dll
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension-ff35/skin/icon.png b/xpcom/prebuilt/extension-ff35/skin/icon.png
deleted file mode 100644
index 7ba8270..0000000
--- a/xpcom/prebuilt/extension-ff35/skin/icon.png
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/extension/chrome.manifest b/xpcom/prebuilt/extension/chrome.manifest
index aaa29b3..3da08b8 100644
--- a/xpcom/prebuilt/extension/chrome.manifest
+++ b/xpcom/prebuilt/extension/chrome.manifest
@@ -1,2 +1,2 @@
-content gwt-dmp content/
-skin gwt-dmp classic/1.0 skin/
+content gwt-dev-plugin content/
+skin gwt-dev-plugin classic/1.0 skin/
diff --git a/xpcom/prebuilt/extension/components/stub.js b/xpcom/prebuilt/extension/components/stub.js
new file mode 100644
index 0000000..b7267ca
--- /dev/null
+++ b/xpcom/prebuilt/extension/components/stub.js
@@ -0,0 +1,103 @@
+// Copyright 2009, Google Inc.
+//
+// Redistribution and use in source and binary forms, with or without 
+// modification, are permitted provided that the following conditions are met:
+//
+//  1. Redistributions of source code must retain the above copyright notice, 
+//   this list of conditions and the following disclaimer.
+//  2. Redistributions in binary form must reproduce the above copyright notice,
+//   this list of conditions and the following disclaimer in the documentation
+//   and/or other materials provided with the distribution.
+//  3. Neither the name of Google Inc. nor the names of its contributors may be
+//   used to endorse or promote products derived from this software without
+//   specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
+// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Our binary is compiled against different versions of the Gecko SDK for
+// different versions of Firefox. But we want a single XPI so that users can
+// switch between versions of Firefox without having to change their Gears
+// version.
+
+// This JavaScript file is detected and loaded by Gecko when our extension is
+// installed. We then use nsIComponentRegistrar to tell Gecko where our real
+// components are located, depending on what version of Firefox we detect we are
+// running in.
+
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+
+// Detect which version of our lib we should use.
+function getLibFileName() {
+  var appInfo = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo);
+  var geckoVersion = appInfo.platformVersion.substring(0, 3);
+
+  if (geckoVersion == "1.8") {
+    return "ff2";
+  }
+
+  if (geckoVersion.substring(0, 3) == "1.9") {
+    var firefoxVersion = appInfo.version.substring(0, 3);
+
+    if (firefoxVersion == "3.0") {
+      if (isFedora()) {
+        return "ff3+";
+      }
+      return "ff3";
+    }
+
+    if (firefoxVersion == "3.5") {
+      return "ff35";
+    }
+
+    throw "Unexpected Firefox version: " + firefoxVersion;
+  }
+
+  throw "Unexpected Gecko version: " + geckoVersion;
+}
+
+function getPlatform() {
+  var runtime = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime);
+
+  if (runtime.OS == "Darwin") {
+    return runtime.OS + "-gcc3";
+  }
+
+  return runtime.OS + "_" + runtime.XPCOMABI;
+}
+
+function isFedora() {
+  var navigator = Cc["@mozilla.org/network/protocol;1?name=http"].
+    getService(Ci.nsIHttpProtocolHandler);
+
+  return navigator.userAgent.indexOf("Fedora") != -1;
+}
+
+// This function is called by Firefox at installation time.
+function NSGetModule() {
+  return {
+    registerSelf: function(compMgr, location, loaderStr, type) {
+      var libFile = location.parent.parent;
+      libFile.append("lib");
+      libFile.append(getPlatform());
+      libFile.append(getLibFileName());
+
+      // Note: we register a directory instead of an individual file because
+      // Gecko will only load components with a specific file name pattern. We 
+      // don't want this file to have to know about that. Luckily, if you
+      // register a directory, Gecko will look inside the directory for files
+      // to load.
+      var compMgr = compMgr.QueryInterface(Ci.nsIComponentRegistrar);
+      compMgr.autoRegister(libFile);
+    }
+  }
+}
diff --git a/xpcom/prebuilt/extension/content/options.xul b/xpcom/prebuilt/extension/content/options.xul
index 5aebd48..aebefbc 100644
--- a/xpcom/prebuilt/extension/content/options.xul
+++ b/xpcom/prebuilt/extension/content/options.xul
@@ -2,26 +2,26 @@
 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
 
 <dialog buttons="accept"
-     id="gwt-dmp-prefs"
-     title="GWT Development Mode Plugin Options"
-     onload="GwtDevelopmentModePlugin.onload()"
+     id="gwt-dev-prefs"
+     title="GWT Developer Plugin Options"
+     onload="GwtDeveloperPlugin.onload()"
      ondialogaccept="return true;"
      xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
 <script type="application/x-javascript"
-    src="chrome://gwt-dmp/content/prefScript.js"/>
+    src="chrome://gwt-dev-plugin/content/prefScript.js"/>
 
 <vbox flex="1">
 
   <groupbox flex="1">
     <caption>
       <hbox>
-        <image src="chrome://gwt-dmp/skin/warning.png"/>
+        <image src="chrome://gwt-dev-plugin/skin/warning.png"/>
         <label value="Security Restrictions" style="font-weight: bold"/>
       </hbox>
     </caption>
     <description width="55em">
-      The GWT Development Mode Plugin will open a TCP/IP connection to an
+      The GWT Developer Plugin will open a TCP/IP connection to an
       arbitrary host/port at the request of a web page.  To minimize security
       risks, by default it will only connect to the local machine.  To allow
       cross-machine debugging, you can add exceptions here -- include the exact
@@ -55,7 +55,7 @@
 
   <hbox>
     <button id="removeButton" label="Remove Selected"
-        oncommand="GwtDevelopmentModePlugin.removeEntry()"/>
+        oncommand="GwtDeveloperPlugin.removeEntry()"/>
     <!-- TODO(jat): add move up/down buttons -->
   </hbox>
 
diff --git a/xpcom/prebuilt/extension/content/prefScript.js b/xpcom/prebuilt/extension/content/prefScript.js
index 9b3e052..ddf17cd 100644
--- a/xpcom/prebuilt/extension/content/prefScript.js
+++ b/xpcom/prebuilt/extension/content/prefScript.js
@@ -1,4 +1,4 @@
-var GwtDevelopmentModePlugin = {
+var GwtDeveloperPlugin = {
 
 // Add a new entry when the Add Entry button is clicked.
 addEntry: function() {
@@ -70,11 +70,12 @@
   return listboxEntry;
 },
 
-// Internal - load the access list from the gwt-dmp.accessList preference
+// Internal - load the access list from the gwt-dev-plugin.accessList
+// preference
 getAccessList: function() {
   var prefServ = Components.classes["@mozilla.org/preferences-service;1"]
                   .getService(Components.interfaces.nsIPrefService);
-  var prefs = prefServ.getBranch("gwt-dmp.");
+  var prefs = prefServ.getBranch("gwt-dev-plugin.");
   var pref = prefs.getCharPref("accessList");
   if (!pref) {
     return [];
@@ -82,11 +83,12 @@
   return pref.split(",");
 },
 
-// Internal - save the access list to the gwt-dmp.accessList preference
+// Internal - save the access list to the gwt-dev-plugin.accessList
+// preference
 saveAccessList: function(list) {
   var prefServ = Components.classes["@mozilla.org/preferences-service;1"]
                   .getService(Components.interfaces.nsIPrefService);
-  var prefs = prefServ.getBranch("gwt-dmp.");
+  var prefs = prefServ.getBranch("gwt-dev-plugin.");
   prefs.setCharPref("accessList", list.join(","));
   prefServ.savePrefFile(null);
 }
diff --git a/xpcom/prebuilt/extension/defaults/preferences/defaults.js b/xpcom/prebuilt/extension/defaults/preferences/defaults.js
index 8b6558b..29b3f76 100644
--- a/xpcom/prebuilt/extension/defaults/preferences/defaults.js
+++ b/xpcom/prebuilt/extension/defaults/preferences/defaults.js
@@ -1 +1 @@
-pref("gwt-dmp.accessList", "");
+pref("gwt-dev-plugin.accessList", "");
diff --git a/xpcom/prebuilt/extension-ff2/skin/icon.png b/xpcom/prebuilt/extension/icon.png
similarity index 100%
rename from xpcom/prebuilt/extension-ff2/skin/icon.png
rename to xpcom/prebuilt/extension/icon.png
Binary files differ
diff --git a/xpcom/prebuilt/extension/lib/Darwin-gcc3/ff3/libgwt_dev_ff3.dylib b/xpcom/prebuilt/extension/lib/Darwin-gcc3/ff3/libgwt_dev_ff3.dylib
new file mode 100755
index 0000000..013f2e6
--- /dev/null
+++ b/xpcom/prebuilt/extension/lib/Darwin-gcc3/ff3/libgwt_dev_ff3.dylib
Binary files differ
diff --git a/xpcom/prebuilt/extension/lib/Darwin-gcc3/ff35/libgwt_dev_ff35.dylib b/xpcom/prebuilt/extension/lib/Darwin-gcc3/ff35/libgwt_dev_ff35.dylib
new file mode 100755
index 0000000..601dd8b
--- /dev/null
+++ b/xpcom/prebuilt/extension/lib/Darwin-gcc3/ff35/libgwt_dev_ff35.dylib
Binary files differ
diff --git a/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3+/libgwt_dev_ff3+.so b/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3+/libgwt_dev_ff3+.so
new file mode 100755
index 0000000..5dcfcfd
--- /dev/null
+++ b/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3+/libgwt_dev_ff3+.so
Binary files differ
diff --git a/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3/libgwt_dev_ff3.so b/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3/libgwt_dev_ff3.so
new file mode 100755
index 0000000..284e265
--- /dev/null
+++ b/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff3/libgwt_dev_ff3.so
Binary files differ
diff --git a/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff35/libgwt_dev_ff35.so b/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff35/libgwt_dev_ff35.so
new file mode 100755
index 0000000..38c6a95
--- /dev/null
+++ b/xpcom/prebuilt/extension/lib/Linux_x86-gcc3/ff35/libgwt_dev_ff35.so
Binary files differ
diff --git a/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3+/libgwt_dev_ff3+.so b/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3+/libgwt_dev_ff3+.so
new file mode 100755
index 0000000..b2f6d9f
--- /dev/null
+++ b/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3+/libgwt_dev_ff3+.so
Binary files differ
diff --git a/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3/libgwt_dev_ff3.so b/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3/libgwt_dev_ff3.so
new file mode 100755
index 0000000..c23ad13
--- /dev/null
+++ b/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff3/libgwt_dev_ff3.so
Binary files differ
diff --git a/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff35/libgwt_dev_ff35.so b/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff35/libgwt_dev_ff35.so
new file mode 100755
index 0000000..e811b9f
--- /dev/null
+++ b/xpcom/prebuilt/extension/lib/Linux_x86_64-gcc3/ff35/libgwt_dev_ff35.so
Binary files differ
diff --git a/xpcom/prebuilt/extension/lib/WINNT_x86-msvc/ff3/xpGwtDevPlugin.dll b/xpcom/prebuilt/extension/lib/WINNT_x86-msvc/ff3/xpGwtDevPlugin.dll
new file mode 100644
index 0000000..5e8fb7d
--- /dev/null
+++ b/xpcom/prebuilt/extension/lib/WINNT_x86-msvc/ff3/xpGwtDevPlugin.dll
Binary files differ
diff --git a/xpcom/prebuilt/extension/lib/WINNT_x86-msvc/ff35/xpGwtDevPlugin.dll b/xpcom/prebuilt/extension/lib/WINNT_x86-msvc/ff35/xpGwtDevPlugin.dll
new file mode 100644
index 0000000..844f562
--- /dev/null
+++ b/xpcom/prebuilt/extension/lib/WINNT_x86-msvc/ff35/xpGwtDevPlugin.dll
Binary files differ
diff --git a/xpcom/prebuilt/gwt-dev-plugin.xpi b/xpcom/prebuilt/gwt-dev-plugin.xpi
new file mode 100644
index 0000000..39b4cf8
--- /dev/null
+++ b/xpcom/prebuilt/gwt-dev-plugin.xpi
Binary files differ
diff --git a/xpcom/prebuilt/gwt-dmp-ff2.xpi b/xpcom/prebuilt/gwt-dmp-ff2.xpi
deleted file mode 100644
index 098e7d7..0000000
--- a/xpcom/prebuilt/gwt-dmp-ff2.xpi
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/gwt-dmp-ff3+.xpi b/xpcom/prebuilt/gwt-dmp-ff3+.xpi
deleted file mode 100644
index ec1f536..0000000
--- a/xpcom/prebuilt/gwt-dmp-ff3+.xpi
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/gwt-dmp-ff3.xpi b/xpcom/prebuilt/gwt-dmp-ff3.xpi
deleted file mode 100644
index 658c12e..0000000
--- a/xpcom/prebuilt/gwt-dmp-ff3.xpi
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/gwt-dmp-ff35.xpi b/xpcom/prebuilt/gwt-dmp-ff35.xpi
deleted file mode 100644
index ffe6afc..0000000
--- a/xpcom/prebuilt/gwt-dmp-ff35.xpi
+++ /dev/null
Binary files differ
diff --git a/xpcom/prebuilt/update.rdf b/xpcom/prebuilt/update.rdf
index 157aec9..e8c55a4 100644
--- a/xpcom/prebuilt/update.rdf
+++ b/xpcom/prebuilt/update.rdf
@@ -3,103 +3,23 @@
 <RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
          xmlns:em="http://www.mozilla.org/2004/em-rdf#">
 
-  <RDF:Description about="urn:mozilla:extension:oophm-xpcom-ff2@gwt.google.com">
+  <RDF:Description about="urn:mozilla:extension:gwt-dev-plugin@google.com">
     <em:updates>
       <RDF:Seq>
 
         <RDF:li>
           <RDF:Description>
-            <em:version>0.0.4229M.20081202172443</em:version>
-	    <em:targetApplication>
-	      <Description>
-		<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-		<em:minVersion>1.5</em:minVersion>
-		<em:maxVersion>2.*</em:maxVersion>
-                <em:updateLink>http://google-web-toolkit.googlecode.com/svn/changes/jat/oophm-plugins-trunk/plugins/xpcom/prebuilt/oophm-xpcom-ff2.xpi</em:updateLink>
+            <em:version>0.9.6553M.20091030005401</em:version>
+            <em:targetApplication>
+              <Description>
+                <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
+                <em:minVersion>3.0</em:minVersion>
+                <em:maxVersion>3.5.*</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>
 
-		<!--
-                <em:updateInfoURL>http://www.mysite.com/updateinfo2.2.xhtml</em:updateInfoURL>
-		-->
-	      </Description>
-	    </em:targetApplication>
-          </RDF:Description>
-        </RDF:li>
-
-      </RDF:Seq>
-    </em:updates>
-  </RDF:Description>
-
-  <RDF:Description about="urn:mozilla:extension:oophm-xpcom-ff3@gwt.google.com">
-    <em:updates>
-      <RDF:Seq>
-
-        <RDF:li>
-          <RDF:Description>
-            <em:version>0.0.4229M.20081202172443</em:version>
-	    <em:targetApplication>
-	      <Description>
-		<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-		<em:minVersion>3</em:minVersion>
-		<em:maxVersion>3.4.*</em:maxVersion>
-                <em:updateLink>http://google-web-toolkit.googlecode.com/svn/changes/jat/oophm-plugins-trunk/plugins/xpcom/prebuilt/oophm-xpcom-ff3.xpi</em:updateLink>
-
-		<!--
-                <em:updateInfoURL>http://www.mysite.com/updateinfo2.2.xhtml</em:updateInfoURL>
-		-->
-	      </Description>
-	    </em:targetApplication>
-          </RDF:Description>
-        </RDF:li>
-
-      </RDF:Seq>
-    </em:updates>
-  </RDF:Description>
-
-  <RDF:Description about="urn:mozilla:extension:oophm-xpcom-ff3+@gwt.google.com">
-    <em:updates>
-      <RDF:Seq>
-
-        <RDF:li>
-          <RDF:Description>
-            <em:version>0.0.4229M.20081202172443</em:version>
-	    <em:targetApplication>
-	      <Description>
-		<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-		<em:minVersion>3</em:minVersion>
-		<em:maxVersion>3.4.*</em:maxVersion>
-                <em:updateLink>http://google-web-toolkit.googlecode.com/svn/changes/jat/oophm-plugins-trunk/plugins/xpcom/prebuilt/oophm-xpcom-ff3+.xpi</em:updateLink>
-
-		<!--
-                <em:updateInfoURL>http://www.mysite.com/updateinfo2.2.xhtml</em:updateInfoURL>
-		-->
-	      </Description>
-	    </em:targetApplication>
-          </RDF:Description>
-        </RDF:li>
-
-      </RDF:Seq>
-    </em:updates>
-  </RDF:Description>
-
-  <RDF:Description about="urn:mozilla:extension:oophm-xpcom-ff35@gwt.google.com">
-    <em:updates>
-      <RDF:Seq>
-
-        <RDF:li>
-          <RDF:Description>
-            <em:version>0.0.4229M.20081202172443</em:version>
-	    <em:targetApplication>
-	      <Description>
-		<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-		<em:minVersion>3.5</em:minVersion>
-		<em:maxVersion>3.*</em:maxVersion>
-                <em:updateLink>http://google-web-toolkit.googlecode.com/svn/changes/jat/oophm-plugins-trunk/plugins/xpcom/prebuilt/oophm-xpcom-ff35.xpi</em:updateLink>
-
-		<!--
-                <em:updateInfoURL>http://www.mysite.com/updateinfo2.2.xhtml</em:updateInfoURL>
-		-->
-	      </Description>
-	    </em:targetApplication>
+              </Description>
+            </em:targetApplication>
           </RDF:Description>
         </RDF:li>
 
diff --git a/xpcom/xpGwtDevPlugin.def b/xpcom/xpGwtDevPlugin.def
new file mode 100644
index 0000000..b3e5034
--- /dev/null
+++ b/xpcom/xpGwtDevPlugin.def
@@ -0,0 +1,3 @@
+LIBRARY xpGwtDevPlugin
+
+EXPORTS
diff --git a/xpcom/xpOOPHM.rc b/xpcom/xpGwtDevPlugin.rc
similarity index 75%
rename from xpcom/xpOOPHM.rc
rename to xpcom/xpGwtDevPlugin.rc
index d159832..de20962 100644
--- a/xpcom/xpOOPHM.rc
+++ b/xpcom/xpGwtDevPlugin.rc
@@ -9,8 +9,8 @@
 #endif
 
 1 VERSIONINFO
-  FILEVERSION 0,1,1,0
-  PRODUCTVERSION 0,1,1,0
+  FILEVERSION 0,9,0,0
+  PRODUCTVERSION 0,9,0,0
   FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
   FILEFLAGS 0x1L
@@ -26,18 +26,18 @@
   	BLOCK "040904e4"
   	BEGIN
   	  VALUE "CompanyName", 		"Google Inc"
-  	  VALUE "FileDescription",	"GWT XPCOM OOPHM Plugin"
+  	  VALUE "FileDescription",	"GWT Developer Plugin (XPCOM)"
 #if 0
   	  VALUE "FileExtents",		""
 #endif
-  	  VALUE "FileOpenName",		"Plugin to allow debugging of GWT applications in hosted mode."
+  	  VALUE "FileOpenName",		"Plugin to allow debugging of GWT applications in development mode."
   	  VALUE "FileVersion",		"0.1a"
-  	  VALUE "InternalName",		"GWT XPCOM OOPHM Plugin"
+  	  VALUE "InternalName",		"GWT Developer Plugin (XPCOM)"
   	  VALUE "LegalCopyright",	"Copyright © 2008 Google Inc.  Licensed under Apache 2.0 license."
   	  VALUE "MIMEType",			"application/x-gwt-hosted-mode"
-  	  VALUE "OriginalFilename",	"xpOOPHM.dll"
-  	  VALUE "ProductName",		"GWT XPCOM OOPHM Plugin"
-  	  VALUE "ProductVersion",	"0.1a"
+  	  VALUE "OriginalFilename",	"xpGwtDevPlugin.dll"
+  	  VALUE "ProductName",		"GWT Developer Plugin (XPCOM)"
+  	  VALUE "ProductVersion",	"0.9.0.0"
   	END
   END
   BLOCK "VarFileInfo"
diff --git a/xpcom/xpOOPHM.def b/xpcom/xpOOPHM.def
deleted file mode 100644
index 9b66173..0000000
--- a/xpcom/xpOOPHM.def
+++ /dev/null
@@ -1,3 +0,0 @@
-LIBRARY XPOOPHM
-
-EXPORTS