Commit 119f031a authored by Johann's avatar Johann Committed by Commit Bot

heap mojo: migrate gampad memory reader receiver_

Use the HeapMojoReceiver wrapper so that Oilpan will GC the object.

Bug: 1049056
Change-Id: Id01a0242536dca47467421a4a478c03c80263eca
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2106990
Commit-Queue: Johann Koenig <johannkoenig@google.com>
Reviewed-by: default avatarKouhei Ueno <kouhei@chromium.org>
Reviewed-by: default avatarBrandon Jones <bajones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#752738}
parent 3c0b305d
......@@ -10,12 +10,14 @@
#include "device/gamepad/public/mojom/gamepad_hardware_buffer.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "third_party/blink/public/common/browser_interface_broker_proxy.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/modules/gamepad/gamepad_listener.h"
namespace blink {
GamepadSharedMemoryReader::GamepadSharedMemoryReader(LocalFrame& frame) {
GamepadSharedMemoryReader::GamepadSharedMemoryReader(LocalFrame& frame)
: receiver_(this, frame.DomWindow()) {
frame.GetBrowserInterfaceBroker().GetInterface(
gamepad_monitor_remote_.BindNewPipeAndPassReceiver());
// See https://bit.ly/2S0zRAS for task types
......@@ -25,7 +27,9 @@ GamepadSharedMemoryReader::GamepadSharedMemoryReader(LocalFrame& frame) {
receiver_.BindNewPipeAndPassRemote(task_runner));
}
void GamepadSharedMemoryReader::Trace(Visitor* visitor) {}
void GamepadSharedMemoryReader::Trace(Visitor* visitor) {
visitor->Trace(receiver_);
}
void GamepadSharedMemoryReader::SendStartMessage() {
if (gamepad_monitor_remote_) {
......
......@@ -10,10 +10,10 @@
#include "base/macros.h"
#include "device/gamepad/public/mojom/gamepad.mojom-blink.h"
#include "device/gamepad/public/mojom/gamepad_hardware_buffer.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/system/buffer.h"
#include "third_party/blink/renderer/platform/heap/handle.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
namespace base {
class ReadOnlySharedMemoryRegion;
......@@ -64,7 +64,7 @@ class GamepadSharedMemoryReader
bool ever_interacted_with_ = false;
mojo::Receiver<device::mojom::blink::GamepadObserver> receiver_{this};
HeapMojoReceiver<device::mojom::blink::GamepadObserver> receiver_;
mojo::Remote<device::mojom::blink::GamepadMonitor> gamepad_monitor_remote_;
blink::GamepadListener* listener_ = nullptr;
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment