Skip to content

Commit 23aef73

Browse files
authored
Merge pull request #568 from scala-js/topic/beacon
Move Beacon API into Navigator
2 parents a9e3103 + 61d7650 commit 23aef73

File tree

6 files changed

+28
-84
lines changed

6 files changed

+28
-84
lines changed

api-reports/2_12.txt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -275,8 +275,6 @@ AudioTrackList[JT] var onaddtrack: js.Function1[TrackEvent, _]
275275
AudioTrackList[JT] var onchange: js.Function1[js.Any, _]
276276
AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit
277277
AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
278-
BeaconNavigator[JT] def sendBeacon(url: String, data: dom.BodyInit?): Boolean
279-
BeaconWorkerNavigator[JT] def sendBeacon(url: String, data: dom.BodyInit?): Boolean
280278
BeforeUnloadEvent[JC] def bubbles: Boolean
281279
BeforeUnloadEvent[JC] def cancelBubble: Boolean
282280
BeforeUnloadEvent[JC] def cancelable: Boolean
@@ -14355,10 +14353,10 @@ Navigator[JC] def language: String
1435514353
Navigator[JC] def languages: js.Array[String]
1435614354
Navigator[JC] def onLine: Boolean
1435714355
Navigator[JC] def platform: String
14356+
Navigator[JC] def sendBeacon(url: String, data: BodyInit?): Boolean
1435814357
Navigator[JC] def userAgent: String
1435914358
Navigator[JC] def vibrate(duration: Double): Boolean
1436014359
Navigator[JC] def vibrate(pattern: js.Array[Double]): Boolean
14361-
Navigator[SO] implicit def toBeaconNavigator(n: Navigator): BeaconNavigator
1436214360
NavigatorContentUtils[JT]
1436314361
NavigatorGeolocation[JT] def geolocation: Geolocation
1436414362
NavigatorID[JT] def appName: String
@@ -24015,8 +24013,8 @@ WorkerNavigator[JT] def language: String
2401524013
WorkerNavigator[JT] def languages: js.Array[String]
2401624014
WorkerNavigator[JT] def onLine: Boolean
2401724015
WorkerNavigator[JT] def platform: String
24016+
WorkerNavigator[JT] def sendBeacon(url: String, data: BodyInit?): Boolean (@deprecated in 2.0.0)
2401824017
WorkerNavigator[JT] def userAgent: String
24019-
WorkerNavigator[SO] implicit def toBeaconWorkerNavigator(n: WorkerNavigator): BeaconWorkerNavigator
2402024018
WriteableState[JT]
2402124019
WriteableState[SO] val closed: WriteableState
2402224020
WriteableState[SO] val closing: WriteableState
@@ -24313,8 +24311,8 @@ experimental/PointerLock.PointerLockElement[JT] def requestPointerLock(): Unit
2431324311
experimental/PointerLock.PointerLockMouseEvent[JT] def movementX: Double
2431424312
experimental/PointerLock.PointerLockMouseEvent[JT] def movementY: Double
2431524313
experimental/Vibration[SO] (@deprecated in 2.0.0)
24316-
experimental/beacon/package[SO] type BeaconNavigator = dom.BeaconNavigator (@deprecated in 2.0.0)
24317-
experimental/beacon/package[SO] type BeaconWorkerNavigator = dom.BeaconWorkerNavigator (@deprecated in 2.0.0)
24314+
experimental/beacon/package[SO] type BeaconNavigator = dom.Navigator (@deprecated in 2.0.0)
24315+
experimental/beacon/package[SO] type BeaconWorkerNavigator = dom.WorkerNavigator (@deprecated in 2.0.0)
2431824316
experimental/beacon/package[SO] implicit def toBeaconNavigator(n: Navigator): BeaconNavigator (@deprecated in 2.0.0)
2431924317
experimental/beacon/package[SO] implicit def toBeaconWorkerNavigator(n: WorkerNavigator): BeaconWorkerNavigator (@deprecated in 2.0.0)
2432024318
experimental/cachestorage/Cache[JC] def add(request: RequestInfo): js.Promise[Unit]

