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_; |