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

Unified Diff: blimp/engine/feature/engine_render_widget_feature.h

Issue 2629743003: Remove all blimp engine code (Closed)
Patch Set: Use consistent comment style in //chrome 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
« no previous file with comments | « blimp/engine/common/blimp_user_agent.cc ('k') | blimp/engine/feature/engine_render_widget_feature.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: blimp/engine/feature/engine_render_widget_feature.h
diff --git a/blimp/engine/feature/engine_render_widget_feature.h b/blimp/engine/feature/engine_render_widget_feature.h
deleted file mode 100644
index 4b0fbd1957ee98e6071171d1c1420344e71e5519..0000000000000000000000000000000000000000
--- a/blimp/engine/feature/engine_render_widget_feature.h
+++ /dev/null
@@ -1,194 +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_ENGINE_FEATURE_ENGINE_RENDER_WIDGET_FEATURE_H_
-#define BLIMP_ENGINE_FEATURE_ENGINE_RENDER_WIDGET_FEATURE_H_
-
-#include <stdint.h>
-
-#include <map>
-#include <memory>
-#include <vector>
-
-#include "base/atomic_sequence_num.h"
-#include "base/containers/small_map.h"
-#include "base/macros.h"
-#include "blimp/engine/app/settings_manager.h"
-#include "blimp/net/blimp_message_processor.h"
-#include "blimp/net/input_message_converter.h"
-#include "ui/base/ime/text_input_client.h"
-
-namespace blink {
-class WebGestureEvent;
-}
-
-namespace content {
-class RenderWidgetHost;
-struct FormFieldData;
-}
-
-namespace blimp {
-namespace engine {
-
-// Handles all incoming and outgoing protobuf message types tied to a specific
-// RenderWidget. This includes BlimpMessage::INPUT, BlimpMessage::COMPOSITOR,
-// and BlimpMessage::RENDER_WIDGET messages. Delegates can be added to be
-// notified of incoming messages. This class automatically handles dropping
-// stale BlimpMessage::RENDER_WIDGET messages from the client after a
-// RenderWidgetMessage::INITIALIZE message is sent.
-class EngineRenderWidgetFeature : public BlimpMessageProcessor,
- public SettingsManager::Observer {
- public:
- // A delegate to be notified of specific RenderWidget related incoming events.
- class RenderWidgetMessageDelegate {
- public:
- // Called when the client is sending a WebGestureEvent to the engine.
- virtual void OnWebGestureEvent(
- content::RenderWidgetHost* render_widget_host,
- std::unique_ptr<blink::WebGestureEvent> event) = 0;
-
- // Called when the client sent a CompositorMessage. These messages should
- // be sent to the engine's render process so they can be processed by the
- // RemoteChannel of the compositor.
- virtual void OnCompositorMessageReceived(
- content::RenderWidgetHost* render_widget_host,
- const std::vector<uint8_t>& message) = 0;
- };
-
- explicit EngineRenderWidgetFeature(SettingsManager* settings);
- ~EngineRenderWidgetFeature() override;
-
- void set_render_widget_message_sender(
- std::unique_ptr<BlimpMessageProcessor> message_processor);
-
- void set_input_message_sender(
- std::unique_ptr<BlimpMessageProcessor> message_processor);
-
- void set_compositor_message_sender(
- std::unique_ptr<BlimpMessageProcessor> message_processor);
-
- void set_ime_message_sender(
- std::unique_ptr<BlimpMessageProcessor> message_processor);
-
- // Notifes the client that a new RenderWidget for a particular WebContents has
- // been created. This will trigger the creation of the BlimpCompositor for
- // this widget on the client.
- void OnRenderWidgetCreated(const int tab_id,
- content::RenderWidgetHost* render_widget_host);
-
- // Notifies the client that the RenderWidget for a particular WebContents has
- // changed. When this is sent the native view on the client becomes bound to
- // the BlimpCompositor for this widget.
- // Since the compositor on the client performs the operations of the view for
- // this widget, this will set the visibility and draw state correctly for this
- // widget.
- // Note: This assumes that this is the RenderWidgetHost for the main frame.
- // Only one RenderWidget can be in initialized state for a tab.
- void OnRenderWidgetInitialized(const int tab_id,
- content::RenderWidgetHost* render_widget_host);
-
- void OnRenderWidgetDeleted(const int tab_id,
- content::RenderWidgetHost* render_widget_host);
-
- // Notifies the client to show/hide IME.
- void SendShowImeRequest(const int tab_id,
- content::RenderWidgetHost* render_widget_host,
- const content::FormFieldData& field);
- void SendHideImeRequest(const int tab_id,
- content::RenderWidgetHost* render_widget_host);
-
- // Sends a CompositorMessage for |tab_id| to the client.
- void SendCompositorMessage(const int tab_id,
- content::RenderWidgetHost* render_widget_host,
- const std::vector<uint8_t>& message);
-
- // Sets a RenderWidgetMessageDelegate to be notified of all incoming
- // RenderWidget related messages for |tab_id| from the client. There can only
- // be one RenderWidgetMessageDelegate per tab.
- void SetDelegate(const int tab_id, RenderWidgetMessageDelegate* delegate);
- void RemoveDelegate(const int tab_id);
-
- // BlimpMessageProcessor implementation.
- void ProcessMessage(std::unique_ptr<BlimpMessage> message,
- const net::CompletionCallback& callback) override;
-
- // Settings::Observer implementation.
- void OnWebPreferencesChanged() override;
-
- private:
- typedef base::SmallMap<std::map<int, RenderWidgetMessageDelegate*> >
- DelegateMap;
-
- typedef base::SmallMap<std::map<content::RenderWidgetHost*, int>>
- RenderWidgetToIdMap;
-
- typedef base::SmallMap<std::map<int, content::RenderWidgetHost*>>
- IdToRenderWidgetMap;
-
- typedef std::pair<RenderWidgetToIdMap, IdToRenderWidgetMap> RenderWidgetMaps;
-
- typedef base::SmallMap<std::map<int, RenderWidgetMaps>> TabMap;
-
- // Returns nullptr if no delegate is found.
- RenderWidgetMessageDelegate* FindDelegate(const int tab_id);
-
- // Adds the RenderWidgetHost to the map and return the render_widget_id.
- int AddRenderWidget(const int tab_id,
- content::RenderWidgetHost* render_widget_host);
-
- // Deletes the RenderWidgetHost from the map and returns the render_widget_id
- // for the deleted host.
- int DeleteRenderWidget(const int tab_id,
- content::RenderWidgetHost* render_widget_host);
-
- // Returns the render_widget_id for the RenderWidgetHost. Will return 0U if
- // the host is not found.
- int GetRenderWidgetId(const int tab_id,
- content::RenderWidgetHost* render_widget_host);
-
- // Returns the RenderWidgetHost for the given render_widget_id. Will return
- // nullptr if no host is found.
- content::RenderWidgetHost* GetRenderWidgetHost(const int tab_id,
- const int render_widget_id);
-
- // Sends the text entered by the user to the renderer.
- // The existing text in the box gets replaced by the new text from IME.
- void SetTextFromIME(content::RenderWidgetHost* render_widget_host,
- std::string text,
- bool auto_submit);
-
- DelegateMap delegates_;
- TabMap tabs_;
-
- // A RenderWidgetHost can also be uniquely identified by the
- // <process_id, routing_id> where the process_id is the id for the
- // RenderProcessHost for this widget and the routing_id is the id for the
- // widget.
- // But we generate our own ids to avoid having the render widget protocol tied
- // to always using a combination of these ids, generated by the content layer.
- // By using an AtomicSequenceNumber for identifying render widgets across
- // tabs, we can be sure that there will always be a 1:1 mapping between the
- // render widget and the consumer of the features tied to this widget on the
- // client, which is the BlimpCompositor.
- base::AtomicSequenceNumber next_widget_id_;
-
- InputMessageConverter input_message_converter_;
-
- SettingsManager* settings_manager_;
-
- // Outgoing message processors for RENDER_WIDGET, COMPOSITOR and INPUT types.
- std::unique_ptr<BlimpMessageProcessor> render_widget_message_sender_;
- std::unique_ptr<BlimpMessageProcessor> compositor_message_sender_;
- std::unique_ptr<BlimpMessageProcessor> input_message_sender_;
- std::unique_ptr<BlimpMessageProcessor> ime_message_sender_;
-
- base::WeakPtrFactory<EngineRenderWidgetFeature> weak_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(EngineRenderWidgetFeature);
-};
-
-} // namespace engine
-} // namespace blimp
-
-#endif // BLIMP_ENGINE_FEATURE_ENGINE_RENDER_WIDGET_FEATURE_H_
« no previous file with comments | « blimp/engine/common/blimp_user_agent.cc ('k') | blimp/engine/feature/engine_render_widget_feature.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698