summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/inspector/network_resources_data.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/inspector/network_resources_data.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/inspector/network_resources_data.cc17
1 files changed, 15 insertions, 2 deletions
diff --git a/chromium/third_party/blink/renderer/core/inspector/network_resources_data.cc b/chromium/third_party/blink/renderer/core/inspector/network_resources_data.cc
index fbbb16aa534..99b030ac6be 100644
--- a/chromium/third_party/blink/renderer/core/inspector/network_resources_data.cc
+++ b/chromium/third_party/blink/renderer/core/inspector/network_resources_data.cc
@@ -75,7 +75,7 @@ NetworkResourcesData::ResourceData::ResourceData(
pending_encoded_data_length_(0),
cached_resource_(nullptr) {}
-void NetworkResourcesData::ResourceData::Trace(Visitor* visitor) {
+void NetworkResourcesData::ResourceData::Trace(Visitor* visitor) const {
visitor->Trace(network_resources_data_);
visitor->Trace(xhr_replay_data_);
visitor->template RegisterWeakCallbackMethod<
@@ -121,6 +121,8 @@ size_t NetworkResourcesData::ResourceData::EvictContent() {
void NetworkResourcesData::ResourceData::SetResource(
const Resource* cached_resource) {
cached_resource_ = cached_resource;
+ if (cached_resource && cached_resource->GetType() == ResourceType::kFont)
+ ToFontResource(cached_resource)->AddClearDataObserver(this);
}
void NetworkResourcesData::ResourceData::ProcessCustomWeakness(
@@ -148,6 +150,17 @@ void NetworkResourcesData::ResourceData::ProcessCustomWeakness(
cached_resource_ = nullptr;
}
+void NetworkResourcesData::ResourceData::FontResourceDataWillBeCleared() {
+ if (cached_resource_->ResourceBuffer()) {
+ // Save the cached resource before its data becomes unavailable.
+ network_resources_data_->MaybeAddResourceData(
+ RequestId(), cached_resource_->ResourceBuffer());
+ }
+ // There is no point tracking the resource anymore.
+ cached_resource_ = nullptr;
+ network_resources_data_->MaybeDecodeDataToContent(RequestId());
+}
+
uint64_t NetworkResourcesData::ResourceData::DataLength() const {
uint64_t data_length = 0;
if (data_buffer_)
@@ -189,7 +202,7 @@ NetworkResourcesData::NetworkResourcesData(size_t total_buffer_size,
NetworkResourcesData::~NetworkResourcesData() = default;
-void NetworkResourcesData::Trace(Visitor* visitor) {
+void NetworkResourcesData::Trace(Visitor* visitor) const {
visitor->Trace(request_id_to_resource_data_map_);
}