Comments (3)
Hmm I wonder if it's worth debating this. The reason all the attributes of ShareData
are optional is that none of them are required, but you are supposed to pass at least one of them. It doesn't actually make sense to call navigator.share({})
so it seems the non-normative rationale there ("This is to encourage API designs that do not require authors to pass an empty dictionary value when they wish only to use the dictionary’s default values.") does not apply.
Although I don't think there's a way to express it in WebIDL, perhaps we could add a check in the share method that "if all fields of the dictionary are not present, reject with a TypeError
", to actually force the user to supply at least one argument. Then leave the argument as non-optional.
We would still be in violation of the letter of WebIDL but not the spirit. And in fact omitting the argument would have the same result as passing the empty dict (rejected with TypeError
).
from web-share.
I agree it's weird when some member is required, but no individual one. This was also the case with getUserMedia, debated in whatwg/webidl#130. whatwg/dom@e4f7faa was also done as a result of that.
Making it optional and explicitly throwing when missing wouldn't actually be possible with the spec equivalent of "custom bindings", as when you get into the prose, Web IDL has already done its thing and created a dictionary for you. The existing error handling will do the right thing, but the message given will be a bit cryptic, unfortunately.
from web-share.
MutationObserver.observe
sounds like the same case here. It's an optional argument that will (according to its steps always throw a TypeError if omitted.
This makes no sense to me. If you removed the word "optional
" from that IDL, there would be no user-visible changes other than observe.length
being 2 instead of 1. So the word "optional
" is just a lie...
Making it optional and explicitly throwing when missing wouldn't actually be possible with the spec equivalent of "custom bindings", as when you get into the prose, Web IDL has already done its thing and created a dictionary for you.
I'm not suggesting that my prose throw a TypeError if the dictionary is omitted. I'm suggesting that we throw a TypeError if all fields of the dictionary are omitted. (Implicitly, this would be true if the argument was optional and the dictionary was omitted.) This would be the same situation as MutationObserver.observe
.
from web-share.
Related Issues (20)
- Explain implementation status
- "current settings object's relevant global object" is not defined
- Call for consensus: publish as a Proposed Recommendation HOT 1
- Is implemented HOT 4
- Indicate explicitly the intent of the Web Share API regarding cross-origin HOT 1
- Support additional media types? HOT 3
- Base isn't needed in main branch of algorithm HOT 2
- Wrong explanation in example
- Suggesting preview for security should mention accessibility HOT 1
- No explicit acknowledgements? HOT 2
- What's the scope of "abort these steps"? HOT 4
- Make Security Considerations an explicitly named section? HOT 2
- ios web share save file to camera roll only works once HOT 3
- CFC to publish Web Share as a W3C Recommendation HOT 3
- Prepare spec for REC
- “Save Image” missing from Share Sheet HOT 1
- Web Share API fails to share a fully loaded data object/partial data object with file HOT 5
- Feature request: Send geo intents to native devices for selecting navigation apps HOT 1
- [ERRATA] Small Errata on Example 3 `navigates` instead of `navigator`. HOT 1
- Concerns Regarding Privacy and Functionality of Web Share API HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from web-share.