WebCore:
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 28 Oct 2006 05:08:17 +0000 (05:08 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 28 Oct 2006 05:08:17 +0000 (05:08 +0000)
commitdfedaf3da705ab9565df93338e2714036831a7e1
treea3a21cf91ed1649378a2e773584c205a93c7fd4b
parent1b558101b70347620b14917a7f2c3ac9e72b41c2
WebCore:

        Reviewed by John & Adam.

        - assorted speedups to fix perf regression from fixing correctness regression

        * WebCore.exp: exported new methods.
        * WebCore.xcodeproj/project.pbxproj: Added CachedResourceMac.mm
        * bridge/mac/WebCoreFrameBridge.h:
        * bridge/mac/WebCoreFrameBridge.mm:
        * loader/CachedResource.cpp: Removed now obsolete getCFURL.
        * loader/CachedResource.h:
        * loader/mac/CachedResourceMac.mm: Added.
        (WebCore::CachedResource::getNSURLRequest): New method; the NSURLRequest is
        now cached in the CachedObject.
        * loader/mac/FrameLoader.h:
        * loader/mac/FrameLoader.mm:
        (WebCore::FrameLoader::loadedResourceFromMemoryCache): New method - lets
        the WebKit side do faster dispatch for clients that implement the fast path delegate.
        * loader/mac/LoaderFunctionsMac.mm:
        (WebCore::CheckCacheObjectStatus): Instead of calling several FrameLoader methods,
        just call loadedResourceFromMemoryCache.
        * loader/mac/WebFrameLoaderClient.h:

WebKit:

        Reviewed by John & Adam.

        - various performance improvements for resource delegate dispatch.

        - avoid any ObjC messaging when fetching the WebView
        - avoid ObjC calls to WebView to get resource load delegate and impl cache
        - cache actual method pointers, not just the fact that the method is present
        - added a new SPI resource load delegate method which allows clients to get
          just one message in case of synchronously loading from memory cache; if this
          is implemented you don't get the normal delegate calls in that case.
        - various other minor tweaks

        * WebCoreSupport/WebFrameBridge.h:
        * WebCoreSupport/WebFrameLoaderClient.h:
        * WebCoreSupport/WebFrameLoaderClient.mm:
        (getWebView):
        (WebFrameLoaderClient::hasBackForwardList):
        (WebFrameLoaderClient::resetBackForwardList):
        (WebFrameLoaderClient::privateBrowsingEnabled):
        (WebFrameLoaderClient::updateHistoryForStandardLoad):
        (WebFrameLoaderClient::resetAfterLoadError):
        (WebFrameLoaderClient::download):
        (WebFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
        (WebFrameLoaderClient::dispatchIdentifierForInitialRequest):
        (WebFrameLoaderClient::dispatchWillSendRequest):
        (WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
        (WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
        (WebFrameLoaderClient::dispatchDidReceiveResponse):
        (WebFrameLoaderClient::dispatchDidReceiveContentLength):
        (WebFrameLoaderClient::dispatchDidFinishLoading):
        (WebFrameLoaderClient::dispatchDidFailLoading):
        (WebFrameLoaderClient::dispatchDidHandleOnloadEvents):
        (WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
        (WebFrameLoaderClient::dispatchDidCancelClientRedirect):
        (WebFrameLoaderClient::dispatchWillPerformClientRedirect):
        (WebFrameLoaderClient::dispatchDidChangeLocationWithinPage):
        (WebFrameLoaderClient::dispatchWillClose):
        (WebFrameLoaderClient::dispatchDidReceiveIcon):
        (WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
        (WebFrameLoaderClient::dispatchDidReceiveTitle):
        (WebFrameLoaderClient::dispatchDidCommitLoad):
        (WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
        (WebFrameLoaderClient::dispatchDidFailLoad):
        (WebFrameLoaderClient::dispatchDidFinishLoad):
        (WebFrameLoaderClient::dispatchDidFirstLayout):
        (WebFrameLoaderClient::dispatchCreatePage):
        (WebFrameLoaderClient::dispatchShow):
        (WebFrameLoaderClient::dispatchDecidePolicyForMIMEType):
        (WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
        (WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
        (WebFrameLoaderClient::dispatchUnableToImplementPolicy):
        (WebFrameLoaderClient::dispatchWillSubmitForm):
        (WebFrameLoaderClient::dispatchDidLoadMainResource):
        (WebFrameLoaderClient::progressStarted):
        (WebFrameLoaderClient::progressCompleted):
        (WebFrameLoaderClient::incrementProgress):
        (WebFrameLoaderClient::completeProgress):
        (WebFrameLoaderClient::setMainFrameDocumentReady):
        (WebFrameLoaderClient::startDownload):
        (WebFrameLoaderClient::willChangeTitle):
        (WebFrameLoaderClient::didChangeTitle):
        (WebFrameLoaderClient::mainFrameURL):
        (WebFrameLoaderClient::frameLoadCompleted):
        * WebCoreSupport/WebPageBridge.h:
        * WebKit.xcodeproj/project.pbxproj:
        * WebView/WebFrame.mm:
        (frame):
        (core):
        (kit):
        (getWebView):
        (-[WebFrame _addBackForwardItemClippedAtTarget:]):
        (-[WebFrame _canCachePage]):
        (-[WebFrame _purgePageCache]):
        (-[WebFrame _loadItem:withLoadType:]):
        (-[WebFrame _goToItem:withLoadType:]):
        (-[WebFrame _updateBackground]):
        (-[WebFrame _clearSelectionInOtherFrames]):
        (-[WebFrame _isMainFrame]):
        (-[WebFrame webView]):
        * WebView/WebResourceLoadDelegatePrivate.h: Added.
        * WebView/WebView.mm:
        (-[WebView _cacheResourceLoadDelegateImplementations]):
        (WebViewGetResourceLoadDelegate):
        (WebViewGetResourceLoadDelegateImplementations):
        * WebView/WebViewInternal.h:
        * WebView/WebViewPrivate.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@17396 268f45cc-cd09-0410-ab3c-d52691b4dbfc
23 files changed:
WebCore/ChangeLog
WebCore/WebCore.exp
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/bridge/mac/WebCoreFrameBridge.h
WebCore/bridge/mac/WebCoreFrameBridge.mm
WebCore/loader/CachedResource.cpp
WebCore/loader/CachedResource.h
WebCore/loader/mac/CachedResourceMac.mm [new file with mode: 0644]
WebCore/loader/mac/FrameLoader.h
WebCore/loader/mac/FrameLoader.mm
WebCore/loader/mac/LoaderFunctionsMac.mm
WebCore/loader/mac/WebFrameLoaderClient.h
WebKit/ChangeLog
WebKit/WebCoreSupport/WebFrameBridge.h
WebKit/WebCoreSupport/WebFrameLoaderClient.h
WebKit/WebCoreSupport/WebFrameLoaderClient.mm
WebKit/WebCoreSupport/WebPageBridge.h
WebKit/WebKit.xcodeproj/project.pbxproj
WebKit/WebView/WebFrame.mm
WebKit/WebView/WebResourceLoadDelegatePrivate.h [new file with mode: 0644]
WebKit/WebView/WebView.mm
WebKit/WebView/WebViewInternal.h
WebKit/WebView/WebViewPrivate.h