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