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 @@ ...@@ -26,6 +26,7 @@
#include "third_party/blink/renderer/core/html/forms/external_date_time_chooser.h" #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/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/dom/element.h"
#include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/html/forms/date_time_chooser_client.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) { ...@@ -57,12 +58,15 @@ static ui::mojom::TextInputType ToTextInputType(const AtomicString& source) {
ExternalDateTimeChooser::~ExternalDateTimeChooser() = default; ExternalDateTimeChooser::~ExternalDateTimeChooser() = default;
void ExternalDateTimeChooser::Trace(Visitor* visitor) { void ExternalDateTimeChooser::Trace(Visitor* visitor) {
visitor->Trace(date_time_chooser_);
visitor->Trace(client_); visitor->Trace(client_);
DateTimeChooser::Trace(visitor); DateTimeChooser::Trace(visitor);
} }
ExternalDateTimeChooser::ExternalDateTimeChooser(DateTimeChooserClient* client) ExternalDateTimeChooser::ExternalDateTimeChooser(DateTimeChooserClient* client)
: client_(client) { : date_time_chooser_(
client->OwnerElement().GetDocument().ToExecutionContext()),
client_(client) {
DCHECK(!RuntimeEnabledFeatures::InputMultipleFieldsUIEnabled()); DCHECK(!RuntimeEnabledFeatures::InputMultipleFieldsUIEnabled());
DCHECK(client); DCHECK(client);
} }
...@@ -101,12 +105,15 @@ bool ExternalDateTimeChooser::IsShowingDateTimeChooserUI() const { ...@@ -101,12 +105,15 @@ bool ExternalDateTimeChooser::IsShowingDateTimeChooserUI() const {
mojom::blink::DateTimeChooser& ExternalDateTimeChooser::GetDateTimeChooser( mojom::blink::DateTimeChooser& ExternalDateTimeChooser::GetDateTimeChooser(
LocalFrame* frame) { LocalFrame* frame) {
if (!date_time_chooser_) { if (!date_time_chooser_.is_bound()) {
frame->GetBrowserInterfaceBroker().GetInterface( 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(); return *date_time_chooser_.get();
} }
......
...@@ -26,10 +26,10 @@ ...@@ -26,10 +26,10 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_EXTERNAL_DATE_TIME_CHOOSER_H_ #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_ #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/public/mojom/choosers/date_time_chooser.mojom-blink.h"
#include "third_party/blink/renderer/core/core_export.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/core/html/forms/date_time_chooser.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
namespace blink { namespace blink {
...@@ -59,9 +59,9 @@ class CORE_EXPORT ExternalDateTimeChooser final : public DateTimeChooser { ...@@ -59,9 +59,9 @@ class CORE_EXPORT ExternalDateTimeChooser final : public DateTimeChooser {
mojom::blink::DateTimeChooser& GetDateTimeChooser(LocalFrame* frame); mojom::blink::DateTimeChooser& GetDateTimeChooser(LocalFrame* frame);
mojo::Remote<mojom::blink::DateTimeChooser> date_time_chooser_; HeapMojoRemote<mojom::blink::DateTimeChooser> date_time_chooser_;
Member<DateTimeChooserClient> client_; Member<DateTimeChooserClient> client_;
}; };
} } // namespace blink
#endif #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