Commit graph

16 commits

Author SHA1 Message Date
Serhii Tereshchenko
efc10cd504 feat: Use DarkReader for dark mode emails 2025-07-21 08:39:49 +00:00
Serhii Tereshchenko
dbfb7f40da client: Support Dark Mode
Refs #714

Co-authored-by: Niels De Graef <nielsdegraef@gmail.com>
2025-06-09 16:25:30 +03:00
Michael Gratton
946f6d786f client: Fix remote images not being loaded for remembered senders/email
Since commit 6a0ad721 landed the client can no longer reply on
pre-filling JS page state before loading the message body HTML, since
it would be cleared when the JS page state is initialised in the
window-object-cleared handler.

Instead, set the load remote flag as a GObject data property on the
WebKit.WebPage object in the web process via the extension, and consult
that when determining whether to allow loading remote content.

Fixes #1170
2021-04-05 14:14:46 +10:00
Michael Gratton
fd002c0156 client: Ensure non-image remote resources are also loaded when permitted
Update `PageState.loadRemoteResources` to process any child of the BODY
element that has a `src` or `srcset` element.
2021-04-05 11:12:18 +10:00
Michael Gratton
1be5dec877 client: Update Components.WebView terminology around resource loading
Refer uniformly to remote resource loading instead of that and remote
image loading.
2021-04-04 18:04:41 +10:00
Michael Gratton
0dce103f6b ui/components-web-view.js: Use arrow functions for better this scoping 2020-10-17 13:55:36 +11:00
Michael Gratton
01a0f96b40 ui/components-web-view.js: Use ResizeObserver for watching pref height
Rather than guessing when the height might change by using a number
of different event listeners, use a ResizeObserver to get direct
notifications of any changes to the HTML element's size.
2020-10-17 11:29:05 +11:00
Michael Gratton
7950ce50c6 GearyWebExtension: Untangle extension and JS interaction a bit
Move selection changed event listener into JS so it doesn't have to
cross the JS/native boundary twice.

Move sending remote load blocked from JS to the extension since we can
do that directly now and again so the JS/native boundary doesn't need
to be double-crossed again.
2020-10-13 00:02:09 +11:00
Michael Gratton
fb96676fbd Components.WebView: Convert to using messages for JS → client comms 2020-10-13 00:02:09 +11:00
Michael Gratton
6162785d99 GearyWebExtension: Add support for sending messages from JS to client
Define a vala-backed JS class in the extension and make that available
to pages when they are registered. Add some helper JS to PageState for
defining message sending functions. Listen for these in
Components.WebView and dispatch to the registered callback for it.
2020-10-13 00:02:09 +11:00
Michael Gratton
c813aa5707 Components.WebView: Check for pass up exceptions when calling JS code
Update web extension to check for errors when invoking page state
methods and pass a message back if found. Check for this, decode and
throw a vala error in the WebView if found.
2020-10-13 00:02:09 +11:00
Michael Gratton
ff565bc6ef Components.WebView: Convert to using messages for JS method invocation
Use WebKitGTK UserMessage objects for invoking JS methods rather than
serialising to JS strings and running those. This is possibly slightly
less efficient, but removes the onus on serialising to and parsing from
JS and once switched over from message handlers to UserMessage objects
will be using a single uniform IPC interface for both.
2020-10-13 00:02:09 +11:00
Michael James Gratton
d7af23201c Revert "Revert "Merge branch 'mjog/558-webkit-shared-process' into 'mainline'""
This reverts commit cbe6e0ba9b, which reinstates
commit e4a5b85698.

See !411 and !374
2020-10-13 00:02:02 +11:00
Michael James Gratton
cbe6e0ba9b Revert "Merge branch 'mjog/558-webkit-shared-process' into 'mainline'"
Revert merge request GNOME/geary!374 for now since the shared process
model breaks old-style WebProcess message handler IPC.

This can be un-reverted when out JS is ported to the new Messages API
that is landing in WebKitGTK 2.28.

This reverts commit e4a5b85698, reversing
changes made to 66f6525480.
2020-02-13 12:56:52 +11:00
Michael Gratton
6c57839ddf Fix remote resource blocking with shared processes
Now that a shared WebKitUserContentManager is shared between web views,
the old "load a JS file when remote resource loading is allowed" doesn't
work any more. Instead, set a variable on the frame's window object
in the web extension notified that a new page has been loaded, and
use that instead.
2019-11-26 19:37:49 +11:00
Michael Gratton
ceb9c9764a Rename ClientWebView to Components.WebView per code style 2019-11-26 14:26:03 +11:00
Renamed from ui/client-web-view.js (Browse further)