diff --git a/api-reports/2_12.txt b/api-reports/2_12.txt index 265f0ae0b..4120f3b14 100644 --- a/api-reports/2_12.txt +++ b/api-reports/2_12.txt @@ -275,8 +275,6 @@ AudioTrackList[JT] var onaddtrack: js.Function1[TrackEvent, _] AudioTrackList[JT] var onchange: js.Function1[js.Any, _] AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit -BeaconNavigator[JT] def sendBeacon(url: String, data: dom.BodyInit?): Boolean -BeaconWorkerNavigator[JT] def sendBeacon(url: String, data: dom.BodyInit?): Boolean BeforeUnloadEvent[JC] def bubbles: Boolean BeforeUnloadEvent[JC] def cancelBubble: Boolean BeforeUnloadEvent[JC] def cancelable: Boolean @@ -14355,10 +14353,10 @@ Navigator[JC] def language: String Navigator[JC] def languages: js.Array[String] Navigator[JC] def onLine: Boolean Navigator[JC] def platform: String +Navigator[JC] def sendBeacon(url: String, data: BodyInit?): Boolean Navigator[JC] def userAgent: String Navigator[JC] def vibrate(duration: Double): Boolean Navigator[JC] def vibrate(pattern: js.Array[Double]): Boolean -Navigator[SO] implicit def toBeaconNavigator(n: Navigator): BeaconNavigator NavigatorContentUtils[JT] NavigatorGeolocation[JT] def geolocation: Geolocation NavigatorID[JT] def appName: String @@ -24015,8 +24013,8 @@ WorkerNavigator[JT] def language: String WorkerNavigator[JT] def languages: js.Array[String] WorkerNavigator[JT] def onLine: Boolean WorkerNavigator[JT] def platform: String +WorkerNavigator[JT] def sendBeacon(url: String, data: BodyInit?): Boolean (@deprecated in 2.0.0) WorkerNavigator[JT] def userAgent: String -WorkerNavigator[SO] implicit def toBeaconWorkerNavigator(n: WorkerNavigator): BeaconWorkerNavigator WriteableState[JT] WriteableState[SO] val closed: WriteableState WriteableState[SO] val closing: WriteableState @@ -24313,8 +24311,8 @@ experimental/PointerLock.PointerLockElement[JT] def requestPointerLock(): Unit experimental/PointerLock.PointerLockMouseEvent[JT] def movementX: Double experimental/PointerLock.PointerLockMouseEvent[JT] def movementY: Double experimental/Vibration[SO] (@deprecated in 2.0.0) -experimental/beacon/package[SO] type BeaconNavigator = dom.BeaconNavigator (@deprecated in 2.0.0) -experimental/beacon/package[SO] type BeaconWorkerNavigator = dom.BeaconWorkerNavigator (@deprecated in 2.0.0) +experimental/beacon/package[SO] type BeaconNavigator = dom.Navigator (@deprecated in 2.0.0) +experimental/beacon/package[SO] type BeaconWorkerNavigator = dom.WorkerNavigator (@deprecated in 2.0.0) experimental/beacon/package[SO] implicit def toBeaconNavigator(n: Navigator): BeaconNavigator (@deprecated in 2.0.0) experimental/beacon/package[SO] implicit def toBeaconWorkerNavigator(n: WorkerNavigator): BeaconWorkerNavigator (@deprecated in 2.0.0) experimental/cachestorage/Cache[JC] def add(request: RequestInfo): js.Promise[Unit] diff --git a/api-reports/2_13.txt b/api-reports/2_13.txt index 265f0ae0b..4120f3b14 100644 --- a/api-reports/2_13.txt +++ b/api-reports/2_13.txt @@ -275,8 +275,6 @@ AudioTrackList[JT] var onaddtrack: js.Function1[TrackEvent, _] AudioTrackList[JT] var onchange: js.Function1[js.Any, _] AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit -BeaconNavigator[JT] def sendBeacon(url: String, data: dom.BodyInit?): Boolean -BeaconWorkerNavigator[JT] def sendBeacon(url: String, data: dom.BodyInit?): Boolean BeforeUnloadEvent[JC] def bubbles: Boolean BeforeUnloadEvent[JC] def cancelBubble: Boolean BeforeUnloadEvent[JC] def cancelable: Boolean @@ -14355,10 +14353,10 @@ Navigator[JC] def language: String Navigator[JC] def languages: js.Array[String] Navigator[JC] def onLine: Boolean Navigator[JC] def platform: String +Navigator[JC] def sendBeacon(url: String, data: BodyInit?): Boolean Navigator[JC] def userAgent: String Navigator[JC] def vibrate(duration: Double): Boolean Navigator[JC] def vibrate(pattern: js.Array[Double]): Boolean -Navigator[SO] implicit def toBeaconNavigator(n: Navigator): BeaconNavigator NavigatorContentUtils[JT] NavigatorGeolocation[JT] def geolocation: Geolocation NavigatorID[JT] def appName: String @@ -24015,8 +24013,8 @@ WorkerNavigator[JT] def language: String WorkerNavigator[JT] def languages: js.Array[String] WorkerNavigator[JT] def onLine: Boolean WorkerNavigator[JT] def platform: String +WorkerNavigator[JT] def sendBeacon(url: String, data: BodyInit?): Boolean (@deprecated in 2.0.0) WorkerNavigator[JT] def userAgent: String -WorkerNavigator[SO] implicit def toBeaconWorkerNavigator(n: WorkerNavigator): BeaconWorkerNavigator WriteableState[JT] WriteableState[SO] val closed: WriteableState WriteableState[SO] val closing: WriteableState @@ -24313,8 +24311,8 @@ experimental/PointerLock.PointerLockElement[JT] def requestPointerLock(): Unit experimental/PointerLock.PointerLockMouseEvent[JT] def movementX: Double experimental/PointerLock.PointerLockMouseEvent[JT] def movementY: Double experimental/Vibration[SO] (@deprecated in 2.0.0) -experimental/beacon/package[SO] type BeaconNavigator = dom.BeaconNavigator (@deprecated in 2.0.0) -experimental/beacon/package[SO] type BeaconWorkerNavigator = dom.BeaconWorkerNavigator (@deprecated in 2.0.0) +experimental/beacon/package[SO] type BeaconNavigator = dom.Navigator (@deprecated in 2.0.0) +experimental/beacon/package[SO] type BeaconWorkerNavigator = dom.WorkerNavigator (@deprecated in 2.0.0) experimental/beacon/package[SO] implicit def toBeaconNavigator(n: Navigator): BeaconNavigator (@deprecated in 2.0.0) experimental/beacon/package[SO] implicit def toBeaconWorkerNavigator(n: WorkerNavigator): BeaconWorkerNavigator (@deprecated in 2.0.0) experimental/cachestorage/Cache[JC] def add(request: RequestInfo): js.Promise[Unit] diff --git a/src/main/scala/org/scalajs/dom/WebWorkerTypes.scala b/src/main/scala/org/scalajs/dom/WebWorkerTypes.scala index 949cf7a19..4f6c19ff2 100644 --- a/src/main/scala/org/scalajs/dom/WebWorkerTypes.scala +++ b/src/main/scala/org/scalajs/dom/WebWorkerTypes.scala @@ -1,6 +1,5 @@ package org.scalajs.dom -import scala.language.implicitConversions import scala.scalajs.js import scala.scalajs.js.annotation._ @@ -168,12 +167,10 @@ object DedicatedWorkerGlobalScope extends js.Object { * obtained by calling window.self.navigator */ @js.native -trait WorkerNavigator extends NavigatorID with NavigatorOnLine with NavigatorLanguage +trait WorkerNavigator extends NavigatorID with NavigatorOnLine with NavigatorLanguage { -object WorkerNavigator { - - implicit def toBeaconWorkerNavigator(n: WorkerNavigator): BeaconWorkerNavigator = - n.asInstanceOf[BeaconWorkerNavigator] + @deprecated("sendBeacon is not supported in web workers", "2.0.0") + def sendBeacon(url: String, data: BodyInit = js.native): Boolean = js.native } /** The WorkerLocation interface defines the absolute location of the script executed by the Worker. Such an object is diff --git a/src/main/scala/org/scalajs/dom/beacon.scala b/src/main/scala/org/scalajs/dom/beacon.scala deleted file mode 100644 index 2d171b002..000000000 --- a/src/main/scala/org/scalajs/dom/beacon.scala +++ /dev/null @@ -1,52 +0,0 @@ -package org.scalajs.dom - -import org.scalajs.dom -import scala.scalajs.js - -/** The Beacon interface is used to schedule an asynchronous and non-blocking request to a web server. Beacon requests - * use the HTTP PUT method and requests typically do not require a response. Requests are guaranteed to be initiated - * before a page is unloaded and they are run to completion without requiring a blocking request (for example - * XMLHttpRequest). - * - * @see - * [[https://www.w3.org/TR/2016/WD-beacon-20160204/ Beacon W3C Working Draft]] - * @see - * [[https://developer.mozilla.org/en-US/docs/Web/API/Beacon_API MDN Beacon API]] - */ -@js.native -trait BeaconNavigator extends js.Object { - - /** The navigator.sendBeacon() method can be used to asynchronously transfer small HTTP data from the User Agent to a - * web server. - * - * @param url - * The url parameter indicates the resolved URL where the data is to be transmitted. - * @param data - * The data parameter is the ArrayBufferView, Blob, DOMString, or FormData data that is to be transmitted. - */ - def sendBeacon(url: String, data: dom.BodyInit = js.native): Boolean = js.native -} - -/** The Beacon interface is used to schedule an asynchronous and non-blocking request to a web server. Beacon requests - * use the HTTP PUT method and requests typically do not require a response. Requests are guaranteed to be initiated - * before a page is unloaded and they are run to completion without requiring a blocking request (for example - * XMLHttpRequest). - * - * @see - * [[https://www.w3.org/TR/2016/WD-beacon-20160204/ Beacon W3C Working Draft]] - * @see - * [[https://developer.mozilla.org/en-US/docs/Web/API/Beacon_API MDN Beacon API]] - */ -@js.native -trait BeaconWorkerNavigator extends js.Object { - - /** The navigator.sendBeacon() method can be used to asynchronously transfer small HTTP data from the User Agent to a - * web server. - * - * @param url - * The url parameter indicates the resolved URL where the data is to be transmitted. - * @param data - * The data parameter is the ArrayBufferView, Blob, DOMString, or FormData data that is to be transmitted. - */ - def sendBeacon(url: String, data: dom.BodyInit = js.native): Boolean = js.native -} diff --git a/src/main/scala/org/scalajs/dom/experimental/beacon/package.scala b/src/main/scala/org/scalajs/dom/experimental/beacon/package.scala index b79a021f5..f181bda74 100644 --- a/src/main/scala/org/scalajs/dom/experimental/beacon/package.scala +++ b/src/main/scala/org/scalajs/dom/experimental/beacon/package.scala @@ -6,18 +6,18 @@ import scala.language.implicitConversions package object beacon { - @deprecated("use dom.BeaconNavigator instead", "2.0.0") - type BeaconNavigator = dom.BeaconNavigator + @deprecated("use dom.Navigator instead", "2.0.0") + type BeaconNavigator = dom.Navigator - @deprecated("use dom.BeaconWorkerNavigator instead", "2.0.0") - type BeaconWorkerNavigator = dom.BeaconWorkerNavigator + @deprecated("use dom.WorkerNavigator instead", "2.0.0") + type BeaconWorkerNavigator = dom.WorkerNavigator - @deprecated("use dom.Navigator.toBeaconNavigator instead", "2.0.0") + @deprecated("use dom.Navigator directly instead", "2.0.0") implicit def toBeaconNavigator(n: Navigator): BeaconNavigator = - Navigator.toBeaconNavigator(n) + n - @deprecated("use dom.WorkerNavigator.toBeaconWorkerNavigator instead", "2.0.0") + @deprecated("use dom.WorkerNavigator directly instead", "2.0.0") implicit def toBeaconWorkerNavigator(n: WorkerNavigator): BeaconWorkerNavigator = - WorkerNavigator.toBeaconWorkerNavigator(n) + n } diff --git a/src/main/scala/org/scalajs/dom/lib.scala b/src/main/scala/org/scalajs/dom/lib.scala index 7a6e9d7cc..1c8cbe1b9 100644 --- a/src/main/scala/org/scalajs/dom/lib.scala +++ b/src/main/scala/org/scalajs/dom/lib.scala @@ -315,13 +315,16 @@ class Navigator * "clipboard-read" and/or "clipboard-write" permissions. */ def clipboard: Clipboard = js.native -} - -object Navigator { - - implicit def toBeaconNavigator(n: Navigator): BeaconNavigator = - n.asInstanceOf[BeaconNavigator] + /** The navigator.sendBeacon() method can be used to asynchronously transfer small HTTP data from the User Agent to a + * web server. + * + * @param url + * The url parameter indicates the resolved URL where the data is to be transmitted. + * @param data + * The data parameter is the ArrayBufferView, Blob, DOMString, or FormData data that is to be transmitted. + */ + def sendBeacon(url: String, data: BodyInit = js.native): Boolean = js.native } @js.native