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

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

Issue 314423004: Handle main resource preload request better (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 6 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 656 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 m_resourceTimingReportTimer.startOneShot(0, FROM_HERE); 667 m_resourceTimingReportTimer.startOneShot(0, FROM_HERE);
668 } 668 }
669 669
670 m_validatedURLs.add(request.resourceRequest().url()); 670 m_validatedURLs.add(request.resourceRequest().url());
671 } 671 }
672 672
673 ResourcePtr<Resource> ResourceFetcher::requestResource(Resource::Type type, Fetc hRequest& request) 673 ResourcePtr<Resource> ResourceFetcher::requestResource(Resource::Type type, Fetc hRequest& request)
674 { 674 {
675 ASSERT(request.options().synchronousPolicy == RequestAsynchronously || type == Resource::Raw); 675 ASSERT(request.options().synchronousPolicy == RequestAsynchronously || type == Resource::Raw);
676 676
677 // If loading main resource ensure main resources aren't preloaded.
678 if (type == Resource::MainResource && request.forPreload()) {
Nate Chapin 2014/06/06 23:00:01 Ok. What if we move both this and the old code blo
679 return 0;
680 }
681
677 TRACE_EVENT0("webkit", "ResourceFetcher::requestResource"); 682 TRACE_EVENT0("webkit", "ResourceFetcher::requestResource");
678 683
679 KURL url = request.resourceRequest().url(); 684 KURL url = request.resourceRequest().url();
680 685
681 WTF_LOG(ResourceLoading, "ResourceFetcher::requestResource '%s', charset '%s ', priority=%d, forPreload=%u, type=%s", url.elidedString().latin1().data(), req uest.charset().latin1().data(), request.priority(), request.forPreload(), Resour ceTypeName(type)); 686 WTF_LOG(ResourceLoading, "ResourceFetcher::requestResource '%s', charset '%s ', priority=%d, forPreload=%u, type=%s", url.elidedString().latin1().data(), req uest.charset().latin1().data(), request.priority(), request.forPreload(), Resour ceTypeName(type));
682 687
683 // If only the fragment identifiers differ, it is the same resource. 688 // If only the fragment identifiers differ, it is the same resource.
684 url = MemoryCache::removeFragmentIdentifierIfNeeded(url); 689 url = MemoryCache::removeFragmentIdentifierIfNeeded(url);
685 690
686 if (!url.isValid()) 691 if (!url.isValid())
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 memoryCache()->remove(resource.get()); 754 memoryCache()->remove(resource.get());
750 return request.options().synchronousPolicy == RequestSynchronously ? resource : 0; 755 return request.options().synchronousPolicy == RequestSynchronously ? resource : 0;
751 } 756 }
752 } 757 }
753 758
754 // FIXME: Temporarily leave main resource caching disabled for chromium, 759 // FIXME: Temporarily leave main resource caching disabled for chromium,
755 // see https://bugs.webkit.org/show_bug.cgi?id=107962. Before caching main 760 // see https://bugs.webkit.org/show_bug.cgi?id=107962. Before caching main
756 // resources, we should be sure to understand the implications for memory 761 // resources, we should be sure to understand the implications for memory
757 // use. 762 // use.
758 // 763 //
759 // Ensure main resources aren't preloaded, and other main resource loads 764 // Main resource loads are removed from cache to prevent reuse.
760 // are removed from cache to prevent reuse.
761 if (type == Resource::MainResource) { 765 if (type == Resource::MainResource) {
762 ASSERT(policy != Use || m_documentLoader->substituteData().isValid()); 766 ASSERT(policy != Use || m_documentLoader->substituteData().isValid());
763 ASSERT(policy != Revalidate); 767 ASSERT(policy != Revalidate);
764 memoryCache()->remove(resource.get()); 768 memoryCache()->remove(resource.get());
765 if (request.forPreload())
766 return 0;
767 } 769 }
768 770
769 requestLoadStarted(resource.get(), request, policy == Use ? ResourceLoadingF romCache : ResourceLoadingFromNetwork); 771 requestLoadStarted(resource.get(), request, policy == Use ? ResourceLoadingF romCache : ResourceLoadingFromNetwork);
770 772
771 ASSERT(resource->url() == url.string()); 773 ASSERT(resource->url() == url.string());
772 m_documentResources.set(resource->url(), resource); 774 m_documentResources.set(resource->url(), resource);
773 return resource; 775 return resource;
774 } 776 }
775 777
776 void ResourceFetcher::resourceTimingReportTimerFired(Timer<ResourceFetcher>* tim er) 778 void ResourceFetcher::resourceTimingReportTimerFired(Timer<ResourceFetcher>* tim er)
(...skipping 715 matching lines...) Expand 10 before | Expand all | Expand 10 after
1492 } 1494 }
1493 } 1495 }
1494 1496
1495 void ResourceFetcher::trace(Visitor* visitor) 1497 void ResourceFetcher::trace(Visitor* visitor)
1496 { 1498 {
1497 visitor->trace(m_document); 1499 visitor->trace(m_document);
1498 ResourceLoaderHost::trace(visitor); 1500 ResourceLoaderHost::trace(visitor);
1499 } 1501 }
1500 1502
1501 } 1503 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698