<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.whatwg.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ehsan</id>
	<title>WHATWG Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.whatwg.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ehsan"/>
	<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/wiki/Special:Contributions/Ehsan"/>
	<updated>2026-06-03T10:12:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Install-less_Service_Workers&amp;diff=9963</id>
		<title>Install-less Service Workers</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Install-less_Service_Workers&amp;diff=9963"/>
		<updated>2015-07-14T22:30:07Z</updated>

		<summary type="html">&lt;p&gt;Ehsan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a proposal for allowing usage of service workers without installing them.  This will be useful for APIs such as Push, and Background Sync.  FetchEvent will not be dispatched to such service workers.  The script source for these service workers wouldn&#039;t be cached locally (except for perhaps in the HTTP cache as all other resources) so every time that the UA wants to spin up one of these, it needs to potentially load it from the network.&lt;br /&gt;
&lt;br /&gt;
== Changes to Service Workers ==&lt;br /&gt;
&lt;br /&gt;
The RegistrationOptions dictionary would need to be extended like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dictionary RegistrationOptions {&lt;br /&gt;
  USVString scope;&lt;br /&gt;
  boolean install;&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [http://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#register-algorithm Register algorithm] would need to be modified around step 4.2 to treat install: false specially by not doing nothing when an existing worker has been installed for that scope (and maybe reusing it, that requires more thought) and skip running the [http://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#update-algorithm Update algorithm].&lt;br /&gt;
&lt;br /&gt;
Furthermore, the current definition of [http://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#dfn-service-worker-registration registrations] heavily depends on the workers being installed, and we would need to perhaps have a parallel list of workers that have been registered in this new mode.  We need to figure out how to treat the intersection of these two sets.&lt;br /&gt;
&lt;br /&gt;
We can probably expose a new readonly boolean attribute on ServiceWorkerRegistration like installed to be able to return a ServiceWorkerRegistration object from register() for the install: false case that will have slightly different semantics (such as never having an installing and waiting worker, its update() method not doing anything, else) but this will have the nice property that the [https://w3c.github.io/push-api/#extensions-to-the-serviceworkerregistration-interface Push API hooks] and the similar can work with both types of workers.&lt;/div&gt;</summary>
		<author><name>Ehsan</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Install-less_Service_Workers&amp;diff=9962</id>
		<title>Install-less Service Workers</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Install-less_Service_Workers&amp;diff=9962"/>
		<updated>2015-07-14T18:01:11Z</updated>

		<summary type="html">&lt;p&gt;Ehsan: Created page with &amp;quot;This is a proposal for allowing usage of service workers without installing them.  This will be useful for APIs such as Push, and Background Sync.  FetchEvent will not be disp...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a proposal for allowing usage of service workers without installing them.  This will be useful for APIs such as Push, and Background Sync.  FetchEvent will not be dispatched to such service workers.&lt;br /&gt;
&lt;br /&gt;
== Changes to Service Workers ==&lt;br /&gt;
&lt;br /&gt;
The RegistrationOptions dictionary would need to be extended like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;dictionary RegistrationOptions {&lt;br /&gt;
  USVString scope;&lt;br /&gt;
  boolean install;&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [http://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#register-algorithm Register algorithm] would need to be modified around step 4.2 to treat install: false specially by not doing nothing when an existing worker has been installed for that scope (and maybe reusing it, that requires more thought) and skip running the [http://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#update-algorithm Update algorithm].&lt;br /&gt;
&lt;br /&gt;
Furthermore, the current definition of [http://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#dfn-service-worker-registration registrations] heavily depends on the workers being installed, and we would need to perhaps have a parallel list of workers that have been registered in this new mode.  We need to figure out how to treat the intersection of these two sets.&lt;br /&gt;
&lt;br /&gt;
We can probably expose a new readonly boolean attribute on ServiceWorkerRegistration like installed to be able to return a ServiceWorkerRegistration object from register() for the install: false case that will have slightly different semantics (such as never having an installing and waiting worker, its update() method not doing anything, else) but this will have the nice property that the [https://w3c.github.io/push-api/#extensions-to-the-serviceworkerregistration-interface Push API hooks] and the similar can work with both types of workers.&lt;/div&gt;</summary>
		<author><name>Ehsan</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Sharing&amp;diff=9672</id>
		<title>Sharing</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Sharing&amp;diff=9672"/>
		<updated>2014-08-13T16:55:35Z</updated>

		<summary type="html">&lt;p&gt;Ehsan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Figuring out sharing for the web.&lt;br /&gt;
&lt;br /&gt;
== Actors ==&lt;br /&gt;
&lt;br /&gt;
* End user&lt;br /&gt;
* User agent&lt;br /&gt;
* Items that can be shared (share item)&lt;br /&gt;
* Place that has items to share (share source)&lt;br /&gt;
* Place items can be shared with (share destination)&lt;br /&gt;
&lt;br /&gt;
(Could potentially merge share source and share item.)&lt;br /&gt;
&lt;br /&gt;
== Use cases ==&lt;br /&gt;
&lt;br /&gt;
Brief: E wants to share I (image, URL, ...) from S (The New Yorker, xkcd, ...) on D (Twitter, Facebook, Pocket ...)&lt;br /&gt;
&lt;br /&gt;
Longer: End users want to share http://www.boston.com/bigpicture/2014/07/conflict_continues_in_gaza.html from The Big Picture with their preferred social network or private database.&lt;br /&gt;
&lt;br /&gt;
== Idea ==&lt;br /&gt;
&lt;br /&gt;
* Provide UI to share the current URL&lt;br /&gt;
* Provide API to add share destination&lt;br /&gt;
* Provide new &amp;quot;overlay browsing context&amp;quot; to display share destinations when sharing is initiated (ideally using limited space so the share source remains functionally useful on desktop)&lt;br /&gt;
&lt;br /&gt;
=== Share UI ===&lt;br /&gt;
&lt;br /&gt;
Revamp user agent bookmarks. Bookmarks are about sharing the current URL with yourself. We could generalize that concept to share that URL with Twitter, Pocket, or any other service that gets itself added as share destination.&lt;br /&gt;
&lt;br /&gt;
=== Overlay browsing context ===&lt;br /&gt;
&lt;br /&gt;
* Displays e.g. Twitter&#039;s compose tweet dialog loaded from https://twitter.com/share (conceptual URL)&lt;br /&gt;
* Protects against spoofing so other sites cannot imitate Twitter&#039;s login dialog there&lt;br /&gt;
* Ideally provides some way to do transparent backgrounds to enable the kind of UI Pocket would like, without compromising on security&lt;br /&gt;
** To expand on that, sharing UIs will typically involve accepting the user&#039;s authentication info, one risk here is to overlay a UI on top of the page in a way that doesn&#039;t make it obvious to the user that the UI is not part of the page itself.  Once a user is trained to accept these types of subtle overlays, evil.com may try a phishing attack by rendering the Pocket UI inside its own frame and asking for the user&#039;s auth info.&lt;br /&gt;
&lt;br /&gt;
== Constraints ==&lt;br /&gt;
&lt;br /&gt;
* A secure origin (TLS) is required to be a share destination. Requiring a secure origin for a share source seems like too much of a burden.&lt;br /&gt;
* Share nothing other than the share item and the origin of the share source with the share destination (e.g. no DOM access).&lt;br /&gt;
&lt;br /&gt;
== registerProtocolHandler() ==&lt;br /&gt;
&lt;br /&gt;
* Open-ended scheme names does not work when UI requires knowledge about its scheme name. (&amp;quot;Can Gmail handle &#039;mailto&#039;?&amp;quot; vs &amp;quot;Can Gmail handle email links?&amp;quot;) &lt;br /&gt;
* Replaces the current browsing contexts or spawns a new one. No overlay&lt;br /&gt;
* Limited to sharing things that can be expressed through a URL&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Scope of share items: restrict to URL of the share origin for now?&lt;br /&gt;
** (ehsan) I think we may need to handle more than just the URL, for example if the user wants to share an embedded image/video on a site.&lt;br /&gt;
* Share destination registration UI&lt;br /&gt;
* Share UI: user-agent-initiated or share-source-initiated?&lt;br /&gt;
** (ehsan) the web has pretty much settled on the latter at this point.&lt;br /&gt;
** (ehsan) are we talking about telling the share source about the user&#039;s preferred search service or get them to call an API which does this opaquely?&lt;br /&gt;
* (ehsan) Should we integrate [http://opengraphprotocol.org/ OGP annotations]?&lt;br /&gt;
* (ehsan) Sharing providers typically want to be able to show their UI *before* the sharing happens too.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* Paul Kinlan on Web Intents: http://lists.w3.org/Archives/Public/public-device-apis/2014Jul/0023.html&lt;br /&gt;
* Jonas Sicking on Web Activities: https://wiki.mozilla.org/WebAPI/WebActivities/LessonsLearned&lt;br /&gt;
* http://webintents.org/&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/API/Web_Activities&lt;br /&gt;
* http://www.imore.com/sharing-ios-8-explained&lt;/div&gt;</summary>
		<author><name>Ehsan</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Sharing&amp;diff=9668</id>
		<title>Sharing</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Sharing&amp;diff=9668"/>
		<updated>2014-08-11T20:56:02Z</updated>

		<summary type="html">&lt;p&gt;Ehsan: /* TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Figuring out sharing for the web.&lt;br /&gt;
&lt;br /&gt;
== Actors ==&lt;br /&gt;
&lt;br /&gt;
* End user&lt;br /&gt;
* User agent&lt;br /&gt;
* Items that can be shared (share item)&lt;br /&gt;
* Place that has items to share (share source)&lt;br /&gt;
* Place items can be shared with (share destination)&lt;br /&gt;
&lt;br /&gt;
(Could potentially merge share source and share item.)&lt;br /&gt;
&lt;br /&gt;
== Use cases ==&lt;br /&gt;
&lt;br /&gt;
Brief: E wants to share I (image, URL, ...) from S (The New Yorker, xkcd, ...) on D (Twitter, Facebook, Pocket ...)&lt;br /&gt;
&lt;br /&gt;
Longer: End users want to share http://www.boston.com/bigpicture/2014/07/conflict_continues_in_gaza.html from The Big Picture with their preferred social network or private database.&lt;br /&gt;
&lt;br /&gt;
== UI speculation ==&lt;br /&gt;
&lt;br /&gt;
There&#039;s a couple of parts that might require interaction with the user:&lt;br /&gt;
&lt;br /&gt;
* Adding share destinations&lt;br /&gt;
* Initiating sharing: this could be either through an API or as on iOS through dedicated chrome UI&lt;br /&gt;
* Displaying share destination after sharing is initiated: e.g. through a special overlay browsing context. In case of  Twitter this might require almost the entire screen (on mobile). In case of Pocket this would not require much UI at all in the simple case.&lt;br /&gt;
&lt;br /&gt;
== UI idea ==&lt;br /&gt;
&lt;br /&gt;
Revamp user agent bookmarks. Bookmarks are about sharing the current URL with yourself. We could generalize that concept to share that URL with Twitter, Pocket, or any other service that gets itself added as share destination.&lt;br /&gt;
&lt;br /&gt;
== Constraints ==&lt;br /&gt;
&lt;br /&gt;
* A secure origin (TLS) is required to be a share destination. Requiring a secure origin for a share source seems like too much of a burden.&lt;br /&gt;
* Share nothing other than the share item and the origin of the share source with the share destination (e.g. no DOM access).&lt;br /&gt;
&lt;br /&gt;
== registerProtocolHandler() ==&lt;br /&gt;
&lt;br /&gt;
* Open-ended scheme names does not work when UI requires knowledge about its scheme name. (&amp;quot;Can Gmail handle &#039;mailto&#039;?&amp;quot; vs &amp;quot;Can Gmail handle email links?&amp;quot;) &lt;br /&gt;
* Replaces the current browsing contexts or spawns a new one. No overlay&lt;br /&gt;
* Limited to sharing things that can be expressed through a URL&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Scope of share items: restrict to URL of the share origin for now?&lt;br /&gt;
** (ehsan) I think we may need to handle more than just the URL, for example if the user wants to share an embedded image/video on a site.&lt;br /&gt;
* Share destination registration UI&lt;br /&gt;
* Share UI: user-agent-initiated or share-source-initiated?&lt;br /&gt;
** (ehsan) the web has pretty much settled on the latter at this point.&lt;br /&gt;
** (ehsan) are we talking about telling the share source about the user&#039;s preferred search service or get them to call an API which does this opaquely?&lt;br /&gt;
* (ehsan) Should we integrate [http://opengraphprotocol.org/ OGP annotations]?&lt;br /&gt;
* (ehsan) Sharing providers typically want to be able to show their UI *before* the sharing happens too.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* Paul Kinlan on Web Intents: http://lists.w3.org/Archives/Public/public-device-apis/2014Jul/0023.html&lt;br /&gt;
* Jonas Sicking on Web Activities: https://wiki.mozilla.org/WebAPI/WebActivities/LessonsLearned&lt;br /&gt;
* http://webintents.org/&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/API/Web_Activities&lt;br /&gt;
* http://www.imore.com/sharing-ios-8-explained&lt;/div&gt;</summary>
		<author><name>Ehsan</name></author>
	</entry>
</feed>