Index: Source/core/page/PageGroupLoadDeferrer.cpp |
diff --git a/Source/core/page/PageGroupLoadDeferrer.cpp b/Source/core/page/PageGroupLoadDeferrer.cpp |
index 43f66cb48b59951092661ec28287ae5272fd195f..fec74c1d9dee1d19443f2fb0ff6c6d78ac146815 100644 |
--- a/Source/core/page/PageGroupLoadDeferrer.cpp |
+++ b/Source/core/page/PageGroupLoadDeferrer.cpp |
@@ -22,6 +22,7 @@ |
#include "core/page/PageGroupLoadDeferrer.h" |
#include "core/dom/Document.h" |
+#include "core/loader/FrameLoader.h" |
#include "core/page/Frame.h" |
#include "core/page/Page.h" |
#include "core/page/PageGroup.h" |
@@ -42,6 +43,10 @@ PageGroupLoadDeferrer::PageGroupLoadDeferrer(Page* page, bool deferSelf) |
if (!otherPage->defersLoading()) { |
m_deferredFrames.append(otherPage->mainFrame()); |
+ // Ensure that we notify the client if the initial empty document is accessed before showing anything |
+ // modal, to prevent spoofs while the modal window or sheet is visible. |
+ otherPage->mainFrame()->loader()->notifyIfInitialDocumentAccessed(); |
+ |
// This code is not logically part of load deferring, but we do not want JS code executed beneath modal |
// windows or sheets, which is exactly when PageGroupLoadDeferrer is used. |
for (Frame* frame = otherPage->mainFrame(); frame; frame = frame->tree()->traverseNext()) |