OLD | NEW |
---|---|
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 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
670 } | 670 } |
671 | 671 |
672 void ResourceFetcher::maybeNotifyInsecureContent(const Resource* resource) const | 672 void ResourceFetcher::maybeNotifyInsecureContent(const Resource* resource) const |
673 { | 673 { |
674 // As a side effect browser will be notified. | 674 // As a side effect browser will be notified. |
675 MixedContentChecker::shouldBlockFetch(frame(), | 675 MixedContentChecker::shouldBlockFetch(frame(), |
676 resource->lastResourceRequest(), | 676 resource->lastResourceRequest(), |
677 resource->lastResourceRequest().url()) ; | 677 resource->lastResourceRequest().url()) ; |
678 } | 678 } |
679 | 679 |
680 // Limit the number of URLs in m_validatedURLs to avoid memory bloat. | |
681 // http://crbug.com/52411 | |
682 static const int kMaxValidatedURLsSize = 10000; | |
PhistucK
2014/11/14 12:30:36
This seems like a lot to me (10,000 URLs, right?).
| |
683 | |
680 void ResourceFetcher::requestLoadStarted(Resource* resource, const FetchRequest& request, ResourceLoadStartType type) | 684 void ResourceFetcher::requestLoadStarted(Resource* resource, const FetchRequest& request, ResourceLoadStartType type) |
681 { | 685 { |
682 if (type == ResourceLoadingFromCache) | 686 if (type == ResourceLoadingFromCache) |
683 notifyLoadedFromMemoryCache(resource); | 687 notifyLoadedFromMemoryCache(resource); |
684 | 688 |
685 if (request.resourceRequest().url().protocolIsData() || (m_documentLoader && m_documentLoader->substituteData().isValid())) | 689 if (request.resourceRequest().url().protocolIsData() || (m_documentLoader && m_documentLoader->substituteData().isValid())) |
686 return; | 690 return; |
687 | 691 |
688 if (type == ResourceLoadingFromCache && !resource->stillNeedsLoad() && !m_va lidatedURLs.contains(request.resourceRequest().url())) { | 692 if (type == ResourceLoadingFromCache && !resource->stillNeedsLoad() && !m_va lidatedURLs.contains(request.resourceRequest().url())) { |
689 // Resources loaded from memory cache should be reported the first time they're used. | 693 // Resources loaded from memory cache should be reported the first time they're used. |
690 RefPtr<ResourceTimingInfo> info = ResourceTimingInfo::create(request.opt ions().initiatorInfo.name, monotonicallyIncreasingTime()); | 694 RefPtr<ResourceTimingInfo> info = ResourceTimingInfo::create(request.opt ions().initiatorInfo.name, monotonicallyIncreasingTime()); |
691 populateResourceTiming(info.get(), resource, true); | 695 populateResourceTiming(info.get(), resource, true); |
692 m_scheduledResourceTimingReports.add(info, resource->type() == Resource: :MainResource); | 696 m_scheduledResourceTimingReports.add(info, resource->type() == Resource: :MainResource); |
693 if (!m_resourceTimingReportTimer.isActive()) | 697 if (!m_resourceTimingReportTimer.isActive()) |
694 m_resourceTimingReportTimer.startOneShot(0, FROM_HERE); | 698 m_resourceTimingReportTimer.startOneShot(0, FROM_HERE); |
695 } | 699 } |
696 | 700 |
701 if (m_validatedURLs.size() >= kMaxValidatedURLsSize) { | |
702 m_validatedURLs.clear(); | |
703 } | |
697 m_validatedURLs.add(request.resourceRequest().url()); | 704 m_validatedURLs.add(request.resourceRequest().url()); |
698 } | 705 } |
699 | 706 |
700 ResourcePtr<Resource> ResourceFetcher::requestResource(Resource::Type type, Fetc hRequest& request) | 707 ResourcePtr<Resource> ResourceFetcher::requestResource(Resource::Type type, Fetc hRequest& request) |
701 { | 708 { |
702 ASSERT(request.options().synchronousPolicy == RequestAsynchronously || type == Resource::Raw); | 709 ASSERT(request.options().synchronousPolicy == RequestAsynchronously || type == Resource::Raw); |
703 | 710 |
704 TRACE_EVENT0("blink", "ResourceFetcher::requestResource"); | 711 TRACE_EVENT0("blink", "ResourceFetcher::requestResource"); |
705 | 712 |
706 KURL url = request.resourceRequest().url(); | 713 KURL url = request.resourceRequest().url(); |
(...skipping 858 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1565 | 1572 |
1566 void ResourceFetcher::trace(Visitor* visitor) | 1573 void ResourceFetcher::trace(Visitor* visitor) |
1567 { | 1574 { |
1568 visitor->trace(m_document); | 1575 visitor->trace(m_document); |
1569 visitor->trace(m_loaders); | 1576 visitor->trace(m_loaders); |
1570 visitor->trace(m_multipartLoaders); | 1577 visitor->trace(m_multipartLoaders); |
1571 ResourceLoaderHost::trace(visitor); | 1578 ResourceLoaderHost::trace(visitor); |
1572 } | 1579 } |
1573 | 1580 |
1574 } | 1581 } |
OLD | NEW |