WebCore:
authordarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 4 Dec 2007 19:47:13 +0000 (19:47 +0000)
committerdarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 4 Dec 2007 19:47:13 +0000 (19:47 +0000)
        Reviewed by Kevin Decker.

        - added an assertion for a situation that leads to a Safari assertion:
          a commit that is not followed by a load completion

        - removed some unneeded FrameLoader stuff -- maybe some day we'll get this
          class cut down to size

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::FrameLoader): Added boolean for assertion.
        (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Added code to assert
        that we already sent a commit before sending a complete.
        (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): Call
        client directly instead of indirecting through a function.
        (WebCore::FrameLoader::loadItem): Ditto.
        (WebCore::FrameLoader::goToItem): Ditto.
        (WebCore::FrameLoader::addHistoryForCurrentLocation): Get the private browsing
        state from Settings instead of FrameLoaderClient. Also call client directly
        instead of indirecting through a function.
        (WebCore::FrameLoader::updateHistoryForReload): Call client directly instead
        of indirecting through a function.
        (WebCore::FrameLoader::dispatchDidCommitLoad): Added code to assert
        that we did not yet send a commit and set the flag that will be used to check
        that we don't do this twice in a row without an intervening completion call.

        * loader/FrameLoader.h: Added a boolean for the assertion. Removed six
        now-unneeded functions.

        * loader/FrameLoaderClient.h: Removed now-unneeded privateBrowsingEnabled function.

        * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willCacheResponse): Get
        the private browsing state from Settings instead of FrameLoaderClient.

        * svg/graphics/SVGImageEmptyClients.h: Removed obsolete privateBrowsingEnabled.

WebKit/gtk:

        Reviewed by Kevin Decker.

        * WebCoreSupport/FrameLoaderClientGtk.cpp: Removed obsolete privateBrowsingEnabled.
        * WebCoreSupport/FrameLoaderClientGtk.h: Ditto.

WebKit/mac:

        Reviewed by Kevin Decker.

        * WebCoreSupport/WebFrameLoaderClient.h: Removed obsolete privateBrowsingEnabled.
        * WebCoreSupport/WebFrameLoaderClient.mm: Ditto.
        * WebKit.order: Ditto.

WebKit/qt:

        Reviewed by Kevin Decker.

        * WebCoreSupport/FrameLoaderClientQt.cpp: Removed obsolete privateBrowsingEnabled.
        * WebCoreSupport/FrameLoaderClientQt.h: Ditto.

WebKit/win:

        Reviewed by Kevin Decker.

        * WebFrame.cpp: Removed obsolete privateBrowsingEnabled.
        * WebFrame.h: Ditto.

WebKit/wx:

        Reviewed by Kevin Decker.

        * WebKitSupport/FrameLoaderClientWx.cpp: Removed obsolete privateBrowsingEnabled.
        * WebKitSupport/FrameLoaderClientWx.h: Ditto.

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

22 files changed:
WebCore/ChangeLog
WebCore/loader/FrameLoader.cpp
WebCore/loader/FrameLoader.h
WebCore/loader/FrameLoaderClient.h
WebCore/loader/ResourceLoader.cpp
WebCore/svg/graphics/SVGImageEmptyClients.h
WebKit/gtk/ChangeLog
WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h
WebKit/mac/ChangeLog
WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h
WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm
WebKit/mac/WebKit.order
WebKit/qt/ChangeLog
WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
WebKit/win/ChangeLog
WebKit/win/WebFrame.cpp
WebKit/win/WebFrame.h
WebKit/wx/ChangeLog
WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
WebKit/wx/WebKitSupport/FrameLoaderClientWx.h

index 41cc7bb..7070f24 100644 (file)
@@ -1,3 +1,40 @@
+2007-12-04  Darin Adler  <darin@apple.com>
+
+        Reviewed by Kevin Decker.
+
+        - added an assertion for a situation that leads to a Safari assertion:
+          a commit that is not followed by a load completion
+
+        - removed some unneeded FrameLoader stuff -- maybe some day we'll get this
+          class cut down to size
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::FrameLoader): Added boolean for assertion.
+        (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Added code to assert
+        that we already sent a commit before sending a complete.
+        (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): Call
+        client directly instead of indirecting through a function.
+        (WebCore::FrameLoader::loadItem): Ditto.
+        (WebCore::FrameLoader::goToItem): Ditto.
+        (WebCore::FrameLoader::addHistoryForCurrentLocation): Get the private browsing
+        state from Settings instead of FrameLoaderClient. Also call client directly
+        instead of indirecting through a function.
+        (WebCore::FrameLoader::updateHistoryForReload): Call client directly instead
+        of indirecting through a function.
+        (WebCore::FrameLoader::dispatchDidCommitLoad): Added code to assert
+        that we did not yet send a commit and set the flag that will be used to check
+        that we don't do this twice in a row without an intervening completion call.
+
+        * loader/FrameLoader.h: Added a boolean for the assertion. Removed six
+        now-unneeded functions.
+
+        * loader/FrameLoaderClient.h: Removed now-unneeded privateBrowsingEnabled function.
+
+        * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willCacheResponse): Get
+        the private browsing state from Settings instead of FrameLoaderClient.
+
+        * svg/graphics/SVGImageEmptyClients.h: Removed obsolete privateBrowsingEnabled.
+
 2007-12-03  Antti Koivisto  <antti@apple.com>
 
         Reviewed by Adele.