api-reports/2_13.txt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -275,8 +275,6 @@ AudioTrackList[JT] var onaddtrack: js.Function1[TrackEvent, _]
275275
AudioTrackList[JT] var onchange: js.Function1[js.Any, _]
276276
AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit
277277
AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
278-
BeaconNavigator[JT] def sendBeacon(url: String, data: dom.BodyInit?): Boolean
279-
BeaconWorkerNavigator[JT] def sendBeacon(url: String, data: dom.BodyInit?): Boolean
280278
BeforeUnloadEvent[JC] def bubbles: Boolean
281279
BeforeUnloadEvent[JC] def cancelBubble: Boolean
282280
BeforeUnloadEvent[JC] def cancelable: Boolean
@@ -14355,10 +14353,10 @@ Navigator[JC] def language: String
1435514353
Navigator[JC] def languages: js.Array[String]
1435614354
Navigator[JC] def onLine: Boolean
1435714355
Navigator[JC] def platform: String
14356+
Navigator[JC] def sendBeacon(url: String, data: BodyInit?): Boolean
1435814357
Navigator[JC] def userAgent: String
1435914358
Navigator[JC] def vibrate(duration: Double): Boolean
1436014359
Navigator[JC] def vibrate(pattern: js.Array[Double]): Boolean
14361-
Navigator[SO] implicit def toBeaconNavigator(n: Navigator): BeaconNavigator
1436214360
NavigatorContentUtils[JT]
1436314361
NavigatorGeolocation[JT] def geolocation: Geolocation
1436414362
NavigatorID[JT] def appName: String
@@ -24015,8 +24013,8 @@ WorkerNavigator[JT] def language: String
2401524013
WorkerNavigator[JT] def languages: js.Array[String]
2401624014
WorkerNavigator[JT] def onLine: Boolean
2401724015
WorkerNavigator[JT] def platform: String
24016+
WorkerNavigator[JT] def sendBeacon(url: String, data: BodyInit?): Boolean (@deprecated in 2.0.0)
2401824017
WorkerNavigator[JT] def userAgent: String
24019-
WorkerNavigator[SO] implicit def toBeaconWorkerNavigator(n: WorkerNavigator): BeaconWorkerNavigator
2402024018
WriteableState[JT]
2402124019
WriteableState[SO] val closed: WriteableState
2402224020
WriteableState[SO] val closing: WriteableState
@@ -24313,8 +24311,8 @@ experimental/PointerLock.PointerLockElement[JT] def requestPointerLock(): Unit
2431324311
experimental/PointerLock.PointerLockMouseEvent[JT] def movementX: Double
2431424312
experimental/PointerLock.PointerLockMouseEvent[JT] def movementY: Double
2431524313
experimental/Vibration[SO] (@deprecated in 2.0.0)
24316-
experimental/beacon/package[SO] type BeaconNavigator = dom.BeaconNavigator (@deprecated in 2.0.0)
24317-
experimental/beacon/package[SO] type BeaconWorkerNavigator = dom.BeaconWorkerNavigator (@deprecated in 2.0.0)
24314+
experimental/beacon/package[SO] type BeaconNavigator = dom.Navigator (@deprecated in 2.0.0)
24315+
experimental/beacon/package[SO] type BeaconWorkerNavigator = dom.WorkerNavigator (@deprecated in 2.0.0)
2431824316
experimental/beacon/package[SO] implicit def toBeaconNavigator(n: Navigator): BeaconNavigator (@deprecated in 2.0.0)
2431924317
experimental/beacon/package[SO] implicit def toBeaconWorkerNavigator(n: WorkerNavigator): BeaconWorkerNavigator (@deprecated in 2.0.0)
2432024318
experimental/cachestorage/Cache[JC] def add(request: RequestInfo): js.Promise[Unit]

