Index: content/renderer/render_frame_impl.h |
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h |
index 4c11e3fd979aba6f463828794c3410898685f90a..ba280b283a3215d63589137558befd9c384a7c37 100644 |
--- a/content/renderer/render_frame_impl.h |
+++ b/content/renderer/render_frame_impl.h |
@@ -15,6 +15,7 @@ |
#include <string> |
#include <vector> |
+#include "base/callback.h" |
#include "base/files/file_path.h" |
#include "base/gtest_prod_util.h" |
#include "base/id_map.h" |
@@ -23,8 +24,10 @@ |
#include "base/memory/ref_counted.h" |
#include "base/memory/weak_ptr.h" |
#include "base/observer_list.h" |
+#include "base/optional.h" |
#include "base/process/process_handle.h" |
#include "base/single_thread_task_runner.h" |
+#include "base/unguessable_token.h" |
#include "build/build_config.h" |
#include "content/common/accessibility_mode.h" |
#include "content/common/associated_interface_registry_impl.h" |
@@ -48,6 +51,7 @@ |
#include "content/renderer/unique_name_helper.h" |
#include "ipc/ipc_message.h" |
#include "ipc/ipc_platform_file.h" |
+#include "media/base/routing_token_callback.h" |
#include "media/blink/webmediaplayer_delegate.h" |
#include "media/blink/webmediaplayer_params.h" |
#include "media/mojo/interfaces/remoting.mojom.h" |
@@ -776,6 +780,10 @@ class CONTENT_EXPORT RenderFrameImpl |
FRIEND_TEST_ALL_PREFIXES(RenderAccessibilityImplTest, |
AccessibilityMessagesQueueWhileSwappedOut); |
FRIEND_TEST_ALL_PREFIXES(RenderFrameImplTest, ZoomLimit); |
+ FRIEND_TEST_ALL_PREFIXES(RenderFrameImplTest, |
+ TestOverlayRoutingTokenSendsLater); |
+ FRIEND_TEST_ALL_PREFIXES(RenderFrameImplTest, |
+ TestOverlayRoutingTokenSendsNow); |
// A wrapper class used as the callback for JavaScript executed |
// in an isolated world. |
@@ -941,6 +949,7 @@ class CONTENT_EXPORT RenderFrameImpl |
void OnGetNearestFindResult(int request_id, float x, float y); |
void OnFindMatchRects(int current_version); |
#endif |
+ void OnSetOverlayRoutingToken(const base::UnguessableToken& token); |
#if BUILDFLAG(USE_EXTERNAL_POPUP_MENU) |
#if defined(OS_MACOSX) |
@@ -1139,6 +1148,13 @@ class CONTENT_EXPORT RenderFrameImpl |
void GetInterface(const std::string& interface_name, |
mojo::ScopedMessagePipeHandle interface_pipe) override; |
+ // Send |callback| our AndroidOverlay routing token when it arrives. We may |
+ // call |callback| before returning. |
+ void RequestOverlayRoutingToken(const media::RoutingTokenCallback& callback); |
+ |
+ // Ask the host to send our AndroidOverlay routing token to us. |
+ void RequestOverlayRoutingTokenFromHost(); |
+ |
// Stores the WebLocalFrame we are associated with. This is null from the |
// constructor until BindToWebFrame is called, and it is null after |
// frameDetached is called until destruction (which is asynchronous in the |
@@ -1450,6 +1466,12 @@ class CONTENT_EXPORT RenderFrameImpl |
mojom::URLLoaderFactoryPtr url_loader_factory_; |
+ // AndroidOverlay routing token from the browser, if we have one yet. |
+ base::Optional<base::UnguessableToken> overlay_routing_token_; |
+ |
+ // Callbacks that we should call when we get a routing token. |
+ std::vector<media::RoutingTokenCallback> pending_routing_token_callbacks_; |
+ |
base::WeakPtrFactory<RenderFrameImpl> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl); |