index 7ceaed4..c0e5c89 100644 (file)
@@ -253,6 +253,9 @@ FrameLoader::FrameLoader(Frame* frame, FrameLoaderClient* client)
     , m_isDisplayingInitialEmptyDocument(false)
     , m_committedFirstRealDocumentLoad(false)
     , m_didPerformFirstNavigation(false)
+#ifndef NDEBUG
+    , m_didDispatchDidCommitLoad(false)
+#endif
 #if USE(LOW_BANDWIDTH_DISPLAY)
     , m_useLowBandwidthDisplay(true)
     , m_finishedParsingDuringLowBandwidthDisplay(false)
@@ -2650,11 +2653,6 @@ void FrameLoader::transitionToCommitted(PassRefPtr<CachedPage> cachedPage)
     }
 }
 
-bool FrameLoader::privateBrowsingEnabled() const
-{
-    return m_client->privateBrowsingEnabled();
-}
-
 void FrameLoader::clientRedirectCancelledOrFinished(bool cancelWithLoadInProgress)
 {
     // Note that -webView:didCancelClientRedirectForFrame: is called on the frame load delegate even if
@@ -2968,6 +2966,10 @@ void FrameLoader::checkLoadCompleteForThisFrame()
                 return;
 
             const ResourceError& error = dl->mainDocumentError();
+#ifndef NDEBUG
+            ASSERT(m_didDispatchDidCommitLoad);
+            m_didDispatchDidCommitLoad = false;
+#endif
             if (!error.isNull())
                 m_client->dispatchDidFailLoad(error);
             else
@@ -3196,31 +3198,6 @@ void FrameLoader::detachFromParent()
     m_client->detachedFromParent4();
 }
 
