Commit graph

370 commits

Author SHA1 Message Date
Quentin Rameau
a53dc90171 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).
2015-11-20 00:53:14 +01:00
Quentin Rameau
c4f01cd18b Adapt inspector handling
The inspector is now easily manageable via API, there's no need for
keeping its state in the Client.
2015-11-20 00:46:11 +01:00
Quentin Rameau
0b5b798eb2 Adapt print() 2015-11-20 00:34:23 +01:00
Quentin Rameau
2c2a7b608e Simplify building of stylefiles path
We can directly use style file pointers instead of using temporary
string pointers.
2015-11-20 00:34:22 +01:00
Quentin Rameau
ba8617e4ee Adapt setstyle()
We can't anymore pass a simple path to a stylefile, we have to read the
entire file to create a stylesheet and apply it to the view.
2015-11-20 00:34:22 +01:00
Quentin Rameau
701815a5f2 Adapt clipboard()
Replace linkhover with target uri and add some comments
2015-11-20 00:34:22 +01:00
Quentin Rameau
d6794e0d75 Rename fullscreen() to togglefullscreen()
And handle c->fullscreen value in winevent(). This way we keep track of
fullscreen state even if we did not directly initiate the fullscreen.
2015-11-20 00:34:22 +01:00
Quentin Rameau
b4e78555d0 Replace titlechangeleave() with catch-all winevent()
All GtkWidget events have the same function prototype with the generic
GdkEvent as parameter. This will let us handle everything in the switch.
2015-11-20 00:34:22 +01:00
Quentin Rameau
d9cecc8932 Adapt JavaScript functions
Removed eval(), evalscript() is now sufficient and can directly execute
passed JavaScript string.
2015-11-20 00:34:22 +01:00
Quentin Rameau
72905b8bfc 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.
2015-11-20 00:34:22 +01:00
Quentin Rameau
bb1fc4195f Add createwindow() for GtkWindow creation
Move there window creation from showview().
2015-11-20 00:34:22 +01:00
Quentin Rameau
2e1fb87361 Add closeview() for JavaScript window closing
Simply call gtk_widget_destroy() on the window. Then GtkWindow closing
process will take care of the rest.
2015-11-20 00:34:21 +01:00
Quentin Rameau
04d46d1791 Remove (delete :>) deletion_interface() 2015-11-20 00:34:21 +01:00
Quentin Rameau
76940a9ab5 Integrate beforerequest() into decidepolicy() 2015-11-20 00:34:21 +01:00
Quentin Rameau
d542773e75 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.
2015-11-20 00:34:21 +01:00
Quentin Rameau
f6a35e5fbf 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.
2015-11-20 00:34:21 +01:00
Quentin Rameau
96188f83f0 Replace initdownload() and intercept global download requests.
Attach to download requests on WebKitContext, this way we can easily
manage all types of downloads (coming from views or not).
2015-11-20 00:34:21 +01:00
Quentin Rameau
26a2dbac65 Adapted progresschanged() 2015-11-20 00:34:21 +01:00
Quentin Rameau
58c4e18975 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).
2015-11-20 00:34:20 +01:00
Quentin Rameau
e9ec482049 Replace loadstatuschanged() with loadchanged() 2015-11-20 00:34:20 +01:00
Quentin Rameau
bce814b30a Replace decidewindow() and decidedownload() with decidepolicy()
Now all the requests are triggered by one signal.
We then handle each type, resource download, navigation, newwindow, in
separate functions.
2015-11-20 00:34:20 +01:00
Quentin Rameau
1f99df029c Replace createwindow() with createview()
We can now perform some filtering before opening a new view (window)
when requested by JavaScript (either random or by a click).
2015-11-20 00:34:20 +01:00
Quentin Rameau
92d7ba7ed8 Replace geopolicyrequested() with permissionrequested()
The permission-request signal can now ask for than a geolocation
authorisation (though we only handle that for now).
2015-11-20 00:34:20 +01:00
Quentin Rameau
42c6c90366 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.
2015-11-20 00:34:20 +01:00
Quentin Rameau
b9530ad5d1 Modify the context name of the hit tests
These relate more to the position of the pointer when an event occurs.
2015-11-20 00:34:20 +01:00
Quentin Rameau
60f574e4b7 Adapted titlechange()
Do not copy title strings, just carry over the const pointer.
2015-11-20 00:34:20 +01:00
Quentin Rameau
0f3e3bf669 Move all necessary initialisation to newview()
Most all the settings and callbacks are set before view creation.
Create a related view (with inherited settings) if asked to.
2015-11-20 00:34:19 +01:00
Quentin Rameau
ad538bb00a 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.
2015-11-20 00:34:19 +01:00
Quentin Rameau
421486db18 Add showview()
Only show the window when and if the view is ready.
Move all the window rendering there.
2015-11-20 00:34:14 +01:00
Quentin Rameau
f86977a6fa Separate the rendering engine process
Use one WebKitWebProcess per view instead of one for all views.
More information in the API documentation.
2015-11-20 00:23:59 +01:00
Quentin Rameau
b0f35be17b No option to enforce 96DPI anymore on WebKit2 2015-11-20 00:23:59 +01:00
Quentin Rameau
42829cdad0 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…
2015-11-20 00:23:59 +01:00
Quentin Rameau
94f2f2eace SSL policy is now handled through WebKit 2015-11-20 00:23:59 +01:00
Quentin Rameau
e39b7e623c Disk cache is now handled through WebKit 2015-11-20 00:23:59 +01:00
Quentin Rameau
7c34b37786 Cookies are now handled through WebKit
Remove all soup cookie handling and use provided interface.
2015-11-20 00:23:54 +01:00
Quentin Rameau
4415c475f7 Remove source(), it has been removed from webkit2gtk
WebKit2GTK doesn't provide a direct way to view source anymore, we'll
have to do that ourselves with a GtkSourceView if we still need that.
2015-11-18 14:59:13 +01:00
Quentin Rameau
b7cc1ae964 Remove proxy stuff, it's now handled by WebView 2015-11-18 14:59:13 +01:00
Quentin Rameau
abcf5f06ed Switch headers to webkit2 2015-11-18 14:59:13 +01:00
Quentin Rameau
566b452b46 Port surf to gtk3 2015-11-17 17:05:05 +01:00
Quentin Rameau
9b1e1873b0 buildfile: don't forget to free temporary string bpath
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-11-04 16:47:04 +01:00
Quentin Rameau
5333171961 Be more specific about what enablestyles parameter does.
The enablestyles configuration variable and parameter flag manages the
global application of styles, not just the site-specific styles.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-11-03 19:45:50 +01:00
Quentin Rameau
2223e9ed22 Fix inspector handling when inspector is disabled.
Do not try to show the inspector window when the inspector is disabled.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-11-03 19:45:04 +01:00
Quentin Rameau
1ebb5c624e Fix usage(), -m and -M for styles were absent.
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-11-03 19:44:20 +01:00
Quentin Rameau
9a2547230a Fix fullscreen handling
Handle the fullscreen in a more consistent way with other options:
-f disables fullscreen while -F enables fullscreen.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-11-03 19:44:05 +01:00
Quentin Rameau
0290066b31 Add setstyle()
Regroup style uri setting application calls under one function.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-31 17:50:06 +01:00
Quentin Rameau
d84fe71094 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().

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-31 17:50:03 +01:00
Quentin Rameau
c65c8d422b 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.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-20 17:52:54 +02:00
Markus Teich
9f5c6ff8d7 style fixes: space after keywords, () with sizeof
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-18 23:01:56 +02:00
Markus Teich
c2bb8d0325 whitespace fixes
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-18 23:01:52 +02:00
Markus Teich
6a65dcb394 fix style path generation
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-18 16:34:11 +02:00
Christoph Lohmann
c81fbbaf43 Style cleanup. 2015-10-13 21:48:38 +02:00
Quentin Rameau
8a898ec4df 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.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-13 21:45:14 +02:00
GhostAV
957a6f0812 Torified surf is unstable
On Tue, Aug 18, 2015 at 12:38:40PM +0200, Gabriel Pérez-Cerezo wrote:
> It really seems  to be a problem with torsocks.  I have already solved
> this problem with a patch GhostAV just  sent me on this list that adds
> SOCKS support to surf. It works fine now.

