diff --git a/mozilla/content/base/src/nsSyncLoadService.cpp b/mozilla/content/base/src/nsSyncLoadService.cpp index b117e9653c9..ad970fbe725 100644 --- a/mozilla/content/base/src/nsSyncLoadService.cpp +++ b/mozilla/content/base/src/nsSyncLoadService.cpp @@ -38,6 +38,8 @@ #include "nsIDOMWindowInternal.h" #include "nsAppShellCIDs.h" #include "nsIAppShellService.h" +#include "nsIDocShellTreeOwner.h" +#include "nsIInterfaceRequestor.h" static const char* kLoadAsData = "loadAsData"; @@ -157,9 +159,8 @@ nsSyncLoader::~nsSyncLoader() //if (XML_HTTP_REQUEST_SENT == mStatus) { // Abort(); //} - if (mDocShellTreeOwner) { - mDocShellTreeOwner->ExitModalLoop(NS_OK); - } + if (mChromeWindow) + mChromeWindow->ExitModalEventLoop(NS_OK); } NS_IMPL_ISUPPORTS3(nsSyncLoader, nsISyncLoader, nsIDOMLoadListener, nsISupportsWeakReference) @@ -275,9 +276,16 @@ nsSyncLoader::LoadDocument(nsIURI* documentURI, nsIDOMDocument **_retval) nsCOMPtr item = do_QueryInterface(docshell); if (!item) return NS_ERROR_FAILURE; - rv = item->GetTreeOwner(getter_AddRefs(mDocShellTreeOwner)); + nsCOMPtr treeOwner; + rv = item->GetTreeOwner(getter_AddRefs(treeOwner)); if (NS_FAILED(rv)) return NS_ERROR_FAILURE; + nsCOMPtr treeRequestor(do_GetInterface(treeOwner)); + if (!treeRequestor) return NS_ERROR_FAILURE; + + treeRequestor->GetInterface(NS_GET_IID(nsIWebBrowserChrome), getter_AddRefs(mChromeWindow)); + if (mChromeWindow) return NS_ERROR_FAILURE; + eventQService = do_GetService(kEventQueueServiceCID); if(!eventQService || NS_FAILED(eventQService->PushThreadEventQueue(getter_AddRefs(modalEventQueue)))) { @@ -308,8 +316,8 @@ nsSyncLoader::LoadDocument(nsIURI* documentURI, nsIDOMDocument **_retval) } // Spin an event loop here and wait - if (mDocShellTreeOwner) { - rv = mDocShellTreeOwner->ShowModal(); + if (mChromeWindow) { + rv = mChromeWindow->ShowAsModal(); eventQService->PopThreadEventQueue(modalEventQueue); @@ -332,9 +340,9 @@ nsSyncLoader::HandleEvent(nsIDOMEvent* aEvent) nsresult nsSyncLoader::Load(nsIDOMEvent* aEvent) { - if (mDocShellTreeOwner) { - mDocShellTreeOwner->ExitModalLoop(NS_OK); - mDocShellTreeOwner = 0; + if (mChromeWindow) { + mChromeWindow->ExitModalEventLoop(NS_OK); + mChromeWindow = 0; } return NS_OK; @@ -349,9 +357,9 @@ nsSyncLoader::Unload(nsIDOMEvent* aEvent) nsresult nsSyncLoader::Abort(nsIDOMEvent* aEvent) { - if (mDocShellTreeOwner) { - mDocShellTreeOwner->ExitModalLoop(NS_OK); - mDocShellTreeOwner = 0; + if (mChromeWindow) { + mChromeWindow->ExitModalEventLoop(NS_OK); + mChromeWindow = 0; } return NS_OK; @@ -360,9 +368,9 @@ nsSyncLoader::Abort(nsIDOMEvent* aEvent) nsresult nsSyncLoader::Error(nsIDOMEvent* aEvent) { - if (mDocShellTreeOwner) { - mDocShellTreeOwner->ExitModalLoop(NS_OK); - mDocShellTreeOwner = 0; + if (mChromeWindow) { + mChromeWindow->ExitModalEventLoop(NS_OK); + mChromeWindow = 0; } return NS_OK; diff --git a/mozilla/extensions/transformiix/source/xml/parser/nsSyncLoader.cpp b/mozilla/extensions/transformiix/source/xml/parser/nsSyncLoader.cpp index b117e9653c9..ad970fbe725 100644 --- a/mozilla/extensions/transformiix/source/xml/parser/nsSyncLoader.cpp +++ b/mozilla/extensions/transformiix/source/xml/parser/nsSyncLoader.cpp @@ -38,6 +38,8 @@ #include "nsIDOMWindowInternal.h" #include "nsAppShellCIDs.h" #include "nsIAppShellService.h" +#include "nsIDocShellTreeOwner.h" +#include "nsIInterfaceRequestor.h" static const char* kLoadAsData = "loadAsData"; @@ -157,9 +159,8 @@ nsSyncLoader::~nsSyncLoader() //if (XML_HTTP_REQUEST_SENT == mStatus) { // Abort(); //} - if (mDocShellTreeOwner) { - mDocShellTreeOwner->ExitModalLoop(NS_OK); - } + if (mChromeWindow) + mChromeWindow->ExitModalEventLoop(NS_OK); } NS_IMPL_ISUPPORTS3(nsSyncLoader, nsISyncLoader, nsIDOMLoadListener, nsISupportsWeakReference) @@ -275,9 +276,16 @@ nsSyncLoader::LoadDocument(nsIURI* documentURI, nsIDOMDocument **_retval) nsCOMPtr item = do_QueryInterface(docshell); if (!item) return NS_ERROR_FAILURE; - rv = item->GetTreeOwner(getter_AddRefs(mDocShellTreeOwner)); + nsCOMPtr treeOwner; + rv = item->GetTreeOwner(getter_AddRefs(treeOwner)); if (NS_FAILED(rv)) return NS_ERROR_FAILURE; + nsCOMPtr treeRequestor(do_GetInterface(treeOwner)); + if (!treeRequestor) return NS_ERROR_FAILURE; + + treeRequestor->GetInterface(NS_GET_IID(nsIWebBrowserChrome), getter_AddRefs(mChromeWindow)); + if (mChromeWindow) return NS_ERROR_FAILURE; + eventQService = do_GetService(kEventQueueServiceCID); if(!eventQService || NS_FAILED(eventQService->PushThreadEventQueue(getter_AddRefs(modalEventQueue)))) { @@ -308,8 +316,8 @@ nsSyncLoader::LoadDocument(nsIURI* documentURI, nsIDOMDocument **_retval) } // Spin an event loop here and wait - if (mDocShellTreeOwner) { - rv = mDocShellTreeOwner->ShowModal(); + if (mChromeWindow) { + rv = mChromeWindow->ShowAsModal(); eventQService->PopThreadEventQueue(modalEventQueue); @@ -332,9 +340,9 @@ nsSyncLoader::HandleEvent(nsIDOMEvent* aEvent) nsresult nsSyncLoader::Load(nsIDOMEvent* aEvent) { - if (mDocShellTreeOwner) { - mDocShellTreeOwner->ExitModalLoop(NS_OK); - mDocShellTreeOwner = 0; + if (mChromeWindow) { + mChromeWindow->ExitModalEventLoop(NS_OK); + mChromeWindow = 0; } return NS_OK; @@ -349,9 +357,9 @@ nsSyncLoader::Unload(nsIDOMEvent* aEvent) nsresult nsSyncLoader::Abort(nsIDOMEvent* aEvent) { - if (mDocShellTreeOwner) { - mDocShellTreeOwner->ExitModalLoop(NS_OK); - mDocShellTreeOwner = 0; + if (mChromeWindow) { + mChromeWindow->ExitModalEventLoop(NS_OK); + mChromeWindow = 0; } return NS_OK; @@ -360,9 +368,9 @@ nsSyncLoader::Abort(nsIDOMEvent* aEvent) nsresult nsSyncLoader::Error(nsIDOMEvent* aEvent) { - if (mDocShellTreeOwner) { - mDocShellTreeOwner->ExitModalLoop(NS_OK); - mDocShellTreeOwner = 0; + if (mChromeWindow) { + mChromeWindow->ExitModalEventLoop(NS_OK); + mChromeWindow = 0; } return NS_OK; diff --git a/mozilla/extensions/transformiix/source/xml/parser/nsSyncLoader.h b/mozilla/extensions/transformiix/source/xml/parser/nsSyncLoader.h index 6fbb08e893e..a541daad0b7 100644 --- a/mozilla/extensions/transformiix/source/xml/parser/nsSyncLoader.h +++ b/mozilla/extensions/transformiix/source/xml/parser/nsSyncLoader.h @@ -30,7 +30,7 @@ #include "nsString.h" #include "nsIDOMLoadListener.h" #include "nsIDocument.h" -#include "nsIDocShellTreeOwner.h" +#include "nsIWebBrowserChrome.h" #include "nsWeakReference.h" #include "nsISyncLoader.h" @@ -56,7 +56,7 @@ public: virtual nsresult Error(nsIDOMEvent* aEvent); protected: - nsCOMPtr mDocShellTreeOwner; + nsCOMPtr mChromeWindow; }; #endif diff --git a/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.cpp b/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.cpp index 0f19893e025..4dc9379553d 100644 --- a/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.cpp +++ b/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.cpp @@ -52,7 +52,9 @@ #include "nsIScriptGlobalObject.h" #include "nsIDocShell.h" #include "nsIDocShellTreeItem.h" +#include "nsIDocShellTreeOwner.h" #include "nsIEventQueueService.h" +#include "nsIInterfaceRequestor.h" #endif static const char* kLoadAsData = "loadAsData"; @@ -275,8 +277,8 @@ nsXMLHttpRequest::~nsXMLHttpRequest() Abort(); } #ifdef IMPLEMENT_SYNC_LOAD - if (mDocShellTreeOwner) { - mDocShellTreeOwner->ExitModalLoop(NS_OK); + if (mChromeWindow) { + mChromeWindow->ExitModalEventLoop(NS_OK); } #endif } @@ -1242,9 +1244,16 @@ nsXMLHttpRequest::Send(nsISupports *body) nsCOMPtr item = do_QueryInterface(docshell); if (!item) return NS_ERROR_FAILURE; - rv = item->GetTreeOwner(getter_AddRefs(mDocShellTreeOwner)); + nsCOMPtr treeOwner; + rv = item->GetTreeOwner(getter_AddRefs(treeOwner)); if (NS_FAILED(rv)) return NS_ERROR_FAILURE; + nsCOMPtr treeRequestor(do_GetInterface(treeOwner)); + if (!treeRequestor) return NS_ERROR_FAILURE; + + treeRequestor->GetInterface(NS_GET_IID(nsIWebBrowserChrome), getter_AddRefs(mChromeWindow)); + if (!mChromeWindow) return NS_ERROR_FAILURE; + eventQService = do_GetService(kEventQueueServiceCID); if(!eventQService || NS_FAILED(eventQService->PushThreadEventQueue(getter_AddRefs(modalEventQueue)))) { @@ -1288,8 +1297,8 @@ nsXMLHttpRequest::Send(nsISupports *body) #ifdef IMPLEMENT_SYNC_LOAD // If we're synchronous, spin an event loop here and wait - if (!mAsync && mDocShellTreeOwner) { - rv = mDocShellTreeOwner->ShowModal(); + if (!mAsync && mChromeWindow) { + rv = mChromeWindow->ShowAsModal(); eventQService->PopThreadEventQueue(modalEventQueue); @@ -1326,9 +1335,9 @@ nsXMLHttpRequest::Load(nsIDOMEvent* aEvent) { mStatus = XML_HTTP_REQUEST_COMPLETED; #ifdef IMPLEMENT_SYNC_LOAD - if (mDocShellTreeOwner) { - mDocShellTreeOwner->ExitModalLoop(NS_OK); - mDocShellTreeOwner = 0; + if (mChromeWindow) { + mChromeWindow->ExitModalEventLoop(NS_OK); + mChromeWindow = 0; } #endif if (mLoadEventListeners) { @@ -1360,9 +1369,9 @@ nsXMLHttpRequest::Abort(nsIDOMEvent* aEvent) { mStatus = XML_HTTP_REQUEST_ABORTED; #ifdef IMPLEMENT_SYNC_LOAD - if (mDocShellTreeOwner) { - mDocShellTreeOwner->ExitModalLoop(NS_OK); - mDocShellTreeOwner = 0; + if (mChromeWindow) { + mChromeWindow->ExitModalEventLoop(NS_OK); + mChromeWindow = 0; } #endif @@ -1374,9 +1383,9 @@ nsXMLHttpRequest::Error(nsIDOMEvent* aEvent) { mStatus = XML_HTTP_REQUEST_ABORTED; #ifdef IMPLEMENT_SYNC_LOAD - if (mDocShellTreeOwner) { - mDocShellTreeOwner->ExitModalLoop(NS_OK); - mDocShellTreeOwner = 0; + if (mChromeWindow) { + mChromeWindow->ExitModalEventLoop(NS_OK); + mChromeWindow = 0; } #endif if (mErrorEventListeners) { diff --git a/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.h b/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.h index 41e8e4e5c5f..09d70308061 100644 --- a/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.h +++ b/mozilla/extensions/xmlextras/base/src/nsXMLHttpRequest.h @@ -37,7 +37,7 @@ #include "nsIDocument.h" #include "nsIStreamListener.h" #ifdef IMPLEMENT_SYNC_LOAD -#include "nsIDocShellTreeOwner.h" +#include "nsIWebBrowserChrome.h" #endif #include "nsWeakReference.h" #include "nsISupportsArray.h" @@ -101,7 +101,7 @@ protected: nsCOMPtr mBaseURI; nsCOMPtr mBaseDocument; #ifdef IMPLEMENT_SYNC_LOAD - nsCOMPtr mDocShellTreeOwner; + nsCOMPtr mChromeWindow; #endif nsCOMPtr mLoadEventListeners; nsCOMPtr mErrorEventListeners;