scottohara / tvmanager

PWA for tracking recorded, watched & upcoming TV shows
MIT License
3 stars 0 forks source link

Pending standards #11

Open scottohara opened 13 years ago

scottohara commented 13 years ago

Browser Features

Feature Status Can I Use Source
navigator.connection.type (for auto-sync over wifi only) :thumbsdown: (Only in Chrome) Link Unofficial draft W3C proposal

Vendor prefixes

Feature Status Can I Use Spec
-webkit-user-select :thumbsdown: (Still prefixed on iOS) Link CSS4 working draft
-webkit-text-size-adjust :hand: (Still prefixed on iOS) Link Unofficial draft W3C proposal
-webkit-device-pixel-ratio :thumbsup: resolution: 2dppx == -webkit-device-pixel-ratio: 2) Link CSS3
scottohara commented 5 years ago

In Safari 13 (iOS 13), -webkit-overflow-scrolling: touch will no longer be necessary.

We will be able to remove this from the ul, #dialog rule.

scottohara commented 4 years ago

Pointer events are now supported in iOS 13

scottohara commented 4 years ago

-webkit-overflow-scrolling: touch removed in 046a6f0035728879510ecf6ce32e7f5e5f9edca2

Although it was expected to be a no-op as of Safari 13, it still had the effect of creating a new CSS stacking context.

This started causing scrolling issues in iOS 13.4.x, where lists could not be scrolled without first rotating to landscape and back to portrait.

scottohara commented 3 years ago

Generating UUIDs in the browser (without a 3rd party dependency): https://medium.com/teads-engineering/generating-uuids-at-scale-on-the-web-2877f529d2a2

Generating a 128-bit (16 bytes) random number with the Crypto API is as simple as:

crypto.getRandomValues(new Uint8Array(16))

To turn these random bytes into a RFC-compliant version 4 UUID, one needs to set the variant and version bits, and then convert the bytes to hexadecimal digits separated by dashes.

Another possibility is to use the File API in combination with the URL.createObjectURL function to obtain a Blob URL containing a UUID. Support for URL.createObjectURL is similar to Crypto at 99.9%.

const url = URL.createObjectURL(new Blob())
url.substring(url.lastIndexOf('/') + 1)

The File API does not specify which version of UUID should be used or how it should be generated. In practice, Chromium-based browsers (Chrome and Edge) and WebKit reuse their Crypto implementation to generate random bytes, and then set/clear bits to create a v4 UUID. Firefox calls OS-level functions when they exist (CoCreateGuid on Windows, CFUUIDCreate on macOS), and otherwise falls back to using Crypto like Chromium and WebKit.

Finally, browsers implement Crypto.getRandomValues by relying on the OS either to provide random numbers directly or to gather entropy and then regularly feed it to a PRNG, making it cryptographically secure (CSPRNG).

scottohara commented 2 years ago

https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID

crypto.randomUUID()

Awaiting implementation in Safari

scottohara commented 2 years ago

-webkit-appearance is now unprefixed

scottohara commented 1 year ago

crypto.randomUUID() is now in Safari

scottohara commented 1 year ago

Badging API (experimental, in Safari 16.4)

https://developer.mozilla.org/en-US/docs/Web/API/Badging_API

scottohara commented 11 months ago

uuid.v4() has been replaced with crypto.randomUUID() in https://github.com/scottohara/tvmanager/commit/df65c633d8dcf0216bbd75c574f507d2dd6ef2fe

scottohara commented 11 months ago

-webkit-device-pixel-ratio: 2 can now be replaced by either resolution: 2dppx or min-resolution: 2dppx in Safari 16.x

Need to check if there is any guidance on which to use for apple-touch-startup-image links.