summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2018-09-28 13:02:30 +0200
committerFlorian Bruhin <me@the-compiler.org>2018-09-28 13:02:45 +0200
commit5527d27ba7b3a56d9f0d9b3f84f51bade76d8d8a (patch)
tree29d6ae21b69b39b6bcc964fa826287e525db7056
parent4d080d320952b0c66797d9d0fbea10e5e65b737e (diff)
parent4a8d8688cb19aecc0b18ae4888c187229e6c322a (diff)
downloadqutebrowser-5527d27ba7b3a56d9f0d9b3f84f51bade76d8d8a.tar.gz
qutebrowser-5527d27ba7b3a56d9f0d9b3f84f51bade76d8d8a.zip
Merge remote-tracking branch 'origin/pr/4189'
-rw-r--r--qutebrowser/browser/browsertab.py3
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py8
-rw-r--r--qutebrowser/browser/webkit/webkittab.py2
-rw-r--r--qutebrowser/config/configdata.yml6
-rw-r--r--tests/helpers/stubs.py2
5 files changed, 17 insertions, 4 deletions
diff --git a/qutebrowser/browser/browsertab.py b/qutebrowser/browser/browsertab.py
index 0eb9b6493..72c289eca 100644
--- a/qutebrowser/browser/browsertab.py
+++ b/qutebrowser/browser/browsertab.py
@@ -668,9 +668,10 @@ class AbstractAudio(QObject):
muted_changed = pyqtSignal(bool)
recently_audible_changed = pyqtSignal(bool)
- def __init__(self, parent=None):
+ def __init__(self, tab, parent=None):
super().__init__(parent)
self._widget = None
+ self._tab = tab
def set_muted(self, muted: bool):
"""Set this tab as muted or not."""
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index 36ac2a99a..e4bac57b5 100644
--- a/qutebrowser/browser/webengine/webenginetab.py
+++ b/qutebrowser/browser/webengine/webenginetab.py
@@ -643,6 +643,7 @@ class WebEngineAudio(browsertab.AbstractAudio):
page = self._widget.page()
page.audioMutedChanged.connect(self.muted_changed)
page.recentlyAudibleChanged.connect(self.recently_audible_changed)
+ self._tab.url_changed.connect(self._on_url_changed)
def set_muted(self, muted: bool):
page = self._widget.page()
@@ -656,6 +657,11 @@ class WebEngineAudio(browsertab.AbstractAudio):
page = self._widget.page()
return page.recentlyAudible()
+ @pyqtSlot(QUrl)
+ def _on_url_changed(self, url):
+ mute = config.instance.get('content.mute', url=url)
+ self.set_muted(mute)
+
class _WebEnginePermissions(QObject):
@@ -1000,7 +1006,7 @@ class WebEngineTab(browsertab.AbstractTab):
self.printing = WebEnginePrinting(tab=self)
self.elements = WebEngineElements(tab=self)
self.action = WebEngineAction(tab=self)
- self.audio = WebEngineAudio(parent=self)
+ self.audio = WebEngineAudio(tab=self, parent=self)
self._permissions = _WebEnginePermissions(tab=self, parent=self)
self._scripts = _WebEngineScripts(tab=self, parent=self)
# We're assigning settings in _set_widget
diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py
index 7f0740b65..a2c7ee2a2 100644
--- a/qutebrowser/browser/webkit/webkittab.py
+++ b/qutebrowser/browser/webkit/webkittab.py
@@ -667,7 +667,7 @@ class WebKitTab(browsertab.AbstractTab):
self.printing = WebKitPrinting(tab=self)
self.elements = WebKitElements(tab=self)
self.action = WebKitAction(tab=self)
- self.audio = WebKitAudio(parent=self)
+ self.audio = WebKitAudio(tab=self, parent=self)
# We're assigning settings in _set_widget
self.settings = webkitsettings.WebKitSettings(settings=None)
self._set_widget(widget)
diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml
index 0a2c1e2c7..8f06814ca 100644
--- a/qutebrowser/config/configdata.yml
+++ b/qutebrowser/config/configdata.yml
@@ -806,6 +806,12 @@ content.xss_auditing:
Suspicious scripts will be blocked and reported in the inspector's
JavaScript console.
+content.mute:
+ default: false
+ type: Bool
+ supports_pattern: true
+ desc: Automatically mute tabs.
+
# emacs: '
## completion
diff --git a/tests/helpers/stubs.py b/tests/helpers/stubs.py
index 9af7a6fcc..173135d73 100644
--- a/tests/helpers/stubs.py
+++ b/tests/helpers/stubs.py
@@ -257,7 +257,7 @@ class FakeWebTab(browsertab.AbstractTab):
self.history = FakeWebTabHistory(self, can_go_back=can_go_back,
can_go_forward=can_go_forward)
self.scroller = FakeWebTabScroller(self, scroll_pos_perc)
- self.audio = FakeWebTabAudio()
+ self.audio = FakeWebTabAudio(self)
wrapped = QWidget()
self._layout.wrap(self, wrapped)