WebOTP: Cleanup navigator.sms.receive()
This change removes the previous iteration of WebOTP,
SMS Receiver API, which we ran for Origin Trial.
This is now being removed in favor of the credential
management version, WebOTP API [1].
WebOTP API Explainer: https://github.com/WICG/WebOTP
I2E ending in M80: https://groups.google.com/a/chromium.org/d/topic/blink-dev/-bdqHhCyBwM/discussion
Bug: 1045526
Change-Id: I1e73bed5018c814770fa34edcf64daafd234a543
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2097041
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Commit-Queue: Ayu Ishii <ayui@chromium.org>
Cr-Commit-Position: refs/heads/master@{#750226}
diff --git a/android_webview/tools/system_webview_shell/test/data/webexposed/not-webview-exposed.txt b/android_webview/tools/system_webview_shell/test/data/webexposed/not-webview-exposed.txt
index d306475..a3602e2 100644
--- a/android_webview/tools/system_webview_shell/test/data/webexposed/not-webview-exposed.txt
+++ b/android_webview/tools/system_webview_shell/test/data/webexposed/not-webview-exposed.txt
@@ -62,13 +62,12 @@
# permissions API (crbug.com/490120), presentation API (crbug.com/521319),
# share API (crbug.com/765923), custom scheme handlers (crbug.com/589502),
-# media session API (crbug.com/925997), sms API (crbug.com/963653), and WebXr
-# API (crbug.com/1012899) are not supported in webview.
+# media session API (crbug.com/925997), and WebXr API (crbug.com/1012899)
+# are not supported in webview.
interface Navigator
getter mediaSession # crbug.com/925997
getter permissions # crbug.com/490120
getter presentation # crbug.com/521319
- getter sms # crbug.com/963653
getter xr # crbug.com/1012899
method registerProtocolHandler # crbug.com/589502
method unregisterProtocolHandler # crbug.com/589502
@@ -78,10 +77,6 @@
interface MediaMetadata
interface MediaSession
-# SMS API is disabled in Android WebView, (crbug.com/963653)
-interface SMS
-interface SMSReceiver
-
# notifications not yet supported in webview, crbug.com/551446
interface ServiceWorkerRegistration : EventTarget
getter pushManager
diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni
index d60d18c..65633c3f 100644
--- a/third_party/blink/renderer/bindings/idl_in_modules.gni
+++ b/third_party/blink/renderer/bindings/idl_in_modules.gni
@@ -609,10 +609,6 @@
"//third_party/blink/renderer/modules/shapedetection/face_detector_options.idl",
"//third_party/blink/renderer/modules/shapedetection/landmark.idl",
"//third_party/blink/renderer/modules/shapedetection/text_detector.idl",
- "//third_party/blink/renderer/modules/sms/navigator_sms.idl",
- "//third_party/blink/renderer/modules/sms/sms.idl",
- "//third_party/blink/renderer/modules/sms/sms_receiver.idl",
- "//third_party/blink/renderer/modules/sms/sms_receiver_options.idl",
"//third_party/blink/renderer/modules/speech/speech_grammar.idl",
"//third_party/blink/renderer/modules/speech/speech_grammar_list.idl",
"//third_party/blink/renderer/modules/speech/speech_recognition.idl",
diff --git a/third_party/blink/renderer/modules/BUILD.gn b/third_party/blink/renderer/modules/BUILD.gn
index 3fea420..fbbf704 100644
--- a/third_party/blink/renderer/modules/BUILD.gn
+++ b/third_party/blink/renderer/modules/BUILD.gn
@@ -135,7 +135,6 @@
"//third_party/blink/renderer/modules/sensor",
"//third_party/blink/renderer/modules/service_worker",
"//third_party/blink/renderer/modules/shapedetection",
- "//third_party/blink/renderer/modules/sms",
"//third_party/blink/renderer/modules/speech",
"//third_party/blink/renderer/modules/srcobject",
"//third_party/blink/renderer/modules/storage",
diff --git a/third_party/blink/renderer/modules/modules_idl_files.gni b/third_party/blink/renderer/modules/modules_idl_files.gni
index c23e2dd4..60366fc8 100644
--- a/third_party/blink/renderer/modules/modules_idl_files.gni
+++ b/third_party/blink/renderer/modules/modules_idl_files.gni
@@ -107,7 +107,6 @@
"//third_party/blink/renderer/modules/sensor/idls.gni",
"//third_party/blink/renderer/modules/service_worker/idls.gni",
"//third_party/blink/renderer/modules/shapedetection/idls.gni",
- "//third_party/blink/renderer/modules/sms/idls.gni",
"//third_party/blink/renderer/modules/speech/idls.gni",
"//third_party/blink/renderer/modules/srcobject/idls.gni",
"//third_party/blink/renderer/modules/storage/idls.gni",
diff --git a/third_party/blink/renderer/modules/sms/BUILD.gn b/third_party/blink/renderer/modules/sms/BUILD.gn
deleted file mode 100644
index 6e270728..0000000
--- a/third_party/blink/renderer/modules/sms/BUILD.gn
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright 2019 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//third_party/blink/renderer/modules/modules.gni")
-
-blink_modules_sources("sms") {
- sources = [
- "navigator_sms.cc",
- "navigator_sms.h",
- "sms.cc",
- "sms.h",
- "sms_metrics.cc",
- "sms_metrics.h",
- "sms_receiver.cc",
- "sms_receiver.h",
- ]
-}
diff --git a/third_party/blink/renderer/modules/sms/DEPS b/third_party/blink/renderer/modules/sms/DEPS
deleted file mode 100644
index c7b1c0d..0000000
--- a/third_party/blink/renderer/modules/sms/DEPS
+++ /dev/null
@@ -1,9 +0,0 @@
-include_rules = [
- "+services/metrics/public/cpp/ukm_builders.h",
- "+services/metrics/public/cpp/ukm_source_id.h",
- "-third_party/blink/renderer/modules",
- "+third_party/blink/renderer/modules/event_modules.h",
- "+third_party/blink/renderer/modules/event_target_modules.h",
- "+third_party/blink/renderer/modules/modules_export.h",
- "+third_party/blink/renderer/modules/sms",
-]
diff --git a/third_party/blink/renderer/modules/sms/OWNERS b/third_party/blink/renderer/modules/sms/OWNERS
deleted file mode 100644
index 39f063f..0000000
--- a/third_party/blink/renderer/modules/sms/OWNERS
+++ /dev/null
@@ -1,4 +0,0 @@
-file://content/browser/sms/OWNERS
-
-# COMPONENT: Blink>SMS
-# TEAM: fugu-dev@chromium.org
diff --git a/third_party/blink/renderer/modules/sms/README.md b/third_party/blink/renderer/modules/sms/README.md
deleted file mode 100644
index b2f0832..0000000
--- a/third_party/blink/renderer/modules/sms/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# SMS Receiver API
-
-This directory contains code for the renderer side implementation of the SMS Receiver API. For more details, refer to [this README file](https://cs.chromium.org/chromium/src/content/browser/sms/README.md).
diff --git a/third_party/blink/renderer/modules/sms/idls.gni b/third_party/blink/renderer/modules/sms/idls.gni
deleted file mode 100644
index a2491bc4..0000000
--- a/third_party/blink/renderer/modules/sms/idls.gni
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright 2020 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-modules_idl_files = [
- "sms.idl",
- "sms_receiver.idl",
-]
-
-modules_dictionary_idl_files = [ "sms_receiver_options.idl" ]
-
-modules_dependency_idl_files = [ "navigator_sms.idl" ]
diff --git a/third_party/blink/renderer/modules/sms/navigator_sms.cc b/third_party/blink/renderer/modules/sms/navigator_sms.cc
deleted file mode 100644
index f6a81ef..0000000
--- a/third_party/blink/renderer/modules/sms/navigator_sms.cc
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "third_party/blink/renderer/modules/sms/navigator_sms.h"
-
-#include "third_party/blink/renderer/core/frame/navigator.h"
-#include "third_party/blink/renderer/modules/sms/sms_receiver.h"
-#include "third_party/blink/renderer/platform/bindings/script_state.h"
-
-namespace blink {
-
-NavigatorSMS::NavigatorSMS(Navigator& navigator)
- : Supplement<Navigator>(navigator) {}
-
-const char NavigatorSMS::kSupplementName[] = "NavigatorSMS";
-
-NavigatorSMS& NavigatorSMS::From(Navigator& navigator) {
- NavigatorSMS* supplement =
- Supplement<Navigator>::From<NavigatorSMS>(navigator);
- if (!supplement) {
- supplement = MakeGarbageCollected<NavigatorSMS>(navigator);
- Supplement<Navigator>::ProvideTo(navigator, supplement);
- }
- return *supplement;
-}
-
-SMSReceiver* NavigatorSMS::GetSMSReceiver(ScriptState* script_state) {
- if (!sms_receiver_) {
- sms_receiver_ =
- MakeGarbageCollected<SMSReceiver>(ExecutionContext::From(script_state));
- }
- return sms_receiver_.Get();
-}
-
-SMSReceiver* NavigatorSMS::sms(ScriptState* script_state,
- Navigator& navigator) {
- return NavigatorSMS::From(navigator).GetSMSReceiver(script_state);
-}
-
-void NavigatorSMS::Trace(Visitor* visitor) {
- visitor->Trace(sms_receiver_);
- Supplement<Navigator>::Trace(visitor);
-}
-
-} // namespace blink
diff --git a/third_party/blink/renderer/modules/sms/navigator_sms.h b/third_party/blink/renderer/modules/sms/navigator_sms.h
deleted file mode 100644
index 4f1a700..0000000
--- a/third_party/blink/renderer/modules/sms/navigator_sms.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_NAVIGATOR_SMS_H_
-#define THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_NAVIGATOR_SMS_H_
-
-#include "third_party/blink/renderer/core/frame/navigator.h"
-#include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/supplementable.h"
-
-namespace blink {
-
-class Navigator;
-class ScriptState;
-class SMSReceiver;
-
-class NavigatorSMS final : public GarbageCollected<NavigatorSMS>,
- public Supplement<Navigator> {
- USING_GARBAGE_COLLECTED_MIXIN(NavigatorSMS);
-
- public:
- static const char kSupplementName[];
-
- static NavigatorSMS& From(Navigator&);
-
- static SMSReceiver* sms(ScriptState*, Navigator&);
-
- explicit NavigatorSMS(Navigator&);
-
- void Trace(Visitor*) override;
-
- private:
- SMSReceiver* GetSMSReceiver(ScriptState*);
-
- Member<SMSReceiver> sms_receiver_;
-};
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_NAVIGATOR_SMS_H_
diff --git a/third_party/blink/renderer/modules/sms/navigator_sms.idl b/third_party/blink/renderer/modules/sms/navigator_sms.idl
deleted file mode 100644
index b979116..0000000
--- a/third_party/blink/renderer/modules/sms/navigator_sms.idl
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// https://github.com/samuelgoto/sms-receiver
-
-[
- SecureContext,
- Exposed=Window,
- ImplementedAs=NavigatorSMS,
- RuntimeEnabled=SmsReceiver
-] partial interface Navigator {
- [CallWith=ScriptState] readonly attribute SMSReceiver sms;
-};
diff --git a/third_party/blink/renderer/modules/sms/sms.cc b/third_party/blink/renderer/modules/sms/sms.cc
deleted file mode 100644
index 9bdcc1a..0000000
--- a/third_party/blink/renderer/modules/sms/sms.cc
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "third_party/blink/renderer/modules/sms/sms.h"
-
-#include <utility>
-
-namespace blink {
-
-SMS::SMS(const WTF::String& content) : content_(content) {}
-
-SMS::~SMS() = default;
-
-const String& SMS::content() const {
- return content_;
-}
-
-} // namespace blink
diff --git a/third_party/blink/renderer/modules/sms/sms.h b/third_party/blink/renderer/modules/sms/sms.h
deleted file mode 100644
index 3fac1377..0000000
--- a/third_party/blink/renderer/modules/sms/sms.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_SMS_H_
-#define THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_SMS_H_
-
-#include "base/macros.h"
-#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
-
-namespace blink {
-
-class SMS final : public ScriptWrappable {
- DEFINE_WRAPPERTYPEINFO();
-
- public:
- // |content| is the raw content of the SMS message.
- explicit SMS(const WTF::String& content);
-
- ~SMS() override;
-
- // Sms IDL interface.
- const String& content() const;
-
- private:
- const String content_;
-
- DISALLOW_COPY_AND_ASSIGN(SMS);
-};
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_SMS_H_
diff --git a/third_party/blink/renderer/modules/sms/sms.idl b/third_party/blink/renderer/modules/sms/sms.idl
deleted file mode 100644
index a3c624b..0000000
--- a/third_party/blink/renderer/modules/sms/sms.idl
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// https://github.com/samuelgoto/sms-receiver
-
-[
- SecureContext,
- Exposed=(Window,DedicatedWorker),
- RuntimeEnabled=SmsReceiver]
-interface SMS {
- readonly attribute DOMString content;
-};
diff --git a/third_party/blink/renderer/modules/sms/sms_metrics.cc b/third_party/blink/renderer/modules/sms/sms_metrics.cc
deleted file mode 100644
index 2c966476..0000000
--- a/third_party/blink/renderer/modules/sms/sms_metrics.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "third_party/blink/renderer/modules/sms/sms_metrics.h"
-
-#include "base/metrics/histogram_macros.h"
-#include "services/metrics/public/cpp/ukm_builders.h"
-
-namespace blink {
-
-void RecordSMSOutcome(SMSReceiverOutcome outcome,
- ukm::SourceId source_id,
- ukm::UkmRecorder* ukm_recorder) {
- DCHECK_NE(source_id, ukm::kInvalidSourceId);
- DCHECK(ukm_recorder);
-
- ukm::builders::SMSReceiver builder(source_id);
- builder.SetOutcome(static_cast<int>(outcome));
- builder.Record(ukm_recorder);
-
- UMA_HISTOGRAM_ENUMERATION("Blink.Sms.Receive.Outcome", outcome);
-}
-
-void RecordSMSSuccessTime(base::TimeDelta duration) {
- UMA_HISTOGRAM_MEDIUM_TIMES("Blink.Sms.Receive.TimeSuccess", duration);
-}
-
-void RecordSMSCancelTime(base::TimeDelta duration) {
- UMA_HISTOGRAM_MEDIUM_TIMES("Blink.Sms.Receive.TimeCancel", duration);
-}
-
-} // namespace blink
diff --git a/third_party/blink/renderer/modules/sms/sms_metrics.h b/third_party/blink/renderer/modules/sms/sms_metrics.h
deleted file mode 100644
index 526da7e..0000000
--- a/third_party/blink/renderer/modules/sms/sms_metrics.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_SMS_METRICS_H_
-#define THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_SMS_METRICS_H_
-
-#include <stdint.h>
-
-#include "services/metrics/public/cpp/ukm_source_id.h"
-#include "third_party/blink/public/common/sms/sms_receiver_outcome.h"
-
-namespace base {
-class TimeDelta;
-} // namespace base
-
-namespace ukm {
-class UkmRecorder;
-} // namespace ukm
-
-namespace blink {
-
-// Records the result of a call to the SMSReceiver API.
-void RecordSMSOutcome(SMSReceiverOutcome outcome,
- ukm::SourceId source_id,
- ukm::UkmRecorder* ukm_recorder);
-
-// Records the time from when the API is called to when the user successfully
-// receives the SMS and presses continue to move on with the verification flow.
-void RecordSMSSuccessTime(base::TimeDelta duration);
-
-// Records the time from when the API is called to when the user presses the
-// cancel button to abort SMS retrieval.
-void RecordSMSCancelTime(base::TimeDelta duration);
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_SMS_METRICS_H_
diff --git a/third_party/blink/renderer/modules/sms/sms_receiver.cc b/third_party/blink/renderer/modules/sms/sms_receiver.cc
deleted file mode 100644
index 60f7ad31..0000000
--- a/third_party/blink/renderer/modules/sms/sms_receiver.cc
+++ /dev/null
@@ -1,147 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <utility>
-
-#include "third_party/blink/renderer/modules/sms/sms_receiver.h"
-
-#include "third_party/blink/public/common/browser_interface_broker_proxy.h"
-#include "third_party/blink/public/mojom/sms/sms_receiver.mojom-blink.h"
-#include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
-#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
-#include "third_party/blink/renderer/bindings/modules/v8/v8_sms_receiver_options.h"
-#include "third_party/blink/renderer/core/dom/abort_signal.h"
-#include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/core/dom/dom_exception.h"
-#include "third_party/blink/renderer/core/frame/local_frame.h"
-#include "third_party/blink/renderer/modules/sms/sms.h"
-#include "third_party/blink/renderer/modules/sms/sms_metrics.h"
-#include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/bindings/script_state.h"
-#include "third_party/blink/renderer/platform/heap/heap.h"
-#include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/functional.h"
-
-namespace blink {
-
-SMSReceiver::SMSReceiver(ExecutionContext* context)
- : ExecutionContextClient(context) {}
-
-SMSReceiver::~SMSReceiver() = default;
-
-ScriptPromise SMSReceiver::receive(ScriptState* script_state,
- const SMSReceiverOptions* options,
- ExceptionState& exception_state) {
- ExecutionContext* context = ExecutionContext::From(script_state);
- DCHECK(context->IsContextThread());
-
- LocalFrame* frame = GetFrame();
- if (!frame) {
- exception_state.ThrowDOMException(DOMExceptionCode::kNotSupportedError,
- "Script context has shut down.");
- return ScriptPromise();
- }
-
- if (!frame->IsMainFrame() && frame->IsCrossOriginToMainFrame()) {
- exception_state.ThrowDOMException(
- DOMExceptionCode::kNotAllowedError,
- "Must have the same origin as the top-level frame.");
- return ScriptPromise();
- }
-
- if (options->hasSignal() && options->signal()->aborted()) {
- RecordSMSOutcome(SMSReceiverOutcome::kAborted, GetDocument()->UkmSourceID(),
- GetDocument()->UkmRecorder());
- exception_state.ThrowDOMException(DOMExceptionCode::kAbortError,
- "Request has been aborted.");
- return ScriptPromise();
- }
-
- auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state);
-
- if (options->hasSignal()) {
- options->signal()->AddAlgorithm(WTF::Bind(&SMSReceiver::Abort,
- WrapWeakPersistent(this),
- WrapPersistent(resolver)));
- }
-
- requests_.insert(resolver);
-
- // See https://bit.ly/2S0zRAS for task types.
- scoped_refptr<base::SingleThreadTaskRunner> task_runner =
- GetExecutionContext()->GetTaskRunner(TaskType::kMiscPlatformAPI);
-
- if (!service_) {
- GetExecutionContext()->GetBrowserInterfaceBroker().GetInterface(
- service_.BindNewPipeAndPassReceiver(task_runner));
- service_.set_disconnect_handler(WTF::Bind(
- &SMSReceiver::OnSMSReceiverConnectionError, WrapWeakPersistent(this)));
- }
-
- service_->Receive(
- WTF::Bind(&SMSReceiver::OnReceive, WrapPersistent(this),
- WrapPersistent(resolver), base::TimeTicks::Now()));
-
- return resolver->Promise();
-}
-
-void SMSReceiver::Abort(ScriptPromiseResolver* resolver) {
- RecordSMSOutcome(SMSReceiverOutcome::kAborted, GetDocument()->UkmSourceID(),
- GetDocument()->UkmRecorder());
- service_->Abort();
-
- resolver->Reject(
- MakeGarbageCollected<DOMException>(DOMExceptionCode::kAbortError));
-
- requests_.erase(resolver);
-}
-
-void SMSReceiver::OnReceive(ScriptPromiseResolver* resolver,
- base::TimeTicks start_time,
- mojom::blink::SmsStatus status,
- const WTF::String& otp,
- const WTF::String& sms) {
- requests_.erase(resolver);
-
- ukm::SourceId source_id = GetDocument()->UkmSourceID();
- ukm::UkmRecorder* recorder = GetDocument()->UkmRecorder();
-
- if (status == mojom::blink::SmsStatus::kTimeout) {
- resolver->Reject(MakeGarbageCollected<DOMException>(
- DOMExceptionCode::kTimeoutError, "SMSReceiver timed out."));
- RecordSMSOutcome(SMSReceiverOutcome::kTimeout, source_id, recorder);
- return;
- } else if (status == mojom::blink::SmsStatus::kCancelled) {
- resolver->Reject(MakeGarbageCollected<DOMException>(
- DOMExceptionCode::kAbortError, "SMSReceiver was aborted."));
- RecordSMSCancelTime(base::TimeTicks::Now() - start_time);
- RecordSMSOutcome(SMSReceiverOutcome::kCancelled, source_id, recorder);
- return;
- }
-
- RecordSMSSuccessTime(base::TimeTicks::Now() - start_time);
- RecordSMSOutcome(SMSReceiverOutcome::kSuccess, source_id, recorder);
-
- resolver->Resolve(MakeGarbageCollected<blink::SMS>(sms));
-}
-
-void SMSReceiver::OnSMSReceiverConnectionError() {
- service_.reset();
- for (ScriptPromiseResolver* request : requests_) {
- request->Reject(MakeGarbageCollected<DOMException>(
- DOMExceptionCode::kNotFoundError, "SMSReceiver not available."));
- RecordSMSOutcome(SMSReceiverOutcome::kConnectionError,
- GetDocument()->UkmSourceID(),
- GetDocument()->UkmRecorder());
- }
- requests_.clear();
-}
-
-void SMSReceiver::Trace(Visitor* visitor) {
- ScriptWrappable::Trace(visitor);
- ExecutionContextClient::Trace(visitor);
- visitor->Trace(requests_);
-}
-
-} // namespace blink
diff --git a/third_party/blink/renderer/modules/sms/sms_receiver.h b/third_party/blink/renderer/modules/sms/sms_receiver.h
deleted file mode 100644
index 65a535d0..0000000
--- a/third_party/blink/renderer/modules/sms/sms_receiver.h
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_SMS_RECEIVER_H_
-#define THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_SMS_RECEIVER_H_
-
-#include "base/macros.h"
-#include "mojo/public/cpp/bindings/remote.h"
-#include "third_party/blink/public/mojom/sms/sms_receiver.mojom-blink.h"
-#include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
-#include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
-#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/heap/heap_allocator.h"
-
-namespace blink {
-
-class SMSReceiverOptions;
-class ScriptPromiseResolver;
-
-class SMSReceiver final : public ScriptWrappable,
- public ExecutionContextClient {
- USING_GARBAGE_COLLECTED_MIXIN(SMSReceiver);
- DEFINE_WRAPPERTYPEINFO();
-
- public:
- explicit SMSReceiver(ExecutionContext*);
-
- ~SMSReceiver() override;
-
- // SMSReceiver IDL interface.
- ScriptPromise receive(ScriptState*,
- const SMSReceiverOptions*,
- ExceptionState&);
-
- void Trace(Visitor*) override;
-
- private:
- HeapHashSet<Member<ScriptPromiseResolver>> requests_;
-
- void Abort(ScriptPromiseResolver* resolver);
-
- void OnReceive(ScriptPromiseResolver* resolver,
- base::TimeTicks start_time,
- mojom::blink::SmsStatus status,
- const WTF::String& otp,
- const WTF::String& sms);
-
- void OnSMSReceiverConnectionError();
-
- mojo::Remote<mojom::blink::SmsReceiver> service_;
-
- DISALLOW_COPY_AND_ASSIGN(SMSReceiver);
-};
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_SMS_RECEIVER_H_
diff --git a/third_party/blink/renderer/modules/sms/sms_receiver.idl b/third_party/blink/renderer/modules/sms/sms_receiver.idl
deleted file mode 100644
index de97504..0000000
--- a/third_party/blink/renderer/modules/sms/sms_receiver.idl
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// https://github.com/samuelgoto/sms-receiver
-
-[
- SecureContext,
- Exposed=Window,
- RuntimeEnabled=SmsReceiver
-] interface SMSReceiver {
- [CallWith=ScriptState, RaisesException, MeasureAs=SMSReceiverStart]
- Promise<SMS> receive(optional SMSReceiverOptions options = {});
-};
diff --git a/third_party/blink/renderer/modules/sms/sms_receiver_options.idl b/third_party/blink/renderer/modules/sms/sms_receiver_options.idl
deleted file mode 100644
index c77820d9..0000000
--- a/third_party/blink/renderer/modules/sms/sms_receiver_options.idl
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// https://github.com/samuelgoto/sms-receiver
-
-dictionary SMSReceiverOptions {
- AbortSignal signal;
-};
diff --git a/third_party/blink/web_tests/external/wpt/resources/chromium/sms_mock.js b/third_party/blink/web_tests/external/wpt/resources/chromium/sms_mock.js
deleted file mode 100644
index 13d12da..0000000
--- a/third_party/blink/web_tests/external/wpt/resources/chromium/sms_mock.js
+++ /dev/null
@@ -1,52 +0,0 @@
-'use strict';
-
-const SmsProvider = (() => {
-
- class MockSmsReceiver {
-
- constructor() {
- this.mojoReceiver_ = new blink.mojom.SmsReceiverReceiver(this);
-
- this.interceptor_ =
- new MojoInterfaceInterceptor(blink.mojom.SmsReceiver.$interfaceName);
-
- this.interceptor_.oninterfacerequest = (e) => {
- this.mojoReceiver_.$.bindHandle(e.handle);
- }
- this.interceptor_.start();
-
- this.returnValues_ = {};
- }
-
- async receive() {
- let call = this.returnValues_.receive ?
- this.returnValues_.receive.shift() : null;
- if (!call)
- return;
- return call();
- }
-
- async abort() {}
-
- pushReturnValuesForTesting(callName, value) {
- this.returnValues_[callName] = this.returnValues_[callName] || [];
- this.returnValues_[callName].push(value);
- return this;
- }
-
- }
-
- const mockSmsReceiver = new MockSmsReceiver();
-
- class SmsProviderChromium {
- constructor() {
- Object.freeze(this); // Make it immutable.
- }
-
- pushReturnValuesForTesting(callName, callback) {
- mockSmsReceiver.pushReturnValuesForTesting(callName, callback);
- }
- }
-
- return SmsProviderChromium;
-})();
diff --git a/third_party/blink/web_tests/external/wpt/sms/README.md b/third_party/blink/web_tests/external/wpt/sms/README.md
deleted file mode 100644
index 1f34178..0000000
--- a/third_party/blink/web_tests/external/wpt/sms/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# SMS Receiver API
-
-This directory contains tests for the SMS Receiver API. For more details, refer to [this README file](https://cs.chromium.org/chromium/src/content/browser/sms/README.md).
diff --git a/third_party/blink/web_tests/external/wpt/sms/detached-iframe.https.html b/third_party/blink/web_tests/external/wpt/sms/detached-iframe.https.html
deleted file mode 100644
index bde6e25b..0000000
--- a/third_party/blink/web_tests/external/wpt/sms/detached-iframe.https.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>sms on DOMWindow of detached iframe</title>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/get-host-info.sub.js"></script>
-<iframe id="iframe"></iframe>
-<script>
-'use strict';
-
-promise_test(async t => {
- const iframe = document.getElementById('iframe');
- const smsReceiver = iframe.contentWindow.navigator.sms;
- iframe.parentNode.removeChild(iframe);
-
- try {
- await smsReceiver.receive();
- assert_unreached('Expected NotSupportedError to be thrown.');
- } catch (error) {
- assert_equals(error.name, 'NotSupportedError');
- }
-}, 'Return error when frame is inaccessible');
-
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/sms/idlharness.https.any.js b/third_party/blink/web_tests/external/wpt/sms/idlharness.https.any.js
deleted file mode 100644
index 0c31744..0000000
--- a/third_party/blink/web_tests/external/wpt/sms/idlharness.https.any.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// META: script=/resources/WebIDLParser.js
-// META: script=/resources/idlharness.js
-
-// https://github.com/samuelgoto/sms-receiver
-
-'use strict';
-
-promise_test(async (t) => {
- const srcs = ['./sms_receiver.idl',
- '/interfaces/dom.idl',
- '/interfaces/html.idl'];
-
- const [sms, dom, html] = await Promise.all(
- srcs.map(i => fetch(i).then(r => r.text()))
- );
-
- const idl_array = new IdlArray();
- idl_array.add_idls(sms);
- idl_array.add_dependency_idls(dom);
- idl_array.add_dependency_idls(html);
-
- idl_array.add_objects({
- SmsReceiver: ['navigator.sms'],
- });
-
- idl_array.add_objects({ Navigator: ['navigator'] })
-
- idl_array.test();
-}, 'Test IDL implementation of the SMS Receiver API');
-
diff --git a/third_party/blink/web_tests/external/wpt/sms/interceptor.https.html b/third_party/blink/web_tests/external/wpt/sms/interceptor.https.html
deleted file mode 100644
index 6dff7903..0000000
--- a/third_party/blink/web_tests/external/wpt/sms/interceptor.https.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<!DOCTYPE html>
-<link rel="help" href="https://github.com/samuelgoto/sms-receiver">
-<title>Tests the SMS Receiver API</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<!--
- sms_provider.js is a testing framework that enables engines to test the sms
- receiver API by intercepting the connection between the browser and the
- underlying operating system and mock its behavior.
-
- Usage:
-
- 1) Include <script src="./resources/helper.js"></script> in your test.
- 2) Set expectations
- await expect(receive).andReturn(() => {
- // mock behavior
- })
- 3) Call navigator.sms.receive()
- 4) Verify results
-
- The mocking API is browser agnostic and is designed such that other engines
- could implement it too.
-
- Here are the symbols that are exposed to tests that need to be implemented
- per engine:
-
- - function receive(): the main/only function that can be mocked.
- - function expect(): the main/only function that enables us to mock it.
- - enum State {kSuccess, kTimeout}: allows you to mock success/failures.
-
- -->
-<script src="./resources/helper.js"></script>
-<script>
-'use strict';
-
-promise_test(async t => {
- await expect(receive).andReturn(() => {
- return Promise.resolve({
- status: Status.kSuccess,
- message: "hello",
- });
- });
-
- let sms = await navigator.sms.receive();
-
- assert_equals(sms.content, "hello");
-}, 'Basic usage');
-
-promise_test(async t => {
- await expect(receive).andReturn(() => {
- return Promise.resolve({
- status: Status.kSuccess,
- message: "hello1",
- });
- });
- await expect(receive).andReturn(() => {
- return Promise.resolve({
- status: Status.kSuccess,
- message: "hello2",
- });
- });
-
- let sms1 = navigator.sms.receive();
- let sms2 = navigator.sms.receive();
-
- let msg2 = await sms2;
- let msg1 = await sms1;
-
- assert_equals(msg1.content, "hello1");
- assert_equals(msg2.content, "hello2");
-}, 'Handle multiple requests in different order.');
-
-promise_test(async t => {
- await expect(receive).andReturn(() => {
- return Promise.resolve({
- status: Status.kCancelled,
- });
- });
- await expect(receive).andReturn(() => {
- return Promise.resolve({
- status: Status.kSuccess,
- message: "success",
- });
- });
-
- let cancelled_sms = navigator.sms.receive();
- let successful_sms = navigator.sms.receive();
-
- let successful_msg = await successful_sms;
- assert_equals(successful_msg.content, "success");
-
- try {
- await cancelled_sms;
- assert_unreached('Expected AbortError to be thrown.');
- } catch (error) {
- assert_equals(error.name, "AbortError");
- assert_equals(error.message, "SMSReceiver was aborted.");
- }
-}, 'Handle multiple requests with success and error.');
-
-promise_test(async t => {
- await expect(receive).andReturn(() => {
- return Promise.resolve({
- status: Status.kCancelled,
- });
- });
-
- try {
- await navigator.sms.receive();
- assert_unreached('Expected CancelledError to be thrown.');
- } catch (error) {
- assert_equals(error.name, "AbortError");
- assert_equals(error.message, "SMSReceiver was aborted.");
- }
-}, 'Deal with cancelled requests');
-
-promise_test(async t => {
- const controller = new AbortController();
- const signal = controller.signal;
-
- controller.abort();
- await promise_rejects_dom(t, 'AbortError', navigator.sms.receive({signal}));
-}, 'Should abort request');
-
-promise_test(async t => {
- const controller = new AbortController();
- const signal = controller.signal;
-
- let error = navigator.sms.receive({signal});
- controller.abort();
- await promise_rejects_dom(t, 'AbortError', error);
-}, 'Should abort request even while request is in progress.');
-
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/sms/resources/helper.js b/third_party/blink/web_tests/external/wpt/sms/resources/helper.js
deleted file mode 100644
index d34d6db..0000000
--- a/third_party/blink/web_tests/external/wpt/sms/resources/helper.js
+++ /dev/null
@@ -1,66 +0,0 @@
-'use strict';
-
-// These tests rely on the User Agent providing an implementation of
-// the sms retriever.
-//
-// In Chromium-based browsers this implementation is provided by a polyfill
-// in order to reduce the amount of test-only code shipped to users. To enable
-// these tests the browser must be run with these options:
-//
-// --enable-blink-features=MojoJS,MojoJSTest
-
-const loadChromiumResources = async () => {
- if (!window.MojoInterfaceInterceptor) {
- // Do nothing on non-Chromium-based browsers or when the Mojo bindings are
- // not present in the global namespace.
- return;
- }
-
- const resources = [
- '/gen/layout_test_data/mojo/public/js/mojo_bindings_lite.js',
- '/gen/mojo/public/mojom/base/time.mojom-lite.js',
- '/gen/third_party/blink/public/mojom/sms/sms_receiver.mojom-lite.js',
- '/resources/chromium/sms_mock.js',
- ];
-
- await Promise.all(resources.map(path => {
- const script = document.createElement('script');
- script.src = path;
- script.async = false;
- const promise = new Promise((resolve, reject) => {
- script.onload = resolve;
- script.onerror = reject;
- });
- document.head.appendChild(script);
- return promise;
- }));
-
- Status.kSuccess = blink.mojom.SmsStatus.kSuccess;
- Status.kTimeout = blink.mojom.SmsStatus.kTimeout;
- Status.kCancelled = blink.mojom.SmsStatus.kCancelled;
-};
-
-const Status = {};
-
-async function create_sms_provider() {
- if (typeof SmsProvider === 'undefined') {
- await loadChromiumResources();
- }
- if (typeof SmsProvider == 'undefined') {
- throw new Error('Mojo testing interface is not available.');
- }
- return new SmsProvider();
-}
-
-function receive() {
- throw new Error("expected to be overriden by tests");
-}
-
-function expect(call) {
- return {
- async andReturn(callback) {
- const mock = await create_sms_provider();
- mock.pushReturnValuesForTesting(call.name, callback);
- }
- }
-}
diff --git a/third_party/blink/web_tests/external/wpt/sms/resources/iframe.html b/third_party/blink/web_tests/external/wpt/sms/resources/iframe.html
deleted file mode 100644
index 38efb15a..0000000
--- a/third_party/blink/web_tests/external/wpt/sms/resources/iframe.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<script src="./helper.js"></script>
-<script>
-'use strict';
-
-// Intercept successful calls and return mocked value.
-(async function() {
- await expect(receive).andReturn(() => {
- return Promise.resolve({
- status: Status.kSuccess,
- message: "hello",
- });
- });
-}());
-
-window.onload = function() {
- navigator.sms.receive()
- .then(sms => {
- window.parent.postMessage({result: "Pass", sms: sms.content}, '*');
- })
- .catch(error => {
- window.parent.postMessage({result: "Fail", errorType: error.name}, '*');
- });
-}
-
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/sms/sms-iframe.https.html b/third_party/blink/web_tests/external/wpt/sms/sms-iframe.https.html
deleted file mode 100644
index 0809f24..0000000
--- a/third_party/blink/web_tests/external/wpt/sms/sms-iframe.https.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/get-host-info.sub.js"></script>
-
-<body>
-
-<script>
-'use strict';
-
-const host = get_host_info();
-const remoteBaseURL = host.HTTPS_REMOTE_ORIGIN + window.location.pathname.replace(/\/[^\/]*$/, '/') ;
-const localBaseURL = host.HTTPS_ORIGIN + window.location.pathname.replace(/\/[^\/]*$/, '/') ;
-
-promise_test(async t => {
- const messageWatcher = new EventWatcher(t, window, "message");
- var iframe = document.createElement("iframe");
- iframe.src = localBaseURL + "resources/iframe.html";
-
- document.body.appendChild(iframe);
-
- const message = await messageWatcher.wait_for("message");
- assert_equals(message.data.result, "Pass");
- assert_equals(message.data.sms, "hello");
-
-}, "Test SMSReceiver API enabled in same origin iframes");
-
-promise_test(async t => {
- const messageWatcher = new EventWatcher(t, window, "message");
- var iframe = document.createElement("iframe");
- iframe.src = remoteBaseURL + "resources/iframe.html"
- document.body.appendChild(iframe);
-
- const message = await messageWatcher.wait_for("message");
- assert_equals(message.data.result, "Fail");
- assert_equals(message.data.errorType, "NotAllowedError");
-
-}, "Test SMSReceiver API disabled in cross origin iframes");
-
-</script>
-</body>
diff --git a/third_party/blink/web_tests/external/wpt/sms/sms_receiver.idl b/third_party/blink/web_tests/external/wpt/sms/sms_receiver.idl
deleted file mode 100644
index ca8cfdd7..0000000
--- a/third_party/blink/web_tests/external/wpt/sms/sms_receiver.idl
+++ /dev/null
@@ -1,24 +0,0 @@
-[SecureContext]
-interface mixin NavigatorSMS {
- readonly attribute SMSReceiver sms;
-};
-
-Navigator includes NavigatorSMS;
-
-[
- SecureContext,
- Exposed=(Window,DedicatedWorker)]
-interface SMS {
- readonly attribute DOMString content;
-};
-
-dictionary SMSReceiverOptions {
- AbortSignal signal;
-};
-
-[
- SecureContext,
- Exposed=Window
-] interface SMSReceiver {
- Promise<SMS> receive(optional SMSReceiverOptions options);
-};
diff --git a/third_party/blink/web_tests/http/tests/origin_trials/webexposed/sms-receiver-origin-trial-interfaces.html b/third_party/blink/web_tests/http/tests/origin_trials/webexposed/sms-receiver-origin-trial-interfaces.html
deleted file mode 100644
index e0097d9..0000000
--- a/third_party/blink/web_tests/http/tests/origin_trials/webexposed/sms-receiver-origin-trial-interfaces.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<!-- Generate token with the command:
-generate_token.py http://127.0.0.1:8000 SmsReceiver --expire-timestamp=2000000000
--- -->
-<meta http-equiv="origin-trial" content="AqptJAocypqw+Nd2rdevpkjUlMBz2si2im0MOtLpKsztHb0CaV25R8qpoQn9Loe/FrswYNlSZSM+8SKwocAUtwoAAABTeyJvcmlnaW4iOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImZlYXR1cmUiOiAiU21zUmVjZWl2ZXIiLCAiZXhwaXJ5IjogMjAwMDAwMDAwMH0=" />
-<title>SmsReceiver - interfaces exposed by origin trial</title>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
-<script src="../../resources/origin-trials-helper.js"></script>
-<script>
-test(t => {
- OriginTrialsHelper.check_properties_exist(this,
- {
- 'Navigator': ['sms'],
- 'SMSReceiver': ['receive'],
- 'SMS': ['content'],
- },
- );
-}, "Sms related interfaces in Origin-Trial enabled document.");
-
-</script>
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt
index 79aceb8..d7605cc0 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt
@@ -1213,10 +1213,6 @@
[Worker] method formData
[Worker] method json
[Worker] method text
-[Worker] interface SMS
-[Worker] attribute @@toStringTag
-[Worker] getter content
-[Worker] method constructor
[Worker] interface SecurityPolicyViolationEvent : Event
[Worker] attribute @@toStringTag
[Worker] getter blockedURI
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
index 02fbcb288..e2efdc1b 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -5438,7 +5438,6 @@
getter scheduling
getter serial
getter serviceWorker
- getter sms
getter storage
getter usb
getter userActivation
@@ -6694,14 +6693,6 @@
method formData
method json
method text
-interface SMS
- attribute @@toStringTag
- getter content
- method constructor
-interface SMSReceiver
- attribute @@toStringTag
- method constructor
- method receive
interface SVGAElement : SVGGraphicsElement
attribute @@toStringTag
getter href