summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chromium/third_party/WebKit/Source/core/frame/LocalFrame.h4
-rw-r--r--chromium/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp2
-rw-r--r--chromium/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp10
3 files changed, 9 insertions, 7 deletions
diff --git a/chromium/third_party/WebKit/Source/core/frame/LocalFrame.h b/chromium/third_party/WebKit/Source/core/frame/LocalFrame.h
index 72018c71f8a..52d9f9ab413 100644
--- a/chromium/third_party/WebKit/Source/core/frame/LocalFrame.h
+++ b/chromium/third_party/WebKit/Source/core/frame/LocalFrame.h
@@ -300,8 +300,8 @@ class CORE_EXPORT LocalFrame final : public Frame,
bool should_send_resource_timing_info_to_parent() const {
return should_send_resource_timing_info_to_parent_;
}
- void DidSendResourceTimingInfoToParent() {
- should_send_resource_timing_info_to_parent_ = false;
+ void SetShouldSendResourceTimingInfoToParent(bool value) {
+ should_send_resource_timing_info_to_parent_ = value;
}
void SetIsProvisional(bool is_provisional) {
diff --git a/chromium/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp b/chromium/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp
index a25fc1f45a1..d1a25df5153 100644
--- a/chromium/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp
+++ b/chromium/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp
@@ -2186,7 +2186,7 @@ void WebLocalFrameImpl::SetCommittedFirstRealLoad() {
DCHECK(GetFrame());
GetFrame()->Loader().StateMachine()->AdvanceTo(
FrameLoaderStateMachine::kCommittedMultipleRealLoads);
- GetFrame()->DidSendResourceTimingInfoToParent();
+ GetFrame()->SetShouldSendResourceTimingInfoToParent(false);
}
void WebLocalFrameImpl::SetHasReceivedUserGesture() {
diff --git a/chromium/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp b/chromium/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
index 5b25946840a..4e48c2d504c 100644
--- a/chromium/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
+++ b/chromium/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
@@ -729,7 +729,7 @@ void FrameFetchContext::AddResourceTiming(const ResourceTimingInfo& info) {
// Main resource timing information is reported through the owner to be
// passed to the parent frame, if appropriate.
frame->Owner()->AddResourceTiming(info);
- frame->DidSendResourceTimingInfoToParent();
+ frame->SetShouldSendResourceTimingInfoToParent(false);
return;
}
@@ -817,10 +817,12 @@ bool FrameFetchContext::UpdateTimingInfoForIFrameNavigation(
// when crossing process boundaries.
if (!GetFrame()->should_send_resource_timing_info_to_parent())
return false;
- // Do not report iframe navigation that restored from history, since its
- // location may have been changed after initial navigation.
- if (MasterDocumentLoader()->LoadType() == kFrameLoadTypeInitialHistoryLoad)
+ // location may have been changed after initial navigation,
+ if (MasterDocumentLoader()->LoadType() == WebFrameLoadType::kBackForward) {
+ // ...and do not report subsequent navigations in the iframe too.
+ GetFrame()->SetShouldSendResourceTimingInfoToParent(false);
return false;
+ }
return true;
}