Commit Graph

17306 Commits

Author SHA1 Message Date
Ryan Roden-Corrent
4f99af5876
Don't escape quotes in completion text.
Resolves the example case in #4199, but not the larger problem. We don't
need to escape quotes as we don't put the string in an attribute value.
From the docs at
https://docs.python.org/3/library/html.html#html.escape:

> If the optional flag quote is true, the characters (") and (') are also
> translated; this helps for inclusion in an HTML attribute value
> delimited by quotes, as in <a href="...">.

Escaping quotes means we end up with a literal &#x27; in the completion
view wherever there is a quote in the source text.

However, problem in #4199, where unexpected parts of the text are
highlighted, can also happen with '<', '>', and '&', which still must be
escaped.
2018-09-15 13:39:49 -04:00
Ryan Roden-Corrent
28c8e5682a
Unit test CompletionItemDelegate.paint.
There were no unit tests for this whole module. It is difficult to test
due to all the private logic and Qt dependencies, but with a lot of
mocking we can at least validate some of the text handling.

This is a setup to start testing the solution to #4199.

I picked '{' and '}' as placeholders in the test data because they draw
the eye to the 'highlighted' part, and vim even highlights them with
python syntax highlighting. It could be confusing though, as they look
like format strings but are not used that way.
2018-09-15 13:34:07 -04:00
Florian Bruhin
e47bf7a137 Remove duplicate test 2018-09-15 15:49:48 +02:00
Florian Bruhin
f14b37a3c4 Use os.pardir 2018-09-15 15:48:40 +02:00
Florian Bruhin
59413810bf Clean up emitting of follow_selected_done 2018-09-15 15:48:40 +02:00
zaowen
bdc41db601 Adblock import handles local directories and paths
Fixes #464
* Handles local Directories
* Handles local paths without file://
2018-09-15 02:22:44 -06:00
Florian Bruhin
9edbcfb828 Share setup between webkit_tab and webengine_tab 2018-09-14 23:42:20 +02:00
Florian Bruhin
d74daf9294 Fix lint 2018-09-14 22:52:40 +02:00
Florian Bruhin
5ea8e766f5 Run all :follow-selected tests with/without JS 2018-09-14 22:49:18 +02:00
Florian Bruhin
b5af448196 Fix test_follow_selected_without_a_selection on QtWebKit 2018-09-14 22:46:31 +02:00
Florian Bruhin
4ae78d9bb2 Revert "Revert "Make sure we wait until follow_selected is done""
This reverts commit 200c11625f.
2018-09-14 22:40:47 +02:00
Florian Bruhin
200c11625f Revert "Make sure we wait until follow_selected is done"
This reverts commit bc45aa33e0.
2018-09-14 21:58:42 +02:00
Florian Bruhin
8d066690e6 Fix :follow-selected tests 2018-09-14 21:57:37 +02:00
Florian Bruhin
bc45aa33e0 Make sure we wait until follow_selected is done 2018-09-14 20:18:33 +02:00
Florian Bruhin
afe16d3a7c Avoid using qapp with autouse=True 2018-09-13 22:49:25 +02:00
Florian Bruhin
68af23b76e Try getting selection multiple times 2018-09-13 22:41:30 +02:00
Florian Bruhin
62458c7a84 Register a qute://testdata/ scheme for unit tests
This is more lightweight than running a webserver (probably about the same as
file://), but allows us to use relative links in files.
2018-09-13 22:32:00 +02:00
Jesko Dujmovic
25e396faea
Merge branch 'master' into master 2018-09-13 22:06:04 +02:00
Florian Bruhin
f9327731b8 Handle UTF-8 byte order marks in Greasemonkey scripts
See e.g. https://github.com/jerone/UserScripts/issues/135
2018-09-12 23:54:32 +02:00
Florian Bruhin
d0d73eec04 Regenerate docs 2018-09-12 16:07:25 +02:00
Florian Bruhin
91b8002dd5 Clean up workaround for sqlite opening errors
Now that we know the real cause, we can be a bit stricter with our workaround.
2018-09-12 16:06:57 +02:00
Jay Kamat
59af280f5c
Merge pull request #4206 from airodactyl/feature/support-multiple-words-tab-give-take
Support multiple words for :tab-take without quotes
2018-09-11 18:37:21 -07:00
Florian Bruhin
c2a072f9fe Fix handling of sqlite out of memory errors
The "error_code == -1" check never passed, as error_code (confusingly) is a
string of a number.
2018-09-12 01:36:50 +02:00
Florian Bruhin
c8b447daec Clean up raise_sqlite_error 2018-09-12 01:31:41 +02:00
Jay Kamat
d298d49f6f Update changelog 2018-09-11 15:26:38 -07:00
Florian Bruhin
941be6faed Add docstring 2018-09-11 20:45:15 +02:00
Florian Bruhin
6a480564cb Fix docs to say XDG_DATA_HOME instead of _DIR 2018-09-11 19:44:37 +02:00
Florian Bruhin
d80d9eb26c Allow downloading from PDF.js
When we click the download button in PDF.js, it downloads a blob://qute:...
URL. We can detect that and force a download rather than opening it in PDF.js
again.

Note that what actually happens depends on the Qt version and backend:

QtWebKit (any Qt version):
Downloads always work properly (regardless of Qt version).

QtWebEngine, Qt 5.7.1:
Downloads work.

QtWebEngine, Qt 5.9 - 5.11:
Downloads won't work as we need to tell PDF.js to not use blob: URLs:
https://bugreports.qt.io/browse/QTBUG-70420 - in theory, PDF.js could fall back
to downloading the existing qute:// URL, but it has a whitelist of schemes
which does not include qute://... Since it's not in that whitelist, it just
ends up doing nothing at all.

QtWebEngine, Qt 5.12:
Downloads should hopefully work properly again, as we can register the qute://
scheme with Chromium, which allows us to use blob:// URLs.
2018-09-10 13:15:39 +02:00
Florian Bruhin
02641b86fc Don't tell PDF.js to disable createObjectURL on Qt 5.7.1
Looks like things actually work fine there...
2018-09-10 13:01:01 +02:00
Florian Bruhin
3138c1f488 Update changelog 2018-09-10 11:58:27 +02:00
Florian Bruhin
bb96f8d297 Fix PDF.js test when no PDF.js is installed 2018-09-10 09:36:29 +02:00
Michael Hoang
1b618b2501 Set maxsplit to 0 on :tab-take 2018-09-10 10:03:58 +10:00
Thomas Fischer
6b358fe955 (QtWebEngine) Unhide scrollbar on search result 2018-09-09 16:20:00 -07:00
wildente
b1e2a1ec2d add proper multiline support for qute-pass
when using the 'username-taget secret' option, the supplied
regex 'username-pattern' will only scan the first line of the
secret file.

you could specify a username-pattern with '\n', but this will
break if the position of the username is not consistent.

this change will implement re.search and the re.MULTILINE
option to search every line in a secrect file.

example:

--secret file
my_secret_password
username: my_username
--secret file

spawn --userscript qute-pass --username-target secret --username-pattern "^username: (.*)"
2018-09-09 22:16:48 +02:00
Florian Bruhin
9b04c4b8e0 Add missing tests for qute://pdfjs 2018-09-09 19:22:39 +02:00
Florian Bruhin
b4077a8543 Fix lint 2018-09-09 18:39:22 +02:00
Florian Bruhin
b96898db37 Simplify and lock down PDF.js filename handling 2018-09-09 18:35:09 +02:00
Florian Bruhin
231c1fbe59 Add underscore to temporary download filename suffix 2018-09-09 18:35:09 +02:00
Florian Bruhin
8cfa46f539 100% test coverage for browser.pdfjs 2018-09-09 18:35:09 +02:00
Florian Bruhin
f7169dc0ba Enable content.pdfjs setting on QtWebEngine 2018-09-09 18:35:09 +02:00
Florian Bruhin
36ad2c45b5 Clean up PDF.js snippet 2018-09-09 18:35:09 +02:00
Florian Bruhin
24babe76a1 Remove dead code
Thanks vulture!
2018-09-09 18:35:09 +02:00
Florian Bruhin
3e25262437 Remove old backend patching 2018-09-09 18:35:09 +02:00
Florian Bruhin
490fe5e1a3 Add utils.guess_mimetype 2018-09-09 18:35:09 +02:00
Florian Bruhin
24148c649e Fix lint and tests 2018-09-09 18:35:09 +02:00
Florian Bruhin
2dccde8f4b Only set PDFJS.disableCreateObjectURL when necessary
See #4198
2018-09-09 18:35:09 +02:00
Florian Bruhin
6665a1348e Use jinja to get PDF.js script 2018-09-09 18:35:09 +02:00
Florian Bruhin
3ad7ae2a2c Remove fix_urls which isn't needed anymore
With qute://pdfjs/web/viewer.html we can use relative URLs
2018-09-09 18:35:09 +02:00
Florian Bruhin
c40ddf37b7 Set disableCreateObjectURL for PDF.js
We can't use blob URLs or we'll get a renderer crash:
https://bugreports.qt.io/browse/QTBUG-70420

Thankfully, we can tell PDF.js to use data: URLs instead.
2018-09-09 18:35:09 +02:00
Florian Bruhin
bbcb87e434 Get PDF.js to work
We need to use the /web/viewer.html path so relative references are correct.
2018-09-09 18:35:09 +02:00