As i failed to send the patch to the list, i resend it now:
-- >8 --
From: Jonas Rabenstein <jonas.rabenstein@studium.uni-erlangen.de>
Subject: [PATCH] allow sock proxies

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-08-18 17:43:18 +02:00
Christoph Lohmann
b4ca032b8c Removing the debug print from the last commit. 2015-02-10 19:06:56 +01:00
Markus Teich
29c2ab207a allow buttonrelease customization in config.h
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-02-10 19:05:39 +01:00
Greg Reagle
f7e358280c surf: see hover URL without changing title
On Tue, Jan 27, 2015, at 11:52 AM, Christoph Lohmann wrote:
> Then hook to the window leaving event in GTK or X11 and set the title to
> your needs. I will welcome a patch.

Patch is attached.  I am a total novice in GTK programming, so I don't
know what type the callback function is supposed to be (hence the void
pointers) or whether I registered it properly.  But it does work well
for me.

--
http://www.fastmail.com - Access your email from home and the web

From a33f06da092bf920b6a286ea7688b32944d79a50 Mon Sep 17 00:00:00 2001
From: Greg Reagle <greg.reagle@umbc.edu>
Date: Tue, 27 Jan 2015 13:22:15 -0500
Subject: [PATCH] ensure that window title is web page title (not hover link)
 when leaving window

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-02-03 17:25:26 +01:00
Christoph Lohmann
b3a4392923 Some cleanup in style. 2015-02-03 17:17:04 +01:00
Markus Teich
90de5cdd15 fix stylesheet interna.
* no more segfault when running `surf -m`
* allow to enable custom styles after `surf -m` with mod+shift+m
* use enablestyles instead of the webkit-setting, which clears things up a bit

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-01-20 17:45:04 +01:00
Christoph Lohmann
344efec3fb Only plumb some URI, when it's ASCII. 2015-01-20 17:38:22 +01:00
Christoph Lohmann
d4e31d9472 Oh my blob!
Adding blob: to the URIS handled by the browser.
2015-01-20 01:59:53 +01:00
Christoph Lohmann
68813b3a46 Data: is part of the browser too. 2015-01-19 22:51:29 +01:00
Christoph Lohmann
87224dcdfa file:// should be handled in surf too. 2015-01-19 22:43:42 +01:00
Christoph Lohmann
d511226ea6 Remove the debugging from the testing. 2015-01-19 22:31:31 +01:00
Christoph Lohmann
9c3b5ad353 Add plumbing functionality. 2015-01-19 22:15:18 +01:00
Christoph Lohmann
9333d5d727 My CMD was too short. :O
Thanks Carlos Torres for mentioning this.
2015-01-18 11:44:39 +01:00
Christoph Lohmann
117d484833 Adding disk cache support for soup.
This is a merge of the patch of Ben Woolley <tautolog@gmail.com>
2015-01-17 20:50:21 +01:00
Ben Woolley
24ec46fc24 Fix extra newline, and add -g where other switches are forwarded.
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-01-17 07:23:48 +01:00
Christoph Lohmann
c2da2bae5d Major styles update.
In config.h there is now some styles array to apply site-specific styles.
This can be toggled using the -mM flags. If a stylefile is manually specified,
then this will overwrite everything.
2015-01-17 07:19:48 +01:00
Christoph Lohmann
3e89b4451c Minor style change. 2014-09-28 08:03:42 +02:00
Christoph Lohmann
dd705d43eb Make »Copy image address« work.
Thanks yui@blekksprut.net for the patch!
2014-09-28 08:02:48 +02:00
Christoph Lohmann
f8f0c30f3e Enable resizable text areas. 2014-02-16 17:17:15 +01:00
Quentin Rameau
a8267f7b95 deprecating signal “populate-popup” for “context-menu”
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2014-02-08 20:05:38 +01:00
Quentin Rameau
618c3dfd52 Prevent title from being empty when following an anchor
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2014-02-08 14:03:22 +01:00
Quentin Rameau
3cc5f87db8 deprecating signal “title-changed” for “notify::title”
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2014-02-06 19:14:36 +01:00
Christoph Lohmann
637902b452 The check for NULL is not necessary before free. 2014-02-06 16:49:26 +01:00
Christoph Lohmann
127dc366ef Removing a memory leak when u wasn't freed. 2014-02-06 06:47:22 +01:00
Christoph Lohmann
361da0b3c4 Making the empty title possible. 2014-02-05 21:14:16 +01:00
Quentin Rameau
b7435badc2 Draw flags on window creation
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2014-02-05 20:17:35 +01:00
Quentin Rameau
4b623bd28a Keep cookie policies for new windows
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2014-02-05 20:17:26 +01:00
Christoph Lohmann
fa9b187393 Add the commandline flag for the cookie policies too. 2014-01-30 20:47:03 +01:00
Christoph Lohmann
780cca964c Add a way to define the cookie policy.
This adds the -a flag to define a string of the toggle string for the cookie
policy modes. There is now a new »cookiepolicies« string in config.h and the
Mod+Shift+a now can toggle the policy but will not cause a reload, because
this would only add a burden when toggling through accept and not accept.

