Commit 28ca17a9 authored by Johann's avatar Johann Committed by Commit Bot

heap mojo: migrate color chooser receiver_

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

Change-Id: I1e6dd0bcfb375f518c8386a261c20ded2c17da04
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2099347
Commit-Queue: Johann Koenig <johannkoenig@google.com>
Reviewed-by: default avatarKeishi Hattori <keishi@chromium.org>
Reviewed-by: default avatarKouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#749554}
parent e0ba2d45
......@@ -27,6 +27,7 @@
#include "third_party/blink/public/common/browser_interface_broker_proxy.h"
#include "third_party/blink/public/web/web_local_frame_client.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/web_local_frame_impl.h"
#include "third_party/blink/renderer/core/html/forms/color_chooser_client.h"
#include "third_party/blink/renderer/platform/graphics/color.h"
......@@ -37,20 +38,19 @@ namespace blink {
ColorChooserUIController::ColorChooserUIController(
LocalFrame* frame,
blink::ColorChooserClient* client)
: client_(client), frame_(frame) {}
: client_(client),
frame_(frame),
receiver_(this, frame->DomWindow()->GetExecutionContext()) {}
ColorChooserUIController::~ColorChooserUIController() {}
ColorChooserUIController::~ColorChooserUIController() = default;
void ColorChooserUIController::Trace(Visitor* visitor) {
visitor->Trace(receiver_);
visitor->Trace(frame_);
visitor->Trace(client_);
ColorChooser::Trace(visitor);
}
void ColorChooserUIController::Dispose() {
receiver_.reset();
}
void ColorChooserUIController::OpenUI() {
OpenColorChooser();
}
......@@ -80,8 +80,10 @@ void ColorChooserUIController::OpenColorChooser() {
color_chooser_factory_.BindNewPipeAndPassReceiver());
color_chooser_factory_->OpenColorChooser(
chooser_.BindNewPipeAndPassReceiver(),
receiver_.BindNewPipeAndPassRemote(), client_->CurrentColor().Rgb(),
client_->Suggestions());
receiver_.BindNewPipeAndPassRemote(
frame_->DomWindow()->GetExecutionContext()->GetTaskRunner(
TaskType::kUserInteraction)),
client_->CurrentColor().Rgb(), client_->Suggestions());
receiver_.set_disconnect_handler(WTF::Bind(
&ColorChooserUIController::EndChooser, WrapWeakPersistent(this)));
}
......
......@@ -27,12 +27,12 @@
#define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_COLOR_CHOOSER_UI_CONTROLLER_H_
#include <memory>
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/blink/public/mojom/choosers/color_chooser.mojom-blink.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/html/forms/color_chooser.h"
#include "third_party/blink/renderer/platform/heap/handle.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
#include "third_party/blink/renderer/platform/text/platform_locale.h"
namespace blink {
......@@ -45,7 +45,6 @@ class CORE_EXPORT ColorChooserUIController
public mojom::blink::ColorChooserClient,
public ColorChooser {
USING_GARBAGE_COLLECTED_MIXIN(ColorChooserUIController);
USING_PRE_FINALIZER(ColorChooserUIController, Dispose);
public:
ColorChooserUIController(LocalFrame*, blink::ColorChooserClient*);
......@@ -73,7 +72,7 @@ class CORE_EXPORT ColorChooserUIController
private:
mojo::Remote<mojom::blink::ColorChooserFactory> color_chooser_factory_;
mojo::Receiver<mojom::blink::ColorChooserClient> receiver_{this};
HeapMojoReceiver<mojom::blink::ColorChooserClient> 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