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

Side by Side Diff: Source/core/fetch/ResourceFetcher.cpp

Issue 603903003: [Streams] Pass WebDataConsumerHandle when the response arrives. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@web-data-pipe
Patch Set: rebase Created 6 years, 1 month 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
OLDNEW
1 /* 1 /*
2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de)
3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) 3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org)
4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org)
5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
6 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ 6 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/
7 7
8 This library is free software; you can redistribute it and/or 8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Library General Public 9 modify it under the terms of the GNU Library General Public
10 License as published by the Free Software Foundation; either 10 License as published by the Free Software Foundation; either
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 163
164 blink::WebString mimetype; 164 blink::WebString mimetype;
165 blink::WebString charset; 165 blink::WebString charset;
166 RefPtr<SharedBuffer> data = PassRefPtr<SharedBuffer>(blink::Platform::curren t()->parseDataURL(url, mimetype, charset)); 166 RefPtr<SharedBuffer> data = PassRefPtr<SharedBuffer>(blink::Platform::curren t()->parseDataURL(url, mimetype, charset));
167 if (!data) 167 if (!data)
168 return nullptr; 168 return nullptr;
169 ResourceResponse response(url, mimetype, data->size(), charset, String()); 169 ResourceResponse response(url, mimetype, data->size(), charset, String());
170 170
171 Resource* resource = createResource(Resource::Image, request, charset); 171 Resource* resource = createResource(Resource::Image, request, charset);
172 resource->setOptions(resourceOptions); 172 resource->setOptions(resourceOptions);
173 resource->responseReceived(response); 173 // FIXME: We should provide a body stream here.
174 resource->responseReceived(response, nullptr);
174 if (data->size()) 175 if (data->size())
175 resource->setResourceBuffer(data); 176 resource->setResourceBuffer(data);
176 resource->finish(); 177 resource->finish();
177 return resource; 178 return resource;
178 } 179 }
179 180
180 static void populateResourceTiming(ResourceTimingInfo* info, Resource* resource, bool clearLoadTimings) 181 static void populateResourceTiming(ResourceTimingInfo* info, Resource* resource, bool clearLoadTimings)
181 { 182 {
182 info->setInitialRequest(resource->resourceRequest()); 183 info->setInitialRequest(resource->resourceRequest());
183 info->setFinalResponse(resource->response()); 184 info->setFinalResponse(resource->response());
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 { 427 {
427 const KURL& url = request.url(); 428 const KURL& url = request.url();
428 if (Resource* oldResource = memoryCache()->resourceForURL(url)) 429 if (Resource* oldResource = memoryCache()->resourceForURL(url))
429 memoryCache()->remove(oldResource); 430 memoryCache()->remove(oldResource);
430 431
431 ResourceResponse response(url, substituteData.mimeType(), substituteData.con tent()->size(), substituteData.textEncoding(), emptyString()); 432 ResourceResponse response(url, substituteData.mimeType(), substituteData.con tent()->size(), substituteData.textEncoding(), emptyString());
432 ResourcePtr<Resource> resource = createResource(Resource::MainResource, requ est.resourceRequest(), substituteData.textEncoding()); 433 ResourcePtr<Resource> resource = createResource(Resource::MainResource, requ est.resourceRequest(), substituteData.textEncoding());
433 resource->setNeedsSynchronousCacheHit(substituteData.forceSynchronousLoad()) ; 434 resource->setNeedsSynchronousCacheHit(substituteData.forceSynchronousLoad()) ;
434 resource->setOptions(request.options()); 435 resource->setOptions(request.options());
435 resource->setDataBufferingPolicy(BufferData); 436 resource->setDataBufferingPolicy(BufferData);
436 resource->responseReceived(response); 437 resource->responseReceived(response, nullptr);
437 if (substituteData.content()->size()) 438 if (substituteData.content()->size())
438 resource->setResourceBuffer(substituteData.content()); 439 resource->setResourceBuffer(substituteData.content());
439 resource->finish(); 440 resource->finish();
440 memoryCache()->add(resource.get()); 441 memoryCache()->add(resource.get());
441 } 442 }
442 443
443 bool ResourceFetcher::canRequest(Resource::Type type, const ResourceRequest& res ourceRequest, const KURL& url, const ResourceLoaderOptions& options, bool forPre load, FetchRequest::OriginRestriction originRestriction) const 444 bool ResourceFetcher::canRequest(Resource::Type type, const ResourceRequest& res ourceRequest, const KURL& url, const ResourceLoaderOptions& options, bool forPre load, FetchRequest::OriginRestriction originRestriction) const
444 { 445 {
445 SecurityOrigin* securityOrigin = options.securityOrigin.get(); 446 SecurityOrigin* securityOrigin = options.securityOrigin.get();
446 if (!securityOrigin && document()) 447 if (!securityOrigin && document())
(...skipping 1097 matching lines...) Expand 10 before | Expand all | Expand 10 after
1544 1545
1545 void ResourceFetcher::trace(Visitor* visitor) 1546 void ResourceFetcher::trace(Visitor* visitor)
1546 { 1547 {
1547 visitor->trace(m_document); 1548 visitor->trace(m_document);
1548 visitor->trace(m_loaders); 1549 visitor->trace(m_loaders);
1549 visitor->trace(m_multipartLoaders); 1550 visitor->trace(m_multipartLoaders);
1550 ResourceLoaderHost::trace(visitor); 1551 ResourceLoaderHost::trace(visitor);
1551 } 1552 }
1552 1553
1553 } 1554 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698