Re: [w3c/webcomponents] <iframe> and the History API (#184)

Clarification:

Suppose the following tree:

```html
#document
<!-- A -->
<iframe name="IF1">
  ... <!-- B -->
  <iframe name="IF3">... <!-- D --> ...</iframe>
</iframe>
<iframe name="IF2">
   ... <!-- C -->
</iframe>

<shadow-host>
  #shadow X
  | <!-- E -->  
  | <iframe name="IF4">
  |   ... <!-- F -->
  |   <iframe name="IF5">... <!-- H --> ...</iframe>
  | </iframe>
  | <iframe name="IF6">
  |   ... <!-- G -->
  |   <shadow-host2>
  |     #shadow Y
  |     | ... <!-- I -->
  |     | <iframe name="IF7">... <!-- J --> ...</iframe>
  |   </shadow-host2>
  | </iframe>
  | <shadow-host3>
  |   #shadow Z
  |   | ... <!-- K -->
  |   | <iframe name="IF8">... <!-- L --> ...</iframe>
  | </shadow-host3>
</shadow-host>
```

Any navigation in `IF1`, `IF2`, `IF3` will be merged to `window.history`.
`IF7` and `IF8` have their own session histories.

As https://github.com/w3c/webcomponents/issues/184#issuecomment-212817696 navigation in `IF5` will be merged to `IF4`.
Shall we also merge `IF4` and `IF6` (siblings)?
If they are merged, the notion of *joint session history* will be per node tree.

Then, if `<a href="javascript:history.go(-1)>` link is put at location `A`, ..., `L`, it would traverse the history of

- `#document` for `A`, `B`, `C`, `D`, `E`, `K`
- `#shadow X` for `F`, `G`, `H`, `I`
- `#shadow Y` for `J`
- `#shadow Z` for `L`

It is still confusing at `E`, `I`, and `K` (outside `<iframe>` but inside shadow tree) but within each shadow tree scripts should be able to reach iframe's `contentWindow.history` anyway.

---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/webcomponents/issues/184#issuecomment-218061698

Received on Tuesday, 10 May 2016 05:24:46 UTC