[whatwg] Proposal for Links to Unrelated Browsing Contexts
Maciej Stachowiak
mjs at apple.com
Mon Aug 27 23:28:45 PDT 2012
I overlooked that it's also in the spec itself, not just the registry:
http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#link-type-noreferrer
Regards,
Maciej
On Aug 27, 2012, at 11:23 PM, Maciej Stachowiak <mjs at apple.com> wrote:
>
> Someone earlier in the thread mentioned that this feature sounds an awful lot like rel=noreferrer, which has been in WebKit for several years:
> http://www.webkit.org/blog/907/webkit-nightlies-support-html5-noreferrer-link-relation/
>
> It is also mentioned in the official link relation registry:
> http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions
>
> Do you have a use case for your new proposal that is not handled by <a href="..." rel=noreferrer target=_blank>? Does it have a materially different effect? (I can't tell.)
>
> Regards,
> Maciej
>
>
> On Aug 27, 2012, at 5:29 PM, Charlie Reis <creis at chromium.org> wrote:
>
>> On Mon, Aug 27, 2012 at 4:46 PM, Ian Hickson <ian at hixie.ch> wrote:
>>>
>>> On Wed, 6 Jun 2012, Charlie Reis wrote:
>>>>
>>>> I've posted a new proposal to the WhatWG wiki to give web sites a way
>>>> to open a link in an unrelated browsing context. These links would open
>>>> in a new window with no script connections back to the original site,
>>>> which is useful for web apps like Gmail that open user-contributed
>>>> links. Also, this could allow multi-process browsers like Google Chrome
>>>> to open the new page in a separate process.
>>>>
>>>> Any feedback on the proposal is appreciated!
>>>> http://wiki.whatwg.org/wiki/Links_to_Unrelated_Browsing_Contexts
>>>
>>> It's not entirely clear to me what the desired behaviour is here. Which of
>>> the following are considered features that we need to provide? Which are
>>> secondary goals, which are non-goals, which are anti-goals?
>>
>>
>> I think our discussion found this feature would be most useful if the new
>> page was unable to find its opener, so I'd group things as follows.
>>
>> Primary goals:
>> + have the new page use a different event loop if possible (new process)
>> + have the window of the new page not be able to reach the opener via
>> a named window.open() or target=""
>>
>> As a result, I think these are also necessary features:
>> + have the new page be in a different unit of related browsing contexts
>> + have the new page be in a new browsing context
>> + have "window.opener" not be set
>> + have the window.name of the new page be set to ""
>>
>> Secondary goals:
>> + have the sessionStorage not be cloned for the new page's browsing
>> context
>>
>> Non-goals:
>> + have the new page be in the same browsing context
>>
>> Anti-goals:
>> + have the referer header be cleared on the load of the new page
>>
>>
>>> Does this need to be done from window.open()?
>>
>> Yes. For example, Gmail uses window.open() for the links in emails, but
>> would like the links to open in an unrelated context.
>>
>>> From <a href>?
>>
>> Yes. For example, links to switch between apps within a domain would be
>> useful to have open in an unrelated context (e.g., the black bar at the top
>> of Google pages).
>>
>>> From <form action>?
>>
>> I don't know of any immediate use cases for this, but it might be nice for
>> consistency.
>>
>>> Is this a symmetric feature?
>>
>> Sorry, I'm not sure what you mean by symmetric here. The page opened in
>> the unrelated context may also be able to open pages in another unrelated
>> context.
>>
>>> At a more fundamental level: what are the use cases here? Is it just
>>> e-mail clients that want to open links?
>>
>> Links in email clients is one use case. For user agents that can open such
>> links in a different event loop, another use case is to allow multiple
>> independent apps under the same domain to run in parallel, even when
>> opening one app from another. (For example, Chrome could open links to
>> different Google apps like Search, Maps, Mail, etc, in different processes.)
>>
>> Even in user agents where all pages share the same event loop, this can be
>> useful to help enforce modularity in large applications (e.g., stopping a
>> developer in one part of a large site from introducing a scripting
>> dependency on another part of the site). That's admittedly a secondary
>> benefit, and not the primary goal.
>>
>>> What are the attack scenarios? Is
>>> it just links in e-mails getting at the e-mail app somehow?
>>
>> The attack scenarios are about protecting any web app from unwanted script
>> calls or navigation attempts from untrusted pages in windows that it opens.
>> You could imagine anything from a mail client to a news reader to a social
>> network using it for links to external content.
>>
>> Beyond defending against those attacks, the feature is also about allowing
>> unrelated pages to run on parallel event loops, so they aren't blocked on
>> each other.
>>
>>
>>> Without more details like the above it's hard to evaluate the proposals.
>>>
>>> --
>>> Ian Hickson U+1047E )\._.,--....,'``. fL
>>> http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
>>> Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
>>
>> I hope that clarifies things! It wasn't initially clear whether preventing
>> any access from the new page to the opener window (e.g., by finding the
>> named window) was necessary, but it does seem like the feature would be
>> most useful if that were the case.
>>
>> Charlie
>
More information about the whatwg
mailing list