Index: third_party/WebKit/Source/core/frame/FrameView.cpp |
diff --git a/third_party/WebKit/Source/core/frame/FrameView.cpp b/third_party/WebKit/Source/core/frame/FrameView.cpp |
index 0a34de2ebdd1c72b5513d2132c2bb5ad3adfcc90..cdb5b772c181ee18279f8c8dd3178320bb7866de 100644 |
--- a/third_party/WebKit/Source/core/frame/FrameView.cpp |
+++ b/third_party/WebKit/Source/core/frame/FrameView.cpp |
@@ -607,8 +607,8 @@ CompositorAnimationHost* FrameView::GetCompositorAnimationHost() const { |
if (animation_host_) |
return animation_host_.get(); |
- if (frame_->LocalFrameRoot() != frame_) |
- return frame_->LocalFrameRoot()->View()->GetCompositorAnimationHost(); |
+ if (&frame_->LocalFrameRoot() != frame_) |
+ return frame_->LocalFrameRoot().View()->GetCompositorAnimationHost(); |
if (!frame_->IsMainFrame()) |
return nullptr; |
@@ -621,8 +621,8 @@ CompositorAnimationTimeline* FrameView::GetCompositorAnimationTimeline() const { |
if (animation_timeline_) |
return animation_timeline_.get(); |
- if (frame_->LocalFrameRoot() != frame_) |
- return frame_->LocalFrameRoot()->View()->GetCompositorAnimationTimeline(); |
+ if (&frame_->LocalFrameRoot() != frame_) |
+ return frame_->LocalFrameRoot().View()->GetCompositorAnimationTimeline(); |
if (!frame_->IsMainFrame()) |
return nullptr; |
@@ -2129,7 +2129,7 @@ void FrameView::UpdateCompositedSelectionIfNeeded() { |
// first check that the composited selection has been cleared even |
// though no frame has focus yet. If this is not desired, then the |
// expectation needs to be removed from the test. |
- local_frame = frame_->LocalFrameRoot(); |
+ local_frame = &frame_->LocalFrameRoot(); |
} |
if (local_frame) |
@@ -2568,7 +2568,7 @@ void FrameView::PerformPostLayoutTasks() { |
// if there are no RemoteFrame ancestors in the frame tree. Use of |
// localFrameRoot() is discouraged but will change when cursor update |
// scheduling is moved from EventHandler to PageEventHandler. |
- GetFrame().LocalFrameRoot()->GetEventHandler().ScheduleCursorUpdate(); |
+ GetFrame().LocalFrameRoot().GetEventHandler().ScheduleCursorUpdate(); |
UpdateGeometries(); |
@@ -2951,7 +2951,7 @@ void FrameView::UpdateGeometriesIfNeeded() { |
} |
void FrameView::UpdateAllLifecyclePhases() { |
- GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal( |
+ GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhasesInternal( |
DocumentLifecycle::kPaintClean); |
} |
@@ -2960,7 +2960,7 @@ void FrameView::UpdateLifecycleToCompositingCleanPlusScrolling() { |
if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { |
UpdateAllLifecyclePhasesExceptPaint(); |
} else { |
- GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal( |
+ GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhasesInternal( |
DocumentLifecycle::kCompositingClean); |
} |
} |
@@ -2969,28 +2969,28 @@ void FrameView::UpdateLifecycleToCompositingInputsClean() { |
// When SPv2 is enabled, the standard compositing lifecycle steps do not |
// exist; compositing is done after paint instead. |
DCHECK(!RuntimeEnabledFeatures::slimmingPaintV2Enabled()); |
- GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal( |
+ GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhasesInternal( |
DocumentLifecycle::kCompositingInputsClean); |
} |
void FrameView::UpdateAllLifecyclePhasesExceptPaint() { |
- GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal( |
+ GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhasesInternal( |
DocumentLifecycle::kPrePaintClean); |
} |
void FrameView::UpdateLifecycleToLayoutClean() { |
- GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal( |
+ GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhasesInternal( |
DocumentLifecycle::kLayoutClean); |
} |
void FrameView::ScheduleVisualUpdateForPaintInvalidationIfNeeded() { |
- LocalFrame* local_frame_root = GetFrame().LocalFrameRoot(); |
- if (local_frame_root->View()->current_update_lifecycle_phases_target_state_ < |
+ LocalFrame& local_frame_root = GetFrame().LocalFrameRoot(); |
+ if (local_frame_root.View()->current_update_lifecycle_phases_target_state_ < |
DocumentLifecycle::kPaintInvalidationClean || |
Lifecycle().GetState() >= DocumentLifecycle::kPrePaintClean) { |
// Schedule visual update to process the paint invalidation in the next |
// cycle. |
- local_frame_root->ScheduleVisualUpdateUnlessThrottled(); |
+ local_frame_root.ScheduleVisualUpdateUnlessThrottled(); |
} |
// Otherwise the paint invalidation will be handled in paint invalidation |
// phase of this cycle. |
@@ -3156,16 +3156,14 @@ void FrameView::UpdateLifecyclePhasesInternal( |
GetScrollingCoordinator()->UpdateAfterCompositingChangeIfNeeded(); |
} |
- if (LocalFrame* local_frame = frame_->LocalFrameRoot()) { |
- // This is needed since, at present, the ScrollingCoordinator doesn't |
- // send rects for oopif sub-frames. |
- // TODO(wjmaclean): Remove this pathway when ScrollingCoordinator |
- // operates on a per-frame basis. https://crbug.com/680606 |
- GetFrame() |
- .GetPage() |
- ->GetChromeClient() |
- .UpdateEventRectsForSubframeIfNecessary(local_frame); |
- } |
+ // This is needed since, at present, the ScrollingCoordinator doesn't |
+ // send rects for oopif sub-frames. |
+ // TODO(wjmaclean): Remove this pathway when ScrollingCoordinator |
+ // operates on a per-frame basis. https://crbug.com/680606 |
+ GetFrame() |
+ .GetPage() |
+ ->GetChromeClient() |
+ .UpdateEventRectsForSubframeIfNecessary(&frame_->LocalFrameRoot()); |
UpdateCompositedSelectionIfNeeded(); |
} |
@@ -3359,7 +3357,7 @@ std::unique_ptr<JSONObject> FrameView::CompositedLayersAsJSON( |
LayerTreeFlags flags) { |
return GetFrame() |
.LocalFrameRoot() |
- ->View() |
+ .View() |
->paint_artifact_compositor_->LayersAsJSON(flags); |
} |
@@ -3738,7 +3736,7 @@ void FrameView::SetTracksPaintInvalidations(bool track_paint_invalidations) { |
if (track_paint_invalidations == IsTrackingPaintInvalidations()) |
return; |
- for (Frame* frame = frame_->Tree().Top(); frame; |
+ for (Frame* frame = &frame_->Tree().Top(); frame; |
frame = frame->Tree().TraverseNext()) { |
if (!frame->IsLocalFrame()) |
continue; |
@@ -3780,7 +3778,7 @@ std::unique_ptr<JSONArray> FrameView::TrackedObjectPaintInvalidationsAsJSON() |
return nullptr; |
std::unique_ptr<JSONArray> result = JSONArray::Create(); |
- for (Frame* frame = frame_->Tree().Top(); frame; |
+ for (Frame* frame = &frame_->Tree().Top(); frame; |
frame = frame->Tree().TraverseNext()) { |
if (!frame->IsLocalFrame()) |
continue; |
@@ -5280,7 +5278,7 @@ MainThreadScrollingReasons FrameView::GetMainThreadScrollingReasons() const { |
// the main frame can't be used in the calculation, since they use |
// different compositors with unrelated state, which breaks some of the |
// calculations below. |
- if (frame_->LocalFrameRoot() != GetPage()->MainFrame()) |
+ if (&frame_->LocalFrameRoot() != GetPage()->MainFrame()) |
return reasons; |
// Walk the tree to the root. Use the gathered reasons to determine |
@@ -5357,7 +5355,7 @@ void FrameView::MapQuadToAncestorFrameIncludingScrollOffset( |
ancestor->GetFrame()->LocalFrameRoot() == GetFrame().LocalFrameRoot())) { |
FrameView* ancestor_view = |
(ancestor ? ancestor->GetFrameView() |
- : ToLocalFrame(GetFrame().Tree().Top())->View()); |
+ : ToLocalFrame(GetFrame().Tree().Top()).View()); |
LayoutSize scroll_position = LayoutSize(ancestor_view->GetScrollOffset()); |
rect.Move(-scroll_position); |
} |