summaryrefslogtreecommitdiff
path: root/Source/WebCore/page/Page.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/page/Page.cpp')
-rw-r--r--Source/WebCore/page/Page.cpp38
1 files changed, 28 insertions, 10 deletions
diff --git a/Source/WebCore/page/Page.cpp b/Source/WebCore/page/Page.cpp
index a5f365e35..cf4d0fec9 100644
--- a/Source/WebCore/page/Page.cpp
+++ b/Source/WebCore/page/Page.cpp
@@ -55,7 +55,6 @@
#include "PageGroup.h"
#include "PluginData.h"
#include "PluginView.h"
-#include "PluginViewBase.h"
#include "PointerLockController.h"
#include "ProgressTracker.h"
#include "RenderArena.h"
@@ -1030,16 +1029,8 @@ void Page::dnsPrefetchingStateChanged()
frame->document()->initDNSPrefetch();
}
-void Page::privateBrowsingStateChanged()
+void Page::collectPluginViews(Vector<RefPtr<PluginViewBase>, 32>& pluginViewBases)
{
- bool privateBrowsingEnabled = m_settings->privateBrowsingEnabled();
-
- for (Frame* frame = mainFrame(); frame; frame = frame->tree()->traverseNext())
- frame->document()->privateBrowsingStateDidChange();
-
- // Collect the PluginViews in to a vector to ensure that action the plug-in takes
- // from below privateBrowsingStateChanged does not affect their lifetime.
- Vector<RefPtr<PluginViewBase>, 32> pluginViewBases;
for (Frame* frame = mainFrame(); frame; frame = frame->tree()->traverseNext()) {
FrameView* view = frame->view();
if (!view)
@@ -1055,6 +1046,33 @@ void Page::privateBrowsingStateChanged()
pluginViewBases.append(static_cast<PluginViewBase*>(widget));
}
}
+}
+
+void Page::storageBlockingStateChanged()
+{
+ for (Frame* frame = mainFrame(); frame; frame = frame->tree()->traverseNext())
+ frame->document()->storageBlockingStateDidChange();
+
+ // Collect the PluginViews in to a vector to ensure that action the plug-in takes
+ // from below storageBlockingStateChanged does not affect their lifetime.
+ Vector<RefPtr<PluginViewBase>, 32> pluginViewBases;
+ collectPluginViews(pluginViewBases);
+
+ for (size_t i = 0; i < pluginViewBases.size(); ++i)
+ pluginViewBases[i]->storageBlockingStateChanged();
+}
+
+void Page::privateBrowsingStateChanged()
+{
+ bool privateBrowsingEnabled = m_settings->privateBrowsingEnabled();
+
+ for (Frame* frame = mainFrame(); frame; frame = frame->tree()->traverseNext())
+ frame->document()->privateBrowsingStateDidChange();
+
+ // Collect the PluginViews in to a vector to ensure that action the plug-in takes
+ // from below privateBrowsingStateChanged does not affect their lifetime.
+ Vector<RefPtr<PluginViewBase>, 32> pluginViewBases;
+ collectPluginViews(pluginViewBases);
for (size_t i = 0; i < pluginViewBases.size(); ++i)
pluginViewBases[i]->privateBrowsingStateChanged(privateBrowsingEnabled);