src/main/scala/org/scalajs/dom/WebWorkerTypes.scala

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.scalajs.dom
22

3-
import scala.language.implicitConversions
43
import scala.scalajs.js
54
import scala.scalajs.js.annotation._
65

@@ -168,12 +167,10 @@ object DedicatedWorkerGlobalScope extends js.Object {
168167
* obtained by calling window.self.navigator
169168
*/
170169
@js.native
171-
trait WorkerNavigator extends NavigatorID with NavigatorOnLine with NavigatorLanguage
170+
trait WorkerNavigator extends NavigatorID with NavigatorOnLine with NavigatorLanguage {
172171

173-
object WorkerNavigator {
174-
175-
implicit def toBeaconWorkerNavigator(n: WorkerNavigator): BeaconWorkerNavigator =
176-
n.asInstanceOf[BeaconWorkerNavigator]
172+
@deprecated("sendBeacon is not supported in web workers", "2.0.0")
173+
def sendBeacon(url: String, data: BodyInit = js.native): Boolean = js.native
177174
}
178175

179176
/** The WorkerLocation interface defines the absolute location of the script executed by the Worker. Such an object is

src/main/scala/org/scalajs/dom/beacon.scala

Lines changed: 0 additions & 52 deletions
This file was deleted.

src/main/scala/org/scalajs/dom/experimental/beacon/package.scala

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@ import scala.language.implicitConversions
66

77
package object beacon {
88

9-
@deprecated("use dom.BeaconNavigator instead", "2.0.0")
10-
type BeaconNavigator = dom.BeaconNavigator
9+
@deprecated("use dom.Navigator instead", "2.0.0")
10+
type BeaconNavigator = dom.Navigator
1111

12-
@deprecated("use dom.BeaconWorkerNavigator instead", "2.0.0")
13-
type BeaconWorkerNavigator = dom.BeaconWorkerNavigator
12+
@deprecated("use dom.WorkerNavigator instead", "2.0.0")
13+
type BeaconWorkerNavigator = dom.WorkerNavigator
1414

15-
@deprecated("use dom.Navigator.toBeaconNavigator instead", "2.0.0")
15+
@deprecated("use dom.Navigator directly instead", "2.0.0")
1616
implicit def toBeaconNavigator(n: Navigator): BeaconNavigator =
17-
Navigator.toBeaconNavigator(n)
17+
n
1818

19-
@deprecated("use dom.WorkerNavigator.toBeaconWorkerNavigator instead", "2.0.0")
19+
@deprecated("use dom.WorkerNavigator directly instead", "2.0.0")
2020
implicit def toBeaconWorkerNavigator(n: WorkerNavigator): BeaconWorkerNavigator =
21-
WorkerNavigator.toBeaconWorkerNavigator(n)
21+
n
2222

2323
}

src/main/scala/org/scalajs/dom/lib.scala

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -315,13 +315,16 @@ class Navigator
315315
* "clipboard-read" and/or "clipboard-write" permissions.
316316
*/
317317
def clipboard: Clipboard = js.native
318-
}
319-
320-
object Navigator {
321-
322-
implicit def toBeaconNavigator(n: Navigator): BeaconNavigator =
323-
n.asInstanceOf[BeaconNavigator]
324318

319+
/** The navigator.sendBeacon() method can be used to asynchronously transfer small HTTP data from the User Agent to a
320+
* web server.
321+
*
322+
* @param url
323+
* The url parameter indicates the resolved URL where the data is to be transmitted.
324+
* @param data
325+
* The data parameter is the ArrayBufferView, Blob, DOMString, or FormData data that is to be transmitted.
326+
*/
327+
def sendBeacon(url: String, data: BodyInit = js.native): Boolean = js.native
325328
}
326329

327330
@js.native

0 commit comments

Comments
 (0)