Release v0.11.0
This commit is contained in:
parent
378914b327
commit
28410b8533
@ -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.
|
||||
- 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.
|
||||
- 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.
|
||||
- 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)
|
||||
- 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.
|
||||
- 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.
|
||||
- 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.
|
||||
- `qute:*` pages now use `qute://*` instead (e.g. `qute://version` instead of
|
||||
`qute:version`), but the old versions are automatically redirected.
|
||||
- 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
|
||||
-------
|
||||
|
@ -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)*)
|
||||
|
@ -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."
|
||||
|
||||
|
251
tests/unit/config/old_configs/qutebrowser-v0.11.0.conf
Normal file
251
tests/unit/config/old_configs/qutebrowser-v0.11.0.conf
Normal file
@ -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
|
@ -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')),
|
||||
|
Loading…
Reference in New Issue
Block a user