From 7de757ef1da19f0141225386ca082a394cdde8fa Mon Sep 17 00:00:00 2001 From: "bryner%brianryner.com" Date: Mon, 7 Feb 2005 23:53:47 +0000 Subject: [PATCH] Remove unneeded nsIFrameLoader interface (bug 280992). r+sr=jst. git-svn-id: svn://10.0.0.236/trunk@168946 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/content/base/public/Makefile.in | 1 - mozilla/content/base/public/nsIContent.h | 4 +- mozilla/content/base/public/nsIFrameLoader.h | 118 ------------------ mozilla/content/base/src/nsFrameLoader.cpp | 72 +---------- mozilla/content/base/src/nsFrameLoader.h | 81 ++++++++++++ .../html/content/src/nsGenericHTMLElement.cpp | 40 ++---- .../html/content/src/nsGenericHTMLElement.h | 26 ++-- mozilla/content/xul/content/src/Makefile.in | 1 + mozilla/layout/build/nsLayoutModule.cpp | 8 -- mozilla/layout/forms/Makefile.in | 1 + mozilla/layout/generic/nsFrameFrame.cpp | 27 ++-- mozilla/layout/tables/Makefile.in | 1 + 12 files changed, 129 insertions(+), 251 deletions(-) delete mode 100644 mozilla/content/base/public/nsIFrameLoader.h create mode 100755 mozilla/content/base/src/nsFrameLoader.h diff --git a/mozilla/content/base/public/Makefile.in b/mozilla/content/base/public/Makefile.in index be7025f6070..b2dfe1692fd 100644 --- a/mozilla/content/base/public/Makefile.in +++ b/mozilla/content/base/public/Makefile.in @@ -69,7 +69,6 @@ nsIContentSerializer.h \ nsIHTMLToTextSink.h \ nsIXPathEvaluatorInternal.h \ mozISanitizingSerializer.h \ -nsIFrameLoader.h \ nsContentCID.h \ nsCopySupport.h \ nsContentCreatorFunctions.h \ diff --git a/mozilla/content/base/public/nsIContent.h b/mozilla/content/base/public/nsIContent.h index 8d4cb7d843f..e4452fe6c27 100644 --- a/mozilla/content/base/public/nsIContent.h +++ b/mozilla/content/base/public/nsIContent.h @@ -517,7 +517,9 @@ public: /** svg elements */ eSVG = 0x00000040, /** comment nodes */ - eCOMMENT = 0x00000080 + eCOMMENT = 0x00000080, + /** frame elements (frame, iframe) */ + eFRAME_ELEMENT = 0x00000100 }; /** diff --git a/mozilla/content/base/public/nsIFrameLoader.h b/mozilla/content/base/public/nsIFrameLoader.h deleted file mode 100644 index 2f18124fa4b..00000000000 --- a/mozilla/content/base/public/nsIFrameLoader.h +++ /dev/null @@ -1,118 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Johnny Stenback (original author) - * - * Alternatively, the contents of this file may be used under the terms of - * either of the GNU General Public License Version 2 or later (the "GPL"), - * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -#ifndef nsIFrameLoader_h___ -#define nsIFrameLoader_h___ - -#include "nsISupports.h" -#include "nsAString.h" - -// Forward declarations -class nsIContent; -class nsIDocShell; -class nsIURI; - -// IID for the nsIFrameLoader interface -#define NS_IFRAMELOADER_IID \ -{ 0x51e2b6df, 0xdaf2, 0x4a2f, \ - {0x80, 0xe5, 0xed, 0x69, 0x5b, 0x8c, 0x67, 0x4f} } - -// IID for the nsIFrameLoaderOwner interface -#define NS_IFRAMELOADEROWNER_IID \ -{ 0x0080d493, 0x96b4, 0x4606, \ - {0xa7, 0x43, 0x0f, 0x47, 0xee, 0x87, 0x14, 0xd1} } - -// CID for the nsIFrameLoader implementation -#define NS_FRAMELOADER_CID \ -{ 0x712603da, 0xf245, 0x4503, \ - {0xa5, 0x41, 0xb0, 0x49, 0xcb, 0x06, 0x81, 0xae} } - -#define NS_FRAMELOADER_CONTRACTID "@mozilla.org/content/frameloader" - -class nsIFrameLoader : public nsISupports -{ -public: - NS_DEFINE_STATIC_IID_ACCESSOR(NS_IFRAMELOADER_IID) - - /** - * Initialize the frame loader, hand it the owner content. Note that - * the owner content reference is a weak reference, if the owner - * content is destroyed before the frame loader goes away the owner - * content must call the Destroy() method to clear the owner content - * reference. - */ - NS_IMETHOD Init(nsIContent *aOwner) = 0; - - /** - * Start loading the frame. This method figures out what to load - * from the owner content in the frame loader. - */ - NS_IMETHOD LoadFrame() = 0; - - /** - * Get the docshell from the frame loader. - */ - NS_IMETHOD GetDocShell(nsIDocShell **aDocShell) = 0; - - /** - * Destroy the frame loader and everything inside it. This will - * clear the weak owner content reference. */ - NS_IMETHOD Destroy() = 0; -}; - - -class nsIFrameLoaderOwner : public nsISupports -{ -public: - NS_DEFINE_STATIC_IID_ACCESSOR(NS_IFRAMELOADEROWNER_IID) - - /** - * Get the frame loader from the frame loader owner. - */ - NS_IMETHOD GetFrameLoader(nsIFrameLoader **aFrameLoader) = 0; - - /** - * Sets (or clears) the frame loader for this content. - */ - NS_IMETHOD SetFrameLoader(nsIFrameLoader *aFrameLoader) = 0; -}; - - -nsresult -NS_NewFrameLoader(nsIFrameLoader **aFrameLoader); - -#endif /* nsIFrameLoader_h___ */ diff --git a/mozilla/content/base/src/nsFrameLoader.cpp b/mozilla/content/base/src/nsFrameLoader.cpp index d7a86cc3a35..c3113602581 100644 --- a/mozilla/content/base/src/nsFrameLoader.cpp +++ b/mozilla/content/base/src/nsFrameLoader.cpp @@ -36,7 +36,6 @@ * * ***** END LICENSE BLOCK ***** */ -#include "nsIFrameLoader.h" #include "nsIDOMHTMLIFrameElement.h" #include "nsIDOMHTMLFrameElement.h" #include "nsIDOMWindow.h" @@ -59,6 +58,7 @@ #include "nsUnicharUtils.h" #include "nsIScriptGlobalObject.h" #include "nsIScriptSecurityManager.h" +#include "nsFrameLoader.h" #include "nsIURI.h" #include "nsIURL.h" @@ -83,72 +83,12 @@ // we'd need to re-institute a fixed version of bug 98158. #define MAX_DEPTH_CONTENT_FRAMES 10 - -class nsFrameLoader : public nsIFrameLoader -{ -public: - nsFrameLoader(); - virtual ~nsFrameLoader(); - - // nsISupports - NS_DECL_ISUPPORTS - - // nsIFrameLoader - NS_IMETHOD Init(nsIContent *aOwner); - NS_IMETHOD LoadFrame(); - NS_IMETHOD GetDocShell(nsIDocShell **aDocShell); - NS_IMETHOD Destroy(); - -protected: - nsresult EnsureDocShell(); - void GetURL(nsAString& aURL); - - nsCOMPtr mDocShell; - - nsIContent *mOwnerContent; // WEAK -}; - -nsresult -NS_NewFrameLoader(nsIFrameLoader **aFrameLoader) -{ - *aFrameLoader = new nsFrameLoader(); - NS_ENSURE_TRUE(*aFrameLoader, NS_ERROR_OUT_OF_MEMORY); - - NS_ADDREF(*aFrameLoader); - - return NS_OK; -} - -nsFrameLoader::nsFrameLoader() - : mOwnerContent(nsnull) -{ -} - nsFrameLoader::~nsFrameLoader() { Destroy(); } - -// QueryInterface implementation for nsFrameLoader -NS_INTERFACE_MAP_BEGIN(nsFrameLoader) - NS_INTERFACE_MAP_ENTRY(nsIFrameLoader) - NS_INTERFACE_MAP_ENTRY(nsISupports) -NS_INTERFACE_MAP_END - - -NS_IMPL_ADDREF(nsFrameLoader) -NS_IMPL_RELEASE(nsFrameLoader) - -NS_IMETHODIMP -nsFrameLoader::Init(nsIContent *aOwner) -{ - mOwnerContent = aOwner; // WEAK - - return NS_OK; -} - -NS_IMETHODIMP +nsresult nsFrameLoader::LoadFrame() { NS_ENSURE_TRUE(mOwnerContent, NS_ERROR_NOT_INITIALIZED); @@ -323,7 +263,7 @@ nsFrameLoader::LoadFrame() return rv; } -NS_IMETHODIMP +nsresult nsFrameLoader::GetDocShell(nsIDocShell **aDocShell) { *aDocShell = nsnull; @@ -342,7 +282,7 @@ nsFrameLoader::GetDocShell(nsIDocShell **aDocShell) return NS_OK; } -NS_IMETHODIMP +void nsFrameLoader::Destroy() { if (mOwnerContent) { @@ -368,8 +308,6 @@ nsFrameLoader::Destroy() } mDocShell = nsnull; - - return NS_OK; } nsresult @@ -565,7 +503,7 @@ nsFrameLoader::EnsureDocShell() } void -nsFrameLoader::GetURL(nsAString& aURI) +nsFrameLoader::GetURL(nsString& aURI) { aURI.Truncate(); diff --git a/mozilla/content/base/src/nsFrameLoader.h b/mozilla/content/base/src/nsFrameLoader.h new file mode 100755 index 00000000000..457c8aeb177 --- /dev/null +++ b/mozilla/content/base/src/nsFrameLoader.h @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Johnny Stenback (original author) + * + * Alternatively, the contents of this file may be used under the terms of + * either of the GNU General Public License Version 2 or later (the "GPL"), + * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef nsFrameLoader_h_ +#define nsFrameLoader_h_ + +#include "nsIDocShell.h" +#include "nsStringFwd.h" + +class nsIContent; + +class nsFrameLoader +{ +public: + nsFrameLoader(nsIContent *aOwner) : mOwnerContent(aOwner) {} + ~nsFrameLoader() NS_HIDDEN; + + void AddRef() + { + ++mRefCnt; + NS_LOG_ADDREF(this, mRefCnt, "nsFrameLoader", sizeof(nsFrameLoader)); + } + + void Release() + { + --mRefCnt; + NS_LOG_RELEASE(this, mRefCnt, "nsFrameLoader"); + if (mRefCnt == 0) + delete this; + } + + NS_HIDDEN_(nsresult) LoadFrame(); + NS_HIDDEN_(nsresult) GetDocShell(nsIDocShell **aDocShell); + NS_HIDDEN_(void) Destroy(); + +protected: + NS_HIDDEN_(nsresult) EnsureDocShell(); + NS_HIDDEN_(void) GetURL(nsString& aURL); + + nsCOMPtr mDocShell; + + nsIContent *mOwnerContent; // WEAK + nsAutoRefCnt mRefCnt; +}; + +#endif diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp index f9d61601cb3..de8a6fcd03f 100644 --- a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp +++ b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp @@ -3363,17 +3363,9 @@ nsGenericHTMLFormElement::FindAndSetForm() //---------------------------------------------------------------------- -nsGenericHTMLFrameElement::~nsGenericHTMLFrameElement() -{ - if (mFrameLoader) { - mFrameLoader->Destroy(); - } -} - NS_INTERFACE_MAP_BEGIN(nsGenericHTMLFrameElement) NS_INTERFACE_MAP_ENTRY(nsIDOMNSHTMLFrameElement) NS_INTERFACE_MAP_ENTRY(nsIChromeEventHandler) - NS_INTERFACE_MAP_ENTRY(nsIFrameLoaderOwner) NS_INTERFACE_MAP_END_INHERITING(nsGenericHTMLElement) nsresult @@ -3422,25 +3414,9 @@ nsGenericHTMLFrameElement::EnsureFrameLoader() return NS_OK; } - nsresult rv = NS_NewFrameLoader(getter_AddRefs(mFrameLoader)); - NS_ENSURE_SUCCESS(rv, rv); - - rv = mFrameLoader->Init(this); - return rv; -} - -NS_IMETHODIMP -nsGenericHTMLFrameElement::GetFrameLoader(nsIFrameLoader **aFrameLoader) -{ - NS_IF_ADDREF(*aFrameLoader = mFrameLoader); - - return NS_OK; -} - -NS_IMETHODIMP -nsGenericHTMLFrameElement::SetFrameLoader(nsIFrameLoader *aFrameLoader) -{ - mFrameLoader = aFrameLoader; + mFrameLoader = new nsFrameLoader(this); + if (!mFrameLoader) + return NS_ERROR_OUT_OF_MEMORY; return NS_OK; } @@ -3484,13 +3460,11 @@ nsGenericHTMLFrameElement::SetDocument(nsIDocument *aDocument, PRBool aDeep, nsGenericHTMLElement::SetDocument(aDocument, aDeep, aCompileEventHandlers); - if (!aDocument && mFrameLoader) { + if (!aDocument) { // This iframe is being taken out of the document, destroy the // iframe's frame loader (doing that will tear down the window in // this iframe). - mFrameLoader->Destroy(); - mFrameLoader = nsnull; } @@ -3528,6 +3502,12 @@ nsGenericHTMLFrameElement::HandleChromeEvent(nsPresContext* aPresContext, return HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags,aEventStatus); } +PRBool +nsGenericHTMLFrameElement::IsContentOfType(PRUint32 aFlags) const +{ + return !(aFlags & ~(eELEMENT | eHTML | eFRAME_ELEMENT)); +} + //---------------------------------------------------------------------- void diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.h b/mozilla/content/html/content/src/nsGenericHTMLElement.h index 9bd97823f08..466e00a01e9 100644 --- a/mozilla/content/html/content/src/nsGenericHTMLElement.h +++ b/mozilla/content/html/content/src/nsGenericHTMLElement.h @@ -44,7 +44,7 @@ #include "nsIFormControl.h" #include "nsIDOMNSHTMLFrameElement.h" #include "nsIChromeEventHandler.h" -#include "nsIFrameLoader.h" +#include "nsFrameLoader.h" class nsIDOMAttr; class nsIDOMEventListener; @@ -862,16 +862,27 @@ protected: class nsGenericHTMLFrameElement : public nsGenericHTMLElement, public nsIDOMNSHTMLFrameElement, - public nsIChromeEventHandler, - public nsIFrameLoaderOwner + public nsIChromeEventHandler { public: nsGenericHTMLFrameElement(nsINodeInfo *aNodeInfo) : nsGenericHTMLElement(aNodeInfo) { } - virtual ~nsGenericHTMLFrameElement(); + static nsGenericHTMLFrameElement* FromContent(nsIContent *aContent) + { + if (aContent->IsContentOfType(eFRAME_ELEMENT)) + return NS_STATIC_CAST(nsGenericHTMLFrameElement*, aContent); + return nsnull; + } + + nsFrameLoader* GetFrameLoader() + { + return mFrameLoader; + } + + // nsISupports NS_IMETHOD QueryInterface(REFNSIID aIID, void** aInstancePtr); // nsIDOMNSHTMLFrameElement @@ -880,10 +891,6 @@ public: // nsIChromeEventHandler NS_DECL_NSICHROMEEVENTHANDLER - // nsIFrameLoaderOwner - NS_IMETHOD GetFrameLoader(nsIFrameLoader **aFrameLoader); - NS_IMETHOD SetFrameLoader(nsIFrameLoader *aFrameLoader); - // nsIContent virtual PRBool IsFocusable(PRInt32 *aTabIndex = nsnull); virtual void SetParent(nsIContent *aParent); @@ -897,6 +904,7 @@ public: virtual nsresult SetAttr(PRInt32 aNameSpaceID, nsIAtom* aName, nsIAtom* aPrefix, const nsAString& aValue, PRBool aNotify); + virtual PRBool IsContentOfType(PRUint32 aFlags) const; // nsIDOMNSHTMLElement NS_IMETHOD GetTabIndex(PRInt32 *aTabIndex); @@ -909,7 +917,7 @@ protected: nsresult LoadSrc(); nsresult GetContentDocument(nsIDOMDocument** aContentDocument); - nsCOMPtr mFrameLoader; + nsRefPtr mFrameLoader; }; //---------------------------------------------------------------------- diff --git a/mozilla/content/xul/content/src/Makefile.in b/mozilla/content/xul/content/src/Makefile.in index e60e1e9915a..dc45500b4a5 100644 --- a/mozilla/content/xul/content/src/Makefile.in +++ b/mozilla/content/xul/content/src/Makefile.in @@ -65,6 +65,7 @@ REQUIRES = xpcom \ xultmpl \ webshell \ view \ + docshell \ $(NULL) EXPORTS = \ diff --git a/mozilla/layout/build/nsLayoutModule.cpp b/mozilla/layout/build/nsLayoutModule.cpp index fe1474283bb..9997f4b8efe 100644 --- a/mozilla/layout/build/nsLayoutModule.cpp +++ b/mozilla/layout/build/nsLayoutModule.cpp @@ -97,7 +97,6 @@ #include "nsIScriptNameSpaceManager.h" #include "nsISelection.h" #include "nsIXBLService.h" -#include "nsIFrameLoader.h" #include "nsICaret.h" #include "nsJSEnvironment.h" #include "nsLayoutAtoms.h" @@ -475,7 +474,6 @@ nsresult NS_NewTextEncoder(nsIDocumentEncoder** aResult); nsresult NS_NewXBLService(nsIXBLService** aResult); nsresult NS_NewBindingManager(nsIBindingManager** aResult); nsresult NS_NewContentPolicy(nsIContentPolicy** aResult); -nsresult NS_NewFrameLoader(nsIFrameLoader** aResult); nsresult NS_NewSyncLoadDOMService(nsISyncLoadDOMService** aResult); nsresult NS_NewDOMEventGroup(nsIDOMEventGroup** aResult); @@ -584,7 +582,6 @@ MAKE_CTOR(CreateSanitizingHTMLSerializer, nsIContentSerializer, NS_NewSan MAKE_CTOR(CreateXBLService, nsIXBLService, NS_NewXBLService) MAKE_CTOR(CreateBindingManager, nsIBindingManager, NS_NewBindingManager) MAKE_CTOR(CreateContentPolicy, nsIContentPolicy, NS_NewContentPolicy) -MAKE_CTOR(CreateFrameLoader, nsIFrameLoader, NS_NewFrameLoader) MAKE_CTOR(CreateComputedDOMStyle, nsIComputedDOMStyle, NS_NewComputedDOMStyle) #ifdef MOZ_XUL MAKE_CTOR(CreateXULSortService, nsIXULSortService, NS_NewXULSortService) @@ -1161,11 +1158,6 @@ static const nsModuleComponentInfo gComponents[] = { NS_CONTENTPOLICY_CONTRACTID, CreateContentPolicy }, - { "Frame Loader", - NS_FRAMELOADER_CID, - NS_FRAMELOADER_CONTRACTID, - CreateFrameLoader }, - { "DOM CSS Computed Style Declaration", NS_COMPUTEDDOMSTYLE_CID, "@mozilla.org/DOM/Level2/CSS/computedStyleDeclaration;1", diff --git a/mozilla/layout/forms/Makefile.in b/mozilla/layout/forms/Makefile.in index fb03102f04a..e2520548304 100644 --- a/mozilla/layout/forms/Makefile.in +++ b/mozilla/layout/forms/Makefile.in @@ -68,6 +68,7 @@ REQUIRES = xpcom \ xpconnect \ js \ pref \ + docshell \ $(NULL) EXPORTS = \ diff --git a/mozilla/layout/generic/nsFrameFrame.cpp b/mozilla/layout/generic/nsFrameFrame.cpp index ea71dbdb833..db8817a6686 100644 --- a/mozilla/layout/generic/nsFrameFrame.cpp +++ b/mozilla/layout/generic/nsFrameFrame.cpp @@ -69,7 +69,7 @@ #include "nsIDOMHTMLFrameElement.h" #include "nsIDOMHTMLIFrameElement.h" #include "nsIDOMXULElement.h" -#include "nsIFrameLoader.h" +#include "nsFrameLoader.h" #include "nsLayoutAtoms.h" #include "nsIScriptSecurityManager.h" #include "nsXPIDLString.h" @@ -157,7 +157,7 @@ protected: nsHTMLReflowMetrics& aDesiredSize); virtual PRIntn GetSkipSides() const; - nsCOMPtr mFrameLoader; + nsRefPtr mFrameLoader; PRPackedBool mOwnsFrameLoader; PRPackedBool mIsInline; nsIView* mInnerView; @@ -597,28 +597,21 @@ nsSubDocumentFrame::GetDocShell(nsIDocShell **aDocShell) } if (!mFrameLoader) { - nsCOMPtr frame_loader_owner = - do_QueryInterface(content); + nsGenericHTMLFrameElement *frameElement = + nsGenericHTMLFrameElement::FromContent(content); - if (frame_loader_owner) { - frame_loader_owner->GetFrameLoader(getter_AddRefs(mFrameLoader)); + if (frameElement) { + mFrameLoader = frameElement->GetFrameLoader(); } if (!mFrameLoader) { - nsresult rv = NS_OK; - // No frame loader available from the content, create our own... - mFrameLoader = do_CreateInstance(NS_FRAMELOADER_CONTRACTID, &rv); - NS_ENSURE_SUCCESS(rv, rv); - - // ... remember that we own this frame loader... - mOwnsFrameLoader = PR_TRUE; - - // ... initialize it... - mFrameLoader->Init(content); + mFrameLoader = new nsFrameLoader(content); + if (!mFrameLoader) + return NS_ERROR_OUT_OF_MEMORY; // ... and tell it to start loading. - rv = mFrameLoader->LoadFrame(); + nsresult rv = mFrameLoader->LoadFrame(); NS_ENSURE_SUCCESS(rv, rv); } } diff --git a/mozilla/layout/tables/Makefile.in b/mozilla/layout/tables/Makefile.in index 6e241623ae1..3e61024c6ee 100644 --- a/mozilla/layout/tables/Makefile.in +++ b/mozilla/layout/tables/Makefile.in @@ -60,6 +60,7 @@ REQUIRES = xpcom \ js \ xpconnect \ pref \ + docshell \ $(NULL) EXPORTS = \