add spec and docs
This commit is contained in:
parent
5189147021
commit
150b540e72
4 changed files with 53 additions and 0 deletions
|
@ -131,6 +131,23 @@ page is loaded, use the `setUserAgent` method to change the user agent.
|
|||
|
||||
If "on", the guest page will have web security disabled.
|
||||
|
||||
### partition
|
||||
|
||||
```html
|
||||
<webview src="https://github.com" partition="persist:github"></webview>
|
||||
<webview src="http://electron.atom.io" partition="electron"></webview>
|
||||
```
|
||||
|
||||
Sets the storage partition used by the `webview`. If the storage partition ID starts with `persist:`,
|
||||
the `webview` will use a persistent storage partition available to all `webview` in the app with
|
||||
the same storage partition ID. If the ID is unset or if there is no `persist:` prefix, the `webview` will
|
||||
use an in-memory storage partition. By assigning the same partition ID, multiple `webview`
|
||||
can share the same storage partition.
|
||||
|
||||
This value can only be modified before the first navigation, since the storage partition of an active
|
||||
renderer process cannot change. Subsequent attempts to modify the value will fail with a
|
||||
DOM exception.
|
||||
|
||||
## Methods
|
||||
|
||||
The `webview` tag has the following methods:
|
||||
|
|
5
spec/fixtures/pages/partition/one.html
vendored
Normal file
5
spec/fixtures/pages/partition/one.html
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
<script>
|
||||
window.localStorage.setItem('test', 'one');
|
||||
const item = window.localStorage.getItem('test');
|
||||
console.log([item, window.localStorage.length].join(' '));
|
||||
</script>
|
4
spec/fixtures/pages/partition/two.html
vendored
Normal file
4
spec/fixtures/pages/partition/two.html
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
<script>
|
||||
const item = window.localStorage.getItem('test');
|
||||
console.log([item, window.localStorage.length].join(' '));
|
||||
</script>
|
|
@ -154,6 +154,33 @@ describe '<webview> tag', ->
|
|||
webview.src = "data:text/html;base64,#{encoded}"
|
||||
document.body.appendChild webview
|
||||
|
||||
describe 'partition attribute', ->
|
||||
isolatedWebview = null
|
||||
beforeEach ->
|
||||
isolatedWebview = new WebView
|
||||
|
||||
afterEach ->
|
||||
document.body.removeChild isolatedWebview
|
||||
|
||||
it 'isolates storage for different id', (done) ->
|
||||
listener = (e) ->
|
||||
document.body.appendChild isolatedWebview
|
||||
webview.removeEventListener 'did-finish-load', listener
|
||||
listener2 = (e) ->
|
||||
assert.equal e.message, "one 1"
|
||||
webview.removeEventListener 'console-message', listener2
|
||||
listener3 = (e) ->
|
||||
assert.equal e.message, " 0"
|
||||
isolatedWebview.removeEventListener 'console-message', listener3
|
||||
done()
|
||||
webview.addEventListener 'did-finish-load', listener
|
||||
webview.addEventListener 'console-message', listener2
|
||||
webview.src = "file://#{fixtures}/pages/partition/one.html"
|
||||
isolatedWebview.addEventListener 'console-message', listener3
|
||||
isolatedWebview.setAttribute 'partition', 'test'
|
||||
isolatedWebview.src = "file://#{fixtures}/pages/partition/two.html"
|
||||
document.body.appendChild webview
|
||||
|
||||
describe 'new-window event', ->
|
||||
it 'emits when window.open is called', (done) ->
|
||||
webview.addEventListener 'new-window', (e) ->
|
||||
|
|
Loading…
Reference in a new issue