GNOME Bugzilla – Bug 540362
[webkit-composer] Use webkit for composer
Last modified: 2015-03-31 08:10:47 UTC
Upgrade to Webkit from gtkhtml. Webkit is more powerful, light-weight and essentially is a good rendering engine than gtkhtml.
Jeff tells me Alp has a patch for viewing emails with WebKit. That's a good first step. Care to post it here for review?
Getting the /composer/ to use WebKit will take a bit more doing.
Here's WebKit's own tracker bug for adding GObject-based editing capabilities. This bug depends on it. https://bugs.webkit.org/show_bug.cgi?id=19456
Alp, can you upload your patch?
Alp, can you upload your patch (if this hasn't been done yet)?
GNOME 2.26 target, though not a blocker one - release team just wants to switch the entire Gnome platform from XulRunner to WebKit, so switching from GtkHtml3 to Webkit would be great too.
Pinged the gnucash folks to also port their app (bug 551976), don't know of other apps depending on gtkhtml3 though.
Created attachment 120547 [details] [review]
Very basic WebKit viewer, just a hack.
Sorry I missed this bug earlier.
Thanks alp. Lemme see, how to take it to main stream
I suggest we maintain the patch on a 'webkit' branch, and merge it to trunk once we have a WebKit-based composer. I can look after keeping the branch up-to-date if you want. This was at the top of my list once 'kill-bonobo' is done.
(well - it's not a hard requirement for 2.28 but a nice to have. other stuff like bonobo deprecation is way more important, hence removing gnome-target)
*** Bug 576153 has been marked as a duplicate of this bug. ***
I would love to see this in 2.28 or at least in 3.0.
(In reply to comment #10)
> I would love to see this in 2.28 or at least in 3.0.
Yes, we all would, but such comments are not helpful at all and are not motivating for developers, while contributed patches might be.
Is there a Webkit branch available? I am on Ubuntu and the latest release comes out in a few days and it contains 2.28. I don't think webkit support is enabled yet. If possible, I'd like to make my own build with Alp's patch once I upgrade.
No, WebKit support isn't available yet. We're still waiting to WebKit to provide DOM bindings for GObject so we can use WebKit also for composing mails and drop GtkHTML entirely. It's on the back burner right now.
I'm working on porting this to C for my app.....
Also some more inspiration from Qt with more stuff enabled.
I'll post the Gtk/C version when it will be on-par with these two.
Yes, we need the DOM bindings.
I have a private webkit branch started now with the preview panes in Contacts, Memos and Tasks (including text search) essentially done. However the Mail and Composer are by far the most complex parts that deal with HTML, so the branch is really just getting off the ground. Once I get a little further with it I will post it publicly.
That's a great news. J
How soon are we likely to have this? I've been playing with Valgrind and I'm coming to the conclusion that gtkhtml leaks like a sieve (bug 623265 list many leaks but isn't exhaustive).
If we're going to ditch gtkhtml imminently, it may not be worth bothering with. Otherwise, I'm half tempted to suggest we start using talloc in gtkhtml ;)
It's probably another six months out, at least. GtkHtml is on life support at this point.
gtkhtml is also a nightmare when composing bidi content. It seemingly switches alignment and indentation randomly, adds non-deletable line feeds, makes it impossible to navigate with the arrow keys (you keep going back to where you were), crashes evolution totally, you name it.
It will be a great relief when webkit finally replaces it.
Bumping. What's the status on this?
(In reply to comment #22)
What's the status
As far as I know, Dan Vrátil is working on this.
Wow, that's great news.
According to team meeting today:
This will not happen for 3.2, trying to fix this for 3.4 (March 2012).
would it be possible to build a version that uses webkit to view HTML and composes only plaintext thus avoiding gtkhtml at least for some use cases?
rendering emails in WebKit is currently under development (see the webkit branch in git) and will be available in Evolution 4.5.x (hopefully 4.5.1). The composer is still GtkHTML based, but should be replaced by WebKit in Evolution 4.6 (planned for Autumn).
Sorry, I meant 3.X.X of course.
Short status update:
Evolution 3.6 (09/2012) will include WebKit rendering (displaying emails).
Evolution 3.8 (03/2013) will likely include WebKit editing (composing emails).
Adding myself as I need the webkit editing.
Adding myself into the mailing list
Sorry for spam.
The composing part has been moved first to 3.10, then to 3.11 and now it will probably to 3.12.
What's the actual status?
Check the webkit-composer branch , Tomas is working on it. If you can compile evolution yourself, then any help with testing is appreciated. Also check currently opened bug reports about the webkit composer at 
and on a WhiteBoard string, which includes also bug s which would be nice to have done together/after webkit composer is done:
I'm willing to test this. But there's no guide or something to compline it. I installed JHBuild environment and successfully compiled and ran 3.11.3.
But when I checked-out the webkit branch, it did not compile somehow on the same system.
So a guide would be appreciated. At least, can someone tell, if we just checkout the webkit branch & compile, or do we have to merge it with head of normal evolution branch, or what? What is the version that webkit branch using? Is it the head? Something old? (I don't know how git works, so sorry if I asked some stupid question)
Switching the branch that you want to compile is a general topic and not Evolution specific, so it should be covered on https://wiki.gnome.org/Git/Developers - please check and feel free to ask questions on evolution-hackers@ or gnome-love@ mailing list, as providing general Git support is out of scope for this specific bug report. Thanks. :)
Right now you just need to checkout the wip/webkit-composer in Evolution and that's all. But before I do another rebase (probably next week) you need to have evolution-data-server on https://git.gnome.org/browse/evolution-data-server/commit/?id=e92f0fd7fb7fd67cda56c778b419b2dfae0b2388
Tomas, thanks. I have this line now in my .jhbuildrc
branches['evolution'] = (None, 'wip/webkit-composer')
hope this is the correct one, I'm unable to checkout now at work, but will do tonight.
Tomas, I think I will need to wait for your rebase next week(hope it won't need the evolution-data-server then), since I'm unable to compile evolution with the master evolution-data-server at the moment due to following error:
mail-folder-cache.c: In function 'ping_store_exec':
mail-folder-cache.c:1275:3: error: implicit declaration of function 'camel_store_noop_sync' [-Werror=implicit-function-declaration]
mail-folder-cache.c:1275:3: warning: nested extern declaration of 'camel_store_noop_sync' [-Wnested-externs]
Tomas, I compiled your branch last week and using it. Since it's running on jhbuild environment on Ubuntu 13.10, it's not that stable, but I'm pretty happy at the moment to be finally able to use Evolution in our Outlook environment. I'll be syncing the branch from time to time and continue the test.
Until now, I've only seen one glitch, but I could not reproduce it. I selected a text to paste somewhere else, then the selection got stuck and I could not anymore use the mouse to move the cursor wherever I wanted in the text. Only the keyboard worked to move the cursor. I sent that message and all is good again.
Some more issues I just faced now:
- When I insert an image into the mail by dragging & dropping, the image is inserted. But then it's not selectable as an object. You can only select it if you select it like text (ie cursor buttons with shift or mouse select and move).
- The remote party could only see 10% of the inserted image. Rest is blank. I think this is major issue.
- I deleted an address from the address TO or CC line, but i can't undo it (ie by CTRL-Z)
- When I try to forward a calendar item using "forward as iCalendar", there's a dialog which pops up if we want to strip HTML or not, if you click Yes or No, it does not matter, you can't edit address lines to add people you want to forward to. The invitation text is also not visible in the editor widget. So I'm puzzled how to forward an invitation.
Shall I open bug reports?
Emre: Thanks for testing. As this is a tracking bug, please file separate bug reports for the problems you faced, one per issue.
OK, I will do after some time due to busy work schedule.
Tomas, Andre, how can i understand that I am actually using the webkit composer? I can see that it no longer messes up the formatting of the mails I respond, that's very good in itself, but I still can't see font selection, font size settings in the composer window. It's still some styles and +- size sections. For example, my company's signature needs a specific font & font size. I guess no way to obey it at this moment.
- Signature editing window is acting weird
- when you start new mail, if you press enter after first line, cursor jumps way bottom of the window, but the sent mail is correct.
I'll file bug reports as well for these.
All bugs filed. When I find new ones, I'll file them as well.
Which evolution release is planned for webkit composer to be publicly available?
Thanks for information.
Not yet known, it's still under development.
The earliest would be Evolution 3.14 in March, 2015.
Fixed with commit 8650fb139a9143f04615de74ff569bce3e0c4ce3 in master.
 - https://git.gnome.org/browse/evolution/commit/?id=8650fb139a9143f04615de74ff569bce3e0c4ce3
This still left one define in configure.ac, I removed that just now.
diff --git a/configure.ac b/configure.ac
index e08fc28..efd6a76 100644
@@ -45,7 +45,6 @@ m4_define([soup_minimum_version], [2.42])
evolution-shell.pc.in still has the following:
Requires: gtk+-3.0 libebackend-1.2 webkitgtk-3.0 libgtkhtml-4.0 gtkhtml-editor-4.0
Shouldn't that be removed as well?
Causes problems such as:
checking for BIJIBEN... no
configure: error: Package requirements ( evolution-calendar-3.0
glib-2.0 >= 2.28
gtk+-3.0 >= 3.11.4
webkitgtk-3.0) were not met:
Package 'libgtkhtml-4.0', required by 'evolution-shell-3.0', not found
You are right, there were still left some references to GtkHTML in Evolution, unfortunately. I removed them (those in "active code") here:
Created commit a1f29eb in evo master (3.13.4+)