mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 05:41:12 +00:00
Remove unneeded nsIFrameLoader interface (bug 280992). r+sr=jst.
This commit is contained in:
parent
15280169c5
commit
064c7eb606
@ -69,7 +69,6 @@ nsIContentSerializer.h \
|
||||
nsIHTMLToTextSink.h \
|
||||
nsIXPathEvaluatorInternal.h \
|
||||
mozISanitizingSerializer.h \
|
||||
nsIFrameLoader.h \
|
||||
nsContentCID.h \
|
||||
nsCopySupport.h \
|
||||
nsContentCreatorFunctions.h \
|
||||
|
@ -517,7 +517,9 @@ public:
|
||||
/** svg elements */
|
||||
eSVG = 0x00000040,
|
||||
/** comment nodes */
|
||||
eCOMMENT = 0x00000080
|
||||
eCOMMENT = 0x00000080,
|
||||
/** frame elements (frame, iframe) */
|
||||
eFRAME_ELEMENT = 0x00000100
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -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 <jst@netscape.com> (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___ */
|
@ -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<nsIDocShell> 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();
|
||||
|
||||
|
81
content/base/src/nsFrameLoader.h
Executable file
81
content/base/src/nsFrameLoader.h
Executable file
@ -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 <jst@netscape.com> (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<nsIDocShell> mDocShell;
|
||||
|
||||
nsIContent *mOwnerContent; // WEAK
|
||||
nsAutoRefCnt mRefCnt;
|
||||
};
|
||||
|
||||
#endif
|
@ -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
|
||||
|
@ -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<nsIFrameLoader> mFrameLoader;
|
||||
nsRefPtr<nsFrameLoader> mFrameLoader;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -65,6 +65,7 @@ REQUIRES = xpcom \
|
||||
xultmpl \
|
||||
webshell \
|
||||
view \
|
||||
docshell \
|
||||
$(NULL)
|
||||
|
||||
EXPORTS = \
|
||||
|
@ -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",
|
||||
|
@ -68,6 +68,7 @@ REQUIRES = xpcom \
|
||||
xpconnect \
|
||||
js \
|
||||
pref \
|
||||
docshell \
|
||||
$(NULL)
|
||||
|
||||
EXPORTS = \
|
||||
|
@ -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<nsIFrameLoader> mFrameLoader;
|
||||
nsRefPtr<nsFrameLoader> mFrameLoader;
|
||||
PRPackedBool mOwnsFrameLoader;
|
||||
PRPackedBool mIsInline;
|
||||
nsIView* mInnerView;
|
||||
@ -597,28 +597,21 @@ nsSubDocumentFrame::GetDocShell(nsIDocShell **aDocShell)
|
||||
}
|
||||
|
||||
if (!mFrameLoader) {
|
||||
nsCOMPtr<nsIFrameLoaderOwner> 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);
|
||||
}
|
||||
}
|
||||
|
@ -60,6 +60,7 @@ REQUIRES = xpcom \
|
||||
js \
|
||||
xpconnect \
|
||||
pref \
|
||||
docshell \
|
||||
$(NULL)
|
||||
|
||||
EXPORTS = \
|
||||
|
Loading…
Reference in New Issue
Block a user