summaryrefslogtreecommitdiffstats
path: root/blimp
diff options
context:
space:
mode:
authordtrainor <dtrainor@chromium.org>2015-11-18 16:12:47 -0800
committerCommit bot <commit-bot@chromium.org>2015-11-19 00:14:14 +0000
commit5ef644e199b927c4fadb80e87ac68fd397686f63 (patch)
treebe7d03f03b37f9baeac7d746f8c69d900180f5e3 /blimp
parenta527d792237832e0040b60225fec2dde22df5023 (diff)
downloadchromium_src-5ef644e199b927c4fadb80e87ac68fd397686f63.zip
chromium_src-5ef644e199b927c4fadb80e87ac68fd397686f63.tar.gz
chromium_src-5ef644e199b927c4fadb80e87ac68fd397686f63.tar.bz2
Add IPC messages to transfer compositor protos
- Be able to send and receive compositor protos to/from the render process and the browser process. Messages are piped through the browser process to/from the network and renderer. A separate client (go/blimp) will render the compositor protos. This is part of the compositor refactor around splitting ThreadProxy into two components. - Hook the proto sending into the BlimpEngineSession class. - Set up a RemoteProtoChannel interface on the CC side to be used by the ChannelMain class once we start building that from the LayerTreeHost. BUG=552055 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1442853005 Cr-Commit-Position: refs/heads/master@{#360452}
Diffstat (limited to 'blimp')
-rw-r--r--blimp/engine/browser/blimp_engine_session.cc10
-rw-r--r--blimp/engine/browser/blimp_engine_session.h1
2 files changed, 10 insertions, 1 deletions
diff --git a/blimp/engine/browser/blimp_engine_session.cc b/blimp/engine/browser/blimp_engine_session.cc
index f65706a..8f2f1c4 100644
--- a/blimp/engine/browser/blimp_engine_session.cc
+++ b/blimp/engine/browser/blimp_engine_session.cc
@@ -138,7 +138,8 @@ void BlimpEngineSession::ProcessMessage(
scoped_ptr<BlimpMessage> message,
const net::CompletionCallback& callback) {
DCHECK(message->type() == BlimpMessage::CONTROL ||
- message->type() == BlimpMessage::NAVIGATION);
+ message->type() == BlimpMessage::NAVIGATION ||
+ message->type() == BlimpMessage::COMPOSITOR);
if (message->type() == BlimpMessage::CONTROL) {
switch (message->control().type()) {
@@ -233,6 +234,13 @@ void BlimpEngineSession::ActivateContents(content::WebContents* contents) {
contents->GetRenderViewHost()->GetWidget()->Focus();
}
+void BlimpEngineSession::ForwardCompositorProto(
+ const std::vector<uint8_t>& proto) {
+ // Send the compositor proto over the network layer to the client, which will
+ // apply the proto to their local compositor instance.
+ // TODO(dtrainor): Send the compositor proto.
+}
+
void BlimpEngineSession::PlatformSetContents(
scoped_ptr<content::WebContents> new_contents) {
new_contents->SetDelegate(this);
diff --git a/blimp/engine/browser/blimp_engine_session.h b/blimp/engine/browser/blimp_engine_session.h
index 8adaef5..6b117a9 100644
--- a/blimp/engine/browser/blimp_engine_session.h
+++ b/blimp/engine/browser/blimp_engine_session.h
@@ -86,6 +86,7 @@ class BlimpEngineSession : public BlimpMessageProcessor,
bool last_unlocked_by_target) override;
void CloseContents(content::WebContents* source) override;
void ActivateContents(content::WebContents* contents) override;
+ void ForwardCompositorProto(const std::vector<uint8_t>& proto) override;
// Sets up and owns |new_contents|.
void PlatformSetContents(scoped_ptr<content::WebContents> new_contents);