IRC log of portals on 2019-09-18
Timestamps are in UTC.
- 04:22:10 [RRSAgent]
- RRSAgent has joined #portals
- 04:22:10 [RRSAgent]
- logging to https://www.w3.org/2019/09/18-portals-irc
- 04:30:17 [romain]
- romain has joined #portals
- 04:34:03 [prushforth]
- prushforth has joined #portals
- 04:34:07 [prushforth]
- present+
- 04:34:20 [Ian]
- Ian has joined #portals
- 04:34:21 [koji]
- koji has joined #portals
- 04:34:39 [jackbsteinberg]
- jackbsteinberg has joined #portals
- 04:34:42 [AdrianHB]
- AdrianHB has joined #portals
- 04:34:44 [hober]
- hober has joined #portals
- 04:34:46 [Ian]
- Topic: Portals
- 04:34:54 [hober]
- present+
- 04:34:56 [Ian]
- rrsagent, make minutes
- 04:34:56 [RRSAgent]
- I have made the request to generate https://www.w3.org/2019/09/18-portals-minutes.html Ian
- 04:34:57 [plinss]
- plinss has joined #portals
- 04:35:04 [dino]
- dino has joined #portals
- 04:35:18 [Ian]
- -> https://github.com/WICG/portals/blob/master/explainer.md Portals explainer
- 04:35:30 [tomayac]
- tomayac has joined #portals
- 04:35:46 [Ian]
- Jeremy: You want to put content in a page, and enable seamless transition when navigating to that page.
- 04:36:02 [Ian]
- ... the user goes from point A to point B without a full load cycle in-between.
- 04:36:07 [Ian]
- [API Surface]
- 04:36:16 [Ian]
- - <portal> element
- 04:36:32 [Ian]
- ...would be similar to iframe in that enables inclusion, but it has an "activate" method
- 04:36:38 [rouslan]
- rouslan has joined #portals
- 04:36:50 [Ian]
- ...it promotes the activation target to the top-level browsing context on activation
- 04:36:54 [hyojin]
- hyojin has joined #portals
- 04:36:57 [Ian]
- ...e.g., zoom the portal to fill the screen
- 04:37:17 [Ian]
- ...the top-level page can embed the previous page as a portal, to enable going back and forth between documents without losing context (e.g., script context)
- 04:37:28 [dezell]
- dezell has joined #portals
- 04:37:32 [Ian]
- ....the portalHost object allows communications with parent page that hosts the <portal> element
- 04:37:41 [Ian]
- ..that relationship is not reflected in the existing frame hierarchy.
- 04:37:51 [Ian]
- [Use cases]
- 04:38:05 [Ian]
- 1) Multi-page web app
- 04:38:21 [rouslan]
- q+ to ask why only portals should have these wonderful experience as opposed to all existing transations and popups
- 04:38:22 [Ian]
- ....the app can orchestrate seamless transitions between docs without needing to rewrite as a single-page web app
- 04:38:30 [Ian]
- 2) Partial preloading
- 04:38:59 [Ian]
- ...you can load a template in a portal, then flesh out with content that the user actually selected
- 04:39:08 [Ian]
- ....could work also in cross-origin pages
- 04:39:16 [Ian]
- 3) Pre-navigation preview.
- 04:39:30 [Ian]
- ...eg., touch gesture on a mobile device
- 04:39:40 [Ian]
- ...as the user release content, it replaces the existing page.
- 04:40:00 [Ian]
- ...this allows content to existing in different documents and achieving these effects
- 04:40:04 [Ian]
- 4) Cross-origin
- 04:40:26 [Ian]
- ....seamless navigation among origins to complete a journey
- 04:41:00 [Ian]
- -> https://wicg.github.io/portals/ Draft spec
- 04:41:27 [Ian]
- -> https://wicg.github.io/portals/portals-state-transitions.svg State machine
- 04:42:29 [Ian]
- Jeremy: We need to specify interactions between these new browsing contexts and the various features that interact with iframe and nested browsing contexts
- 04:42:34 [Ian]
- ...e.g, respect cross-origin policy
- 04:42:46 [Ian]
- ...in Chromium this is implemented behind a flag
- 04:42:58 [Ian]
- ...targeting broader experimentation later this year or in early 2020.
- 04:43:21 [Ian]
- ...may start experiments with same-origin use cases, but we think the interesting use cases are really cross-origin since rewriting as a single-page app is not an option.
- 04:43:31 [Ian]
- q?
- 04:43:34 [Ian]
- ack rouslan
- 04:43:34 [Zakim]
- rouslan, you wanted to ask why only portals should have these wonderful experience as opposed to all existing transations and popups
- 04:43:36 [Ian]
- rouslan: Love the UI
- 04:43:46 [Ian]
- ...can this type of UI be applied elsewhere.
- 04:44:06 [Ian]
- ...why not bring this new UI to existing APIs, e.g., transitions between pages or when you pop up a window
- 04:44:06 [slightlyoff]
- slightlyoff has joined #portals
- 04:44:16 [slightlyoff]
- q?
- 04:44:23 [slightlyoff]
- q+
- 04:44:28 [KenjiBaheux]
- KenjiBaheux has joined #portals
- 04:44:42 [dino]
- q+
- 04:45:02 [Ian]
- Rouslan: I call window.open(); today it opens a window with a new URL. What if, instead of opening the window as we do to today, we open a window in a corner and the user needs to click on it to get it.
- 04:45:25 [Ian]
- Jeremy: Need an API for any sort of animation.
- 04:45:38 [KenjiBaheux]
- KenjiBaheux has joined #portals
- 04:46:06 [Ian]
- Kenji: <portals> does not have anything to do with animation..it's like an iframe because it embeds things, but unlike an iframe you can navigate to it.
- 04:46:07 [romain]
- q+
- 04:46:22 [Ian]
- ...the fancy UX you are describe may already be achievable with CSS today
- 04:46:32 [Ian]
- rouslan: So <portals> basically is "breaking out the iframe"
- 04:47:17 [Ian]
- Jeremy: If all your content is in a single page today you can get animations with CSS. The challenge today is when content is in multiple pages, or even moreso cross-origin. That's where you need portals.
- 04:47:19 [Ian]
- q?
- 04:47:38 [Ian]
- Kenji: The UI is left to designers based on context; the API is lower level than that
- 04:47:49 [Ian]
- ...maybe at some point we can add a higher-level API for some UX patterns.
- 04:48:47 [Ian]
- q?
- 04:49:20 [Ian]
- Kenji: All but one demo today are live (with features behind a flag)
- 04:49:46 [dino]
- q-
- 04:49:55 [Ian]
- q+ manu
- 04:49:57 [Ian]
- ack sligh
- 04:50:06 [dlibby]
- dlibby has joined #portals
- 04:50:12 [Ian]
- slightlyoff: There are lots of debates about the shape of the API
- 04:50:31 [deiu]
- deiu has joined #portals
- 04:50:58 [deiu]
- q+
- 04:51:00 [Ian]
- Jeremy: You don't call "activate" until you've completed an animation
- 04:51:18 [Ian]
- slightlyoff: What happens in case of problem inside of activate?
- 04:51:46 [Ian]
- Jeremy: As we currently think about it, the activation occurs. If you do nothing or throw an exception, your predecessor browsing context is closed
- 04:52:14 [Ian]
- Rick_Byers: We think that most of these use cases, especially on phones, may raise perf issues
- 04:52:37 [dino]
- dino has joined #portals
- 04:52:56 [Ian]
- [Debate about whether people use portals wisely taking into account performance implications]
- 04:53:02 [dino]
- q+
- 04:53:06 [koto]
- koto has joined #portals
- 04:53:06 [dezell]
- dezell has joined #portals
- 04:53:12 [Ian]
- Kenji: Performance is something everyone should take into account (for this API or others); some do and some do not
- 04:53:31 [Ian]
- Rick_Byers: Does a page being hosted in a portal need to opt-in?
- 04:53:53 [Ian]
- Jeremy: We will respect CSP - if you don't want to be framed you won't be portaled either.
- 04:54:06 [Ian]
- ...we'd like feedback on defaults
- 04:54:11 [Ian]
- q?
- 04:54:14 [Ian]
- ack romain
- 04:54:44 [Ian]
- Romain: Coming back to the publication use case (Manga)...would you implement that as a link of pages, or could you implement this as a master page with a set of portals.
- 04:55:07 [Ian]
- Jeremy: You probably would do this as a linked chain for performance reasons. But there may well be carousel use cases as well
- 04:55:53 [manu]
- manu has joined #portals
- 04:55:55 [Ian]
- ...people will need to make tradeoffs (e.g., content common to documents that can be preloaded)
- 04:55:59 [manu]
- q?
- 04:56:01 [manu]
- q+
- 04:56:13 [Ian]
- ...e.g., for a table of contents, preload the intro which is common, then do something else for other sections
- 04:56:14 [Ian]
- ack manu
- 04:56:39 [Ian]
- manu: Can you open windows with different sizes?
- 04:57:12 [Ian]
- Jeremy: When activated portal gets the size of the top-level context. The browser is updated to show the portal origin.
- 04:57:38 [Ian]
- Manu: In the shopping example where there's a preloaded template, what communication happens? Is there a comms protocol between contexts?
- 04:57:56 [Ian]
- Jeremy: Post-message while embedded. You can also put data in the activate message.
- 04:58:22 [Ian]
- Manu: Regarding security and privacy - what happen if people run bitcoin miners ...?
- 04:58:42 [Ian]
- Jeremy: You can do bitcoin mining in an iframe; so same problem elsewhere.
- 04:58:59 [Ian]
- ...user agents would be encouraged to present info about resource consumption to users in a useful way
- 04:59:20 [Ian]
- Manu: In the portal, content is loaded (including JavaScript) as soon as created?
- 04:59:38 [hober]
- ?
- 04:59:41 [hober]
- q?
- 04:59:43 [Ian]
- Jeremy: Correct. There are proposals elsewhere for pausing iframes in some situations, and that might be used with portals, but not currently part of the proposal.
- 04:59:48 [Ian]
- ack deiu
- 04:59:50 [hober]
- s/?//
- 05:00:02 [Ian]
- deiu: What about threading?
- 05:00:18 [Ian]
- Jeremy: In Chromium we have the flexibility of putting portal content in a separate process.
- 05:00:39 [Ian]
- ...portal spec gives us flexibility, and we expect in typical use cases to do so
- 05:00:59 [Ian]
- ...heuristics might lead us to do different things (e.g., due to resource constraints)
- 05:01:23 [ricea]
- ricea has joined #portals
- 05:01:23 [Ian]
- deiu: Is there any restriction from a service-worker perspective? Anything resource that you pull in from a service worker could be available to portal
- 05:01:26 [Ian]
- Jeremy: I don't see why not.
- 05:01:27 [Ian]
- q?
- 05:01:42 [ricea]
- q+
- 05:02:03 [Ian]
- Jeremy: In current model portal cannot take input until activation.
- 05:02:29 [Ian]
- @@: So with portal, resources are loaded in background?
- 05:02:43 [Ian]
- Jeremy: Yes. You can render it onscreen or offscreen.
- 05:03:03 [Ian]
- ...similar to iframe..it begins to load when parent doc loads
- 05:03:05 [Ian]
- ack dino
- 05:03:17 [rouslan]
- present+
- 05:03:19 [Ian]
- dino: Suppose you are a news site with 50 articles on your home page
- 05:03:28 [dlibby]
- q+
- 05:03:32 [Ian]
- ...you think the user might go to 20 of them
- 05:03:48 [Ian]
- ...it seems frightening that there's any easy win for developers to pre-load resources
- 05:04:34 [Ian]
- ..the scary thing is that this seems to incentivize developers to create an experience where the performance will likely deteriorate
- 05:05:01 [Ian]
- Kenji: It is true that people say "we want this" and then they load a bunch of documents and they realize that it won't work for them
- 05:05:17 [Ian]
- Dino: But it will...you get an experience where the most popular link is pre-loaded
- 05:05:35 [Ian]
- Dino: Why wouldn't google search results pre-load every amp page
- 05:05:50 [dezell]
- dezell has joined #portals
- 05:06:02 [Ian]
- Jeremy: This is true for many Web APIs..I don't think portals solves this issue nor does it do much new with respect to this issue
- 05:06:11 [Ian]
- Dino: Can I choose to not load a portal?
- 05:06:31 [Ian]
- Kenji: We hope that web site owners respect user settings in their browsers about resource usage
- 05:06:45 [Ian]
- ...it might not be that hard to track resource usage (e.g., what was preloaded but not used)
- 05:07:24 [Ian]
- Jeremy: I think restricting the API to "one portal per domain" would make the proposal unpredictable
- 05:07:36 [koto]
- q+
- 05:07:37 [Ian]
- Dino: My main point is that this incentives people to use up user resources.
- 05:07:49 [deiu]
- q?
- 05:07:56 [deiu]
- q+
- 05:08:31 [Ian]
- Jeremy: We should enable good user experiences. Many good user experiences could be abused.
- 05:08:51 [Ian]
- Kenji: Maybe there is room for surfacing some information to web sites to incentivize them to do the right thing.
- 05:09:07 [mattwoodrow]
- mattwoodrow has joined #portals
- 05:09:13 [Ian]
- Jeremy: The UA could do some things to e.g., ensure CPU cycles are avilaable.
- 05:09:24 [rrw]
- rrw has joined #portals
- 05:09:36 [Ian]
- Rick_Byers: Google search has indicated intent to provide portal experiences to lightweight content
- 05:09:49 [Ian]
- ...though I share Dino's concern.
- 05:10:07 [Ian]
- ...one note is that the browser can intervene here on the user's behalf in light of CPU availability.
- 05:10:17 [Ian]
- Dino: Can you detect that portal didn't load?
- 05:10:26 [Ian]
- Jeremy: We don't have that today (e.g., "UA declined to load")
- 05:10:44 [Ian]
- Rick_Byers: We have some ways, e.g., load event does not figure
- 05:10:45 [Ian]
- s/figure/fire
- 05:10:45 [Ian]
- q?
- 05:10:51 [mattwoodrow]
- q+
- 05:11:01 [Ian]
- ricea: Do portals obey xframe options?
- 05:11:22 [Ian]
- Jeremy: Yes. That was subsumed by CSP.
- 05:11:31 [Ian]
- q?
- 05:11:35 [Ian]
- ack ricea
- 05:11:39 [Ian]
- ack koto
- 05:12:08 [Ian]
- koto: How about other security-based header policies such as @@, the request header that talks about mode of navigation
- 05:12:14 [Ian]
- ...how do you sync with that?
- 05:12:24 [Ian]
- ...there are also a set of recently introduced headers that isolate windows
- 05:12:30 [Ian]
- ...would those be respected as well?
- 05:12:49 [Ian]
- Jeremy: I'm not familiar with the particular headers you mentioned. But in general our attitude is that we should respect the intent of these headers.
- 05:13:12 [Ian]
- ...so if someone expresses an intention wrt to an iframe, we would do that for a portal while in the background
- 05:13:22 [Ian]
- ...it sounds like we should be sending nested navigate, but I'm not aware....
- 05:13:36 [Ian]
- ...my general position is that "while embedded, looks a lot like an iframe"
- 05:13:43 [rouslan]
- q+ silly_coil_guy
- 05:13:43 [RRSAgent]
- I have made the request to generate https://www.w3.org/2019/09/18-portals-minutes.html Ian
- 05:13:52 [Ian]
- q?
- 05:13:55 [romain_]
- romain_ has joined #portals
- 05:14:26 [Ian]
- dlibby: You mentioned that portals don't have input until active. How does that relate to accessibility (e.g., screen readers)?
- 05:14:35 [Ian]
- Jeremy: We have bug's registered to look at this in more detail.
- 05:14:53 [rouslan]
- q- silly_coil_guy
- 05:14:54 [Ian]
- ...insofar as portals are used as previews, we could use alt/title on portals
- 05:14:59 [rouslan]
- q+ adrian_hope_b
- 05:15:18 [Ian]
- ...we certainly think that if we are not accepting input we should not accept input from specific APIs.
- 05:15:28 [Ian]
- ...but agree we need to make accessible experience
- 05:15:30 [Ian]
- ack adrian
- 05:15:40 [Ian]
- ask dlib
- 05:15:46 [Ian]
- ack dlib
- 05:15:54 [Ian]
- adrianHB: Why not just use iframe?
- 05:16:12 [Ian]
- Jeremy: One thing I would point out is that we are allowing some operations that are not allowed for ordinary iframe.
- 05:16:21 [Ian]
- ...activate would not make sense for some iframes, for example.
- 05:16:42 [Ian]
- ...similarly there are some operations allowed on embedded contexts that would not work when portal is top-level
- 05:17:03 [koto]
- q+
- 05:17:08 [Ian]
- ...you would also have some funny edge cases
- 05:17:24 [Ian]
- ...related to the ability to modify or not modify parts of the DOM
- 05:17:34 [Ian]
- ...we thought that an element would be less confusing
- 05:17:41 [Ian]
- ack deiu
- 05:17:46 [dezell]
- dezell has joined #portals
- 05:17:55 [Ian]
- deiu: Other than the resource usage concerns, there are also some UX concerns
- 05:18:21 [Ian]
- ...if a company wants to provide a specific user experience, they may want to describe or control how the experience looks as transitions to portals happen
- 05:18:41 [Ian]
- Jeremy: We respect CSP so you can control which things are embedded.
- 05:18:52 [Ian]
- ...e.g., I will only load frames from these origins
- 05:18:58 [koto]
- q-
- 05:19:13 [Ian]
- ...or I will only allow myself to be loaded if within certain origins.
- 05:19:20 [dino]
- q+
- 05:19:20 [dino]
- dino has joined #portals
- 05:19:28 [Ian]
- deiu: Can you restrict recursive activation of portals?
- 05:19:38 [Ian]
- Jeremy: No. Just like navigating away from any top-level origin
- 05:19:50 [RRSAgent]
- I have made the request to generate https://www.w3.org/2019/09/18-portals-minutes.html Ian
- 05:20:02 [Ian]
- Kenji: You can also have out-of-band communications among parties
- 05:20:12 [smfr]
- smfr has joined #portals
- 05:20:16 [smfr]
- q+
- 05:20:26 [Ian]
- Jeremy: Don't link to sites your users don't want to go do. Navigation surrenders control.
- 05:20:29 [Ian]
- ack matt
- 05:21:00 [Ian]
- mattwoodrow: Could you allow authors to request portals. And if UA says "No you cannot have one" and allow the author to manage a fallback
- 05:21:17 [dino]
- ian: isn;t noscript or noframe a variant
- 05:21:32 [dino]
- jeremy: that's a global vairant
- 05:21:36 [dlibby]
- q?
- 05:21:39 [Ian]
- mattwoodrow: Video doesn't have this and it sucks
- 05:21:44 [Ian]
- Kenji: Could be interesting to consider
- 05:21:54 [Ian]
- Jeremy: But I have some concerns about expressing this in the DOM
- 05:22:11 [Ian]
- ...you could imagine extending the API like saying "This one is deferrable" and then being able to ask "Did you load this one?"
- 05:22:32 [Ian]
- AdrianHB: Could you render the HTML of the portal as a fallback?
- 05:22:49 [Ian]
- ...if the browser chooses not to fetch the portal, it could deliver what was in the mark-up
- 05:23:08 [Ian]
- Jeremy: Not sure I necessarily agree; authors may not support the use cases
- 05:23:16 [Ian]
- ...I suspect authors will feature detect
- 05:23:37 [Ian]
- ...do you want to give the browser the right to make a decision?
- 05:24:01 [Ian]
- ..I expect sites will present one user experience if portals are supported, otherwise some other user experience. I would not expect fine-grained experience management.
- 05:24:02 [Ian]
- q?
- 05:24:49 [Ian]
- Kenji: I think it's interesting to consider "regular nav" as a fallback
- 05:25:00 [Ian]
- q?
- 05:25:04 [Ian]
- q- dino
- 05:25:07 [Ian]
- q- smfr
- 05:25:12 [Ian]
- RRSAGENT, make minutes
- 05:25:12 [RRSAgent]
- I have made the request to generate https://www.w3.org/2019/09/18-portals-minutes.html Ian
- 05:25:18 [Ian]
- RRSAGENT, set logs public
- 05:28:57 [smfr]
- smfr has joined #portals
- 05:29:03 [smfr]
- smfr has left #portals
- 05:30:31 [romain]
- romain has joined #portals
- 05:33:45 [mattwoodrow]
- mattwoodrow has joined #portals
- 05:34:31 [dino]
- dino has joined #portals
- 05:35:00 [deiu]
- deiu has left #portals
- 05:35:26 [AdrianHB]
- AdrianHB has joined #portals
- 05:35:33 [rouslan]
- rouslan has joined #portals
- 05:43:00 [Ian]
- rrsagent, bye
- 05:43:00 [RRSAgent]
- I see no action items
- 05:43:00 [Ian]
- zakim, bye
- 05:43:00 [Zakim]
- leaving. As of this point the attendees have been prushforth, hober, rouslan
- 05:43:00 [Zakim]
- Zakim has left #portals