WebCore:
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 May 2007 08:24:53 +0000 (08:24 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 May 2007 08:24:53 +0000 (08:24 +0000)
        Reviewed by Hyatt and Lars.

        - fixed <rdar://problem/5201758> REGRESSION: Stop button enabled and other problems caused by [WebView currentURL] returning non-nil for empty window

        * WebCore.exp: export new symbol
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::begin): move marker that we committed a real doc load from here...
        (WebCore::FrameLoader::transitionToCommitted): ...to here
        (WebCore::FrameLoader::frameHasLoaded): check that we have at least started loading something
        besides the initial empty doc.
        * loader/FrameLoader.h:

WebKit:

        Reviewed by Hyatt and Lars.

        - fixed <rdar://problem/5201758> REGRESSION: Stop button enabled and other problems caused by [WebView currentURL] returning non-nil for empty window

        * WebView/WebDataSource.mm:
        (-[WebDataSource request]): Return nil when we are still showing the initial empty doc

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

WebCore/ChangeLog
WebCore/WebCore.exp
WebCore/loader/FrameLoader.cpp
WebCore/loader/FrameLoader.h
WebKit/ChangeLog
WebKit/WebView/WebDataSource.mm

index 370842a..d22d04e 100644 (file)
@@ -1,3 +1,17 @@
+2007-05-15  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Hyatt and Lars.
+
+        - fixed <rdar://problem/5201758> REGRESSION: Stop button enabled and other problems caused by [WebView currentURL] returning non-nil for empty window
+
+        * WebCore.exp: export new symbol
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::begin): move marker that we committed a real doc load from here...
+        (WebCore::FrameLoader::transitionToCommitted): ...to here
+        (WebCore::FrameLoader::frameHasLoaded): check that we have at least started loading something
+        besides the initial empty doc.
+        * loader/FrameLoader.h:
+
 2007-05-14  Justin Garcia  <justin.garcia@apple.com>
 
         Reviewed by ggaren
index dd97439..0681d7d 100644 (file)
@@ -493,6 +493,7 @@ __ZNK7WebCore11CachedImage5imageEv
 __ZNK7WebCore11ContextMenu19platformDescriptionEv
 __ZNK7WebCore11FrameLoader10isCompleteEv
 __ZNK7WebCore11FrameLoader14documentLoaderEv
+__ZNK7WebCore11FrameLoader14frameHasLoadedEv
 __ZNK7WebCore11FrameLoader15containsPluginsEv
 __ZNK7WebCore11FrameLoader15firstLayoutDoneEv
 __ZNK7WebCore11FrameLoader16outgoingReferrerEv
index 5e8bf5e..bc777ea 100644 (file)
@@ -859,9 +859,6 @@ void FrameLoader::begin(const KURL& url)
     RefPtr<Document> document = DOMImplementation::instance()->createDocument(m_responseMIMEType, m_frame, m_frame->inViewSourceMode());
     m_frame->setDocument(document);
 
-    if (!m_creatingInitialEmptyDocument)
-        m_committedFirstRealDocumentLoad = true;
-
     document->setURL(m_URL.url());
     // We prefer m_baseURL over m_URL because m_URL changes when we are
     // about to load a new page.
@@ -2243,6 +2240,12 @@ bool FrameLoader::isLoading() const
     return docLoader->isLoadingMainResource() || docLoader->isLoadingSubresources() || docLoader->isLoadingPlugIns();
 }
 
+bool FrameLoader::frameHasLoaded() const
+{
+    return m_committedFirstRealDocumentLoad || isLoading() && !m_creatingInitialEmptyDocument; 
+}
+
+
 void FrameLoader::setDocumentLoader(DocumentLoader* loader)
 {
     if (!loader && !m_documentLoader)
@@ -2455,6 +2458,8 @@ void FrameLoader::transitionToCommitted(PassRefPtr<CachedPage> cachedPage)
     if (m_creatingInitialEmptyDocument)
         return;
 
+    m_committedFirstRealDocumentLoad = true;
+
     m_client->dispatchDidCommitLoad();
     
     // If we have a title let the WebView know about it.
index 5c283c0..26fbf7e 100644 (file)
@@ -177,6 +177,7 @@ namespace WebCore {
 
         bool isLoadingMainResource() const;
         bool isLoading() const;
+        bool frameHasLoaded() const;
 
         int numPendingOrLoadingRequests(bool recurse) const;
         bool isReloading() const;
index 682d66b..48f01cc 100644 (file)
@@ -1,3 +1,12 @@
+2007-05-15  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Hyatt and Lars.
+        
+        - fixed <rdar://problem/5201758> REGRESSION: Stop button enabled and other problems caused by [WebView currentURL] returning non-nil for empty window
+        
+        * WebView/WebDataSource.mm:
+        (-[WebDataSource request]): Return nil when we are still showing the initial empty doc
+
 2007-05-14  Geoffrey Garen  <ggaren@apple.com>
 
         Reviewed by Darin Adler.
index 3ee187d..79bb370 100644 (file)
@@ -404,8 +404,11 @@ static inline void addTypesFromClass(NSMutableDictionary *allTypes, Class objCCl
 
 - (NSMutableURLRequest *)request
 {
-    // FIXME: XXX
-    return (NSMutableURLRequest*)_private->loader->request().nsURLRequest();
+    if (!_private->loader->frameLoader()->frameHasLoaded())
+        return nil;
+
+    // FIXME: this cast is dubious
+    return (NSMutableURLRequest *)_private->loader->request().nsURLRequest();
 }
 
 - (NSURLResponse *)response