Prior to this change, all web progress events fired by nsDocLoader were bubbled to the toplevel in-process nsDocShell instance, then captured by web progress listener. This listener would filter the notifications (using nsBrowserStatusFilter), then send them either directly to the BrowsingContextWebProgress, or via. PBrowser to the BrowsingContextWebProgress. Unfortunately, these events are modified as they are bubbled (e.g. changing the progress flags to remove STATE_IS_NETWORK), which combined with the filtering from nsBrowserStatusFilter led to some strange behaviour in the notifications. This change skips the in-content bubbling by directly propagating events from the nsDocShell they were fired on to the corresponding BrowsingContextWebProgress, and then performing the bubbling within the parent process. The one major exception to this is OnProgressChange, which relies on nsDocLoader's handling on aCurTotalProgress and aMaxTotalProgress. Because of that, these listeners continue to capture progress notifications exclusively on the toplevel BrowsingContext, and do not handle out-of-process iframes. Differential Revision: https://phabricator.services.mozilla.com/D249651
3 lines
106 B
HTML
3 lines
106 B
HTML
<!DOCTYPE html>
|
|
<iframe src="https://example.com/browser/docshell/test/browser/dummy_page.html"></iframe>
|