Reviewed by Mitz.
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Oct 2006 08:52:04 +0000 (08:52 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Oct 2006 08:52:04 +0000 (08:52 +0000)
        - fixed "REGRESSION: Activity window doesn't always list all files until refresh"
        http://bugs.webkit.org/show_bug.cgi?id=11212

        I couldn't figure out how to write a test case.

        * bindings/js/kjs_window.cpp:
        (KJS::Window::clear): Avoid crashing if already detached.
        * bridge/mac/FrameMac.h:
        * bridge/mac/FrameMac.mm:
        (WebCore::FrameMac::clear): Change prototype to make this a proper
        overload for Frame::clear once again(!).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@17285 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/bindings/js/kjs_window.cpp
WebCore/bridge/mac/FrameMac.h
WebCore/bridge/mac/FrameMac.mm

index add28bbf9accd2fcb21f57854fe7903e996265fe..92e76221e22c142ec63b89e64bfafc7e4e42f68d 100644 (file)
@@ -1,3 +1,19 @@
+2006-10-25  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Mitz.
+        
+        - fixed "REGRESSION: Activity window doesn't always list all files until refresh"
+        http://bugs.webkit.org/show_bug.cgi?id=11212
+
+        I couldn't figure out how to write a test case.
+
+        * bindings/js/kjs_window.cpp:
+        (KJS::Window::clear): Avoid crashing if already detached.
+        * bridge/mac/FrameMac.h:
+        * bridge/mac/FrameMac.mm:
+        (WebCore::FrameMac::clear): Change prototype to make this a proper
+        overload for Frame::clear once again(!).
+
 2006-10-24  Darin Adler  <darin@apple.com>
 
         Reviewed by Anders.
index 3b89c2f5266d53de09c7a4ee94ece683acaabed3..eee7e2208824dfa3116262ef5f524f1fac73f9aa 100644 (file)
@@ -1350,8 +1350,10 @@ void Window::clear()
   clearProperties();
   setPrototype(JSDOMWindowProto::self()); // clear the prototype
 
-  // Now recreate a working global object for the next URL that will use us
-  interpreter()->initGlobalObject();
+  // Now recreate a working global object for the next URL that will use us; but only if we haven't been
+  // disconnected yet
+  if (m_frame)
+    interpreter()->initGlobalObject();
 
   // there's likely to be lots of garbage now
   Collector::collect();
index f7ab94d8d23e6b6b8ebee47c5eb92a1e0262646b..77641aceefe465e405de0548b942b5f068293c0a 100644 (file)
@@ -127,7 +127,7 @@ public:
 
     virtual Plugin* createPlugin(Element* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType);
     
-    void clear();
+    void clear(bool clearWindowProperties = true);
 
     void setBridge(WebCoreFrameBridge* p);
     WebCoreFrameBridge* bridge() const { return _bridge; }
index 814977eda2d8bf847460455a7559e38dd030fe2d..a0b264802d032cef553dc4d966452413814c3b1a 100644 (file)
@@ -2902,7 +2902,7 @@ bool FrameMac::haveToldBridgeAboutLoad(const String& URL)
     return urlsBridgeKnowsAbout.contains(URL);
 }
 
-void FrameMac::clear()
+void FrameMac::clear(bool clearWindowProperties)
 {
     urlsBridgeKnowsAbout.clear();
     setMarkedTextRange(0, nil, nil);