Jay Kamat
906da44d70
Simplify visited link clearing by looping over connections
2018-05-07 14:10:20 -07:00
Jay Kamat
ca48f9f100
Clear url from visitedLinks if a single url is deleted
2018-05-07 13:48:38 -07:00
Jay Kamat
d0b2360745
Clear visited links db when running :history-clear on webengine
2018-05-07 13:35:41 -07:00
Florian Bruhin
b9fc068af5
Add a log-requests debug-flag
2018-05-07 10:23:56 +02:00
Florian Bruhin
ae295a7f65
Call setFocus() when navigating
...
See #3661 :
https://github.com/qutebrowser/qutebrowser/issues/3661#issuecomment-386308601
This doesn't seem to fully fix this, but at least the top four failed tests
there...
This should not regress #3872 . Might affect #3834 in some way.
2018-05-03 17:43:19 +02:00
Florian Bruhin
2b6b4e82a7
Handle event_target() being None
...
As a stop-gap solution for #3888
2018-05-03 14:45:55 +02:00
Joakim Särehag
199eac2db8
window.print() support for WebEngine
2018-04-24 14:05:53 +02:00
Florian Bruhin
bc9a8dd63f
Handle focusProxy being None
...
This fixes running with Qt 5.11
See https://codereview.qt-project.org/#/c/221408/10 and #3661 :
https://github.com/qutebrowser/qutebrowser/issues/3661#issuecomment-375969315
2018-04-23 16:52:53 +02:00
Florian Bruhin
7eaad59be3
caret: Ignore None value from setInitialCursor
...
See #3583
2018-03-19 22:32:26 +01:00
Florian Bruhin
f5d7605ae0
Add a :scroll-to-anchor command
...
Fixes #2784
2018-03-19 19:18:33 +01:00
Florian Bruhin
e50068021d
Use signals to update statusbar in caret mode
...
This means we don't use objreg anymore to get the status bar, and also makes the
bar more accurately reflect reality.
See #3583
2018-03-19 18:44:06 +01:00
Florian Bruhin
e43f0a61b9
Move all QWebEngineScript related code out of webenginesettings
...
It looks like there's some issue with QWebEngineScript in a profile, at least
with older Qt versions...
See #3497 , #3377
2018-03-19 17:33:02 +01:00
Florian Bruhin
da8b6fb50a
Decrease maximum repetitions for QtWebEngine scrolling
...
At least for Qt debug builds, 5000 seems to be much too much.
See #3661
2018-03-19 14:11:01 +01:00
Florian Bruhin
1b84bbd61d
Refactor initialization of internal JavaScript
...
- Initialize JavaScript in webenginesettings.py instead of webenginetab.py
- Move JavaScript snippet into a .js file
- Make sure scripts can be re-run and do nothing if already run.
- Run scripts on DocumentCreation *and* DocumentReady. Closes #3717 .
- Give each script an unique name for debugging.
- Also make custom stylesheets work on chrome:// pages
2018-03-19 09:14:55 +01:00
Florian Bruhin
6f8eb419ae
Emit predicted_navigation when loading sessions
...
This avoids reloads (because of changed settings) after a session has been
loaded.
Related to #3718
2018-03-15 14:51:36 +01:00
Florian Bruhin
1e4b80d1ac
Don't emit predicted_navigation when reloading because of it
...
When we reload because of a config change in _on_load_finished, we can't use
self.reload() as no URL is set yet. Instead, we call self.openurl with the
current URL.
However, we need to make sure we don't emit predicted_navigation again at that
point.
This should (finally) fix #3718
2018-03-15 14:44:44 +01:00
Florian Bruhin
5dbda3016b
Clean up predicted_navigation handling
...
This also adds some more logging for #3718
2018-03-15 14:16:10 +01:00
Florian Bruhin
a22f973c99
Don't emit predicted_navigation for reloads at all
...
When we reload a page because of a config change, we won't get another
titleChanged signal (at least sometimes).
Also, the predicted_navigation signal is worthless when reloading anyways, as
we're going to load the same URL and not something different.
Fixes #3718
2018-03-14 18:19:11 +01:00
Florian Bruhin
5c73910a33
Revert "Insert qutebrowser scripts on DocumentCreation and DocumentReady"
...
This reverts commit fac0f66e52
.
2018-03-14 10:19:23 +01:00
Florian Bruhin
fac0f66e52
Insert qutebrowser scripts on DocumentCreation and DocumentReady
...
In #3521 , the injection point was changed to DocumentReady as a fix for
https://bugreports.qt.io/browse/QTBUG-66011 / #3490 .
However, that prevents e.g. using hints before a page is fully loaded, which can
be annoying on a mobile connection.
Instead, just run the scripts twice, which won't hurt and makes sure they're
available.
2018-03-14 07:50:41 +01:00
Markus Ongyerth
40364ce774
view-source pygments feedback pass
2018-03-13 12:40:51 +01:00
Florian Bruhin
1c9598d2c0
Don't emit predicted_navigation with invalid URLs
...
Fixes #3706
2018-03-13 09:46:09 +01:00
Florian Bruhin
87c6644751
Add predicted_navigation for reload()
...
This should avoid a double-reload for 'tsh' etc.
2018-03-07 23:54:58 +01:00
Florian Bruhin
0236255a7e
Require a reload for more settings
2018-03-06 12:57:28 +01:00
Florian Bruhin
b6efe65891
Add input.spatial_navigation to needs_reload
...
See #3648
2018-03-06 11:33:36 +01:00
Florian Bruhin
69a58c9597
Remove Qt 5.8 support and tests
...
With QtWebKit it's probably okay to still use it (*cough* Hyperbola
GNU/Linux-libre^tm *cough*), and only blacklisting it with QtWebEngine would be
quite some effort.
Fixes #3608
2018-03-06 11:04:59 +01:00
Florian Bruhin
0a75c5a302
Make sure options in needs_reload are valid
2018-03-06 07:44:20 +01:00
Florian Bruhin
afd5d2c728
Reload page after content.javascript.can_access_keyboard changed
...
See #3648
2018-03-06 07:41:35 +01:00
Florian Bruhin
c9cd47b5b1
Also clear favicons when possible with QtWebEngine
...
See #3469
2018-03-06 07:38:01 +01:00
Markus Ongyerth
f7bcdfc818
Add --pygment argument to view-source
...
The --pygment argument allows to use the pygment version of view-source
over the qtwebengine internal one.
This version is slightly different in what's processed before the site
is generated, so some javascript created texts can be available.
2018-02-28 16:53:28 +01:00
Florian Bruhin
353753c03c
Merge remote-tracking branch 'origin/pr/3620'
2018-02-26 07:26:24 +01:00
Florian Bruhin
de0aa32c11
Merge remote-tracking branch 'origin/pr/3626'
2018-02-26 07:20:34 +01:00
Jay Kamat
76bf35cbdd
Add qtbug60673 markers to relevant tests
2018-02-25 19:00:15 -05:00
Jay Kamat
7a8fa5f46e
Implement deduplication of searches on webkit
2018-02-25 18:40:16 -05:00
Florian Bruhin
52b5492c6a
Merge branch 'per-url'
2018-02-25 19:44:51 +01:00
Florian Bruhin
4c147b77c1
Add a test for the error page workaround
2018-02-25 16:35:02 +01:00
Florian Bruhin
a32d74e983
Fix lint
2018-02-25 16:08:15 +01:00
Florian Bruhin
97e00ba4b5
Only reload after setting changes when needed
...
Apparently, things work fine with Type.link_clicked even if we don't emit
predicted_navigation there...
2018-02-25 15:17:03 +01:00
Florian Bruhin
eade305965
Add a predicted_navigation signal
...
This is emitted when we know that we're going to visit some URL, but Qt doesn't
know yet. This way, we can change the settings early, and since we know which
settings have actually changed, prevent a change needing a reload in
_on_navigation_request.
2018-02-25 15:04:04 +01:00
Florian Bruhin
65a62b67a5
Go back to using tab.openurl on config changes
...
This seems to work most reliably at the moment...
2018-02-25 14:45:30 +01:00
Florian Bruhin
638e880604
Improve workaround for missing error pages
2018-02-25 14:45:30 +01:00
Florian Bruhin
bfb3a6594f
Try using tab.reload() on setting changes instead
2018-02-25 14:45:19 +01:00
Florian Bruhin
08bc55995b
First attempt at reloading pages after setting changes
2018-02-25 14:45:09 +01:00
Jay Kamat
4602afe770
Add a webengine duplicate search test
2018-02-23 18:13:20 -05:00
Jay Kamat
f926e7b850
Emulate webkit duplicate search behavior on webengine
2018-02-23 18:06:21 -05:00
Florian Bruhin
fc6a0dbe64
Show a simple error page on loading errors without JS
...
We can't tell what exactly the error is, but it's surely better than nothing.
2018-02-23 17:29:17 +01:00
Florian Bruhin
3956f81e73
Refactor websettings
...
This refactors the whole web(kit|engine|) settings mess a bit so there's a
Web(Kit|Engine)Settings object for (non-static) settings set on a
QWeb(Engine)Settings object in Qt. Everything else is set on module-level a bit
less declaratively.
The whole inheritance mess is gone, and we can now also construct a
Web(Kit|Engine)Settings object for a given tab.
Fixes #2701
2018-02-23 09:51:28 +01:00
Jay Kamat
2ffb1604d3
Convert search to blue selection when entering caret mode
2018-02-21 10:01:27 -05:00
Florian Bruhin
5fbd488fdf
Only change settings for main-frame navigations
2018-02-20 22:45:29 +01:00
Florian Bruhin
8b666d2d2e
Try to update settings in acceptNavigationRequest
...
This still doesn't seem to update them early enough?
2018-02-19 22:08:42 +01:00
Florian Bruhin
7c1fb1d215
Refactor acceptNavigationRequest handling to use signals
2018-02-19 22:07:53 +01:00
Florian Bruhin
74a7676111
Fix issues with per-domain proof-of-concept
2018-02-19 22:07:53 +01:00
Florian Bruhin
5e50824042
Broken per-URL proof-of-concept
2018-02-19 22:07:53 +01:00
Jay Kamat
6eeacfe82b
Fix caret being cleared when leaving any mode
2018-02-13 09:27:15 -05:00
Marc Jauvin
68b12e6e9f
add missing lines
2018-02-12 07:31:02 -05:00
Marc Jauvin
0a9c0a1385
on_load_finished() signal handler for scroll-pos
...
remove get_page()
2018-02-12 07:16:01 -05:00
Marc Jauvin
a0e028a851
Update tab scroll position when finished loading.
...
Resolves #3322
2018-02-11 22:32:03 -05:00
Florian Bruhin
d306f81130
Merge remote-tracking branch 'origin/pr/3525'
2018-02-11 10:44:27 +01:00
Florian Bruhin
772f0025f1
Clean up netrc support
2018-02-11 10:29:02 +01:00
Marc Jauvin
e8cc74f499
Merge branch 'master' into issue#2785
2018-02-10 08:17:47 -05:00
Marc Jauvin
c6ad23f921
address all mentionned issues except for file://
...
- re-encode url using QUrl.RemovePassword | QUrl.FullyEncoded
- improve readability for clipboard / primary selection code block
2018-02-10 00:38:27 -05:00
Marc Jauvin
d88a13598a
syntax improvements and use real class attributes
2018-02-09 17:14:40 -05:00
Florian Bruhin
5fd3943ebc
Make callback mandatory for tab.selection()
2018-02-06 23:33:37 +01:00
Florian Bruhin
ce8d15d2b0
Simplify selection handling and remove QUTE_SELECTED_HTML
...
It was broken at least since caret support was introduced and it was only
available for QtWebKit anyways, so let's just drop it. This also makes the tab
API a bit simpler.
2018-02-06 22:48:00 +01:00
Florian Bruhin
16375f20d5
Always use JavaScript to get selection
...
It looks like getting the selection via the widget has issues even with Qt 5.10.
On Windows, we always get wrong results.
On Linux, it seems to be flaky. I first thought this was because of a race
between JavaScript setting the selection and Qt getting it, as now we don't use
JS to get the selection anymore, so it's possible that we get it before the
older JS code finished running. However, even calling selectedText() from a JS
callback didn't seem to help...
Since has_selection also is flawed and it taking a callback would make code more
complex as well, let's just assume there is a selection if the text is not
empty. In fact, that is exactly what QtWebEngine does for hasSelection anyways!
Fixes #3523
2018-02-06 21:58:31 +01:00
Florian Bruhin
6f028e9ad0
Update copyright years
2018-02-05 12:19:50 +01:00
Florian Bruhin
24cc54a574
Simplify initializing of AbstractTab subclasses
...
If we already pass the tab object, no need to pass the window ID separately.
2018-01-26 09:47:26 +01:00
Florian Bruhin
677e188894
Update docs
2018-01-26 09:37:35 +01:00
Marc Jauvin
d2287b7a2e
move backend specific code out of AbstractTab into respective backend
...
classes.
2018-01-25 22:38:25 -05:00
Marc Jauvin
88ff0c0425
url_str -> urlstr: urlstr used accross the codebase, more consistent
2018-01-25 18:01:43 -05:00
Marc Jauvin
520b473350
modify Question.yank_text to Question.url
...
error out when question.url is None
add url to yesno prompts
add default binding in prompt mode (ctrl-y)
2018-01-25 17:48:45 -05:00
Marc Jauvin
bb8bc7ea3c
fix test related to view-source
...
remove pygment title
remove view-source from history
2018-01-25 15:17:03 -05:00
Marc Jauvin
eb888cc8d7
fix latest change requests
2018-01-25 13:35:23 -05:00
Marc Jauvin
d7c51f7fc4
implement requested changes for PR #3521 .
2018-01-24 18:04:05 -05:00
Marc Jauvin
2e912eeadf
move backend dependent code to AbstractAction respective classes
2018-01-23 23:30:22 -05:00
Marc Jauvin
56e6864159
Inject qutebrowser's JS files at DocumentReady
...
Use WebEngine's view-source: scheme for "view-source" command.
Also add missing URL when viewing source for WebKit.
Resolves #3490
Resolves #2395
Resolves #2948
2018-01-23 10:03:04 -05:00
Florian Bruhin
748de85ba2
Fix crash when getting signals for closed tabs
...
Fixes #3498
2018-01-20 18:50:17 +01:00
Artur Shaikhullin
22d77fadd7
Eliminate caret blinking
2018-01-19 22:40:47 +06:00
Artur Shaikhullin
4fde8ff204
Add separate function in js to set current platform
2018-01-19 22:14:01 +06:00
Marc Jauvin
4a4a6549d0
use a temporary attribute of the class to prevent the loop; tested to work in both backends
2018-01-19 09:34:45 -05:00
Marc Jauvin
9e258a490e
might as well use the same loop prevention mechanism for both backends
2018-01-19 06:59:40 -05:00
Marc Jauvin
a2ca59b822
add netrc support for webengine. resolves #2785 .
2018-01-18 18:06:47 -05:00
Artur Shaikhullin
c4e50369e7
Enable caret only when mode is 'caret'
2018-01-06 22:43:39 +06:00
Artur Shaikhullin
dc8c919c30
Fix pylint warnings
2018-01-05 22:44:07 +06:00
Artur Shaikhullin
695f734142
Extract js call method
2017-12-30 23:46:04 +06:00
Artur Shaikhullin
6dc3108747
Get OS name using python
2017-12-30 23:35:12 +06:00
Artur Shaik
5605d3cd8e
Merge branch 'master' into webengine_caret
2017-12-28 20:43:31 +06:00
Ryan Farley
46f6336e6e
and add back needed connection
2017-12-22 12:47:38 -06:00
Ryan Farley
1d0b91475d
remove broken connection
2017-12-22 12:45:37 -06:00
Ryan Farley
252fbf651f
add back blank line for D204
2017-12-22 11:47:13 -06:00
Ryan Farley
f90342741a
comma spacing
2017-12-22 11:41:07 -06:00
Ryan Farley
feb327e80e
fix style issues, better names, less indirection
...
Added spaces to comments, use python naming conventions, remove
_load_progress_fake as unnecessary, rename _on_load_*_fake to
_on_load_*_workaround (for less confusion), and use qtutils rather than
QT_VERSION_STR
2017-12-22 11:32:31 -06:00
Ryan Farley
fa10b76ce8
remove extraneous loadStarted connection
...
Copying and pasting without thinking might lead to redundancy.
2017-12-22 01:27:35 -06:00
Ryan Farley
4a6c9ecc34
only reroute load signals with Qt=5.10
...
This stops regressions on Qt<=5.9. It also reintroduces #3110 , but
fixing #3110 was just a nice side effect rather than the main goal here.
2017-12-21 21:22:20 -06:00
Ryan Farley
d6c56b83a8
fix line length
2017-12-21 16:31:45 -06:00
Ryan Farley
5bfab54828
supplement broken webengine load signals
...
This uses the much more reliable `loadProgress(100)` in place of
`loadFinished(true)` for WebEngine, with `loadProgressFake` and
`loadFinishedFake` used instead of the 'official' variants.
2017-12-21 15:35:43 -06:00
Artur Shaikhullin
5f1e0224a9
Pass caret tests
2017-12-07 17:30:32 +06:00
Florian Bruhin
3cd2910fa2
Merge branch 'greasemonkey' of https://github.com/toofar/qutebrowser into greasemonkey
2017-12-06 10:47:29 +01:00
Artur Shaikhullin
890e26b2b5
Additional fixes
2017-12-06 13:58:23 +06:00
Florian Bruhin
1a3f8662e6
Improve handling of cancelled search callbacks
2017-12-06 07:56:59 +01:00