Propagate referrer to new windows (#12397)

* Propagate referrer to new windows

Fixes #9205

* Rearrange -new-window event arguments for backwards-compatibility

* Plumb referrer policy through guest-window-manager

* Document the Referrer structure and its uses

* Add tests for referrer in new windows

* Docs nits
This commit is contained in:
Jeremy Apthorp 2018-04-05 16:13:24 -07:00 committed by Charles Kerr
parent 4316949a1d
commit f0d08f4da1
14 changed files with 186 additions and 22 deletions

View file

@ -1148,7 +1148,7 @@ Same as `webContents.capturePage([rect, ]callback)`.
* `url` String
* `options` Object (optional)
* `httpReferrer` String (optional) - A HTTP Referrer url.
* `httpReferrer` String (optional) - An HTTP Referrer url.
* `userAgent` String (optional) - A user agent originating the request.
* `extraHeaders` String (optional) - Extra headers separated by "\n"
* `postData` ([UploadRawData[]](structures/upload-raw-data.md) | [UploadFile[]](structures/upload-file.md) | [UploadFileSystem[]](structures/upload-file-system.md) | [UploadBlob[]](structures/upload-blob.md)) (optional)

View file

@ -0,0 +1,10 @@
# Referrer Object
* `url` String - HTTP Referrer URL.
* `policy` String - Can be `default`, `unsafe-url`,
`no-referrer-when-downgrade`, `no-referrer`, `origin`,
`strict-origin-when-cross-origin`, `same-origin`, `strict-origin`, or
`no-referrer`. See the [Referrer-Policy spec][1] for more details on the
meaning of these values.
[1]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy

View file

@ -151,6 +151,9 @@ Returns:
[`BrowserWindow`](browser-window.md).
* `additionalFeatures` String[] - The non-standard features (features not handled
by Chromium or Electron) given to `window.open()`.
* `referrer` [Referrer](structures/referrer.md) - The referrer that will be
passed to the new window. May or may not result in the `Referer` header being
sent, depending on the referrer policy.
Emitted when the page requests to open a new window for a `url`. It could be
requested by `window.open` or an external link like `<a target='_blank'>`.
@ -609,7 +612,7 @@ for windows with *offscreen rendering* enabled.
* `url` String
* `options` Object (optional)
* `httpReferrer` String (optional) - A HTTP Referrer url.
* `httpReferrer` (String | [Referrer](structures/referrer.md)) (optional) - An HTTP Referrer url.
* `userAgent` String (optional) - A user agent originating the request.
* `extraHeaders` String (optional) - Extra headers separated by "\n".
* `postData` ([UploadRawData[]](structures/upload-raw-data.md) | [UploadFile[]](structures/upload-file.md) | [UploadFileSystem[]](structures/upload-file-system.md) | [UploadBlob[]](structures/upload-blob.md)) (optional)

View file

@ -306,7 +306,7 @@ webview.addEventListener('dom-ready', () => {
* `url` URL
* `options` Object (optional)
* `httpReferrer` String (optional) - A HTTP Referrer url.
* `httpReferrer` String (optional) - An HTTP Referrer url.
* `userAgent` String (optional) - A user agent originating the request.
* `extraHeaders` String (optional) - Extra headers separated by "\n"
* `postData` ([UploadRawData[]](structures/upload-raw-data.md) | [UploadFile[]](structures/upload-file.md) | [UploadFileSystem[]](structures/upload-file-system.md) | [UploadBlob[]](structures/upload-blob.md)) (optional) -