Bug 386769 - "Make setting innerHTML faster". r=jst, sr=peterv, a=blocking1.9.
git-svn-id: svn://10.0.0.236/trunk@245266 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -408,6 +408,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(nsHTMLDocument, nsDocument)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mEmbeds)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mLinks)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mAnchors)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mFragmentParser)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR_AMBIGUOUS(mForms, nsIDOMNodeList)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR_AMBIGUOUS(mFormControls,
|
||||
nsIDOMNodeList)
|
||||
|
||||
@@ -216,6 +216,13 @@ public:
|
||||
|
||||
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED_NO_UNLINK(nsHTMLDocument, nsDocument)
|
||||
|
||||
virtual already_AddRefed<nsIParser> GetFragmentParser() {
|
||||
return mFragmentParser.forget();
|
||||
}
|
||||
virtual void SetFragmentParser(nsIParser* aParser) {
|
||||
mFragmentParser = aParser;
|
||||
}
|
||||
|
||||
protected:
|
||||
nsresult GetBodySize(PRInt32* aWidth,
|
||||
PRInt32* aHeight);
|
||||
@@ -382,6 +389,9 @@ protected:
|
||||
PRInt32 mDefaultNamespaceID;
|
||||
|
||||
PRBool mDisableCookieAccess;
|
||||
|
||||
// Parser used for constructing document fragments.
|
||||
nsCOMPtr<nsIParser> mFragmentParser;
|
||||
};
|
||||
|
||||
#endif /* nsHTMLDocument_h___ */
|
||||
|
||||
@@ -64,6 +64,7 @@
|
||||
#include "nsIScriptSecurityManager.h"
|
||||
#include "nsContentSink.h"
|
||||
#include "nsTHashtable.h"
|
||||
#include "nsCycleCollectionParticipant.h"
|
||||
|
||||
//
|
||||
// XXX THIS IS TEMPORARY CODE
|
||||
@@ -79,7 +80,9 @@ public:
|
||||
virtual ~nsHTMLFragmentContentSink();
|
||||
|
||||
// nsISupports
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
||||
NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(nsHTMLFragmentContentSink,
|
||||
nsIContentSink)
|
||||
|
||||
NS_DECL_AND_IMPL_ZEROING_OPERATOR_NEW
|
||||
|
||||
@@ -223,12 +226,22 @@ nsHTMLFragmentContentSink::~nsHTMLFragmentContentSink()
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMPL_ISUPPORTS3(nsHTMLFragmentContentSink,
|
||||
nsIFragmentContentSink,
|
||||
nsIHTMLContentSink,
|
||||
nsIContentSink)
|
||||
NS_IMPL_CYCLE_COLLECTING_ADDREF_AMBIGUOUS(nsHTMLFragmentContentSink,
|
||||
nsIContentSink)
|
||||
NS_IMPL_CYCLE_COLLECTING_RELEASE_AMBIGUOUS(nsHTMLFragmentContentSink,
|
||||
nsIContentSink)
|
||||
|
||||
NS_IMETHODIMP
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsHTMLFragmentContentSink)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIFragmentContentSink)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIHTMLContentSink)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIContentSink)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIContentSink)
|
||||
NS_INTERFACE_MAP_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_3(nsHTMLFragmentContentSink, mParser, mTargetDocument,
|
||||
mRoot)
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsHTMLFragmentContentSink::WillBuildModel(void)
|
||||
{
|
||||
if (mRoot) {
|
||||
|
||||
Reference in New Issue
Block a user