-void FrameLoader::dispatchDidChangeLocationWithinPage()
-{
-    m_client->dispatchDidChangeLocationWithinPage();
-}
-
-void FrameLoader::dispatchDidFinishLoadToClient()
-{
-    m_client->didFinishLoad();
-}
-
-void FrameLoader::updateGlobalHistoryForStandardLoad(const KURL& url)
-{
-    m_client->updateGlobalHistoryForStandardLoad(url);
-}
-
-void FrameLoader::updateGlobalHistoryForReload(const KURL& url)
-{
-    m_client->updateGlobalHistoryForReload(url);
-}
-
-bool FrameLoader::shouldGoToHistoryItem(HistoryItem* item) const
-{
-    return m_client->shouldGoToHistoryItem(item);
-}
-
 void FrameLoader::addExtraFieldsToRequest(ResourceRequest& request, bool mainResource, bool alwaysFromRequest)
 {
     applyUserAgent(request);
@@ -3448,7 +3425,7 @@ void FrameLoader::continueFragmentScrollAfterNavigationPolicy(const ResourceRequ
         // we'll not go through a real load and reach Completed state.
         checkLoadComplete();
  
-    dispatchDidChangeLocationWithinPage();
+    m_client->dispatchDidChangeLocationWithinPage();
     m_client->didFinishLoad();
 }
 
@@ -4017,10 +3994,10 @@ void FrameLoader::loadItem(HistoryItem* item, FrameLoadType loadType)
         // be necessary if we do the better fix described above.
         documentLoader()->replaceRequestURLForAnchorScroll(itemURL);
 
-        dispatchDidChangeLocationWithinPage();
+        m_client->dispatchDidChangeLocationWithinPage();
         
         // FrameLoaderClient::didFinishLoad() tells the internal load delegate the load finished with no error
-        dispatchDidFinishLoadToClient();
+        m_client->didFinishLoad();
     } else {
         // Remember this item so we can traverse any child items as child frames load
         m_provisionalHistoryItem = item;
@@ -4133,7 +4110,7 @@ void FrameLoader::goToItem(HistoryItem* targetItem, FrameLoadType type)
     // Ultimately, history item navigations should go through the policy delegate. That's covered in:
     // <rdar://problem/3979539> back/forward cache navigations should consult policy delegate
     if (Page* page = m_frame->page())
-        if (shouldGoToHistoryItem(targetItem)) {
+        if (m_client->shouldGoToHistoryItem(targetItem)) {
             BackForwardList* bfList = page->backForwardList();
             HistoryItem* currentItem = bfList->currentItem();
             
@@ -4222,9 +4199,9 @@ bool FrameLoader::childFramesMatchItem(HistoryItem* item) const
 
 void FrameLoader::addHistoryForCurrentLocation()
 {
-    if (!privateBrowsingEnabled()) {
+    if (!m_frame->settings()->privateBrowsingEnabled()) {
         // FIXME: <rdar://problem/4880065> - This will be a hook into the WebCore global history, and this loader/client call will be removed
-        updateGlobalHistoryForStandardLoad(documentLoader()->urlForHistory());
+        m_client->updateGlobalHistoryForStandardLoad(documentLoader()->urlForHistory());
     }
     addBackForwardItemClippedAtTarget(true);
 }
@@ -4302,7 +4279,7 @@ void FrameLoader::updateHistoryForReload()
     
     // FIXME: <rdar://problem/4880065> - This will be a hook into the WebCore global history, and this loader/client call will be removed
     // Update the last visited time. Mostly interesting for URL autocompletion statistics.
-    updateGlobalHistoryForReload(documentLoader()->originalURL());
+    m_client->updateGlobalHistoryForReload(documentLoader()->originalURL());
 }
 
 void FrameLoader::updateHistoryForRedirectWithLockedHistory()
@@ -4656,6 +4633,11 @@ bool FrameLoader::shouldTreatSchemeAsLocal(const String& scheme)
 
 void FrameLoader::dispatchDidCommitLoad()
 {
+#ifndef NDEBUG
+    ASSERT(!m_didDispatchDidCommitLoad);
+    m_didDispatchDidCommitLoad = true;
+#endif
+
     m_client->dispatchDidCommitLoad();
 
     if (Page* page = m_frame->page())
index 0b5f1c8..fd477cd 100644 (file)
@@ -201,7 +201,6 @@ namespace WebCore {
         void didReceiveData(ResourceLoader*, const char*, int, int lengthReceived);
         void didFinishLoad(ResourceLoader*);
         void didFailToLoad(ResourceLoader*, const ResourceError&);
-        bool privateBrowsingEnabled() const;
         const ResourceRequest& originalRequest() const;
         const ResourceRequest& initialRequest() const;
         void receivedMainResourceError(const ResourceError&, bool isComplete);
@@ -393,12 +392,7 @@ namespace WebCore {
         void cancelAndClear();
 
         void setTitle(const String&);
-        void dispatchDidChangeLocationWithinPage();
         
-        void dispatchDidFinishLoadToClient();
-        void updateGlobalHistoryForStandardLoad(const KURL&);
-        void updateGlobalHistoryForReload(const KURL&);
-        bool shouldGoToHistoryItem(HistoryItem*) const;
         bool shouldTreatURLAsSameAsCurrent(const KURL&) const;
 
         void commitProvisionalLoad(PassRefPtr<CachedPage>);
@@ -647,6 +641,10 @@ namespace WebCore {
         
         bool m_didPerformFirstNavigation;
 
+#ifndef NDEBUG
+        bool m_didDispatchDidCommitLoad;
+#endif
+
 #if USE(LOW_BANDWIDTH_DISPLAY)
         // whether to use low bandwidth dislay, set by client
         bool m_useLowBandwidthDisplay;
@@ -660,7 +658,7 @@ namespace WebCore {
         
         String m_pendingSourceInLowBandwidthDisplay;        
         HashSet<CachedResource*> m_externalRequestsInLowBandwidthDisplay;
-#endif   
+#endif
     };
 
 }
index 02a6650..88dacf5 100644 (file)
@@ -78,8 +78,6 @@ namespace WebCore {
 
         virtual bool hasHTMLView() const { return true; }
 
-        virtual bool privateBrowsingEnabled() const = 0;
-
         virtual void makeDocumentView() = 0;
         virtual void makeRepresentation(DocumentLoader*) = 0;
         virtual void setDocumentViewFromCachedPage(CachedPage*) = 0;
index 5b2cda6..088cecd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
  *           (C) 2007 Graham Dennis (graham.dennis@gmail.com)
  *
  * Redistribution and use in source and binary forms, with or without
@@ -37,6 +37,7 @@
 #include "ProgressTracker.h"
 #include "ResourceHandle.h"
 #include "ResourceError.h"
+#include "Settings.h"
 #include "SharedBuffer.h"
 
 namespace WebCore {
@@ -395,7 +396,7 @@ void ResourceLoader::receivedCancellation(const AuthenticationChallenge&)
 void ResourceLoader::willCacheResponse(ResourceHandle*, CacheStoragePolicy& policy)
 {
     // When in private browsing mode, prevent caching to disk
-    if (policy == StorageAllowed && frameLoader()->privateBrowsingEnabled())
+    if (policy == StorageAllowed && m_frame->settings()->privateBrowsingEnabled())
         policy = StorageAllowedInMemoryOnly;    
 }
 
index f981c2b..a38712e 100644 (file)
@@ -128,8 +128,6 @@ public:
     virtual bool hasWebView() const { return true; } // mainly for assertions
     virtual bool hasFrameView() const { return true; } // ditto
     
-    virtual bool privateBrowsingEnabled() const { return false; }
-    
     virtual void makeDocumentView() { }
     virtual void makeRepresentation(DocumentLoader*) { }
     virtual void forceLayout() { }
index 40c3a63..9e3fbdb 100644 (file)
@@ -1,3 +1,10 @@
+2007-12-04  Darin Adler  <darin@apple.com>
+
+        Reviewed by Kevin Decker.
+
+        * WebCoreSupport/FrameLoaderClientGtk.cpp: Removed obsolete privateBrowsingEnabled.
+        * WebCoreSupport/FrameLoaderClientGtk.h: Ditto.
+
 2007-12-04  Michael Natterer  <mitch@imendio.com>
 
         Reviewed by Alp Toker.
index 8a890e2..a0311a6 100644 (file)
@@ -427,7 +427,6 @@ bool FrameLoaderClient::shouldGoToHistoryItem(HistoryItem* item) const
     return item != 0;
 }
 
-bool FrameLoaderClient::privateBrowsingEnabled() const { notImplemented(); return false; }
 void FrameLoaderClient::makeDocumentView() { notImplemented(); }
 void FrameLoaderClient::makeRepresentation(DocumentLoader*) { notImplemented(); }
 void FrameLoaderClient::forceLayout() { notImplemented(); }
index 6de866c..771806a 100644 (file)
@@ -47,8 +47,6 @@ namespace WebKit {
         virtual bool hasWebView() const;
         virtual bool hasFrameView() const;
 
-        virtual bool privateBrowsingEnabled() const;
-
         virtual void makeDocumentView();
         virtual void makeRepresentation(WebCore::DocumentLoader*);
         virtual void setDocumentViewFromCachedPage(WebCore::CachedPage*);
index f446643..264f458 100644 (file)
@@ -1,3 +1,11 @@
+2007-12-04  Darin Adler  <darin@apple.com>
+
+        Reviewed by Kevin Decker.
+
+        * WebCoreSupport/WebFrameLoaderClient.h: Removed obsolete privateBrowsingEnabled.
+        * WebCoreSupport/WebFrameLoaderClient.mm: Ditto.
+        * WebKit.order: Ditto.
+
 2007-12-03  Dan Bernstein  <mitz@apple.com>
 
         Reviewed by Dave Hyatt.
index 765b76a..1c4911c 100644 (file)
@@ -62,8 +62,6 @@ private:
     virtual bool hasWebView() const; // mainly for assertions
     virtual bool hasFrameView() const; // ditto
 
-    virtual bool privateBrowsingEnabled() const;
-
     virtual void makeDocumentView();
     virtual void makeRepresentation(WebCore::DocumentLoader*);
     virtual bool hasHTMLView() const;
index ce4d15e..2091a89 100644 (file)
@@ -147,11 +147,6 @@ bool WebFrameLoaderClient::hasFrameView() const
     return m_webFrame->_private->webFrameView != nil;
 }
 
-bool WebFrameLoaderClient::privateBrowsingEnabled() const
-{
-    return [[getWebView(m_webFrame.get()) preferences] privateBrowsingEnabled];
-}
-
 void WebFrameLoaderClient::makeDocumentView()
 {
     WebFrameView *v = m_webFrame->_private->webFrameView;
index 1169ced..2621a45 100644 (file)
@@ -429,7 +429,6 @@ __ZN20WebFrameLoaderClient18makeRepresentationEPN7WebCore14DocumentLoaderE
 -[WebFrame(WebInternal) _bridge]
 __ZN20WebDocumentLoaderMac15detachFromFrameEv
 __ZN20WebDocumentLoaderMac17releaseDataSourceEv
-__ZNK20WebFrameLoaderClient22privateBrowsingEnabledEv
 __ZN20WebFrameLoaderClient34updateGlobalHistoryForStandardLoadERKN7WebCore4KURLE
 +[WebHistory optionalSharedHistory]
 -[WebHistory addItemForURL:]
index 79d949d..f610db6 100644 (file)
@@ -1,3 +1,10 @@
+2007-12-04  Darin Adler  <darin@apple.com>
+
+        Reviewed by Kevin Decker.
+
+        * WebCoreSupport/FrameLoaderClientQt.cpp: Removed obsolete privateBrowsingEnabled.
+        * WebCoreSupport/FrameLoaderClientQt.h: Ditto.
+
 2007-12-04  Holger Hans Peter Freyther <holger.freyther@trolltech.com>
 
         Reviewed by Simon.
index e12a074..310dd88 100644 (file)
@@ -159,13 +159,6 @@ void FrameLoaderClientQt::invalidateCurrentItemPageCache()
 }
 
 
-bool FrameLoaderClientQt::privateBrowsingEnabled() const
-{
-    notImplemented();
-    return false;
-}
-
-
 void FrameLoaderClientQt::makeDocumentView()
 {
 //    qDebug() << "FrameLoaderClientQt::makeDocumentView" << m_frame->document();
index a587374..5c5f3b5 100644 (file)
@@ -80,8 +80,6 @@ namespace WebCore {
         virtual bool loadProvisionalItemFromPageCache();
         virtual void invalidateCurrentItemPageCache();
 
-        virtual bool privateBrowsingEnabled() const;
-
         virtual void makeDocumentView();
         virtual void makeRepresentation(DocumentLoader*);
         virtual void forceLayout();
index 7f15ff4..6243db0 100644 (file)
@@ -1,3 +1,10 @@
+2007-12-04  Darin Adler  <darin@apple.com>
+
+        Reviewed by Kevin Decker.
+
+        * WebFrame.cpp: Removed obsolete privateBrowsingEnabled.
+        * WebFrame.h: Ditto.
+
 2007-12-04  Adam Roben  <aroben@apple.com>
 
         Windows build fix
index bd881e0..776223a 100644 (file)
@@ -1493,15 +1493,6 @@ bool WebFrame::hasFrameView() const
     return !!d->frameView();
 }
 
-bool WebFrame::privateBrowsingEnabled() const
-{
-    BOOL privateBrowsingEnabled = FALSE;
-    COMPtr<IWebPreferences> preferences;
-    if (SUCCEEDED(d->webView->preferences(&preferences)))
-        preferences->privateBrowsingEnabled(&privateBrowsingEnabled);
-    return !!privateBrowsingEnabled;
-}
-
 void WebFrame::makeDocumentView()
 {
     ASSERT(core(this));
index 9565129..a8c5569 100644 (file)
@@ -229,7 +229,6 @@ public:
     virtual void frameLoaderDestroyed();
     virtual bool hasWebView() const;
     virtual bool hasFrameView() const;
-    virtual bool privateBrowsingEnabled() const;
     virtual void makeDocumentView();
     virtual void makeRepresentation(WebCore::DocumentLoader*);
     virtual void forceLayout();
index be66b1e..45ddbf0 100644 (file)
@@ -1,3 +1,10 @@
+2007-12-04  Darin Adler  <darin@apple.com>
+
+        Reviewed by Kevin Decker.
+
+        * WebKitSupport/FrameLoaderClientWx.cpp: Removed obsolete privateBrowsingEnabled.
+        * WebKitSupport/FrameLoaderClientWx.h: Ditto.
+
 2007-12-03  Mark Rowe  <mrowe@apple.com>
 
         wx build fix.
index ba600a0..dd4d0f6 100644 (file)
@@ -131,13 +131,6 @@ bool FrameLoaderClientWx::provisionalItemIsTarget() const
 }
 
 
-bool FrameLoaderClientWx::privateBrowsingEnabled() const
-{
-    notImplemented();
-    return false;
-}
-
-
 void FrameLoaderClientWx::makeDocumentView()
 {
     notImplemented();
index a914e26..f681e29 100644 (file)
@@ -65,8 +65,6 @@ namespace WebCore {
 
         virtual bool provisionalItemIsTarget() const;
 
-        virtual bool privateBrowsingEnabled() const;
-
         virtual void makeDocumentView();
         virtual void makeRepresentation(DocumentLoader*);
         virtual void forceLayout();