bug 1282985, don't try to notify about page load of already stopped page, r=khuey

--HG--
extra : rebase_source : aa3369235aa3eb3e4f315ddb85f12791d10c021a
This commit is contained in:
Olli Pettay 2016-06-30 13:04:01 +03:00
Родитель 17949f19d3
Коммит 437d8cd427
3 изменённых файлов: 29 добавлений и 2 удалений

Просмотреть файл

@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg">
<script>
<![CDATA[
function boom() {
var g = document.createElementNS("http://www.w3.org/2000/svg", "g");
g.setAttribute("id", "g");
var iframe = document.createElementNS("http://www.w3.org/1999/xhtml", "iframe");
g.appendChild(iframe);
document.documentElement.appendChild(g);
var use = document.createElementNS("http://www.w3.org/2000/svg", "use");
use.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", "#g");
document.documentElement.appendChild(use);
setTimeout(function() {
setTimeout(function() {
g.appendChild(document.createElementNS("http://www.w3.org/1999/xhtml", "video"));
}, 3);
}, 3);
}
window.addEventListener("load", boom, false);
]]>
</script>
</svg>

После

Ширина:  |  Высота:  |  Размер: 790 B

Просмотреть файл

@ -76,6 +76,7 @@ load 1035248-1.svg
load 1035248-2.svg
load 1244898-1.xhtml
load 1267272-1.svg
load 1282985-1.svg
# Disabled for now due to it taking a very long time to run - bug 1259356
#load long-clipPath-reference-chain.svg
load zero-size-image.svg

Просмотреть файл

@ -656,6 +656,7 @@ void nsDocLoader::DocLoaderIsEmpty(bool aFlushLayout)
}
NS_ASSERTION(!mIsFlushingLayout, "Someone screwed up");
NS_ASSERTION(mDocumentRequest, "No Document Request!");
// The load group for this DocumentLoader is idle. Flush if we need to.
if (aFlushLayout && !mDontFlushLayout) {
@ -682,7 +683,9 @@ void nsDocLoader::DocLoaderIsEmpty(bool aFlushLayout)
// And now check whether we're really busy; that might have changed with
// the layout flush.
if (!IsBusy()) {
// Note, mDocumentRequest can be null if the flushing above re-entered this
// method.
if (!IsBusy() && mDocumentRequest) {
// Clear out our request info hash, now that our load really is done and
// we don't need it anymore to CalculateMaxProgress().
ClearInternalProgress();
@ -692,7 +695,6 @@ void nsDocLoader::DocLoaderIsEmpty(bool aFlushLayout)
nsCOMPtr<nsIRequest> docRequest = mDocumentRequest;
NS_ASSERTION(mDocumentRequest, "No Document Request!");
mDocumentRequest = 0;
mIsLoadingDocument = false;