Skip to content

Move Beacon API into Navigator #568

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 6, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions api-reports/2_12.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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]
Expand Down
10 changes: 4 additions & 6 deletions api-reports/2_13.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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]
Expand Down
9 changes: 3 additions & 6 deletions src/main/scala/org/scalajs/dom/WebWorkerTypes.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.scalajs.dom

import scala.language.implicitConversions
import scala.scalajs.js
import scala.scalajs.js.annotation._

Expand Down Expand Up @@ -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
Expand Down
52 changes: 0 additions & 52 deletions src/main/scala/org/scalajs/dom/beacon.scala

This file was deleted.

16 changes: 8 additions & 8 deletions src/main/scala/org/scalajs/dom/experimental/beacon/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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

}
15 changes: 9 additions & 6 deletions src/main/scala/org/scalajs/dom/lib.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down