Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(129)

Unified Diff: cc/surfaces/compositor_frame_sink_support.cc

Issue 2683953004: Revert of Move surface reference code to CompositorFrameSinkSupport. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/surfaces/compositor_frame_sink_support.h ('k') | cc/surfaces/referenced_surface_tracker.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/surfaces/compositor_frame_sink_support.cc
diff --git a/cc/surfaces/compositor_frame_sink_support.cc b/cc/surfaces/compositor_frame_sink_support.cc
index 68c69a8c9cc36cc2d7f941b4bc1d32f4879e84b8..95d7f096966c445dec3a96bb8e45f8375c2aba94 100644
--- a/cc/surfaces/compositor_frame_sink_support.cc
+++ b/cc/surfaces/compositor_frame_sink_support.cc
@@ -3,10 +3,6 @@
// found in the LICENSE file.
#include "cc/surfaces/compositor_frame_sink_support.h"
-
-#include <algorithm>
-#include <utility>
-#include <vector>
#include "cc/output/compositor_frame.h"
#include "cc/scheduler/begin_frame_source.h"
@@ -14,7 +10,6 @@
#include "cc/surfaces/display.h"
#include "cc/surfaces/surface.h"
#include "cc/surfaces/surface_manager.h"
-#include "cc/surfaces/surface_reference.h"
namespace cc {
@@ -31,7 +26,6 @@
display_(display),
surface_factory_(frame_sink_id_, surface_manager_, this),
handles_frame_sink_id_invalidation_(handles_frame_sink_id_invalidation),
- reference_tracker_(frame_sink_id),
weak_factory_(this) {
if (handles_frame_sink_id_invalidation_)
surface_manager_->RegisterFrameSinkId(frame_sink_id_);
@@ -47,12 +41,6 @@
// Unregister |this| as a BeginFrameObserver so that the BeginFrameSource does
// not call into |this| after it's deleted.
SetNeedsBeginFrame(false);
-
- // For display root surfaces, the surface is no longer going to be visible
- // so make it unreachable from the top-level root.
- if (surface_manager_->using_surface_references() && display_ &&
- reference_tracker_.current_surface_id().is_valid())
- RemoveTopLevelRootReference(reference_tracker_.current_surface_id());
for (auto& child_frame_sink_id : child_frame_sinks_) {
DCHECK(child_frame_sink_id.is_valid());
@@ -85,27 +73,10 @@
display_->SetLocalSurfaceId(local_surface_id,
frame.metadata.device_scale_factor);
}
-
- if (surface_manager_->using_surface_references()) {
- SurfaceId last_surface_id = reference_tracker_.current_surface_id();
-
- // Populate surface references to add/remove based on reference surfaces in
- // current frame compared with the last frame.
- reference_tracker_.UpdateReferences(local_surface_id,
- frame.metadata.referenced_surfaces);
-
- surface_factory_.SubmitCompositorFrame(
- local_surface_id, std::move(frame),
- base::Bind(&CompositorFrameSinkSupport::DidReceiveCompositorFrameAck,
- weak_factory_.GetWeakPtr()));
-
- UpdateSurfaceReferences(last_surface_id, local_surface_id);
- } else {
- surface_factory_.SubmitCompositorFrame(
- local_surface_id, std::move(frame),
- base::Bind(&CompositorFrameSinkSupport::DidReceiveCompositorFrameAck,
- weak_factory_.GetWeakPtr()));
- }
+ surface_factory_.SubmitCompositorFrame(
+ local_surface_id, std::move(frame),
+ base::Bind(&CompositorFrameSinkSupport::DidReceiveCompositorFrameAck,
+ weak_factory_.GetWeakPtr()));
}
void CompositorFrameSinkSupport::Require(const LocalSurfaceId& local_surface_id,
@@ -116,51 +87,6 @@
void CompositorFrameSinkSupport::Satisfy(const SurfaceSequence& sequence) {
surface_manager_->SatisfySequence(sequence);
-}
-
-void CompositorFrameSinkSupport::UpdateSurfaceReferences(
- const SurfaceId& last_surface_id,
- const LocalSurfaceId& local_surface_id) {
- const bool surface_id_changed =
- last_surface_id.local_surface_id() != local_surface_id;
-
- // If this is a display root surface and the SurfaceId is changing, make the
- // new SurfaceId reachable from the top-level root.
- if (display_ && surface_id_changed)
- AddTopLevelRootReference(reference_tracker_.current_surface_id());
-
- // Add references based on CompositorFrame referenced surfaces. If the
- // SurfaceId has changed all referenced surfaces will be in this list.
- if (!reference_tracker_.references_to_add().empty()) {
- surface_manager_->AddSurfaceReferences(
- reference_tracker_.references_to_add());
- }
-
- // If this is a display root surface and the SurfaceId is changing, make the
- // old SurfaceId unreachable from the top-level root. This needs to happen
- // after adding all references for the new SurfaceId.
- if (display_ && surface_id_changed && last_surface_id.is_valid())
- RemoveTopLevelRootReference(last_surface_id);
-
- // Remove references based on CompositorFrame referenced surfaces. If the
- // SurfaceId has changed this list will be empty.
- if (!reference_tracker_.references_to_remove().empty()) {
- DCHECK(!surface_id_changed);
- surface_manager_->RemoveSurfaceReferences(
- reference_tracker_.references_to_remove());
- }
-}
-
-void CompositorFrameSinkSupport::AddTopLevelRootReference(
- const SurfaceId& surface_id) {
- SurfaceReference reference(surface_manager_->GetRootSurfaceId(), surface_id);
- surface_manager_->AddSurfaceReferences({reference});
-}
-
-void CompositorFrameSinkSupport::RemoveTopLevelRootReference(
- const SurfaceId& surface_id) {
- SurfaceReference reference(surface_manager_->GetRootSurfaceId(), surface_id);
- surface_manager_->RemoveSurfaceReferences({reference});
}
void CompositorFrameSinkSupport::DidReceiveCompositorFrameAck() {
« no previous file with comments | « cc/surfaces/compositor_frame_sink_support.h ('k') | cc/surfaces/referenced_surface_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698