Index: Source/web/WebPagePopupImpl.cpp |
diff --git a/Source/web/WebPagePopupImpl.cpp b/Source/web/WebPagePopupImpl.cpp |
index 1250ff583a31de73aba6b1fe746d78662811ba95..128b77a045d09a80970865d55b8a407002be5e35 100644 |
--- a/Source/web/WebPagePopupImpl.cpp |
+++ b/Source/web/WebPagePopupImpl.cpp |
@@ -48,6 +48,7 @@ |
#include "modules/accessibility/AXObjectCacheImpl.h" |
#include "platform/EventDispatchForbiddenScope.h" |
#include "platform/LayoutTestSupport.h" |
+#include "platform/ScriptForbiddenScope.h" |
#include "platform/TraceEvent.h" |
#include "platform/heap/Handle.h" |
#include "public/platform/WebCompositeAndReadbackAsyncCallback.h" |
@@ -260,9 +261,24 @@ bool WebPagePopupImpl::initializePage() |
RefPtr<SharedBuffer> data = SharedBuffer::create(); |
m_popupClient->writeDocument(data.get()); |
frame->loader().load(FrameLoadRequest(0, blankURL(), SubstituteData(data, "text/html", "UTF-8", KURL(), ForceSynchronousLoad))); |
+ |
+ m_popupClient->didWriteDocument(frame->document()); |
+ |
return true; |
} |
+void WebPagePopupImpl::postMessage(const String& message) |
+{ |
+ if (!m_page) |
+ return; |
+ ScriptForbiddenScope::AllowUserAgentScript allowScript; |
+ LocalDOMWindow* window = toLocalFrame(m_page->mainFrame())->localDOMWindow(); |
+ if (!window) |
+ return; |
+ RefPtrWillBeRawPtr<MessageEvent> event = MessageEvent::create(message); |
+ window->dispatchEvent(event); |
+} |
+ |
void WebPagePopupImpl::destroyPage() |
{ |
if (!m_page) |