diff options
author | win7-7 <win7-7@users.noreply.github.com> | 2019-07-14 23:08:23 +0300 |
---|---|---|
committer | win7-7 <win7-7@users.noreply.github.com> | 2019-07-14 23:08:23 +0300 |
commit | 5e416ec22dc018a953d4f1b22ea2dac13cc83a32 (patch) | |
tree | d53630856503013c12ce8ddae1fa2b915ae120e6 | |
parent | 0f0227150d27b65a3d1caf318c088409686b5d1c (diff) | |
download | aura-central-5e416ec22dc018a953d4f1b22ea2dac13cc83a32.tar.gz |
Dispatch a PluginRemoved event for actual plugins, not images/unknown/iframe-type <objects>
If a page uses or removes many <object> elements which are not actually plugins, loading the page goes to a crawl because UXP recalculates the plugin UI every time.
Only dispatch a PluginRemoved event for actual plugins.
-rw-r--r-- | dom/base/nsObjectLoadingContent.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/dom/base/nsObjectLoadingContent.cpp b/dom/base/nsObjectLoadingContent.cpp index c1b732258..3c850c4cd 100644 --- a/dom/base/nsObjectLoadingContent.cpp +++ b/dom/base/nsObjectLoadingContent.cpp @@ -715,11 +715,13 @@ nsObjectLoadingContent::UnbindFromTree(bool aDeep, bool aNullParent) /// would keep the docshell around, but trash the frameloader UnloadObject(); } - nsIDocument* doc = thisContent->GetComposedDoc(); - if (doc && doc->IsActive()) { + if (mType == eType_Plugin) { + nsIDocument* doc = thisContent->GetComposedDoc(); + if (doc && doc->IsActive()) { nsCOMPtr<nsIRunnable> ev = new nsSimplePluginEvent(doc, NS_LITERAL_STRING("PluginRemoved")); NS_DispatchToCurrentThread(ev); + } } } |