Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(261)

Side by Side Diff: Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp

Issue 14264012: Create errors (especially cancellation errors) internally to WebCore, rather (Closed) Base URL: svn://svn.chromium.org/blink/trunk/
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2009, 2012 Google Inc. All rights reserved.
3 * Copyright (C) 2011 Apple Inc. All rights reserved. 3 * Copyright (C) 2011 Apple Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after
737 void FrameLoaderClientImpl::dispatchDidFailProvisionalLoad( 737 void FrameLoaderClientImpl::dispatchDidFailProvisionalLoad(
738 const ResourceError& error) 738 const ResourceError& error)
739 { 739 {
740 740
741 // If a policy change occured, then we do not want to inform the plugin 741 // If a policy change occured, then we do not want to inform the plugin
742 // delegate. See http://b/907789 for details. FIXME: This means the 742 // delegate. See http://b/907789 for details. FIXME: This means the
743 // plugin won't receive NPP_URLNotify, which seems like it could result in 743 // plugin won't receive NPP_URLNotify, which seems like it could result in
744 // a memory leak in the plugin!! 744 // a memory leak in the plugin!!
745 if (error.domain() == internalErrorDomain 745 if (error.domain() == internalErrorDomain
746 && error.errorCode() == PolicyChangeError) { 746 && error.errorCode() == PolicyChangeError) {
747 m_webFrame->didFail(cancelledError(error.failingURL()), true); 747 m_webFrame->didFail(ResourceError::cancelledError(error.failingURL()), t rue);
748 return; 748 return;
749 } 749 }
750 750
751 OwnPtr<WebPluginLoadObserver> observer = pluginLoadObserver(); 751 OwnPtr<WebPluginLoadObserver> observer = pluginLoadObserver();
752 m_webFrame->didFail(error, true); 752 m_webFrame->didFail(error, true);
753 if (observer) 753 if (observer)
754 observer->didFailLoading(error); 754 observer->didFailLoading(error);
755 } 755 }
756 756
757 void FrameLoaderClientImpl::dispatchDidFailLoad(const ResourceError& error) 757 void FrameLoaderClientImpl::dispatchDidFailLoad(const ResourceError& error)
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
887 return PolicyDownload; 887 return PolicyDownload;
888 else if (navigationPolicy != WebNavigationPolicyIgnore) { 888 else if (navigationPolicy != WebNavigationPolicyIgnore) {
889 WrappedResourceRequest webreq(request); 889 WrappedResourceRequest webreq(request);
890 m_webFrame->client()->loadURLExternally(m_webFrame, webreq, navi gationPolicy); 890 m_webFrame->client()->loadURLExternally(m_webFrame, webreq, navi gationPolicy);
891 } 891 }
892 } 892 }
893 893
894 return PolicyIgnore; 894 return PolicyIgnore;
895 } 895 }
896 896
897 void FrameLoaderClientImpl::dispatchUnableToImplementPolicy(const ResourceError& error)
898 {
899 m_webFrame->client()->unableToImplementPolicyWithError(m_webFrame, error);
900 }
901
902 void FrameLoaderClientImpl::dispatchWillRequestResource(CachedResourceRequest* r equest) 897 void FrameLoaderClientImpl::dispatchWillRequestResource(CachedResourceRequest* r equest)
903 { 898 {
904 if (m_webFrame->client()) { 899 if (m_webFrame->client()) {
905 WebCachedURLRequest urlRequest(request); 900 WebCachedURLRequest urlRequest(request);
906 m_webFrame->client()->willRequestResource(m_webFrame, urlRequest); 901 m_webFrame->client()->willRequestResource(m_webFrame, urlRequest);
907 } 902 }
908 } 903 }
909 904
910 void FrameLoaderClientImpl::dispatchWillSendSubmitEvent(PassRefPtr<FormState> pr pFormState) 905 void FrameLoaderClientImpl::dispatchWillSendSubmitEvent(PassRefPtr<FormState> pr pFormState)
911 { 906 {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
975 bool preventDefault = false; 970 bool preventDefault = false;
976 m_webFrame->client()->didReceiveDocumentData(m_webFrame, data, lengt h, preventDefault); 971 m_webFrame->client()->didReceiveDocumentData(m_webFrame, data, lengt h, preventDefault);
977 if (!preventDefault) 972 if (!preventDefault)
978 m_webFrame->commitDocumentData(data, length); 973 m_webFrame->commitDocumentData(data, length);
979 } 974 }
980 } 975 }
981 976
982 // If we are sending data to MediaDocument, we should stop here 977 // If we are sending data to MediaDocument, we should stop here
983 // and cancel the request. 978 // and cancel the request.
984 if (m_webFrame->frame()->document()->isMediaDocument()) 979 if (m_webFrame->frame()->document()->isMediaDocument())
985 loader->cancelMainResourceLoad(pluginWillHandleLoadError(loader->respons e())); 980 loader->cancelMainResourceLoad(ResourceError::cancelledError(loader->res ponse().url()));
986 981
987 // The plugin widget could have been created in the m_webFrame->DidReceiveDa ta 982 // The plugin widget could have been created in the m_webFrame->DidReceiveDa ta
988 // function. 983 // function.
989 if (m_pluginWidget) { 984 if (m_pluginWidget) {
990 if (!m_sentInitialResponseToPlugin) { 985 if (!m_sentInitialResponseToPlugin) {
991 m_sentInitialResponseToPlugin = true; 986 m_sentInitialResponseToPlugin = true;
992 m_pluginWidget->didReceiveResponse( 987 m_pluginWidget->didReceiveResponse(
993 m_webFrame->frame()->loader()->activeDocumentLoader()->response( )); 988 m_webFrame->frame()->loader()->activeDocumentLoader()->response( ));
994 } 989 }
995 990
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1064 if (m_webFrame->client()) 1059 if (m_webFrame->client())
1065 m_webFrame->client()->didRunInsecureContent(m_webFrame, WebSecurityOrigi n(origin), insecureURL); 1060 m_webFrame->client()->didRunInsecureContent(m_webFrame, WebSecurityOrigi n(origin), insecureURL);
1066 } 1061 }
1067 1062
1068 void FrameLoaderClientImpl::didDetectXSS(const KURL& insecureURL, bool didBlockE ntirePage) 1063 void FrameLoaderClientImpl::didDetectXSS(const KURL& insecureURL, bool didBlockE ntirePage)
1069 { 1064 {
1070 if (m_webFrame->client()) 1065 if (m_webFrame->client())
1071 m_webFrame->client()->didDetectXSS(m_webFrame, insecureURL, didBlockEnti rePage); 1066 m_webFrame->client()->didDetectXSS(m_webFrame, insecureURL, didBlockEnti rePage);
1072 } 1067 }
1073 1068
1074 ResourceError FrameLoaderClientImpl::cancelledError(const ResourceRequest& reque st)
1075 {
1076 if (!m_webFrame->client())
1077 return ResourceError();
1078
1079 return m_webFrame->client()->cancelledError(
1080 m_webFrame, WrappedResourceRequest(request));
1081 }
1082
1083 ResourceError FrameLoaderClientImpl::cannotShowURLError(const ResourceRequest& r equest)
1084 {
1085 if (!m_webFrame->client())
1086 return ResourceError();
1087
1088 return m_webFrame->client()->cannotHandleRequestError(
1089 m_webFrame, WrappedResourceRequest(request));
1090 }
1091
1092 ResourceError FrameLoaderClientImpl::interruptedForPolicyChangeError( 1069 ResourceError FrameLoaderClientImpl::interruptedForPolicyChangeError(
1093 const ResourceRequest& request) 1070 const ResourceRequest& request)
1094 { 1071 {
1095 return ResourceError(internalErrorDomain, PolicyChangeError, 1072 return ResourceError(internalErrorDomain, PolicyChangeError,
1096 request.url().string(), String()); 1073 request.url().string(), String());
1097 } 1074 }
1098 1075
1099 ResourceError FrameLoaderClientImpl::cannotShowMIMETypeError(const ResourceRespo nse&)
1100 {
1101 // FIXME
1102 return ResourceError();
1103 }
1104
1105 ResourceError FrameLoaderClientImpl::fileDoesNotExistError(const ResourceRespons e&)
1106 {
1107 // FIXME
1108 return ResourceError();
1109 }
1110
1111 ResourceError FrameLoaderClientImpl::pluginWillHandleLoadError(const ResourceRes ponse&)
1112 {
1113 // FIXME
1114 return ResourceError();
1115 }
1116
1117 bool FrameLoaderClientImpl::shouldFallBack(const ResourceError& error)
1118 {
1119 // This method is called when we fail to load the URL for an <object> tag
1120 // that has fallback content (child elements) and is being loaded as a frame .
1121 // The error parameter indicates the reason for the load failure.
1122 // We should let the fallback content load only if this wasn't a cancelled
1123 // request.
1124 // Note: The mac version also has a case for "WebKitErrorPluginWillHandleLoa d"
1125 ResourceError c = cancelledError(ResourceRequest());
1126 return error.errorCode() != c.errorCode() || error.domain() != c.domain();
1127 }
1128
1129 bool FrameLoaderClientImpl::canHandleRequest(const ResourceRequest& request) con st
1130 {
1131 return m_webFrame->client()->canHandleRequest(
1132 m_webFrame, WrappedResourceRequest(request));
1133 }
1134
1135 bool FrameLoaderClientImpl::canShowMIMEType(const String& mimeType) const 1076 bool FrameLoaderClientImpl::canShowMIMEType(const String& mimeType) const
1136 { 1077 {
1137 // This method is called to determine if the media type can be shown 1078 // This method is called to determine if the media type can be shown
1138 // "internally" (i.e. inside the browser) regardless of whether or not the 1079 // "internally" (i.e. inside the browser) regardless of whether or not the
1139 // browser or a plugin is doing the rendering. 1080 // browser or a plugin is doing the rendering.
1140 1081
1141 // mimeType strings are supposed to be ASCII, but if they are not for some 1082 // mimeType strings are supposed to be ASCII, but if they are not for some
1142 // reason, then it just means that the mime type will fail all of these "is 1083 // reason, then it just means that the mime type will fail all of these "is
1143 // supported" checks and go down the path of an unhandled mime type. 1084 // supported" checks and go down the path of an unhandled mime type.
1144 if (WebKit::Platform::current()->mimeRegistry()->supportsMIMEType(mimeType) == WebMimeRegistry::IsSupported) 1085 if (WebKit::Platform::current()->mimeRegistry()->supportsMIMEType(mimeType) == WebMimeRegistry::IsSupported)
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
1411 m_webFrame->client()->didLoseWebGLContext(m_webFrame, arbRobustnessConte xtLostReason); 1352 m_webFrame->client()->didLoseWebGLContext(m_webFrame, arbRobustnessConte xtLostReason);
1412 } 1353 }
1413 1354
1414 void FrameLoaderClientImpl::dispatchWillInsertBody() 1355 void FrameLoaderClientImpl::dispatchWillInsertBody()
1415 { 1356 {
1416 if (m_webFrame->client()) 1357 if (m_webFrame->client())
1417 m_webFrame->client()->willInsertBody(m_webFrame); 1358 m_webFrame->client()->willInsertBody(m_webFrame);
1418 } 1359 }
1419 1360
1420 } // namespace WebKit 1361 } // namespace WebKit
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698