Thanks Quentin Rameau <quinq.ml@gmail.com> for the suggestions!
2014-01-30 20:36:06 +01:00
Christoph Lohmann
e4869357f1 Replacing the deprecated ssl-ca-file with tls-database.
Thanks Steve Dee <mrdomino@gmail.com>!
2014-01-30 19:39:32 +01:00
Christoph Lohmann
a78aec6630 Fix the ssl trusted check.
Thank you Steve Dee <mrdomino@gmail.com>!
2014-01-30 19:35:54 +01:00
Christoph Lohmann
9eedabe348 Make surf set the URI atom right on manual URI entering. 2014-01-13 17:58:45 +01:00
Christoph Lohmann
432f45a852 Add zoom level support. 2013-10-19 18:55:53 +02:00
David Dufberg
7e9a37f25f c->uri is unused
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-10-10 18:49:26 +02:00
Christoph Lohmann
83df29393f Make it possible to open a link in a new window with holding the mod key.
Thanks David Dufberg Tøttrup <david@dufberg.se>!
2013-09-07 11:55:23 +02:00
Christoph Lohmann
f3d97922e9 Add a flag to disable fullscreen.
This also updates the usage of surf to represent the current status.
Thanks Alexander Sedov for the suggestion, but you forgot the manpage
entry so I did this patch.
2013-08-31 20:00:41 +02:00
Christoph Lohmann
237e10058a Add fullscreen mode as flag and config option. 2013-08-25 19:50:40 +02:00
Christoph Lohmann
058f7f45e2 Just some comment correction. 2013-08-09 01:36:51 +02:00
Anselm R Garbe
7001df98d1 applied Nick's 96dpi patch, thanks 2013-07-20 08:52:10 +02:00
Christoph Lohmann
2e978627dd Setting the cookie file on new instances. 2013-07-12 06:52:37 +02:00
Christoph Lohmann
c234737bea Adding a common way to enable and disable features. 2013-05-21 21:30:00 +02:00
Christoph Lohmann
067c313e6c Allowing geo location policy decisions. 2013-04-28 21:26:56 +02:00
Alexander Sedov
d0309a1a22 Disabling WebKit deletion interface feature by default.
Webkit has an amazing "feature" that shows black outline with cross
around some randomly chosen text fields. Its only fucntion is to
clear field. It's ugly and gets in the way when trying to actually
ready what you've written, so here's a patch to disable it.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-04-17 19:26:12 +02:00
Christoph Lohmann
083ea8ecde Add an option to disable the indicators. 2013-04-14 14:26:44 +02:00
Christoph Lohmann
12101938d8 There are people not reading the existing code.
I fucking hate to have to correct all of this. People learn to read!
2013-03-15 18:37:12 +01:00
Alexander Sedov
bccfe2a9a5 Fixed keys handling for multilayout environments.
There is a bug in GTK+ that does not allow capturing shortcuts using
letter keys on layouts other than "us". The bug is there for ages and
there is probably no hope that it will get fixed. This patch switches
shortcut handling method to GtkAccelGroup, which handles this case
correctly. Enjoy!

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-03-15 18:34:31 +01:00
Christoph Lohmann
a69c41ccac Support relative paths for surf.
Thanks Kurt Van Dijck <kurt.van.dijck@eia.be>!
2013-03-14 19:14:44 +01:00
Christoph Lohmann
d02f73d990 Adding a default font size option.
Thanks Alexander Sedov <alex0player@gmail.com>!
2013-03-14 06:35:42 +01:00