diff --git a/mozilla/xpfc/canvas/src/nsXPFCHTMLCanvas.cpp b/mozilla/xpfc/canvas/src/nsXPFCHTMLCanvas.cpp
index 895e0a7318c..9ba729ab97e 100644
--- a/mozilla/xpfc/canvas/src/nsXPFCHTMLCanvas.cpp
+++ b/mozilla/xpfc/canvas/src/nsXPFCHTMLCanvas.cpp
@@ -24,14 +24,15 @@
#include "nsIFontMetrics.h"
#include "nspr.h"
#include "nsxpfcstrings.h"
+#include "nsIStreamListener.h"
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
static NS_DEFINE_IID(kXPFCHTMLCanvasCID, NS_XPFC_HTML_CANVAS_CID);
#define kNotFound -1
-#define DEFAULT_WIDTH 25
-#define DEFAULT_HEIGHT 25
+#define DEFAULT_WIDTH 400
+#define DEFAULT_HEIGHT 400
nsXPFCHTMLCanvas :: nsXPFCHTMLCanvas(nsISupports* outer) : nsXPFCCanvas(outer)
{
@@ -41,7 +42,10 @@ nsXPFCHTMLCanvas :: nsXPFCHTMLCanvas(nsISupports* outer) : nsXPFCCanvas(outer)
nsXPFCHTMLCanvas :: ~nsXPFCHTMLCanvas()
{
- NS_IF_RELEASE(mWebShell);
+ if (nsnull != mWebShell) {
+ mWebShell->Destroy();
+ NS_RELEASE(mWebShell);
+ }
}
nsresult nsXPFCHTMLCanvas::QueryInterface(REFNSIID aIID, void** aInstancePtr)
@@ -87,6 +91,32 @@ nsresult nsXPFCHTMLCanvas :: Init()
DEFAULT_WIDTH,
DEFAULT_HEIGHT);
+ nsIWebShellContainer * container = nsnull;
+
+ static NS_DEFINE_IID(kIWebShellContainerIID, NS_IWEB_SHELL_CONTAINER_IID);
+ static NS_DEFINE_IID(kIStreamObserverIID, NS_ISTREAMOBSERVER_IID);
+
+ res = mWebShell->QueryInterface(kIWebShellContainerIID, (void**)&container);
+
+ if (res == NS_OK)
+ {
+ //mWebShell->SetContainecontainer);
+ NS_RELEASE(container);
+ }
+
+ nsIStreamObserver * observer = nsnull;
+
+ res = mWebShell->QueryInterface(kIStreamObserverIID, (void**)&observer);
+
+ if (res == NS_OK)
+ {
+ mWebShell->SetObserver(observer);
+ NS_RELEASE(observer);
+ }
+
+ //mWebShell->SetPrefs(aPrefs);
+ mWebShell->SetBounds(0,0,400,400);
+
mWebShell->Show();
nsString url("about:blank");
diff --git a/mozilla/xpfc/shell/src/manifest.mn b/mozilla/xpfc/shell/src/manifest.mn
index c51376a4272..254770f5dbb 100644
--- a/mozilla/xpfc/shell/src/manifest.mn
+++ b/mozilla/xpfc/shell/src/manifest.mn
@@ -26,5 +26,5 @@ CPPSRCS = \
nsStreamObject.cpp \
$(NULL)
-REQUIRES = xpcom raptor pref js netlib
+REQUIRES = dom xpcom raptor pref js netlib
diff --git a/mozilla/xpfc/shell/src/nsShellInstance.cpp b/mozilla/xpfc/shell/src/nsShellInstance.cpp
index 7c929a1b6a6..54acc13a467 100644
--- a/mozilla/xpfc/shell/src/nsShellInstance.cpp
+++ b/mozilla/xpfc/shell/src/nsShellInstance.cpp
@@ -48,6 +48,9 @@
#include "nsPluginsCID.h"
#include "nsIDeviceContext.h"
#include "nsINetService.h"
+#include "nsDOMCID.h"
+#include "nsLayoutCID.h"
+#include "nsINetService.h"
#ifdef NS_WIN32
#include "direct.h"
@@ -112,6 +115,11 @@ nsresult nsShellInstance::Init()
mPref->Startup(nsnull);
+
+ res = NS_InitINetService((nsINetContainerApplication*) nsnull);
+ if (NS_OK != res)
+ return res;
+
// Create a Stream Manager
res = nsRepository::CreateInstance(kCStreamManager,
NULL,
@@ -236,6 +244,8 @@ nsresult nsShellInstance::RegisterFactories()
#define WEB_DLL "raptorweb.dll"
#define PLUGIN_DLL "raptorplugin.dll"
#define NETLIB_DLL "netlib.dll"
+ #define DOM_DLL "jsdom.dll"
+ #define LAYOUT_DLL "raptorhtml.dll"
#else
#define GFXWIN_DLL "libgfxunix.so"
#define WIDGET_DLL "libwidgetunix.so"
@@ -245,6 +255,8 @@ nsresult nsShellInstance::RegisterFactories()
#define WEB_DLL "libraptorweb.so"
#define PLUGIN_DLL "raptorplugin.so"
#define NETLIB_DLL "netlib.so"
+ #define DOM_DLL "libjsdom.so"
+ #define LAYOUT_DLL "libraptorhtml.so"
#endif
@@ -289,6 +301,11 @@ nsresult nsShellInstance::RegisterFactories()
static NS_DEFINE_IID(kCViewManagerCID, NS_VIEW_MANAGER_CID);
static NS_DEFINE_IID(kCViewCID, NS_VIEW_CID);
static NS_DEFINE_IID(kCScrollingViewCID, NS_SCROLLING_VIEW_CID);
+ static NS_DEFINE_IID(kCDOMScriptObjectFactory, NS_DOM_SCRIPT_OBJECT_FACTORY_CID);
+ static NS_DEFINE_IID(kCDOMNativeObjectRegistry, NS_DOM_NATIVE_OBJECT_REGISTRY_CID);
+ static NS_DEFINE_IID(kCHTMLDocument, NS_HTMLDOCUMENT_CID);
+ static NS_DEFINE_IID(kCImageDocument, NS_IMAGEDOCUMENT_CID);
+ static NS_DEFINE_IID(kCHTMLImageElementFactory, NS_HTMLIMAGEELEMENTFACTORY_CID);
nsRepository::RegisterFactory(kCWindowCID, WIDGET_DLL, PR_FALSE, PR_FALSE);
nsRepository::RegisterFactory(kCChildCID, WIDGET_DLL, PR_FALSE, PR_FALSE);
@@ -319,6 +336,12 @@ nsresult nsShellInstance::RegisterFactories()
nsRepository::RegisterFactory(kCViewCID, VIEW_DLL, PR_FALSE, PR_FALSE);
nsRepository::RegisterFactory(kCScrollingViewCID, VIEW_DLL, PR_FALSE, PR_FALSE);
+ nsRepository::RegisterFactory(kCDOMScriptObjectFactory, DOM_DLL, PR_FALSE, PR_FALSE);
+ nsRepository::RegisterFactory(kCDOMNativeObjectRegistry, DOM_DLL, PR_FALSE, PR_FALSE);
+ nsRepository::RegisterFactory(kCHTMLDocument, LAYOUT_DLL, PR_FALSE, PR_FALSE);
+ nsRepository::RegisterFactory(kCImageDocument, LAYOUT_DLL, PR_FALSE, PR_FALSE);
+ nsRepository::RegisterFactory(kCHTMLImageElementFactory, LAYOUT_DLL, PR_FALSE, PR_FALSE);
+
nsRepository::RegisterFactory(kNetServiceCID, NETLIB_DLL, PR_FALSE, PR_FALSE);
return NS_OK;
diff --git a/mozilla/xpfc/shell/src/windows/manifest.mn b/mozilla/xpfc/shell/src/windows/manifest.mn
index e5c29344de3..8f66e5b0d76 100644
--- a/mozilla/xpfc/shell/src/windows/manifest.mn
+++ b/mozilla/xpfc/shell/src/windows/manifest.mn
@@ -21,5 +21,5 @@ CPPSRCS = \
winmain.cpp \
$(NULL)
-REQUIRES = xpcom raptor
+REQUIRES = xpcom raptor dom