Changeset 211052 in webkit
- Timestamp:
- Jan 23, 2017, 12:58:35 PM (10 years ago)
- Location:
- trunk/Source
- Files:
-
- 8 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/page/Page.cpp (modified) (2 diffs)
-
WebCore/page/Page.h (modified) (1 diff)
-
WebCore/plugins/PluginInfoProvider.cpp (modified) (2 diffs)
-
WebCore/plugins/PluginInfoProvider.h (modified) (1 diff)
-
WebKit2/ChangeLog (modified) (1 diff)
-
WebKit2/WebProcess/Plugins/WebPluginInfoProvider.h (modified) (2 diffs)
-
WebKit2/WebProcess/WebProcess.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r211045 r211052 1 2017-01-20 Anders Carlsson <andersca@apple.com> 2 3 When Safari reloads pages with Flash objects after Flash is installed, placeholders don't paint (but do work!) 4 https://bugs.webkit.org/show_bug.cgi?id=167268 5 rdar://problem/29857388 6 7 Reviewed by Sam Weinig. 8 9 * page/Page.cpp: 10 (WebCore::Page::refreshPlugins): 11 Call PluginInfoProvider::refresh instead. 12 13 (WebCore::Page::clearPluginData): 14 Add new setter. 15 16 * page/Page.h: 17 Declare new members. 18 19 * plugins/PluginInfoProvider.cpp: 20 (WebCore::PluginInfoProvider::refresh): 21 Put the logic to clear plug-in data and reload frames here. 22 23 * plugins/PluginInfoProvider.h: 24 Add new members. 25 1 26 2017-01-23 Jer Noble <jer.noble@apple.com> 2 27 -
trunk/Source/WebCore/page/Page.cpp
r211033 r211052 540 540 Vector<Ref<Frame>> framesNeedingReload; 541 541 542 for (auto& page : *allPages) {542 for (auto& page : *allPages) 543 543 pluginInfoProviders.add(&page->pluginInfoProvider()); 544 page->m_pluginData = nullptr;545 546 if (!reload)547 continue;548 549 for (Frame* frame = &page->mainFrame(); frame; frame = frame->tree().traverseNext()) {550 if (frame->loader().subframeLoader().containsPlugins())551 framesNeedingReload.append(*frame);552 }553 }554 544 555 545 for (auto& pluginInfoProvider : pluginInfoProviders) 556 pluginInfoProvider->refreshPlugins(); 557 558 for (auto& frame : framesNeedingReload) 559 frame->loader().reload(); 546 pluginInfoProvider->refresh(reload); 560 547 } 561 548 … … 565 552 m_pluginData = PluginData::create(*this); 566 553 return *m_pluginData; 554 } 555 556 void Page::clearPluginData() 557 { 558 m_pluginData = nullptr; 567 559 } 568 560 -
trunk/Source/WebCore/page/Page.h
r210936 r211052 167 167 static void refreshPlugins(bool reload); 168 168 WEBCORE_EXPORT PluginData& pluginData(); 169 void clearPluginData(); 169 170 170 171 WEBCORE_EXPORT void setCanStartMedia(bool); -
trunk/Source/WebCore/plugins/PluginInfoProvider.cpp
r204268 r211052 27 27 #include "PluginInfoProvider.h" 28 28 29 #include "MainFrame.h" 30 #include "Page.h" 31 #include "SubframeLoader.h" 32 29 33 namespace WebCore { 30 34 … … 32 36 { 33 37 ASSERT(m_pages.isEmpty()); 38 } 39 40 void PluginInfoProvider::refresh(bool reloadPages) 41 { 42 Vector<Ref<Frame>> framesNeedingReload; 43 44 for (auto& page : m_pages) { 45 page->clearPluginData(); 46 47 if (!reloadPages) 48 continue; 49 50 for (Frame* frame = &page->mainFrame(); frame; frame = frame->tree().traverseNext()) { 51 if (frame->loader().subframeLoader().containsPlugins()) 52 framesNeedingReload.append(*frame); 53 } 54 } 55 56 for (auto& frame : framesNeedingReload) 57 frame->loader().reload(); 34 58 } 35 59 -
trunk/Source/WebCore/plugins/PluginInfoProvider.h
r204287 r211052 35 35 virtual ~PluginInfoProvider(); 36 36 37 void refresh Plugins(bool reloadPages);37 void refresh(bool reloadPages); 38 38 39 39 void addPage(Page&); 40 40 void removePage(Page&); 41 41 42 virtual void refreshPlugins() = 0;43 42 virtual void getPluginInfo(Page&, Vector<PluginInfo>&) = 0; 44 43 virtual void getWebVisiblePluginInfo(Page&, Vector<PluginInfo>&) = 0; 45 44 46 45 private: 46 virtual void refreshPlugins() = 0; 47 47 48 HashSet<Page*> m_pages; 48 49 }; -
trunk/Source/WebKit2/ChangeLog
r211049 r211052 1 2017-01-20 Anders Carlsson <andersca@apple.com> 2 3 When Safari reloads pages with Flash objects after Flash is installed, placeholders don't paint (but do work!) 4 https://bugs.webkit.org/show_bug.cgi?id=167268 5 rdar://problem/29857388 6 7 Reviewed by Sam Weinig. 8 9 * WebProcess/Plugins/WebPluginInfoProvider.h: 10 Make refreshPlugins() private. 11 12 * WebProcess/WebProcess.cpp: 13 (WebKit::WebProcess::refreshPlugins): 14 Call the newly added PluginInfoProvider::refresh(). 15 1 16 2017-01-23 Antti Koivisto <antti@apple.com> 2 17 -
trunk/Source/WebKit2/WebProcess/Plugins/WebPluginInfoProvider.h
r209840 r211052 43 43 #endif 44 44 45 void refreshPlugins() override;46 47 45 private: 48 46 WebPluginInfoProvider(); … … 50 48 void getPluginInfo(WebCore::Page&, Vector<WebCore::PluginInfo>&) override; 51 49 void getWebVisiblePluginInfo(WebCore::Page&, Vector<WebCore::PluginInfo>&) override; 50 void refreshPlugins() override; 52 51 53 52 #if ENABLE(NETSCAPE_PLUGIN_API) -
trunk/Source/WebKit2/WebProcess/WebProcess.cpp
r211013 r211052 908 908 { 909 909 #if ENABLE(NETSCAPE_PLUGIN_API) 910 WebPluginInfoProvider::singleton().refresh Plugins();910 WebPluginInfoProvider::singleton().refresh(false); 911 911 #endif 912 912 }
Note:
See TracChangeset
for help on using the changeset viewer.