2008-05-30 Maciej Stachowiak <mjs@apple.com>
[WebKit.git] / WebCore / bindings / js / kjs_proxy.cpp
index bb11460b522ae2694ad7b087b6921bc6bd686862..ba098b133dc23d4919f8c16c6586cc0cf05ee3a4 100644 (file)
@@ -112,6 +112,7 @@ void KJSProxy::clear()
 
     JSLock lock;
     m_windowShell->window()->clear();
+    m_liveFormerWindows.add(m_windowShell->window());
     m_windowShell->setWindow(new JSDOMWindow(m_frame->domWindow(), m_windowShell));
     if (Page* page = m_frame->page()) {
         attachDebugger(page->debugger());
@@ -155,7 +156,7 @@ void KJSProxy::initScript()
     JSLock lock;
 
     m_windowShell = new JSDOMWindowShell(m_frame->domWindow());
-    m_windowShell->updateDocument();
+    updateDocument();
 
     if (Page* page = m_frame->page()) {
         attachDebugger(page->debugger());
@@ -210,4 +211,15 @@ void KJSProxy::attachDebugger(KJS::Debugger* debugger)
         currentDebugger->detach(m_windowShell->window());
 }
 
+void KJSProxy::updateDocument()
+{
+    JSLock lock;
+    if (m_windowShell)
+        m_windowShell->window()->updateDocument();
+    HashSet<JSDOMWindow*>::iterator end = m_liveFormerWindows.end();
+    for (HashSet<JSDOMWindow*>::iterator it = m_liveFormerWindows.begin(); it != end; ++it)
+        (*it)->updateDocument();
+}
+
+
 } // namespace WebCore