Bug 817342, delay script runners when making static clones, r=roc, a=lsblakk
--- a/layout/printing/nsPrintEngine.cpp
+++ b/layout/printing/nsPrintEngine.cpp
@@ -508,31 +508,34 @@ nsPrintEngine::DoCommonPrint(bool
// Check to see if there is a "regular" selection
bool isSelection = IsThereARangeSelection(mPrt->mCurrentFocusWin);
// Get the docshell for this documentviewer
nsCOMPtr<nsIDocShell> webContainer(do_QueryReferent(mContainer, &rv));
NS_ENSURE_SUCCESS(rv, rv);
- mPrt->mPrintObject = new nsPrintObject();
- NS_ENSURE_TRUE(mPrt->mPrintObject, NS_ERROR_OUT_OF_MEMORY);
- rv = mPrt->mPrintObject->Init(webContainer, aDoc, aIsPrintPreview);
- NS_ENSURE_SUCCESS(rv, rv);
-
- NS_ENSURE_TRUE(mPrt->mPrintDocList.AppendElement(mPrt->mPrintObject),
- NS_ERROR_OUT_OF_MEMORY);
-
- mPrt->mIsParentAFrameSet = IsParentAFrameSet(webContainer);
- mPrt->mPrintObject->mFrameType = mPrt->mIsParentAFrameSet ? eFrameSet : eDoc;
-
- // Build the "tree" of PrintObjects
- nsCOMPtr<nsIDocShellTreeNode> parentAsNode =
- do_QueryInterface(mPrt->mPrintObject->mDocShell);
- BuildDocTree(parentAsNode, &mPrt->mPrintDocList, mPrt->mPrintObject);
+ {
+ nsAutoScriptBlocker scriptBlocker;
+ mPrt->mPrintObject = new nsPrintObject();
+ NS_ENSURE_TRUE(mPrt->mPrintObject, NS_ERROR_OUT_OF_MEMORY);
+ rv = mPrt->mPrintObject->Init(webContainer, aDoc, aIsPrintPreview);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ NS_ENSURE_TRUE(mPrt->mPrintDocList.AppendElement(mPrt->mPrintObject),
+ NS_ERROR_OUT_OF_MEMORY);
+
+ mPrt->mIsParentAFrameSet = IsParentAFrameSet(webContainer);
+ mPrt->mPrintObject->mFrameType = mPrt->mIsParentAFrameSet ? eFrameSet : eDoc;
+
+ // Build the "tree" of PrintObjects
+ nsCOMPtr<nsIDocShellTreeNode> parentAsNode =
+ do_QueryInterface(mPrt->mPrintObject->mDocShell);
+ BuildDocTree(parentAsNode, &mPrt->mPrintDocList, mPrt->mPrintObject);
+ }
if (!aIsPrintPreview) {
SetIsPrinting(true);
}
// XXX This isn't really correct...
if (!mPrt->mPrintObject->mDocument ||
!mPrt->mPrintObject->mDocument->GetRootElement())