summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2017-07-04 18:01:47 +0200
committerFlorian Bruhin <git@the-compiler.org>2017-07-04 18:02:34 +0200
commit28410b85339acd2708b864568981c83b4511da4d (patch)
tree0764e293ab548f8f57ed9db7d7db02d0c8b0d05a
parent378914b327c9d4be8afdb029b314719014b7b2f2 (diff)
downloadqutebrowser-28410b85339acd2708b864568981c83b4511da4d.tar.gz
qutebrowser-28410b85339acd2708b864568981c83b4511da4d.zip
Release v0.11.0v0.11.0
-rw-r--r--CHANGELOG.asciidoc82
-rw-r--r--CONTRIBUTING.asciidoc3
-rw-r--r--qutebrowser/__init__.py2
-rw-r--r--tests/unit/config/old_configs/qutebrowser-v0.11.0.conf251
-rw-r--r--tests/unit/config/test_config.py2
5 files changed, 296 insertions, 44 deletions
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index ea7481030..14fd41b88 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -14,8 +14,8 @@ This project adheres to http://semver.org/[Semantic Versioning].
// `Fixed` for any bug fixes.
// `Security` to invite users to upgrade in case of vulnerabilities.
-v0.11.0 (unreleased)
---------------------
+v0.11.0
+-------
New dependencies
~~~~~~~~~~~~~~~~
@@ -28,7 +28,10 @@ New dependencies
Added
~~~~~
-- New `-p` flag for `:open` to open a private window.
+- Private browsing is now implemented for QtWebEngine, *and changed its
+ behavior*: The `general -> private-browsing` setting now only applies to newly
+ opened windows, and you can use the `-p` flag to `:open` to open a private
+ window.
- New "pinned tabs" feature, with a new `:tab-pin` command (bound
to `<Ctrl-p>` by default).
- (QtWebEngine) Implemented `:follow-selected`.
@@ -45,7 +48,8 @@ Added
customize statusbar colors for private windows.
- New `{private}` field displaying `[Private Mode]` for
`ui -> window-title-format` and `tabs -> title-format`.
-- (QtWebEngine) Proxy support with Qt 5.7.1 too
+- (QtWebEngine) Proxy support with Qt 5.7.1 (already was supported for 5.8 and
+ newer)
Changed
~~~~~~~
@@ -53,62 +57,51 @@ Changed
- To prevent elaborate phishing attacks, the Punycode version (`xn--*`) is now
shown in addition to the decoded version for international domain names
(IDN).
-- Private browsing is now implemented for QtWebEngine, and changed it's
- behavior: The `general -> private-browsing` setting now only applies to newly
- opened windows, and you can use the `-p` flag to `:open` to open a private
- window.
+- Starting with legacy QtWebKit now shows a warning message.
+ *With the next release, support for it will be removed.*
+- The Windows releases are redone from scratch, which means:
+ - They now use the new QtWebEngine backend
+ - The bundled Qt is updated from 5.5 to 5.9
+ - The bundled Python is updated from 3.4 to 3.6
+ - They are now generated with PyInstaller instead of cx_Freeze
+ - The installer is now generated using NSIS instead of being a MSI
- Improved `qute://history` page (with lazy loading)
-- Starting with legacy QtWebKit now shows a warning message once.
- Crash reports are not public anymore.
- Paths like `C:` are now treated as absolute paths on Windows for downloads,
and invalid paths are handled properly.
-- PAC on QtWebKit now supports SOCKS5 as type.
-- Comments in the config file are now before the individual options instead of
- being before sections.
+- Comments in the config file are now placed before the individual options
+ instead of being before sections.
- Messages are now hidden when clicked.
- stdin is now closed immediately for processes spawned from qutebrowser.
- When `ui -> message-timeout` is set to 0, messages are now never cleared.
- Middle/right-clicking the blank parts of the tab bar (when vertical) now
closes the current tab.
-- (QtWebEngine) With Qt 5.9, `content -> cookies-store` can now be set without
- a restart.
-- (QtWebEngine) With Qt 5.9, better error messages are now shown for failed
- downloads.
- The adblocker now also blocks non-GET requests (e.g. POST).
- `javascript:` links can now be hinted.
- `:view-source`, `:tab-clone` and `:navigate --tab` now don't open the tab as
"explicit" anymore, i.e. (with the default settings) open it next to the
active tab.
-- (QtWebEngine) The underlying Chromium version is now shown in the version
- info.
- `qute:*` pages now use `qute://*` instead (e.g. `qute://version` instead of
`qute:version`), but the old versions are automatically redirected.
-- The Windows releases are redone from scratch, which means:
- - They now use the new QtWebEngine backend
- - The bundled Qt is updated from 5.5 to 5.9
- - The bundled Python is updated from 3.4 to 3.6
- - They are now generated with PyInstaller instead of cx_Freeze
- - The installer is now generated using NSIS instead of being a MSI
- Texts in prompts are now selectable.
-- Renderer process crashes now show an error page.
-- (QtWebKit) storage -> offline-web-application-storage` got renamed to `...-cache`
- The default level for `:messages` is now `info`, not `error`
- Trying to focus the currently focused tab with `:tab-focus` now focuses the
last viewed tab.
+- (QtWebEngine) With Qt 5.9, `content -> cookies-store` can now be set without
+ a restart.
+- (QtWebEngine) With Qt 5.9, better error messages are now shown for failed
+ downloads.
+- (QtWebEngine) The underlying Chromium version is now shown in the version
+ info.
+- (QtWebKit) Renderer process crashes now show an error page on Qt 5.9 or newer.
+- (QtWebKit) storage -> offline-web-application-storage` got renamed to `...-cache`
+- (QtWebKit) PAC now supports SOCKS5 as type.
Fixed
~~~~~
- The macOS .dmg is now built against Qt 5.9 which fixes various
important issues (such as not being able to type dead keys).
-- (QtWebEngine) Added a workaround for a black screen with some setups
- (the workaround requires PyOpenGL to be installed, but it's optional)
-- (QtWebEngine) Starting with Nouveau graphics now shows an error message
- instead of crashing in Qt. This adds a new dependency on `PyQt5.QtOpenGL`.
-- (QtWebEngine) Retrying downloads now shows an error instead of crashing.
-- (QtWebEngine) Cloning a view-source tab now doesn't crash anymore.
-- (QtWebKit) The HTTP cache is disabled on Qt 5.7.1 and 5.8 now as it leads to
- frequent crashes due to a Qt bug.
- Fixed crash with `:download` on PyQt 5.9.
- Cloning a page without history doesn't crash anymore.
- When a download results in a HTTP error, it now shows the error correctly
@@ -118,7 +111,6 @@ Fixed
- Fixed crash when unbinding an unbound key in the key config.
- Fixed crash when using `:debug-log-filter` when `--filter` wasn't given on startup.
- Fixed crash with some invalid setting values.
-- (QtWebKit) Fixed Crash when a PAC file returns an invalid value.
- Continuing a search after clearing it now works correctly.
- The tabbar and completion should now be more consistently and correctly
styled with various system styles.
@@ -126,19 +118,27 @@ Fixed
- The validation for colors in stylesheets is now less strict,
allowing for all valid Qt values.
- `data:` URLs now aren't added to the history anymore.
-- (QtWebEngine) `window.navigator.userAgent` is now set correctly when
- customizing the user agent.
- Accidentally starting with Python 2 now shows a proper error message again.
-- (QtWebEngine) HTML fullscreen is now tracked for each tab separately, which
- means it's not possible anymore to accidentally get stuck in fullscreen state
- by closing a tab with a fullscreen video.
- For some people, running some userscripts crashed - this should now be fixed.
- Various other rare crashes should now be fixed.
- The settings documentation was truncated with v0.10.1 which should now be
fixed.
- Scrolling to an anchor in a background tab now works correctly, and javascript
gets the correct window size for background tabs.
-- (QtWebEngine) `:scroll-page` with `--bottom-navigate` now works correctly
+- (QtWebEngine) Added a workaround for a black screen with some setups
+- (QtWebEngine) Starting with Nouveau graphics now shows an error message
+ instead of crashing in Qt.
+- (QtWebEngine) Retrying downloads now shows an error instead of crashing.
+- (QtWebEngine) Cloning a view-source tab now doesn't crash anymore.
+- (QtWebEngine) `window.navigator.userAgent` is now set correctly when
+ customizing the user agent.
+- (QtWebEngine) HTML fullscreen is now tracked for each tab separately, which
+ means it's not possible anymore to accidentally get stuck in fullscreen state
+ by closing a tab with a fullscreen video.
+- (QtWebEngine) `:scroll-page` with `--bottom-navigate` now works correctly.
+- (QtWebKit) The HTTP cache is disabled on Qt 5.7.1 and 5.8 now as it leads to
+ frequent crashes due to a Qt bug.
+- (QtWebKit) Fixed Crash when a PAC file returns an invalid value.
v0.10.1
-------
diff --git a/CONTRIBUTING.asciidoc b/CONTRIBUTING.asciidoc
index d5c77f521..5a7eafd77 100644
--- a/CONTRIBUTING.asciidoc
+++ b/CONTRIBUTING.asciidoc
@@ -682,8 +682,9 @@ qutebrowser release
* Add newest config to `tests/unit/config/old_configs` and update `test_upgrade_version`
- `python -m qutebrowser --basedir conf :quit`
- - `sed '/^#/d' conf/config/qutebrowser.conf > tests/unit/config/old_configs/qutebrowser-v0.x.y.conf`
+ - `sed '/^#/d' conf/config/qutebrowser.conf > tests/unit/config/old_configs/qutebrowser-v0.$x.$y.conf`
- `rm -r conf`
+ - git add
- commit
* Adjust `__version_info__` in `qutebrowser/__init__.py`.
* Update changelog (remove *(unreleased)*)
diff --git a/qutebrowser/__init__.py b/qutebrowser/__init__.py
index e61419c0c..cca2bf1b8 100644
--- a/qutebrowser/__init__.py
+++ b/qutebrowser/__init__.py
@@ -26,7 +26,7 @@ __copyright__ = "Copyright 2014-2017 Florian Bruhin (The Compiler)"
__license__ = "GPL"
__maintainer__ = __author__
__email__ = "mail@qutebrowser.org"
-__version_info__ = (0, 10, 1)
+__version_info__ = (0, 11, 0)
__version__ = '.'.join(str(e) for e in __version_info__)
__description__ = "A keyboard-driven, vim-like browser based on PyQt5."
diff --git a/tests/unit/config/old_configs/qutebrowser-v0.11.0.conf b/tests/unit/config/old_configs/qutebrowser-v0.11.0.conf
new file mode 100644
index 000000000..ba48a6ff5
--- /dev/null
+++ b/tests/unit/config/old_configs/qutebrowser-v0.11.0.conf
@@ -0,0 +1,251 @@
+[general]
+ignore-case = smart
+startpage = https://start.duckduckgo.com
+yank-ignored-url-parameters = ref,utm_source,utm_medium,utm_campaign,utm_term,utm_content
+default-open-dispatcher =
+default-page = ${startpage}
+auto-search = naive
+auto-save-config = true
+auto-save-interval = 15000
+editor = gvim -f "{}"
+editor-encoding = utf-8
+private-browsing = false
+developer-extras = false
+print-element-backgrounds = true
+xss-auditing = false
+default-encoding = iso-8859-1
+new-instance-open-target = tab
+new-instance-open-target.window = last-focused
+log-javascript-console = debug
+save-session = false
+session-default-name =
+url-incdec-segments = path,query
+[ui]
+history-session-interval = 30
+zoom-levels = 25%,33%,50%,67%,75%,90%,100%,110%,125%,150%,175%,200%,250%,300%,400%,500%
+default-zoom = 100%
+downloads-position = top
+status-position = bottom
+message-timeout = 2000
+message-unfocused = false
+confirm-quit = never
+zoom-text-only = false
+frame-flattening = false
+user-stylesheet =
+hide-scrollbar = true
+smooth-scrolling = false
+remove-finished-downloads = -1
+hide-statusbar = false
+statusbar-padding = 1,1,0,0
+window-title-format = {perc}{title}{title_sep}qutebrowser
+modal-js-dialog = false
+hide-wayland-decoration = false
+keyhint-blacklist =
+keyhint-delay = 500
+prompt-radius = 8
+prompt-filebrowser = true
+[network]
+do-not-track = true
+accept-language = en-US,en
+referer-header = same-domain
+user-agent =
+proxy = system
+proxy-dns-requests = true
+ssl-strict = ask
+dns-prefetch = true
+custom-headers =
+netrc-file =
+[completion]
+show = always
+download-path-suggestion = path
+timestamp-format = %Y-%m-%d
+height = 50%
+cmd-history-max-items = 100
+web-history-max-items = 1000
+quick-complete = true
+shrink = false
+scrollbar-width = 12
+scrollbar-padding = 2
+[input]
+timeout = 500
+partial-timeout = 5000
+insert-mode-on-plugins = false
+auto-leave-insert-mode = true
+auto-insert-mode = false
+forward-unbound-keys = auto
+spatial-navigation = false
+links-included-in-focus-chain = true
+rocker-gestures = false
+mouse-zoom-divider = 512
+[tabs]
+background-tabs = false
+select-on-remove = next
+new-tab-position = next
+new-tab-position-explicit = last
+last-close = ignore
+show = always
+show-switching-delay = 800
+wrap = true
+movable = true
+close-mouse-button = middle
+position = top
+show-favicons = true
+favicon-scale = 1.0
+width = 20%
+pinned-width = 43
+indicator-width = 3
+tabs-are-windows = false
+title-format = {index}: {title}
+title-format-pinned = {index}
+title-alignment = left
+mousewheel-tab-switching = true
+padding = 0,0,5,5
+indicator-padding = 2,2,0,4
+[storage]
+download-directory =
+prompt-download-directory = true
+remember-download-directory = true
+maximum-pages-in-cache = 0
+offline-web-application-cache = true
+local-storage = true
+cache-size =
+[content]
+allow-images = true
+allow-javascript = true
+allow-plugins = false
+webgl = true
+hyperlink-auditing = false
+geolocation = ask
+notifications = ask
+media-capture = ask
+javascript-can-open-windows-automatically = false
+javascript-can-close-windows = false
+javascript-can-access-clipboard = false
+ignore-javascript-prompt = false
+ignore-javascript-alert = false
+local-content-can-access-remote-urls = false
+local-content-can-access-file-urls = true
+cookies-accept = no-3rdparty
+cookies-store = true
+host-block-lists = https://www.malwaredomainlist.com/hostslist/hosts.txt,http://someonewhocares.org/hosts/hosts,http://winhelp2002.mvps.org/hosts.zip,http://malwaredomains.lehigh.edu/files/justdomains.zip,https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&mimetype=plaintext
+host-blocking-enabled = true
+host-blocking-whitelist = piwik.org
+enable-pdfjs = false
+[hints]
+border = 1px solid #E3BE23
+mode = letter
+chars = asdfghjkl
+min-chars = 1
+scatter = true
+uppercase = false
+dictionary = /usr/share/dict/words
+auto-follow = unique-match
+auto-follow-timeout = 0
+next-regexes = \bnext\b,\bmore\b,\bnewer\b,\b[>→≫]\b,\b(>>|»)\b,\bcontinue\b
+prev-regexes = \bprev(ious)?\b,\bback\b,\bolder\b,\b[<←≪]\b,\b(<<|«)\b
+find-implementation = python
+hide-unmatched-rapid-hints = true
+[searchengines]
+DEFAULT = https://duckduckgo.com/?q={}
+[aliases]
+[colors]
+completion.fg = white
+completion.bg = #333333
+completion.alternate-bg = #444444
+completion.category.fg = white
+completion.category.bg = qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #888888, stop:1 #505050)
+completion.category.border.top = black
+completion.category.border.bottom = ${completion.category.border.top}
+completion.item.selected.fg = black
+completion.item.selected.bg = #e8c000
+completion.item.selected.border.top = #bbbb00
+completion.item.selected.border.bottom = ${completion.item.selected.border.top}
+completion.match.fg = #ff4444
+completion.scrollbar.fg = ${completion.fg}
+completion.scrollbar.bg = ${completion.bg}
+statusbar.fg = white
+statusbar.bg = black
+statusbar.fg.private = ${statusbar.fg}
+statusbar.bg.private = #666666
+statusbar.fg.insert = ${statusbar.fg}
+statusbar.bg.insert = darkgreen
+statusbar.fg.command = ${statusbar.fg}
+statusbar.bg.command = ${statusbar.bg}
+statusbar.fg.command.private = ${statusbar.fg.private}
+statusbar.bg.command.private = ${statusbar.bg.private}
+statusbar.fg.caret = ${statusbar.fg}
+statusbar.bg.caret = purple
+statusbar.fg.caret-selection = ${statusbar.fg}
+statusbar.bg.caret-selection = #a12dff
+statusbar.progress.bg = white
+statusbar.url.fg = ${statusbar.fg}
+statusbar.url.fg.success = white
+statusbar.url.fg.success.https = lime
+statusbar.url.fg.error = orange
+statusbar.url.fg.warn = yellow
+statusbar.url.fg.hover = aqua
+tabs.fg.odd = white
+tabs.bg.odd = grey
+tabs.fg.even = white
+tabs.bg.even = darkgrey
+tabs.fg.selected.odd = white
+tabs.bg.selected.odd = black
+tabs.fg.selected.even = ${tabs.fg.selected.odd}
+tabs.bg.selected.even = ${tabs.bg.selected.odd}
+tabs.bg.bar = #555555
+tabs.indicator.start = #0000aa
+tabs.indicator.stop = #00aa00
+tabs.indicator.error = #ff0000
+tabs.indicator.system = rgb
+hints.fg = black
+hints.bg = qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgba(255, 247, 133, 0.8), stop:1 rgba(255, 197, 66, 0.8))
+hints.fg.match = green
+downloads.bg.bar = black
+downloads.fg.start = white
+downloads.bg.start = #0000aa
+downloads.fg.stop = ${downloads.fg.start}
+downloads.bg.stop = #00aa00
+downloads.fg.system = rgb
+downloads.bg.system = rgb
+downloads.fg.error = white
+downloads.bg.error = red
+webpage.bg = white
+keyhint.fg = #FFFFFF
+keyhint.fg.suffix = #FFFF00
+keyhint.bg = rgba(0, 0, 0, 80%)
+messages.fg.error = white
+messages.bg.error = red
+messages.border.error = #bb0000
+messages.fg.warning = white
+messages.bg.warning = darkorange
+messages.border.warning = #d47300
+messages.fg.info = white
+messages.bg.info = black
+messages.border.info = #333333
+prompts.fg = white
+prompts.bg = darkblue
+prompts.selected.bg = #308cc6
+[fonts]
+_monospace = xos4 Terminus, Terminus, Monospace, "DejaVu Sans Mono", Monaco, "Bitstream Vera Sans Mono", "Andale Mono", "Courier New", Courier, "Liberation Mono", monospace, Fixed, Consolas, Terminal
+completion = 8pt ${_monospace}
+completion.category = bold ${completion}
+tabbar = 8pt ${_monospace}
+statusbar = 8pt ${_monospace}
+downloads = 8pt ${_monospace}
+hints = bold 13px ${_monospace}
+debug-console = 8pt ${_monospace}
+web-family-standard =
+web-family-fixed =
+web-family-serif =
+web-family-sans-serif =
+web-family-cursive =
+web-family-fantasy =
+web-size-minimum = 0
+web-size-minimum-logical = 6
+web-size-default = 16
+web-size-default-fixed = 13
+keyhint = 8pt ${_monospace}
+messages.error = 8pt ${_monospace}
+messages.warning = 8pt ${_monospace}
+messages.info = 8pt ${_monospace}
+prompts = 8pt sans-serif
diff --git a/tests/unit/config/test_config.py b/tests/unit/config/test_config.py
index c897b9f16..be526dac3 100644
--- a/tests/unit/config/test_config.py
+++ b/tests/unit/config/test_config.py
@@ -408,7 +408,7 @@ class TestDefaultConfig:
If it did change, place a new qutebrowser-vx.y.z.conf in old_configs
and then increment the version.
"""
- assert qutebrowser.__version__ == '0.10.1'
+ assert qutebrowser.__version__ == '0.11.0'
@pytest.mark.parametrize('filename',
os.listdir(os.path.join(os.path.dirname(__file__), 'old_configs')),