Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index c4d1fed43c0b6e7735893f698168704399cd6f7c..10e2831fb3c4691c50c43bd4631be13b03c5306e 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -2762,11 +2762,19 @@ void RenderViewImpl::didFailResourceLoad( |
void RenderViewImpl::didLoadResourceFromMemoryCache( |
WebFrame* frame, const WebURLRequest& request, |
const WebURLResponse& response) { |
+ // The recipients of this message have no use for data: URLs: they don't |
+ // affect the page's insecure content list and are not in the disk cache. To |
+ // prevent large (1M+) data: URLs from crashing in the IPC system, we simply |
+ // filter them out here. |
+ GURL url(request.url()); |
+ if (url.SchemeIs("data")) |
+ return; |
+ |
// Let the browser know we loaded a resource from the memory cache. This |
// message is needed to display the correct SSL indicators. |
Send(new ViewHostMsg_DidLoadResourceFromMemoryCache( |
routing_id_, |
- request.url(), |
+ url, |
response.securityInfo(), |
request.httpMethod().utf8(), |
ResourceType::FromTargetType(request.targetType()))); |