Florian Bruhin
91c909cb80
Merge remote-tracking branch 'origin/pr/3212'
2017-11-19 14:24:40 +01:00
Artur Shaikhullin
b184d2f94d
dirty initial port of chrome caretbrowser extension
2017-11-16 19:25:15 +06:00
Ulrik de Muelenaere
b37517e55f
Fix error in stylesheet.js on older QtWebEngine
2017-11-09 19:28:36 +02:00
Florian Bruhin
180fb0d65a
Fix handling of caret position with Qt 5.10
...
With Chromium 61 in Qt 5.10, we get null when getting .selectionStart on a
non-text element, like changed in the WhatWG HTML standard:
https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-textarea/input-selectionstart
See https://www.chromestatus.com/feature/5740194741354496
Older QtWebEngines and QtWebKit raise InvalidStateError instead.
This also changes the surrounding code and API so None is used to say "there's
no caret position available", which seems like a nicer API.
2017-11-08 16:27:26 +01:00
Ulrik de Muelenaere
ce1494e5ec
Update stylesheet.js to ES6
2017-11-03 12:17:35 +02:00
Ulrik de Muelenaere
72c57d16f4
Merge branch 'master' into stylesheet
2017-11-03 12:13:52 +02:00
Florian Bruhin
a14ef88acf
Remove some obsolete/deprecated eslint customizations
2017-11-02 20:00:29 +01:00
plexigras
6e624bcd3c
Merge branch 'master' into es6ify-js
2017-11-02 16:44:25 +01:00
Florian Bruhin
9a69ccc9e3
Merge remote-tracking branch 'origin/pr/3100'
2017-11-02 11:32:45 +01:00
Luca Benci
bc0c877b87
Formatting
2017-10-31 23:21:37 +01:00
plexigras
fa8476f762
keep old pac_utils.js
2017-10-31 16:40:09 +01:00
plexigras
905c984148
change some lambdas to functions
2017-10-31 12:54:26 +01:00
plexigras
d4d791f14e
es6ified js
2017-10-31 11:53:35 +01:00
Ulrik de Muelenaere
95b41b311f
Disable ESLint no-bitwise rule
2017-10-30 22:24:59 +02:00
Ulrik de Muelenaere
3adc2e0f83
Add filter to NodeIterator checking for styled nodes
2017-10-30 19:56:12 +02:00
Ulrik de Muelenaere
34b27437d0
Clarify function names in stylesheet.js
2017-10-30 19:55:37 +02:00
Ulrik de Muelenaere
2fe1a1db89
Remove unused variable
2017-10-29 00:23:11 +02:00
Ulrik de Muelenaere
51d48f6b00
Rewrite user stylesheet injection for WebEngine
...
This now works correctly in XML documents. The stylesheet is applied at
document creation to reduce flickering, and is updated if the
user_stylesheets setting is changed after page load.
2017-10-28 22:16:29 +02:00
Luca Benci
2947b75ab9
Make eslint happy
2017-10-27 19:52:10 +02:00
Luca Benci
ff7edf79e7
Rethrow exception if we can't handle it
2017-10-25 22:53:54 +02:00
Luca Benci
ae2dad7d18
Only catch the correct exception
2017-10-25 22:43:17 +02:00
Luca Benci
3fd7fb3e14
Do not assume elem.selectionStart exists
2017-10-25 22:38:44 +02:00
Florian Bruhin
8504d41db3
Use Qt API for QtWebEngine scrolling
...
See #2233
Fixes #2822
2017-10-20 08:58:28 +02:00
Florian Bruhin
5dacf1431f
eslint: Disable multiline-comment-style
2017-10-14 21:41:56 +02:00
Luca Benci
f43a597370
Add cursor_position
to serialize_elem
output
2017-10-12 22:42:40 +02:00
Florian Bruhin
1a381bf0a5
eslint: Report unused disables
2017-09-29 22:29:18 +02:00
Florian Bruhin
a283a1bb65
Merge branch 'master' into new-config
2017-09-09 10:52:02 +02:00
Florian Bruhin
1938520878
eslint: Turn off function-paren-newline
2017-09-04 15:48:33 +02:00
Ryan Roden-Corrent
71b71dbc58
Merge remote-tracking branch 'upstream/master' into HEAD
2017-08-06 18:13:49 -04:00
Ryan Roden-Corrent
8745f80d90
Fix qute://history SQL bug.
...
The javascript history page was requesting the new start_time in ms, but
the python code was expecting seconds. This is fixed by removing all the
millisecond translations in the python code and only translating to
milliseconds in the javascript code that formats dates.
2017-07-13 08:54:21 -04:00
Florian Bruhin
d7036fe8a8
Clarify history_session_interval and rename it to _gap_interval
...
"session" is already overloaded enough.
2017-07-04 15:08:04 +02:00
Ryan Roden-Corrent
e201a42383
Fix eslint errors
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
eb61269068
Fix qute://history javascript for SQL.
...
Returning "next" was no longer possible as the SQL query does not fetch
more items than necessary. This is solved by using a start time, a
limit, and an offset. The offset is needed to prevent fetching duplicate
items if multiple entries have the same timestamp.
Two of the history tests that relied on qute://history were changed to
rely on qute://history/data instead to make them less failure-prone.
2017-06-19 07:44:11 -04:00
Florian Bruhin
695a2656fe
Rename webelem.js functions to match WebEngineElem
...
Fixes #2726
2017-06-16 23:14:17 +02:00
Florian Bruhin
b687ede25c
Adjust eslintrc for eslint 4.0
2017-06-12 09:23:20 +02:00
Florian Bruhin
822623f2ed
Finally update copyrights...
2017-05-09 21:37:03 +02:00
Jay Kamat
c9953b9f0d
Add support for follow_selected via fake-clicks
2017-05-08 22:31:29 -07:00
Florian Bruhin
a5b1c293a4
Ignore comment position with eslint
2017-04-28 20:29:20 +02:00
Florian Bruhin
421aa0d319
Also try harder to get text content
2017-04-28 19:11:02 +02:00
Florian Bruhin
0c653c4703
Handle elem.className in webelem.js
2017-04-28 14:48:30 +02:00
Florian Bruhin
513f83d446
Try harder to get tag name from element
...
This could happen for any of the attributes, but for tagName this actually
happens in the wild... Since elem.tagName is equal to elem.nodeName we just try
to use this.
Fixes #2569
2017-04-28 14:48:30 +02:00
Imran Sobir
18082526f4
Show hostname in history page.
2017-04-24 10:59:11 +05:00
Florian Bruhin
7652b6ae03
Merge commit '724e6b29c38a55f722f17997379f1ebe190fa6db'
2017-03-20 09:11:47 +01:00
Imran Sobir
724e6b29c3
Make session interval configurable.
2017-03-16 12:11:16 +05:00
Imran Sobir
fb97c6dffc
Send history item atime in milliseconds.
2017-03-16 12:03:40 +05:00
Imran Sobir
ccbf8572c3
Check for null when receiving history.
2017-03-09 22:16:46 +05:00
Imran Sobir
19b7f779ef
Fix ambiguity in history table ID.
2017-03-09 21:41:57 +05:00
Florian Bruhin
bc0a9cd94d
Move cursor to end with input elements on QtWebEngine
2017-03-01 17:30:48 +01:00
Imran Sobir
9e6b0240f6
Put javascript in module, fix lint errors
2017-02-28 19:23:31 +05:00
Imran Sobir
e8db008671
Move qute:history javascript to own file.
2017-02-27 22:44:13 +05:00
Florian Bruhin
9656449545
Merge branch 'master' of https://github.com/kiryl/qutebrowser into kiryl-master
2017-02-25 17:53:05 +01:00
Florian Bruhin
23183bd918
Fix hinting in ACE editors
2017-02-24 15:12:35 +01:00
Florian Bruhin
3feb4211fe
Don't show hints for opacity: 0 elements
...
Fixes #2347
2017-02-24 09:13:25 +01:00
Kirill A. Shutemov
ac3c8bb319
pac_utils.js: remove excessive escaping
...
Looks like the implementation was derived from Mozilla's
nsProxyAutoConfig.js, which is evaluated twice. It requires double
escaping.
In our case excessive escaping is harmful.
In particular it makes ip-matching regexp in isInNet() invalid and makes
it really slow as we go to dnsResolve() all the time, even when it's not
needed.
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
2017-02-21 15:23:27 +03:00
Kirill A. Shutemov
13213724b0
PAC: fix isPlainHostName()
...
Fix isPlainHostName() implementation and add test-case for it.
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
2017-02-21 12:16:46 +03:00
Florian Bruhin
348a50ad69
Fix inserting text with QtWebEngine
...
The insertText event doesn't seem to be available with newer Chromium releases,
which means this broke (probably with Qt 5.7.1).
Fixes #2183
Fixes #2217
2017-02-06 08:06:58 +01:00
Florian Bruhin
545539f28d
Do more sophisticated clicking for hints with QtWebEngine
...
We now use click() or focus() in JS if possible, or manually follow links in a
href attribute.
While this probably introduces some new corner cases, it fixes a handful of
older ones:
- window.open() in JS can now be handled correctly as we don't need hacks in
createWindow anymore.
- Focusing input fields with images now works - fixes #1613 , #1879
- Hinting now works better on QtWebEngine with Qt 5.8 - fixes #2273
Also see #70 .
2017-02-03 23:21:57 +01:00
Florian Bruhin
61e598552e
eslint: Turn off prefer-destructuring
2017-01-08 15:36:51 +01:00
Florian Bruhin
16c8c1b189
Document how webelem.js works
2017-01-07 12:21:22 +01:00
Nikolay Amiantov
a7d96e0b85
Ignore ESLint warnings for Mozilla's PAC utils
2016-12-07 02:01:19 +03:00
Nikolay Amiantov
87890dab20
Add PAC files support
2016-12-07 02:01:19 +03:00
Florian Bruhin
ea44c6d4b9
eslint: Turn off capitalized-comments
2016-11-26 11:48:57 +01:00
Florian Bruhin
25358bb5fc
Clean up webelem.text/set_text
...
webelem.text() was only used without use_js=True from webelem.__str__.
Now we instead default to the use_js=True behavior and renamed the
method from text() to value().
The old behavior is instead directly implemented in __str__.
This changes how webelem.value (aka text) handles elements for which
is_content_editable() returns True, but I haven't found any cases where
this makes a difference.
This also fixes getting existing text from elements with QtWebEngine,
which closes #1957 .
2016-11-16 12:34:27 +01:00
Kevin Velghe
59536828a1
Implement hint target "current" for webengine
2016-10-17 23:33:44 +02:00
Kevin Velghe
ed91e1d4c8
Implement __setitem__ in WebEngineElement
2016-10-17 14:14:45 +02:00
Florian Bruhin
4407ef032a
Clean up JS
2016-10-03 07:01:22 +02:00
Florian Bruhin
323d5fc9e7
Also fix scroll.to_perc with position:absolute
2016-10-03 06:59:35 +02:00
Florian Bruhin
fc0b62f122
Revert "scroll.js --> fix scroll measures"
...
This reverts commit 0c5d95c943
.
Using those values is probably okay as long as we adjust for the
off-by-one errors which will follow in the next commit.
2016-10-03 06:51:57 +02:00
Spreadyy
0c5d95c943
scroll.js --> fix scroll measures
...
scroll measures failed a travis test where document.documentElement.offsetHeight and document.documentElement.scrollHeight diffed by one pixel when the browser zoomed. --> Removed offsetHeight.
2016-09-29 08:59:46 +02:00
Spreadyy
f2e471597d
Lint test failed --> edited line length
2016-09-27 23:24:12 +02:00
Spreadyy
a22ae2818c
Fix scroll JS for xkcd.
...
Fix wrong scroll.height for xkcd. Solution according to:
http://stackoverflow.com/questions/1145850/how-to-get-height-of-entire-document-with-javascript
2016-09-27 11:41:47 +02:00
Florian Bruhin
b45f940e72
Move some scroll logic from JS to Python
2016-09-09 14:19:21 +02:00
Florian Bruhin
fca37abf55
QtWebEngine: Implement webelem.classes
2016-09-07 12:31:48 +02:00
Florian Bruhin
948fa033c7
Implement :insert-text for QtWebEngine
2016-09-07 11:20:32 +02:00
Florian Bruhin
919196714b
QtWebEngine: Implement WebEngineScroller.at_bottom
2016-09-07 09:32:51 +02:00
Florian Bruhin
927f378c6d
Fix eslint
2016-08-18 16:52:53 +02:00
Florian Bruhin
dbb3929bf3
QtWebEngine: Serialize element correctly (find_id)
2016-08-18 15:58:46 +02:00
Florian Bruhin
1ec59f3f0e
Add FIXME
2016-08-18 12:46:55 +02:00
Florian Bruhin
9226e3eece
QtWebEngine: Implement only_visible for find_all
2016-08-18 12:40:21 +02:00
Florian Bruhin
b596c4da27
eslint: Enable long lines with URLs
2016-08-18 12:40:21 +02:00
Florian Bruhin
274fe58d6d
Simplify webelem.js
...
serialize_elem() now takes care of assigning IDs.
2016-08-18 12:40:21 +02:00
Florian Bruhin
58d2d30e9a
Add initial hinting implementation
2016-08-18 12:40:21 +02:00
Florian Bruhin
1138d068e6
Move insert-mode-on-click to tab API / mouse.py
...
This also implements the feature for QtWebEngine.
2016-08-16 16:22:18 +02:00
Florian Bruhin
eef76dde86
eslint: Disable no-warning-comments
2016-08-16 15:21:37 +02:00
Florian Bruhin
e7d08db6c3
eslint: Turn off sort-keys
2016-08-12 20:58:20 +02:00
Florian Bruhin
a23f3a24b3
scroll.js: Use window.inner{Width,Height}
...
It seems with document.documentElement.client{Height,Width} we
sometimes (e.g. without <!DOCTYPE html)...) get the full element height
instead of the viewport height.
Fixes #1821 .
2016-08-11 11:57:20 +02:00
Florian Bruhin
e7584b9e1e
scroll.js: Add commented debug output
2016-08-10 21:44:16 +02:00
Florian Bruhin
fefea4944a
QtWebEngine: Make :open-editor work
2016-08-09 16:00:59 +02:00
Florian Bruhin
ca67e2be3c
QtWebEngine js: Get rid of webelem.get_element()
...
Let's do separate JS functions instead so we can easily access them via
utils.javascript.assemble.
2016-08-09 16:00:20 +02:00
Florian Bruhin
1e5b6caa4b
QtWebEngine js: Save element in focus_element()
2016-08-09 15:59:57 +02:00
Florian Bruhin
b82823d76a
js: Don't leak to global ns in position_caret.js
2016-08-09 13:36:46 +02:00
Florian Bruhin
6b7a39685e
Modularize javascript code
...
We now load the JS code as a QWebEngineScript, which sets up
window._qutebrowser with various "modules". That means we don't have to
pass the whole module every time we want to execute something.
2016-08-09 13:17:44 +02:00
Florian Bruhin
1d9113124b
Move .eslintrc to qutebrowser/javascript
2016-08-09 11:04:50 +02:00
Florian Bruhin
4da53480c2
Re-enable and reconfigure eslint
2016-08-09 11:00:26 +02:00
Florian Bruhin
80016006c4
Use and enforce "use strict"; for JS
2016-08-09 09:55:14 +02:00
Florian Bruhin
9a17591fb7
Start getting :open-editor to work with WebEngine
...
It doesn't actually work yet (as it claims the field is not editable),
but at least does not crash when the backend limitation for the command
is removed.
2016-08-08 16:24:34 +02:00
Florian Bruhin
b8e2d5f8f6
Add initial WebEngineElement implementation
...
This allows :navigate prev/next to work correctly via the javascript
bridge.
2016-08-08 15:02:58 +02:00
Florian Bruhin
0169f3a24f
Add _qutebrowser_ prefix for custom JS functions
...
With QtWebKit or QtWebEngine with Qt < 5.7, the functions end up in the
page's namespace. We can't easily avoid this, but at least we can name
them in a way which reduces conflicts.
2016-08-05 10:31:07 +02:00
Florian Bruhin
695864281b
QtWebEngine: Implement pixel scroll position in JS
2016-07-15 13:04:44 +02:00
Florian Bruhin
7adc8ab2d6
QtWebEngine: Implement scroll position based on JS
2016-07-15 12:52:27 +02:00
Florian Bruhin
c83a8a64dc
QtWebEngine: Implement scroll.delta_page
2016-07-13 11:26:53 +02:00
Florian Bruhin
b78b89f04f
QtWebEngine: Implement :scroll-perc via JS
2016-07-13 10:55:04 +02:00
Florian Bruhin
a960658617
js: Fix more lint.
2015-05-12 07:16:16 +02:00
Florian Bruhin
28ec7b4698
js: Fix radix parameters.
2015-05-12 07:16:13 +02:00
Florian Bruhin
d1e88c5e8d
js: Add 'var'.
2015-05-12 07:16:10 +02:00
Florian Bruhin
3f21ac6b6a
js: Use an IIFE.
2015-05-12 07:16:10 +02:00
Florian Bruhin
7a67af24f0
js: Fix some lint.
2015-05-12 07:16:08 +02:00
Florian Bruhin
1f94e0fee6
js: Remove obsolete argument to createTreeWalker.
...
"createNodeIterator() and createTreeWalker() now have optional arguments and
lack a fourth argument which is no longer relevant given entity references
never made it into the DOM."
2015-05-11 20:33:42 +02:00
Artur Shaik
57cad14714
Move JS snippet in external js file.
2015-05-07 12:41:02 +06:00