зеркало из https://github.com/mozilla/pjs.git
Fire dynamic overlay load observers in more cases b=419452 r+sr=jst a=beltzner
This commit is contained in:
Родитель
635331288b
Коммит
92942012d6
|
@ -2995,6 +2995,7 @@ nsXULDocument::ResumeWalk()
|
|||
if (! count)
|
||||
break;
|
||||
|
||||
nsCOMPtr<nsIURI> overlayURI = mCurrentPrototype->GetURI();
|
||||
nsCOMPtr<nsIURI> uri = mUnloadedOverlays[count-1];
|
||||
mUnloadedOverlays.RemoveObjectAt(count-1);
|
||||
|
||||
|
@ -3008,9 +3009,22 @@ nsXULDocument::ResumeWalk()
|
|||
continue;
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
if (shouldReturn)
|
||||
if (shouldReturn) {
|
||||
if (mOverlayLoadObservers.IsInitialized()) {
|
||||
nsIObserver *obs = mOverlayLoadObservers.GetWeak(overlayURI);
|
||||
if (obs) {
|
||||
// This overlay has an unloaded overlay, so it will never
|
||||
// notify. The best we can do is to notify for the unloaded
|
||||
// overlay instead, assuming nobody is already notifiable
|
||||
// for it. Note that this will confuse the observer.
|
||||
if (!mOverlayLoadObservers.GetWeak(uri))
|
||||
mOverlayLoadObservers.Put(uri, obs);
|
||||
mOverlayLoadObservers.Remove(overlayURI);
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
|
||||
// If we get here, there is nothing left for us to walk. The content
|
||||
// model is built and ready for layout.
|
||||
|
|
Загрузка…
Ссылка в новой задаче