Add support for navigator.webkitPersistentStorage.requestQuota
See #3010
This commit is contained in:
parent
4ea957b68b
commit
c020160f75
@ -34,6 +34,9 @@ Added
|
|||||||
* New `{audio}` field for `window.title_format` and `tabs.title.format` which
|
* New `{audio}` field for `window.title_format` and `tabs.title.format` which
|
||||||
displays `[M]`/`[A]` for muted/recently audible tabs.
|
displays `[M]`/`[A]` for muted/recently audible tabs.
|
||||||
* New `:tab-mute` command (bound to `<Alt-m>`) to mute/unmute a tab.
|
* New `:tab-mute` command (bound to `<Alt-m>`) to mute/unmute a tab.
|
||||||
|
- QtWebEngine: Support for `navigator.webkitPersistentStorage.requestQuota`
|
||||||
|
* New `content.persistent_storage` setting to allow/deny requests (default:
|
||||||
|
ask).
|
||||||
|
|
||||||
Changed
|
Changed
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
@ -144,6 +144,7 @@
|
|||||||
|<<content.netrc_file,content.netrc_file>>|Netrc-file for HTTP authentication.
|
|<<content.netrc_file,content.netrc_file>>|Netrc-file for HTTP authentication.
|
||||||
|<<content.notifications,content.notifications>>|Allow websites to show notifications.
|
|<<content.notifications,content.notifications>>|Allow websites to show notifications.
|
||||||
|<<content.pdfjs,content.pdfjs>>|Allow pdf.js to view PDF files in the browser.
|
|<<content.pdfjs,content.pdfjs>>|Allow pdf.js to view PDF files in the browser.
|
||||||
|
|<<content.persistent_storage,content.persistent_storage>>|Allow websites to request persistent storage quota via `navigator.webkitPersistentStorage.requestQuota`.
|
||||||
|<<content.plugins,content.plugins>>|Enable plugins in Web pages.
|
|<<content.plugins,content.plugins>>|Enable plugins in Web pages.
|
||||||
|<<content.print_element_backgrounds,content.print_element_backgrounds>>|Draw the background color and images also when the page is printed.
|
|<<content.print_element_backgrounds,content.print_element_backgrounds>>|Draw the background color and images also when the page is printed.
|
||||||
|<<content.private_browsing,content.private_browsing>>|Open new windows in private browsing mode which does not record visited pages.
|
|<<content.private_browsing,content.private_browsing>>|Open new windows in private browsing mode which does not record visited pages.
|
||||||
@ -1857,6 +1858,24 @@ Default: +pass:[false]+
|
|||||||
|
|
||||||
This setting is only available with the QtWebKit backend.
|
This setting is only available with the QtWebKit backend.
|
||||||
|
|
||||||
|
[[content.persistent_storage]]
|
||||||
|
=== content.persistent_storage
|
||||||
|
Allow websites to request persistent storage quota via `navigator.webkitPersistentStorage.requestQuota`.
|
||||||
|
|
||||||
|
Type: <<types,BoolAsk>>
|
||||||
|
|
||||||
|
Valid values:
|
||||||
|
|
||||||
|
* +true+
|
||||||
|
* +false+
|
||||||
|
* +ask+
|
||||||
|
|
||||||
|
Default: +pass:[ask]+
|
||||||
|
|
||||||
|
On QtWebEngine, this setting requires Qt 5.11 or newer.
|
||||||
|
|
||||||
|
On QtWebKit, this setting is unavailable.
|
||||||
|
|
||||||
[[content.plugins]]
|
[[content.plugins]]
|
||||||
=== content.plugins
|
=== content.plugins
|
||||||
Enable plugins in Web pages.
|
Enable plugins in Web pages.
|
||||||
|
@ -1046,6 +1046,17 @@ class WebEngineTab(browsertab.AbstractTab):
|
|||||||
# aborted after a loadStarted signal.
|
# aborted after a loadStarted signal.
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@pyqtSlot('QWebEngineQuotaRequest')
|
||||||
|
def _on_quota_requested(self, request):
|
||||||
|
size = utils.format_size(request.requestedSize())
|
||||||
|
shared.feature_permission(
|
||||||
|
url=request.origin(),
|
||||||
|
option='content.persistent_storage',
|
||||||
|
msg='use {} of persistent storage'.format(size),
|
||||||
|
yes_action=request.accept, no_action=request.reject,
|
||||||
|
abort_on=[self.shutting_down, self.load_started],
|
||||||
|
blocking=True)
|
||||||
|
|
||||||
@pyqtSlot()
|
@pyqtSlot()
|
||||||
def _on_load_started(self):
|
def _on_load_started(self):
|
||||||
"""Clear search when a new load is started if needed."""
|
"""Clear search when a new load is started if needed."""
|
||||||
@ -1204,6 +1215,11 @@ class WebEngineTab(browsertab.AbstractTab):
|
|||||||
page.navigation_request.connect(self._on_navigation_request)
|
page.navigation_request.connect(self._on_navigation_request)
|
||||||
page.featurePermissionRequested.connect(
|
page.featurePermissionRequested.connect(
|
||||||
self._on_feature_permission_requested)
|
self._on_feature_permission_requested)
|
||||||
|
try:
|
||||||
|
page.quotaRequested.connect(self._on_quota_requested)
|
||||||
|
except AttributeError:
|
||||||
|
# Added in Qt 5.11
|
||||||
|
pass
|
||||||
|
|
||||||
view.titleChanged.connect(self.title_changed)
|
view.titleChanged.connect(self.title_changed)
|
||||||
view.urlChanged.connect(self._on_url_changed)
|
view.urlChanged.connect(self._on_url_changed)
|
||||||
|
@ -598,6 +598,15 @@ content.pdfjs:
|
|||||||
Note that the files can still be downloaded by clicking the download button
|
Note that the files can still be downloaded by clicking the download button
|
||||||
in the pdf.js viewer.
|
in the pdf.js viewer.
|
||||||
|
|
||||||
|
content.persistent_storage:
|
||||||
|
default: ask
|
||||||
|
type: BoolAsk
|
||||||
|
backend:
|
||||||
|
QtWebKit: false
|
||||||
|
QtWebEngine: Qt 5.11
|
||||||
|
desc: Allow websites to request persistent storage quota via
|
||||||
|
`navigator.webkitPersistentStorage.requestQuota`.
|
||||||
|
|
||||||
content.plugins:
|
content.plugins:
|
||||||
default: false
|
default: false
|
||||||
type: Bool
|
type: Bool
|
||||||
|
Loading…
Reference in New Issue
Block a user