⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webframeloaderclient.mm

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 MM
📖 第 1 页 / 共 5 页
字号:
            else                hostOnlyURLString = [[NSString alloc] initWithFormat:@"%@://%@", scheme, host];            NSURL *hostOnlyURL = [[NSURL alloc] initWithString:hostOnlyURLString];            [hostOnlyURLString release];            [download _setOriginatingURL:hostOnlyURL];            [hostOnlyURL release];        }    }}bool WebFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache(DocumentLoader* loader, const ResourceRequest& request, const ResourceResponse& response, int length){    applyAppleDictionaryApplicationQuirk(this, request);    WebView *webView = getWebView(m_webFrame.get());    WebResourceDelegateImplementationCache* implementations = WebViewGetResourceLoadDelegateImplementations(webView);    if (!implementations->didLoadResourceFromMemoryCacheFunc)        return false;    CallResourceLoadDelegate(implementations->didLoadResourceFromMemoryCacheFunc, webView, @selector(webView:didLoadResourceFromMemoryCache:response:length:fromDataSource:), request.nsURLRequest(), response.nsURLResponse(), length, dataSource(loader));    return true;}void WebFrameLoaderClient::assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader* loader, const ResourceRequest& request){    WebView *webView = getWebView(m_webFrame.get());    WebResourceDelegateImplementationCache* implementations = WebViewGetResourceLoadDelegateImplementations(webView);    id object = nil;    BOOL shouldRelease = NO;    if (implementations->identifierForRequestFunc)        object = CallResourceLoadDelegate(implementations->identifierForRequestFunc, webView, @selector(webView:identifierForInitialRequest:fromDataSource:), request.nsURLRequest(), dataSource(loader));    else {        object = [[NSObject alloc] init];        shouldRelease = YES;    }    [webView _addObject:object forIdentifier:identifier];    if (shouldRelease)        [object release];}void WebFrameLoaderClient::dispatchWillSendRequest(DocumentLoader* loader, unsigned long identifier, ResourceRequest& request, const ResourceResponse& redirectResponse){    applyAppleDictionaryApplicationQuirk(this, request);    WebView *webView = getWebView(m_webFrame.get());    WebResourceDelegateImplementationCache* implementations = WebViewGetResourceLoadDelegateImplementations(webView);    if (redirectResponse.isNull())        static_cast<WebDocumentLoaderMac*>(loader)->increaseLoadCount(identifier);    if (implementations->willSendRequestFunc)        request = (NSURLRequest *)CallResourceLoadDelegate(implementations->willSendRequestFunc, webView, @selector(webView:resource:willSendRequest:redirectResponse:fromDataSource:), [webView _objectForIdentifier:identifier], request.nsURLRequest(), redirectResponse.nsURLResponse(), dataSource(loader));}bool WebFrameLoaderClient::shouldUseCredentialStorage(DocumentLoader* loader, unsigned long identifier){    WebView *webView = getWebView(m_webFrame.get());    WebResourceDelegateImplementationCache* implementations = WebViewGetResourceLoadDelegateImplementations(webView);    if (implementations->shouldUseCredentialStorageFunc) {        if (id resource = [webView _objectForIdentifier:identifier])            return CallResourceLoadDelegateReturningBoolean(NO, implementations->shouldUseCredentialStorageFunc, webView, @selector(webView:resource:shouldUseCredentialStorageForDataSource:), resource, dataSource(loader));    }    return true;}void WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge(DocumentLoader* loader, unsigned long identifier, const AuthenticationChallenge& challenge){    WebView *webView = getWebView(m_webFrame.get());    WebResourceDelegateImplementationCache* implementations = WebViewGetResourceLoadDelegateImplementations(webView);    NSURLAuthenticationChallenge *webChallenge = mac(challenge);    if (implementations->didReceiveAuthenticationChallengeFunc) {        if (id resource = [webView _objectForIdentifier:identifier]) {            CallResourceLoadDelegate(implementations->didReceiveAuthenticationChallengeFunc, webView, @selector(webView:resource:didReceiveAuthenticationChallenge:fromDataSource:), resource, webChallenge, dataSource(loader));            return;        }    }    NSWindow *window = [webView hostWindow] ? [webView hostWindow] : [webView window];    [[WebPanelAuthenticationHandler sharedHandler] startAuthentication:webChallenge window:window];}void WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge(DocumentLoader* loader, unsigned long identifier, const AuthenticationChallenge&challenge){    WebView *webView = getWebView(m_webFrame.get());    WebResourceDelegateImplementationCache* implementations = WebViewGetResourceLoadDelegateImplementations(webView);    NSURLAuthenticationChallenge *webChallenge = mac(challenge);    if (implementations->didCancelAuthenticationChallengeFunc) {        if (id resource = [webView _objectForIdentifier:identifier]) {            CallResourceLoadDelegate(implementations->didCancelAuthenticationChallengeFunc, webView, @selector(webView:resource:didCancelAuthenticationChallenge:fromDataSource:), resource, webChallenge, dataSource(loader));            return;        }    }    [(WebPanelAuthenticationHandler *)[WebPanelAuthenticationHandler sharedHandler] cancelAuthentication:webChallenge];}void WebFrameLoaderClient::dispatchDidReceiveResponse(DocumentLoader* loader, unsigned long identifier, const ResourceResponse& response){    WebView *webView = getWebView(m_webFrame.get());    WebResourceDelegateImplementationCache* implementations = WebViewGetResourceLoadDelegateImplementations(webView);    if (implementations->didReceiveResponseFunc) {        if (id resource = [webView _objectForIdentifier:identifier])            CallResourceLoadDelegate(implementations->didReceiveResponseFunc, webView, @selector(webView:resource:didReceiveResponse:fromDataSource:), resource, response.nsURLResponse(), dataSource(loader));    }}NSCachedURLResponse* WebFrameLoaderClient::willCacheResponse(DocumentLoader* loader, unsigned long identifier, NSCachedURLResponse* response) const{    WebView *webView = getWebView(m_webFrame.get());    WebResourceDelegateImplementationCache* implementations = WebViewGetResourceLoadDelegateImplementations(webView);    if (implementations->willCacheResponseFunc) {        if (id resource = [webView _objectForIdentifier:identifier])            return CallResourceLoadDelegate(implementations->willCacheResponseFunc, webView, @selector(webView:resource:willCacheResponse:fromDataSource:), resource, response, dataSource(loader));    }    return response;}void WebFrameLoaderClient::dispatchDidReceiveContentLength(DocumentLoader* loader, unsigned long identifier, int lengthReceived){    WebView *webView = getWebView(m_webFrame.get());    WebResourceDelegateImplementationCache* implementations = WebViewGetResourceLoadDelegateImplementations(webView);    if (implementations->didReceiveContentLengthFunc) {        if (id resource = [webView _objectForIdentifier:identifier])            CallResourceLoadDelegate(implementations->didReceiveContentLengthFunc, webView, @selector(webView:resource:didReceiveContentLength:fromDataSource:), resource, (NSInteger)lengthReceived, dataSource(loader));    }}void WebFrameLoaderClient::dispatchDidFinishLoading(DocumentLoader* loader, unsigned long identifier){    WebView *webView = getWebView(m_webFrame.get());    WebResourceDelegateImplementationCache* implementations = WebViewGetResourceLoadDelegateImplementations(webView);    if (implementations->didFinishLoadingFromDataSourceFunc) {        if (id resource = [webView _objectForIdentifier:identifier])            CallResourceLoadDelegate(implementations->didFinishLoadingFromDataSourceFunc, webView, @selector(webView:resource:didFinishLoadingFromDataSource:), resource, dataSource(loader));    }    [webView _removeObjectForIdentifier:identifier];    static_cast<WebDocumentLoaderMac*>(loader)->decreaseLoadCount(identifier);}void WebFrameLoaderClient::dispatchDidFailLoading(DocumentLoader* loader, unsigned long identifier, const ResourceError& error){    WebView *webView = getWebView(m_webFrame.get());    WebResourceDelegateImplementationCache* implementations = WebViewGetResourceLoadDelegateImplementations(webView);    if (implementations->didFailLoadingWithErrorFromDataSourceFunc) {        if (id resource = [webView _objectForIdentifier:identifier])            CallResourceLoadDelegate(implementations->didFailLoadingWithErrorFromDataSourceFunc, webView, @selector(webView:resource:didFailLoadingWithError:fromDataSource:), resource, (NSError *)error, dataSource(loader));    }    [webView _removeObjectForIdentifier:identifier];    static_cast<WebDocumentLoaderMac*>(loader)->decreaseLoadCount(identifier);}void WebFrameLoaderClient::dispatchDidHandleOnloadEvents(){    WebView *webView = getWebView(m_webFrame.get());    WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->didHandleOnloadEventsForFrameFunc)        CallFrameLoadDelegate(implementations->didHandleOnloadEventsForFrameFunc, webView, @selector(webView:didHandleOnloadEventsForFrame:), m_webFrame.get());}void WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad(){    WebView *webView = getWebView(m_webFrame.get());    WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->didReceiveServerRedirectForProvisionalLoadForFrameFunc)        CallFrameLoadDelegate(implementations->didReceiveServerRedirectForProvisionalLoadForFrameFunc, webView, @selector(webView:didReceiveServerRedirectForProvisionalLoadForFrame:), m_webFrame.get());}void WebFrameLoaderClient::dispatchDidCancelClientRedirect(){    WebView *webView = getWebView(m_webFrame.get());    WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->didCancelClientRedirectForFrameFunc)        CallFrameLoadDelegate(implementations->didCancelClientRedirectForFrameFunc, webView, @selector(webView:didCancelClientRedirectForFrame:), m_webFrame.get());}void WebFrameLoaderClient::dispatchWillPerformClientRedirect(const KURL& url, double delay, double fireDate){    WebView *webView = getWebView(m_webFrame.get());    WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->willPerformClientRedirectToURLDelayFireDateForFrameFunc) {        NSURL *cocoaURL = url;        CallFrameLoadDelegate(implementations->willPerformClientRedirectToURLDelayFireDateForFrameFunc, webView, @selector(webView:willPerformClientRedirectToURL:delay:fireDate:forFrame:), cocoaURL, delay, [NSDate dateWithTimeIntervalSince1970:fireDate], m_webFrame.get());    }}void WebFrameLoaderClient::dispatchDidChangeLocationWithinPage(){    WebView *webView = getWebView(m_webFrame.get());    WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->didChangeLocationWithinPageForFrameFunc)        CallFrameLoadDelegate(implementations->didChangeLocationWithinPageForFrameFunc, webView, @selector(webView:didChangeLocationWithinPageForFrame:), m_webFrame.get());}void WebFrameLoaderClient::dispatchWillClose(){    WebView *webView = getWebView(m_webFrame.get());       WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->willCloseFrameFunc)        CallFrameLoadDelegate(implementations->willCloseFrameFunc, webView, @selector(webView:willCloseFrame:), m_webFrame.get());}void WebFrameLoaderClient::dispatchDidReceiveIcon(){    WebView *webView = getWebView(m_webFrame.get());       ASSERT(m_webFrame == [webView mainFrame]);    [webView _dispatchDidReceiveIconFromWebFrame:m_webFrame.get()];}void WebFrameLoaderClient::dispatchDidStartProvisionalLoad(){    WebView *webView = getWebView(m_webFrame.get());       [webView _didStartProvisionalLoadForFrame:m_webFrame.get()];    WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->didStartProvisionalLoadForFrameFunc)        CallFrameLoadDelegate(implementations->didStartProvisionalLoadForFrameFunc, webView, @selector(webView:didStartProvisionalLoadForFrame:), m_webFrame.get());}void WebFrameLoaderClient::dispatchDidReceiveTitle(const String& title){    WebView *webView = getWebView(m_webFrame.get());       WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->didReceiveTitleForFrameFunc)        CallFrameLoadDelegate(implementations->didReceiveTitleForFrameFunc, webView, @selector(webView:didReceiveTitle:forFrame:), (NSString *)title, m_webFrame.get());}void WebFrameLoaderClient::dispatchDidCommitLoad(){    // Tell the client we've committed this URL.    ASSERT([m_webFrame->_private->webFrameView documentView] != nil || ![getWebView(m_webFrame.get()) _usesDocumentViews]);        WebView *webView = getWebView(m_webFrame.get());       [webView _didCommitLoadForFrame:m_webFrame.get()];    WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->didCommitLoadForFrameFunc)        CallFrameLoadDelegate(implementations->didCommitLoadForFrameFunc, webView, @selector(webView:didCommitLoadForFrame:), m_webFrame.get());}void WebFrameLoaderClient::dispatchDidFailProvisionalLoad(const ResourceError& error){    WebView *webView = getWebView(m_webFrame.get());       [webView _didFailProvisionalLoadWithError:error forFrame:m_webFrame.get()];    WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->didFailProvisionalLoadWithErrorForFrameFunc)        CallFrameLoadDelegate(implementations->didFailProvisionalLoadWithErrorForFrameFunc, webView, @selector(webView:didFailProvisionalLoadWithError:forFrame:), (NSError *)error, m_webFrame.get());    [m_webFrame->_private->internalLoadDelegate webFrame:m_webFrame.get() didFinishLoadWithError:error];}void WebFrameLoaderClient::dispatchDidFailLoad(const ResourceError& error){    WebView *webView = getWebView(m_webFrame.get());       [webView _didFailLoadWithError:error forFrame:m_webFrame.get()];    WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->didFailLoadWithErrorForFrameFunc)        CallFrameLoadDelegate(implementations->didFailLoadWithErrorForFrameFunc, webView, @selector(webView:didFailLoadWithError:forFrame:), (NSError *)error, m_webFrame.get());    [m_webFrame->_private->internalLoadDelegate webFrame:m_webFrame.get() didFinishLoadWithError:error];}void WebFrameLoaderClient::dispatchDidFinishDocumentLoad(){    WebView *webView = getWebView(m_webFrame.get());    WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->didFinishDocumentLoadForFrameFunc)        CallFrameLoadDelegate(implementations->didFinishDocumentLoadForFrameFunc, webView, @selector(webView:didFinishDocumentLoadForFrame:), m_webFrame.get());}void WebFrameLoaderClient::dispatchDidFinishLoad(){    WebView *webView = getWebView(m_webFrame.get());       [webView _didFinishLoadForFrame:m_webFrame.get()];    WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->didFinishLoadForFrameFunc)        CallFrameLoadDelegate(implementations->didFinishLoadForFrameFunc, webView, @selector(webView:didFinishLoadForFrame:), m_webFrame.get());    [m_webFrame->_private->internalLoadDelegate webFrame:m_webFrame.get() didFinishLoadWithError:nil];}void WebFrameLoaderClient::dispatchDidFirstLayout(){    WebView *webView = getWebView(m_webFrame.get());    WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->didFirstLayoutInFrameFunc)        CallFrameLoadDelegate(implementations->didFirstLayoutInFrameFunc, webView, @selector(webView:didFirstLayoutInFrame:), m_webFrame.get());}void WebFrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout(){    WebView *webView = getWebView(m_webFrame.get());    WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);    if (implementations->didFirstVisuallyNonEmptyLayoutInFrameFunc)        CallFrameLoadDelegate(implementations->didFirstVisuallyNonEmptyLayoutInFrameFunc, webView, @selector(webView:didFirstVisuallyNonEmptyLayoutInFrame:), m_webFrame.get());}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -