Bug 1108887 - Backout part 2 of bug 949435 (SVG iframe). r=bzbarsky
This commit is contained in:
@@ -12,7 +12,6 @@
|
||||
#include "mozilla/ErrorResult.h"
|
||||
#include "mozilla/dom/nsBrowserElement.h"
|
||||
|
||||
#include "nsElementFrameLoaderOwner.h"
|
||||
#include "nsFrameLoader.h"
|
||||
#include "nsGenericHTMLElement.h"
|
||||
#include "nsIDOMEventListener.h"
|
||||
@@ -25,7 +24,7 @@ class nsXULElement;
|
||||
* A helper class for frame elements
|
||||
*/
|
||||
class nsGenericHTMLFrameElement : public nsGenericHTMLElement,
|
||||
public nsElementFrameLoaderOwner,
|
||||
public nsIFrameLoaderOwner,
|
||||
public mozilla::nsBrowserElement,
|
||||
public nsIMozBrowserFrame
|
||||
{
|
||||
@@ -33,13 +32,17 @@ public:
|
||||
nsGenericHTMLFrameElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo,
|
||||
mozilla::dom::FromParser aFromParser)
|
||||
: nsGenericHTMLElement(aNodeInfo)
|
||||
, nsElementFrameLoaderOwner(aFromParser)
|
||||
, nsBrowserElement()
|
||||
, mNetworkCreated(aFromParser == mozilla::dom::FROM_PARSER_NETWORK)
|
||||
, mIsPrerendered(false)
|
||||
, mBrowserFrameListenersRegistered(false)
|
||||
, mFrameLoaderCreationDisallowed(false)
|
||||
{
|
||||
}
|
||||
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
|
||||
NS_DECL_NSIFRAMELOADEROWNER
|
||||
NS_DECL_NSIDOMMOZBROWSERFRAME
|
||||
NS_DECL_NSIMOZBROWSERFRAME
|
||||
|
||||
@@ -72,20 +75,9 @@ public:
|
||||
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED_NO_UNLINK(nsGenericHTMLFrameElement,
|
||||
nsGenericHTMLElement)
|
||||
|
||||
static bool BrowserFramesEnabled();
|
||||
void SwapFrameLoaders(nsXULElement& aOtherOwner, mozilla::ErrorResult& aError);
|
||||
|
||||
/**
|
||||
* nsIFrameLoaderOwner defines two GetFrameLoader() overloads. One
|
||||
* is XPCOM style interface, the other one is C++ only. "using" pulls
|
||||
* them both in, now GetFrameLoader() is ambiguous because
|
||||
* nsBrowserElement also has GetFrameLoader(). Explicit redefine
|
||||
* GetFrameLoader() to choose nsElementFrameLoaderOwner::GetFrameLoader()
|
||||
*/
|
||||
using nsElementFrameLoaderOwner::GetFrameLoader;
|
||||
NS_IMETHOD_(already_AddRefed<nsFrameLoader>) GetFrameLoader() MOZ_OVERRIDE
|
||||
{
|
||||
return nsElementFrameLoaderOwner::GetFrameLoader();
|
||||
}
|
||||
static bool BrowserFramesEnabled();
|
||||
|
||||
/**
|
||||
* Helper method to map a HTML 'scrolling' attribute value to a nsIScrollable
|
||||
@@ -98,12 +90,29 @@ public:
|
||||
static int32_t MapScrollingAttribute(const nsAttrValue* aValue);
|
||||
|
||||
protected:
|
||||
virtual ~nsGenericHTMLFrameElement() {}
|
||||
virtual ~nsGenericHTMLFrameElement();
|
||||
|
||||
virtual mozilla::dom::Element* ThisFrameElement() MOZ_OVERRIDE
|
||||
{
|
||||
return this;
|
||||
}
|
||||
// This doesn't really ensure a frame loader in all cases, only when
|
||||
// it makes sense.
|
||||
void EnsureFrameLoader();
|
||||
nsresult LoadSrc();
|
||||
nsIDocument* GetContentDocument();
|
||||
nsresult GetContentDocument(nsIDOMDocument** aContentDocument);
|
||||
already_AddRefed<nsPIDOMWindow> GetContentWindow();
|
||||
nsresult GetContentWindow(nsIDOMWindow** aContentWindow);
|
||||
|
||||
nsRefPtr<nsFrameLoader> mFrameLoader;
|
||||
|
||||
/**
|
||||
* True when the element is created by the parser using the
|
||||
* NS_FROM_PARSER_NETWORK flag.
|
||||
* If the element is modified, it may lose the flag.
|
||||
*/
|
||||
bool mNetworkCreated;
|
||||
|
||||
bool mIsPrerendered;
|
||||
bool mBrowserFrameListenersRegistered;
|
||||
bool mFrameLoaderCreationDisallowed;
|
||||
|
||||
private:
|
||||
void GetManifestURLByType(nsIAtom *aAppType, nsAString& aOut);
|
||||
|
||||
Reference in New Issue
Block a user