Commit ae18af07 authored by Tal Pressman's avatar Tal Pressman Committed by Commit Bot

Migrate blink::ExternalDateTimeChooser to use blink::HeapMojoRemote instead of mojo::Remote.

Bug: 1049056
Change-Id: I0def4704acac88bdc29b31e8739488e8608f9831
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2071679
Commit-Queue: Tal Pressman <talp@chromium.org>
Reviewed-by: default avatarKeishi Hattori <keishi@chromium.org>
Reviewed-by: default avatarKouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#744927}
parent 77288e6f
......@@ -26,6 +26,7 @@
#include "third_party/blink/renderer/core/html/forms/external_date_time_chooser.h"
#include "third_party/blink/public/common/browser_interface_broker_proxy.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/html/forms/date_time_chooser_client.h"
......@@ -57,12 +58,15 @@ static ui::mojom::TextInputType ToTextInputType(const AtomicString& source) {
ExternalDateTimeChooser::~ExternalDateTimeChooser() = default;
void ExternalDateTimeChooser::Trace(Visitor* visitor) {
visitor->Trace(date_time_chooser_);
visitor->Trace(client_);
DateTimeChooser::Trace(visitor);
}
ExternalDateTimeChooser::ExternalDateTimeChooser(DateTimeChooserClient* client)
: client_(client) {
: date_time_chooser_(
client->OwnerElement().GetDocument().ToExecutionContext()),
client_(client) {
DCHECK(!RuntimeEnabledFeatures::InputMultipleFieldsUIEnabled());
DCHECK(client);
}
......@@ -101,12 +105,15 @@ bool ExternalDateTimeChooser::IsShowingDateTimeChooserUI() const {
mojom::blink::DateTimeChooser& ExternalDateTimeChooser::GetDateTimeChooser(
LocalFrame* frame) {
if (!date_time_chooser_) {
if (!date_time_chooser_.is_bound()) {
frame->GetBrowserInterfaceBroker().GetInterface(
date_time_chooser_.BindNewPipeAndPassReceiver());
date_time_chooser_.BindNewPipeAndPassReceiver(
// Per the spec, this is a user interaction.
// https://html.spec.whatwg.org/multipage/input.html#common-input-element-events
frame->GetTaskRunner(TaskType::kUserInteraction)));
}
DCHECK(date_time_chooser_);
DCHECK(date_time_chooser_.is_bound());
return *date_time_chooser_.get();
}
......
......@@ -26,10 +26,10 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_EXTERNAL_DATE_TIME_CHOOSER_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_EXTERNAL_DATE_TIME_CHOOSER_H_
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/blink/public/mojom/choosers/date_time_chooser.mojom-blink.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/html/forms/date_time_chooser.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
namespace blink {
......@@ -59,9 +59,9 @@ class CORE_EXPORT ExternalDateTimeChooser final : public DateTimeChooser {
mojom::blink::DateTimeChooser& GetDateTimeChooser(LocalFrame* frame);
mojo::Remote<mojom::blink::DateTimeChooser> date_time_chooser_;
HeapMojoRemote<mojom::blink::DateTimeChooser> date_time_chooser_;
Member<DateTimeChooserClient> client_;
};
}
} // namespace blink
#endif
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