Commit 8e46df33 authored by Johann's avatar Johann Committed by Commit Bot

heap mojo: migrate nfc proxy client_receiver_

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

Bug: 1049056

Change-Id: Ica0b2b1410ee8940e8210cd2fd1d8966d8b7c377
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2117790
Commit-Queue: Johann Koenig <johannkoenig@google.com>
Reviewed-by: default avatarKouhei Ueno <kouhei@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarReilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#756950}
parent 4c027362
......@@ -36,15 +36,13 @@ NFCProxy* NFCProxy::From(LocalDOMWindow& window) {
// NFCProxy
NFCProxy::NFCProxy(LocalDOMWindow& window)
: Supplement<LocalDOMWindow>(window), client_receiver_(this) {}
: Supplement<LocalDOMWindow>(window),
client_receiver_(this, window.GetExecutionContext()) {}
NFCProxy::~NFCProxy() = default;
void NFCProxy::Dispose() {
client_receiver_.reset();
}
void NFCProxy::Trace(Visitor* visitor) {
visitor->Trace(client_receiver_);
visitor->Trace(writers_);
visitor->Trace(readers_);
Supplement<LocalDOMWindow>::Trace(visitor);
......
......@@ -9,6 +9,8 @@
#include "mojo/public/cpp/bindings/remote.h"
#include "services/device/public/mojom/nfc.mojom-blink.h"
#include "third_party/blink/renderer/modules/modules_export.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
#include "third_party/blink/renderer/platform/supplementable.h"
#include "third_party/blink/renderer/platform/wtf/hash_map.h"
......@@ -25,7 +27,6 @@ class MODULES_EXPORT NFCProxy final : public GarbageCollected<NFCProxy>,
public Supplement<LocalDOMWindow>,
public device::mojom::blink::NFCClient {
USING_GARBAGE_COLLECTED_MIXIN(NFCProxy);
USING_PRE_FINALIZER(NFCProxy, Dispose);
public:
static const char kSupplementName[];
......@@ -34,8 +35,6 @@ class MODULES_EXPORT NFCProxy final : public GarbageCollected<NFCProxy>,
explicit NFCProxy(LocalDOMWindow&);
~NFCProxy() override;
void Dispose();
void Trace(Visitor*) override;
// There is no matching RemoveWriter() method because writers are
......@@ -83,7 +82,10 @@ class MODULES_EXPORT NFCProxy final : public GarbageCollected<NFCProxy>,
WriterSet writers_;
mojo::Remote<device::mojom::blink::NFC> nfc_remote_;
mojo::Receiver<device::mojom::blink::NFCClient> client_receiver_;
HeapMojoReceiver<device::mojom::blink::NFCClient,
NFCProxy,
HeapMojoWrapperMode::kWithoutContextObserver>
client_receiver_;
};
} // namespace blink
......
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