| 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 | 5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All |
| 6 rights reserved. | 6 rights reserved. |
| 7 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ | 7 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ |
| 8 | 8 |
| 9 This library is free software; you can redistribute it and/or | 9 This library is free software; you can redistribute it and/or |
| 10 modify it under the terms of the GNU Library General Public | 10 modify it under the terms of the GNU Library General Public |
| (...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 615 if (resource->IsLinkPreload() && !params.IsLinkPreload()) | 615 if (resource->IsLinkPreload() && !params.IsLinkPreload()) |
| 616 resource->SetLinkPreload(false); | 616 resource->SetLinkPreload(false); |
| 617 break; | 617 break; |
| 618 } | 618 } |
| 619 if (!resource) | 619 if (!resource) |
| 620 return nullptr; | 620 return nullptr; |
| 621 | 621 |
| 622 // TODO(yoav): turn to a DCHECK. See https://crbug.com/690632 | 622 // TODO(yoav): turn to a DCHECK. See https://crbug.com/690632 |
| 623 CHECK_EQ(resource->GetType(), factory.GetType()); | 623 CHECK_EQ(resource->GetType(), factory.GetType()); |
| 624 | 624 |
| 625 if (!resource->IsAlive()) | |
| 626 dead_stats_recorder_.Update(policy); | |
| 627 | |
| 628 if (policy != kUse) | 625 if (policy != kUse) |
| 629 resource->SetIdentifier(identifier); | 626 resource->SetIdentifier(identifier); |
| 630 | 627 |
| 631 // TODO(yoav): It is not clear why preloads are exempt from this check. Can we | 628 // TODO(yoav): It is not clear why preloads are exempt from this check. Can we |
| 632 // remove the exemption? | 629 // remove the exemption? |
| 633 if (!params.IsSpeculativePreload() || policy != kUse) { | 630 if (!params.IsSpeculativePreload() || policy != kUse) { |
| 634 // When issuing another request for a resource that is already in-flight | 631 // When issuing another request for a resource that is already in-flight |
| 635 // make sure to not demote the priority of the in-flight request. If the new | 632 // make sure to not demote the priority of the in-flight request. If the new |
| 636 // request isn't at the same priority as the in-flight request, only allow | 633 // request isn't at the same priority as the in-flight request, only allow |
| 637 // promotions. This can happen when a visible image's priority is increased | 634 // promotions. This can happen when a visible image's priority is increased |
| (...skipping 891 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1529 ResourceRequest resource_request(url); | 1526 ResourceRequest resource_request(url); |
| 1530 resource_request.SetRequestContext(request_context); | 1527 resource_request.SetRequestContext(request_context); |
| 1531 FetchParameters params(resource_request, initiator_name, resource->Options()); | 1528 FetchParameters params(resource_request, initiator_name, resource->Options()); |
| 1532 Context().CanRequest(resource->GetType(), resource->LastResourceRequest(), | 1529 Context().CanRequest(resource->GetType(), resource->LastResourceRequest(), |
| 1533 resource->LastResourceRequest().Url(), params.Options(), | 1530 resource->LastResourceRequest().Url(), params.Options(), |
| 1534 SecurityViolationReportingPolicy::kReport, | 1531 SecurityViolationReportingPolicy::kReport, |
| 1535 params.GetOriginRestriction()); | 1532 params.GetOriginRestriction()); |
| 1536 RequestLoadStarted(resource->Identifier(), resource, params, kUse); | 1533 RequestLoadStarted(resource->Identifier(), resource, params, kUse); |
| 1537 } | 1534 } |
| 1538 | 1535 |
| 1539 ResourceFetcher::DeadResourceStatsRecorder::DeadResourceStatsRecorder() | |
| 1540 : use_count_(0), revalidate_count_(0), load_count_(0) {} | |
| 1541 | |
| 1542 ResourceFetcher::DeadResourceStatsRecorder::~DeadResourceStatsRecorder() { | |
| 1543 DEFINE_THREAD_SAFE_STATIC_LOCAL( | |
| 1544 CustomCountHistogram, hit_count_histogram, | |
| 1545 new CustomCountHistogram("WebCore.ResourceFetcher.HitCount", 0, 1000, | |
| 1546 50)); | |
| 1547 hit_count_histogram.Count(use_count_); | |
| 1548 DEFINE_THREAD_SAFE_STATIC_LOCAL( | |
| 1549 CustomCountHistogram, revalidate_count_histogram, | |
| 1550 new CustomCountHistogram("WebCore.ResourceFetcher.RevalidateCount", 0, | |
| 1551 1000, 50)); | |
| 1552 revalidate_count_histogram.Count(revalidate_count_); | |
| 1553 DEFINE_THREAD_SAFE_STATIC_LOCAL( | |
| 1554 CustomCountHistogram, load_count_histogram, | |
| 1555 new CustomCountHistogram("WebCore.ResourceFetcher.LoadCount", 0, 1000, | |
| 1556 50)); | |
| 1557 load_count_histogram.Count(load_count_); | |
| 1558 } | |
| 1559 | |
| 1560 void ResourceFetcher::DeadResourceStatsRecorder::Update( | |
| 1561 RevalidationPolicy policy) { | |
| 1562 switch (policy) { | |
| 1563 case kReload: | |
| 1564 case kLoad: | |
| 1565 ++load_count_; | |
| 1566 return; | |
| 1567 case kRevalidate: | |
| 1568 ++revalidate_count_; | |
| 1569 return; | |
| 1570 case kUse: | |
| 1571 ++use_count_; | |
| 1572 return; | |
| 1573 } | |
| 1574 } | |
| 1575 | |
| 1576 DEFINE_TRACE(ResourceFetcher) { | 1536 DEFINE_TRACE(ResourceFetcher) { |
| 1577 visitor->Trace(context_); | 1537 visitor->Trace(context_); |
| 1578 visitor->Trace(archive_); | 1538 visitor->Trace(archive_); |
| 1579 visitor->Trace(loaders_); | 1539 visitor->Trace(loaders_); |
| 1580 visitor->Trace(non_blocking_loaders_); | 1540 visitor->Trace(non_blocking_loaders_); |
| 1581 visitor->Trace(document_resources_); | 1541 visitor->Trace(document_resources_); |
| 1582 visitor->Trace(preloads_); | 1542 visitor->Trace(preloads_); |
| 1583 visitor->Trace(resource_timing_info_map_); | 1543 visitor->Trace(resource_timing_info_map_); |
| 1584 } | 1544 } |
| 1585 | 1545 |
| 1586 } // namespace blink | 1546 } // namespace blink |
| OLD | NEW |