Skip to content

Commit c6f81f4

Browse files
authored
Merge pull request #669 from scala-js/issue/668
Fix `dom.crypto.getRandomValues`
2 parents a839087 + 4cc7429 commit c6f81f4

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed

api-reports/2_12.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -25514,7 +25514,7 @@ crypto/package[SO] @deprecated("use dom.RsaKeyGenParams instead", "2.0.0") val R
2551425514
crypto/package[SO] @deprecated("use dom.RsaOaepParams instead", "2.0.0") val RsaOaepParams = dom.RsaOaepParams
2551525515
crypto/package[SO] @deprecated("use dom.RsaPssParams instead", "2.0.0") val RsaPssParams = dom.RsaPssParams
2551625516
crypto/package[SO] def crypto: Crypto (@deprecated in 2.0.0)
25517-
crypto/package[SO] @JSGlobal("crypto.getRandomValues") @js.native def getRandomValues(array: ArrayBufferView): ArrayBufferView
25517+
crypto/package[SO] def getRandomValues(array: ArrayBufferView)(implicit dummy: DummyImplicit): ArrayBufferView
2551825518
crypto/package[SO] @JSGlobal("crypto.subtle") @js.native val subtle: dom.SubtleCrypto
2551925519
experimental/Fullscreen[SO] (@deprecated in 2.0.0)
2552025520
experimental/PointerLock[SO] type PointerLockDocument = dom.Document (@deprecated in 2.0.0)

api-reports/2_13.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -25514,7 +25514,7 @@ crypto/package[SO] @deprecated("use dom.RsaKeyGenParams instead", "2.0.0") val R
2551425514
crypto/package[SO] @deprecated("use dom.RsaOaepParams instead", "2.0.0") val RsaOaepParams = dom.RsaOaepParams
2551525515
crypto/package[SO] @deprecated("use dom.RsaPssParams instead", "2.0.0") val RsaPssParams = dom.RsaPssParams
2551625516
crypto/package[SO] def crypto: Crypto (@deprecated in 2.0.0)
25517-
crypto/package[SO] @JSGlobal("crypto.getRandomValues") @js.native def getRandomValues(array: ArrayBufferView): ArrayBufferView
25517+
crypto/package[SO] def getRandomValues(array: ArrayBufferView)(implicit dummy: DummyImplicit): ArrayBufferView
2551825518
crypto/package[SO] @JSGlobal("crypto.subtle") @js.native val subtle: dom.SubtleCrypto
2551925519
experimental/Fullscreen[SO] (@deprecated in 2.0.0)
2552025520
experimental/PointerLock[SO] type PointerLockDocument = dom.Document (@deprecated in 2.0.0)

dom/src/main/scala/org/scalajs/dom/crypto/package.scala

+6-2
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,14 @@ package object crypto {
1414
@js.native
1515
val subtle: dom.SubtleCrypto = js.native
1616

17-
/** Fills the passed TypedArray with cryptographically sound random values. */
17+
// for binary compat; unusable
1818
@JSGlobal("crypto.getRandomValues")
1919
@js.native
20-
def getRandomValues(array: ArrayBufferView): ArrayBufferView = js.native
20+
protected[crypto] def getRandomValues(array: ArrayBufferView): ArrayBufferView = js.native
21+
22+
/** Fills the passed TypedArray with cryptographically sound random values. */
23+
@inline def getRandomValues(array: ArrayBufferView)(implicit dummy: DummyImplicit): ArrayBufferView =
24+
webcrypto.getRandomValues(array)
2125

2226
@deprecated("use dom.crypto instead", "2.0.0")
2327
@inline def crypto: Crypto = GlobalCrypto.crypto

tests-shared/src/main/scala/org/scalajs/dom/tests/shared/WebCryptoApiTests.scala

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ import scala.scalajs.js.typedarray._
1010

1111
trait WebCryptoApiTests {
1212

13+
// https://github.com/scala-js/scala-js-dom/issues/668
14+
@Test final def cryptoGetRandomValues(): Unit =
15+
dom.crypto.getRandomValues(new Uint8Array(1))
16+
1317
@Test final def getRandomValuesWork: Unit = {
1418
dom.webcrypto.getRandomValues(Array.ofDim[Byte](8).toTypedArray)
1519
}

0 commit comments

Comments
 (0)