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

Unified Diff: blimp/client/core/compositor/blimp_compositor.h

Issue 2624903006: Remove all blimp client code. (Closed)
Patch Set: Update buildbot configuration Created 3 years, 11 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
Index: blimp/client/core/compositor/blimp_compositor.h
diff --git a/blimp/client/core/compositor/blimp_compositor.h b/blimp/client/core/compositor/blimp_compositor.h
deleted file mode 100644
index 2ce0e29a983f9d2d267511c2be86da3df9a9292d..0000000000000000000000000000000000000000
--- a/blimp/client/core/compositor/blimp_compositor.h
+++ /dev/null
@@ -1,242 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef BLIMP_CLIENT_CORE_COMPOSITOR_BLIMP_COMPOSITOR_H_
-#define BLIMP_CLIENT_CORE_COMPOSITOR_BLIMP_COMPOSITOR_H_
-
-#include <content/public/renderer/remote_proto_channel.h>
-#include <memory>
-#include <vector>
-
-#include "base/macros.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#include "blimp/client/core/compositor/blimp_compositor_frame_sink_proxy.h"
-#include "blimp/client/public/compositor/compositor_dependencies.h"
-#include "cc/blimp/compositor_state_deserializer.h"
-#include "cc/surfaces/surface_factory_client.h"
-#include "cc/trees/layer_tree_host.h"
-#include "cc/trees/layer_tree_host_client.h"
-#include "cc/trees/layer_tree_settings.h"
-#include "ui/gfx/geometry/size.h"
-#include "ui/gfx/native_widget_types.h"
-
-namespace cc {
-class AnimationHost;
-class InputHandler;
-
-namespace proto {
-class CompositorMessage;
-} // namespace proto
-
-class ContextProvider;
-class CopyOutputRequest;
-class Layer;
-class LayerTreeHostInProcess;
-class SurfaceFactory;
-class SurfaceIdAllocator;
-} // namespace cc
-
-namespace blimp {
-
-namespace client {
-
-class BlimpCompositorDependencies;
-
-// The BlimpCompositorClient provides the BlimpCompositor with the necessary
-// dependencies for cc::LayerTreeHost owned by this compositor and for
-// communicating the compositor and input messages to the corresponding
-// render widget of this compositor on the engine.
-class BlimpCompositorClient {
- public:
- // Should send the compositor messages from the remote client LayerTreeHost of
- // this compositor to the corresponding remote server LayerTreeHost.
- virtual void SendCompositorMessage(
- const cc::proto::CompositorMessage& message) = 0;
-
- protected:
- virtual ~BlimpCompositorClient() {}
-};
-
-// BlimpCompositor provides the basic framework and setup to host a
-// LayerTreeHost. This class owns the remote client cc::LayerTreeHost, which
-// performs the compositing work for the remote server LayerTreeHost. The server
-// LayerTreeHost for a BlimpCompositor is owned by the
-// content::RenderWidgetCompositor. Thus, each BlimpCompositor is tied to a
-// RenderWidget, identified by a custom |render_widget_id| generated on the
-// engine. The lifetime of this compositor is controlled by its corresponding
-// RenderWidget.
-// This class should only be accessed from the main thread.
-class BlimpCompositor : public cc::LayerTreeHostClient,
- public BlimpCompositorFrameSinkProxy,
- public cc::SurfaceFactoryClient,
- public cc::CompositorStateDeserializerClient {
- public:
- static std::unique_ptr<BlimpCompositor> Create(
- BlimpCompositorDependencies* compositor_dependencies,
- BlimpCompositorClient* client);
-
- ~BlimpCompositor() override;
-
- void SetVisible(bool visible);
- bool IsVisible() const;
-
- // Requests a copy of the compositor frame.
- // Setting |flush_pending_update| to true ensures that if a frame update on
- // the main thread is pending, then it is drawn before copying from the
- // surface.
- void RequestCopyOfOutput(std::unique_ptr<cc::CopyOutputRequest> copy_request,
- bool flush_pending_update);
-
- // Called to forward the compositor message from the remote server
- // LayerTreeHost of the render widget for this compositor.
- // virtual for testing.
- void OnCompositorMessageReceived(
- std::unique_ptr<cc::proto::CompositorMessage> message);
-
- scoped_refptr<cc::Layer> layer() const { return layer_; }
-
- // Returns a reference to the InputHandler used to respond to input events on
- // the compositor thread.
- const base::WeakPtr<cc::InputHandler>& GetInputHandler();
-
- cc::CompositorStateDeserializer* compositor_state_deserializer_for_testing() {
- return compositor_state_deserializer_.get();
- }
-
- bool HasPendingFrameUpdateFromEngine() const;
-
- // LayerTreeHostClient implementation.
- void WillBeginMainFrame() override {}
- void DidBeginMainFrame() override {}
- void BeginMainFrame(const cc::BeginFrameArgs& args) override {}
- void BeginMainFrameNotExpectedSoon() override {}
- void UpdateLayerTreeHost() override;
- void ApplyViewportDeltas(const gfx::Vector2dF& inner_delta,
- const gfx::Vector2dF& outer_delta,
- const gfx::Vector2dF& elastic_overscroll_delta,
- float page_scale,
- float top_controls_delta) override;
- void RequestNewCompositorFrameSink() override;
- void DidInitializeCompositorFrameSink() override;
- // TODO(khushalsagar): Need to handle context initialization failures.
- void DidFailToInitializeCompositorFrameSink() override {}
- void WillCommit() override {}
- void DidCommit() override {}
- void DidCommitAndDrawFrame() override;
- void DidReceiveCompositorFrameAck() override {}
- void DidCompletePageScaleAnimation() override {}
-
- // CompositorStateDeserializerClient implementation.
- void DidUpdateLocalState() override;
-
- protected:
- BlimpCompositor(BlimpCompositorDependencies* compositor_dependencies,
- BlimpCompositorClient* client);
-
- void Initialize();
- virtual std::unique_ptr<cc::LayerTreeHostInProcess> CreateLayerTreeHost();
-
- cc::AnimationHost* animation_host() { return animation_host_.get(); }
-
- private:
- class FrameTrackingSwapPromise;
-
- // BlimpCompositorFrameSinkProxy implementation.
- void BindToProxyClient(
- base::WeakPtr<BlimpCompositorFrameSinkProxyClient> proxy_client) override;
- void SubmitCompositorFrame(cc::CompositorFrame frame) override;
- void UnbindProxyClient() override;
-
- // SurfaceFactoryClient implementation.
- void ReturnResources(const cc::ReturnedResourceArray& resources) override;
- void SetBeginFrameSource(cc::BeginFrameSource* begin_frame_source) override {}
-
- // Called when the a ContextProvider has been created by the
- // CompositorDependencies class. If |host_| is waiting on an
- // CompositorFrameSink this will build one for it.
- void OnContextProvidersCreated(
- const scoped_refptr<cc::ContextProvider>& compositor_context_provider,
- const scoped_refptr<cc::ContextProvider>& worker_context_provider);
-
- // Helper method to get the embedder dependencies.
- CompositorDependencies* GetEmbedderDeps();
-
- // TODO(khushalsagar): Move all of this to the |DocumentView| or another
- // platform specific class. So we use the DelegatedFrameHostAndroid like the
- // RenderWidgetHostViewAndroid.
- void DestroyDelegatedContent();
-
- // Helper method to destroy the internal CC LayerTreeHost instance and all its
- // associated state.
- void DestroyLayerTreeHost();
-
- // Acks a submitted CompositorFrame when it has been processed and another
- // frame should be started.
- void SubmitCompositorFrameAck();
-
- // Sends an update to the engine if the state on the client was modified and
- // an ack for a previous update sent is not pending.
- void FlushClientState();
-
- void MakeCopyRequestOnNextSwap(
- std::unique_ptr<cc::CopyOutputRequest> copy_request);
-
- BlimpCompositorClient* client_;
-
- BlimpCompositorDependencies* compositor_dependencies_;
-
- cc::FrameSinkId frame_sink_id_;
-
- std::unique_ptr<cc::AnimationHost> animation_host_;
- std::unique_ptr<cc::LayerTreeHostInProcess> host_;
-
- std::unique_ptr<cc::SurfaceFactory> surface_factory_;
- base::WeakPtr<BlimpCompositorFrameSinkProxyClient> proxy_client_;
- bool bound_to_proxy_;
-
- // Whether or not |host_| has asked for a new CompositorFrameSink.
- bool compositor_frame_sink_request_pending_;
-
- // Data for the current frame.
- cc::LocalFrameId local_frame_id_;
- gfx::Size current_surface_size_;
-
- base::ThreadChecker thread_checker_;
-
- // Surfaces related stuff and layer which holds the delegated content from the
- // compositor.
- std::unique_ptr<cc::SurfaceIdAllocator> surface_id_allocator_;
- scoped_refptr<cc::Layer> layer_;
-
- std::vector<std::unique_ptr<cc::CopyOutputRequest>>
- copy_requests_for_next_swap_;
-
- // Stores a frame update received from the engine, when a threaded
- // LayerTreeHost is used. There can only be a single frame in flight at any
- // point.
- std::unique_ptr<cc::proto::CompositorMessage> pending_frame_update_;
-
- // Used with a threaded LayerTreeHost to deserialize proto updates from the
- // engine into the LayerTree.
- std::unique_ptr<cc::CompositorStateDeserializer>
- compositor_state_deserializer_;
-
- // Set to true if the compositor state on the client was modified on the impl
- // thread and an update needs to be sent to the engine.
- bool client_state_dirty_ = false;
-
- // Set to true if a client state update was sent to the engine and an ack for
- // this update from the engine is pending.
- bool client_state_update_ack_pending_ = false;
-
- base::WeakPtrFactory<BlimpCompositor> weak_ptr_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(BlimpCompositor);
-};
-
-} // namespace client
-} // namespace blimp
-
-#endif // BLIMP_CLIENT_CORE_COMPOSITOR_BLIMP_COMPOSITOR_H_
« no previous file with comments | « blimp/client/core/compositor/blimp_client_picture_cache_unittest.cc ('k') | blimp/client/core/compositor/blimp_compositor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698