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

Unified Diff: content/browser/frame_host/render_frame_host_impl.h

Issue 2765443004: AndroidOverlay implementation using Dialog. (Closed)
Patch Set: fixed test Created 3 years, 8 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: content/browser/frame_host/render_frame_host_impl.h
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index ac5350a47bc8ab65b3116c5e4c8185541b16efdd..21e53a78ee3f82c81f9ab47b50be840d4fabf621 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -19,9 +19,11 @@
#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
+#include "base/optional.h"
#include "base/strings/string16.h"
#include "base/supports_user_data.h"
#include "base/time/time.h"
+#include "base/unguessable_token.h"
#include "build/build_config.h"
#include "content/browser/accessibility/browser_accessibility_manager.h"
#include "content/browser/bad_message.h"
@@ -134,6 +136,8 @@ class CONTENT_EXPORT RenderFrameHostImpl
static RenderFrameHostImpl* FromID(int process_id, int routing_id);
static RenderFrameHostImpl* FromAXTreeID(
ui::AXTreeIDRegistry::AXTreeID ax_tree_id);
+ static RenderFrameHostImpl* FromOverlayRoutingToken(
+ const base::UnguessableToken& token);
~RenderFrameHostImpl() override;
@@ -624,6 +628,14 @@ class CONTENT_EXPORT RenderFrameHostImpl
service_manager::InterfaceProvider* GetJavaInterfaces() override;
#endif
+ // Returns an unguessable token for this RFHI. This provides a temporary way
+ // to identify a RenderFrameHost that's compatible with IPC. Else, one needs
+ // to send pid + RoutingID, but one cannot send pid. One can get it from the
+ // channel, but this makes it much harder to get wrong.
+ // Once media switches to mojo, we should be able to remove this in favor of
+ // sending a mojo overlay factory.
+ const base::UnguessableToken& GetOverlayRoutingToken();
+
protected:
friend class RenderFrameHostFactory;
@@ -783,6 +795,11 @@ class CONTENT_EXPORT RenderFrameHostImpl
void ForwardGetInterfaceToRenderFrame(const std::string& interface_name,
mojo::ScopedMessagePipeHandle pipe);
#endif
+
+ // Called when the frame would like an overlay routing token. This will
+ // create one if needed. Either way, it will send it to the frame.
+ void OnRequestOverlayRoutingToken();
+
void OnShowCreatedWindow(int pending_widget_routing_id,
WindowOpenDisposition disposition,
const gfx::Rect& initial_rect,
@@ -1185,6 +1202,10 @@ class CONTENT_EXPORT RenderFrameHostImpl
mojo::BindingSet<service_manager::mojom::InterfaceProvider>
interface_provider_bindings_;
+ // IPC-friendly token that represents this host for AndroidOverlays, if we
+ // have created one yet.
+ base::Optional<base::UnguessableToken> overlay_routing_token_;
+
// NOTE: This must be the last member.
base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_;
« no previous file with comments | « content/browser/frame_host/render_frame_host_android.cc ('k') | content/browser/frame_host/render_frame_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698