Curl is invoked for downloading particular files. Without "-g" flag it would
apply globbing rules to URLs, which may end badly in case URL is not properly
quoted.
Quentin Rameau [Wed, 2 Mar 2016 13:29:21 +0000 (14:29 +0100)]
Get rid of JavaScript for scrolling in views
This is still a hack, until WebKitGTK gives us a more practical and
stable way to do that. Manipulating directly the DOM inside a
webextension is a pain and only usable with unstable API atm.
Quentin Rameau [Tue, 1 Dec 2015 11:31:42 +0000 (12:31 +0100)]
Fix title handling
Don't forget to always set the title to the current uri, this way it's
up to date when there is no title on the page (ie for local file
exploration).
Thanks to pickfire for reporting the issue.
Quentin Rameau [Sun, 22 Nov 2015 15:45:22 +0000 (16:45 +0100)]
Fix target uri handling when leaving window
Introduce a new string pointer overtitle in Client to be able to keep
the targeturi intact while modifying the former for overriding or not
the window title.
Connect to GDK_ENTER_NOTIFY to restore overtitle when refocusing on
window.
Quentin Rameau [Sun, 22 Nov 2015 10:53:19 +0000 (11:53 +0100)]
Fix WM_CLASS and WM_WINDOW_ROLE properties
Instead of forcing class and instance names, which is what GTK does by
default anyway, allow the user to set the instance name, but keep the
general class as “Surf”.
Is we won't support a “-name” parameter and don't implement a parsing of
RESOURCE_NAME env variable, let's fallback on the third behaviour, use
the name of the calling executable.
That would let the user do things like 'ln -s ./surf ./surf-other;
./surf-other' and set different parameters for the two instances (in dwm
for example).
Try to generate a unique WM_WINDOW_ROLE (within the surf process)
composed of “Surf” and the view ID.
Quentin Rameau [Fri, 20 Nov 2015 15:53:52 +0000 (16:53 +0100)]
Adapt toggle statistics
Rename *togglestat to plural *togglestats, add frame flatenning
indicator, resize array in consequence.
Use a static index instead of a dynamic one as we always use all values
anyway.
Quentin Rameau [Fri, 20 Nov 2015 15:39:53 +0000 (16:39 +0100)]
Adapt loaduri()
Better handling of different URIs. Filter out “about:” scheme, dont
touch URI if it contains a complete scheme (we assume "://", denotes
one), else test if given path is an actual reachable file on the
filesystem, else prepend arbitrary http:// scheme.
Quentin Rameau [Fri, 20 Nov 2015 14:48:04 +0000 (15:48 +0100)]
Adapt toggle(), clean some config parameters
Regroup all toggles in an enum and handle them with a unique function
via a switch. That lets us take different actions for each toggle.
Add a frame flatenning and a dns preteching options.
Quentin Rameau [Fri, 20 Nov 2015 00:12:28 +0000 (01:12 +0100)]
Adapt find()
Slightly new behaviour: searching again for the same string (via MOD+/)
resets the search (ie restarts search from document top).
Searching for an empty string stops the search (ie all highlights are
removed).
Quentin Rameau [Thu, 19 Nov 2015 23:53:14 +0000 (00:53 +0100)]
Adapt scrolling
In fact, we have a scrolling handle ersatz for now using JavaScript
calls as we don't have access anymore to scrollbars.
We'll have to manipulate the DOM directly (later).
Quentin Rameau [Thu, 19 Nov 2015 15:38:58 +0000 (16:38 +0100)]
Remove windowobjectcleared(), execute scripts on load finished
The “window-object-cleared” signal is not directly accessible for
specific WebViews now. We'll have to use an Extension or rewrite the
JavaScript running functions.
Quentin Rameau [Thu, 19 Nov 2015 12:40:35 +0000 (13:40 +0100)]
Remove contextmenu() and menuactivate() for "context-menu" signal
Those were added because “right click menu to copy the link URI will now
work” (would not work) in 2013. It's been a while since that works without
intervention.
Quentin Rameau [Thu, 19 Nov 2015 12:19:27 +0000 (13:19 +0100)]
Adapted buttonrelease()
Use the current hit test (c->mousepos) to determine where the mouse
pointer is.
It is possible to link an action to a click and still propagate the
event after that by setting the “stop event” parameter of a Button to 0.
Quentin Rameau [Wed, 18 Nov 2015 17:44:25 +0000 (18:44 +0100)]
Manage ssl errors with GTlsCertificateFlags
Keep a GTlsCertificateFlags in Client for TLS errors.
If we don't use a ssl connection, set it to a value greater than maximum
error flag value (which is G_TLS_CERTIFICATE_VALIDATE_ALL for all
possible errors).
Quentin Rameau [Wed, 18 Nov 2015 16:59:50 +0000 (17:59 +0100)]
Replace linkhover() with mousetargetchanged()
The “linkhover” can now be more than a simple link (image, video, etc.).
As we can't anymore perform a hit test when we want, we have to keep the
last known hit test to be able to know where the mouse is on the next
click event.
Quentin Rameau [Wed, 18 Nov 2015 15:53:37 +0000 (16:53 +0100)]
Add newview() and forward related views
View creation is now done in a separate function.
That helps identifying the workflow and let us easily carry related
view (client) when asked by the WebKit for a new one.
Quentin Rameau [Wed, 18 Nov 2015 14:23:42 +0000 (15:23 +0100)]
Scrolling is now handled through WebKit
We don't have access anymore to the scrolling process and have to rely
entirely on WebKit.
We could be able to manage scrolling and bars directly by manipulating
the DOM via a WebKitExtension. To be continued…
Quentin Rameau [Sat, 31 Oct 2015 11:34:31 +0000 (12:34 +0100)]
Fix style files handling: stop leaking strings.
Everytime getstyle() was being called, we returned newly allocated
strings without ever freing them.
Now uri stylefiles only get allocated once at setup().
Quentin Rameau [Tue, 20 Oct 2015 13:04:52 +0000 (15:04 +0200)]
Continue style fixing: function declarations, code alignement
Here are the changes we discussed on the mailing-list.
Alignement is pushed to the first parameter of the function, which seems
to be what people agrees on.
Quentin Rameau [Tue, 13 Oct 2015 19:39:01 +0000 (21:39 +0200)]
Fix the way system files are handled at surf startup.
1. Do not chmod existing directories.
2. Fix the handling of tilde expansion in paths, don't expand ~foo to
$HOME/foo but to foo's home directory.
3. Separate the creation of files and directories. We don't have to
worry anymore about pathnames having to end with a '/' to be correctly
handled.
Quentin Rameau [Tue, 13 Oct 2015 11:32:09 +0000 (13:32 +0200)]
Fix atom value parsing in SETPROP
xprop(1) encloses the returned atom string value in double quotes while
it doesn't when the value is unset. Original simple parsing would fail
and parse the atom name instead of getting an empty value.