diff options
Diffstat (limited to 'WebCore/page')
-rw-r--r-- | WebCore/page/Page.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/WebCore/page/Page.cpp b/WebCore/page/Page.cpp index c7d3de1..7de1a09 100644 --- a/WebCore/page/Page.cpp +++ b/WebCore/page/Page.cpp @@ -393,7 +393,13 @@ void Page::refreshPlugins(bool reload) HashSet<Page*>::iterator end = allPages->end(); for (HashSet<Page*>::iterator it = allPages->begin(); it != end; ++it) { - (*it)->m_pluginData = 0; + Page* page = *it; + + // Clear out the page's plug-in data. + if (page->m_pluginData) { + page->m_pluginData->disconnectPage(); + page->m_pluginData = 0; + } if (reload) { for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree()->traverseNext()) { |