Skip to content

Commit a33d641

Browse files
committed
Fixes #1414 blank preview pane.
1 parent af2f796 commit a33d641

File tree

7 files changed

+31
-89
lines changed

7 files changed

+31
-89
lines changed

ChangeLog

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
2025-02-25 Lars Windolf <[email protected]>
2+
3+
Version 1.16-RC2
4+
5+
* Fixes #1414 Blank preview pane (when Javascript preference is disabled)
6+
(Lars Windolf, reported by Filip Danilović)
7+
8+
* Updated Spanish translation
9+
(Cristian Othón Martínez Vera)
10+
11+
* Updated German translation
12+
(Lars Windolf)
13+
14+
115
2025-02-09 Lars Windolf <[email protected]>
216

317
Version 1.16-RC1

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
dnl Process this file with autoconf to produce a configure script.
22

3-
AC_INIT([liferea],[1.16-RC1],[[email protected]])
3+
AC_INIT([liferea],[1.16-RC2],[[email protected]])
44
AC_CANONICAL_HOST
55
AC_CONFIG_SRCDIR([src/feedlist.c])
66

src/ui/liferea_browser.c

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -317,33 +317,10 @@ liferea_browser_get_widget (LifereaBrowser *browser)
317317
return browser->container;
318318
}
319319

320-
void
321-
liferea_browser_write (LifereaBrowser *browser, const gchar *string, const gchar *base)
322-
{
323-
const gchar *baseURL = base;
324-
const gchar *errMsg = "ERROR: Invalid encoded UTF8 buffer passed to HTML widget! This shouldn't happen.";
325-
326-
if (!browser)
327-
return;
328-
329-
if (baseURL == NULL)
330-
baseURL = "file:///";
331-
332-
if (!g_utf8_validate (string, -1, NULL)) {
333-
/* It is really a bug if we get invalid encoded UTF-8 here!!! */
334-
liferea_webkit_write_html (browser->renderWidget, errMsg, strlen (errMsg), baseURL, "text/plain");
335-
} else {
336-
liferea_webkit_write_html (browser->renderWidget, string, strlen (string), baseURL, "text/html");
337-
}
338-
339-
/* We hide the toolbar as it should only be shown when loading external content */
340-
gtk_widget_hide (browser->toolbar);
341-
}
342-
343320
void
344321
liferea_browser_clear (LifereaBrowser *browser)
345322
{
346-
liferea_browser_write (browser, "<html><body></body></html>", NULL);
323+
liferea_webkit_clear (browser->renderWidget);
347324
}
348325

349326
struct internalUriType {
@@ -595,8 +572,6 @@ liferea_browser_set_view (LifereaBrowser *browser, const gchar *name, const gcha
595572
tmp = g_string_new (liferea_browser_get_template (browser, name));
596573
g_string_replace (tmp, "REPLACE_MARKER", script, 1);
597574

598-
// do not use liferea_browser_write() as we need to write XHTML here
599-
// which is produced by intltool
600575
liferea_webkit_write_html (browser->renderWidget, tmp->str, strlen (tmp->str), baseURL, "text/html");
601576
}
602577

src/ui/liferea_browser.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -68,16 +68,6 @@ GtkWidget *liferea_browser_get_widget (LifereaBrowser *browser);
6868
*/
6969
void liferea_browser_clear (LifereaBrowser *browser);
7070

71-
/**
72-
* liferea_browser_write: (skip)
73-
* @browser: the browser widget to be set
74-
* @string: HTML source
75-
* @base: base url for resolving relative links
76-
*
77-
* Method to display the passed HTML source to the HTML widget.
78-
*/
79-
void liferea_browser_write (LifereaBrowser *browser, const gchar *string, const gchar *base);
80-
8171
/**
8272
* liferea_html_view_on_url: (skip)
8373
* @browser: the browser causing the event

src/webkit/liferea_web_view.c

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -276,24 +276,13 @@ on_popup_webinspector_activate (GSimpleAction *action, GVariant *parameter, gpoi
276276
webkit_web_inspector_show (WEBKIT_WEB_INSPECTOR(inspector));
277277
}
278278

279-
static void
280-
on_popup_toggle_reader_mode_change_state (GSimpleAction *action, GVariant *parameter, gpointer user_data)
281-
{
282-
WebKitWebView *webview = WEBKIT_WEB_VIEW (user_data);
283-
gboolean reader = g_variant_get_boolean (parameter);
284-
285-
//liferea_browser_set_reader_mode (g_object_get_data (G_OBJECT (webview), "htmlview"), reader);
286-
g_simple_action_set_state (action, g_variant_new_boolean (reader));
287-
}
288-
289279
static const GActionEntry liferea_web_view_gaction_entries[] = {
290280
{"save-link", on_popup_save_link_activate, "s", NULL, NULL},
291281
{"subscribe-link", on_popup_subscribe_link_activate, "s", NULL, NULL},
292282
{"copy-selection", on_popup_copy_activate, NULL, NULL, NULL},
293283
{"zoom-in", on_popup_zoomin_activate, NULL, NULL, NULL},
294284
{"zoom-out", on_popup_zoomout_activate, NULL, NULL, NULL},
295-
{"web-inspector", on_popup_webinspector_activate, NULL, NULL, NULL},
296-
{"toggle-reader-mode", NULL, NULL, "true", on_popup_toggle_reader_mode_change_state}
285+
{"web-inspector", on_popup_webinspector_activate, NULL, NULL, NULL}
297286
};
298287

299288
static void
@@ -593,14 +582,6 @@ liferea_web_view_load_status_changed (WebKitWebView *view, WebKitLoadEvent event
593582
switch (event) {
594583
case WEBKIT_LOAD_STARTED:
595584
{
596-
// Once load starts we can update the reader toggle
597-
/*GActionGroup *action_group;
598-
action_group = LIFEREA_WEB_VIEW (view)->menu_action_group;
599-
GSimpleAction *reader_action;
600-
reader_action = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (action_group), "toggle-reader-mode"));
601-
gboolean reader = liferea_browser_get_reader_mode (htmlview);
602-
g_simple_action_set_state (reader_action, g_variant_new_boolean (reader));*/
603-
604585
// Hack to force webview exit from fullscreen mode on new page
605586
isFullscreen = GPOINTER_TO_INT(g_object_steal_data(
606587
G_OBJECT(view), "fullscreen_on"));

src/webkit/webkit.c

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,9 @@ liferea_webkit_enable_itp_cb (GSettings *gsettings,
134134
{
135135
g_return_if_fail (key != NULL);
136136

137-
#if WEBKIT_CHECK_VERSION (2, 30, 0)
138137
webkit_website_data_manager_set_itp_enabled (
139138
webkit_web_context_get_website_data_manager (webkit_web_context_get_default()),
140139
g_settings_get_boolean (gsettings, key));
141-
#endif
142140
}
143141

144142
/* Font size math from Epiphany embed/ephy-embed-prefs.c to get font size in
@@ -247,9 +245,8 @@ liferea_webkit_on_dbus_connection_close (GDBusConnection *connection,
247245
LifereaWebKit *webkit_impl = LIFEREA_WEBKIT (user_data);
248246

249247
if (!remote_peer_vanished && error)
250-
{
251248
g_warning ("DBus connection closed with error : %s", error->message);
252-
}
249+
253250
webkit_impl->dbus_connections = g_list_remove (webkit_impl->dbus_connections, connection);
254251
g_object_unref (connection);
255252
}
@@ -280,9 +277,8 @@ on_page_created (LifereaWebKit *instance,
280277
guint64 page_id,
281278
gpointer web_view)
282279
{
283-
if (webkit_web_view_get_page_id (WEBKIT_WEB_VIEW (web_view)) == page_id) {
280+
if (webkit_web_view_get_page_id (WEBKIT_WEB_VIEW (web_view)) == page_id)
284281
liferea_web_view_set_dbus_connection (LIFEREA_WEB_VIEW (web_view), connection);
285-
}
286282
}
287283

288284

@@ -408,7 +404,7 @@ liferea_webkit_init (LifereaWebKit *self)
408404
WebKitWebsiteDataManager *website_data_manager;
409405

410406
self->dbus_connections = NULL;
411-
webkit_web_context_register_uri_scheme (webkit_web_context_get_default(), "liferea",
407+
webkit_web_context_register_uri_scheme (webkit_web_context_get_default (), "liferea",
412408
(WebKitURISchemeRequestCallback) liferea_webkit_handle_liferea_scheme,NULL,NULL);
413409

414410
security_manager = webkit_web_context_get_security_manager (webkit_web_context_get_default ());
@@ -460,6 +456,9 @@ liferea_webkit_write_html (
460456
{
461457
// FIXME Avoid doing a copy ?
462458
GBytes *string_bytes = g_bytes_new (string, length);
459+
460+
g_object_set (webkit_web_view_get_settings (WEBKIT_WEB_VIEW (webview)), "enable-javascript", TRUE, NULL);
461+
463462
/* Note: we explicitely ignore the passed base URL
464463
because we don't need it as Webkit supports <div href="">
465464
and throws a security exception when accessing file://
@@ -475,28 +474,15 @@ liferea_webkit_write_html (
475474
}
476475

477476
void
478-
liferea_webkit_run_js (GtkWidget *widget, gchar *js, GAsyncReadyCallback cb)
477+
liferea_webkit_clear (GtkWidget *webview)
479478
{
480-
// No matter what was before we need JS now
481-
g_object_set (webkit_web_view_get_settings (WEBKIT_WEB_VIEW (widget)), "enable-javascript", TRUE, NULL);
482-
483-
webkit_web_view_evaluate_javascript (
484-
WEBKIT_WEB_VIEW (widget),
485-
js,
486-
-1,
487-
NULL,
488-
NULL,
489-
NULL,
490-
cb,
491-
g_object_get_data (G_OBJECT (widget), "htmlview")
492-
);
493-
g_free (js);
479+
webkit_web_view_load_html (WEBKIT_WEB_VIEW (webview), "", NULL);
494480
}
495481

496482
static void
497483
liferea_webkit_set_font_size (GtkWidget *widget, gpointer user_data)
498484
{
499-
WebKitSettings *settings = WEBKIT_SETTINGS(user_data);
485+
WebKitSettings *settings = WEBKIT_SETTINGS (user_data);
500486
gchar *font;
501487
guint fontSize;
502488

@@ -647,7 +633,6 @@ liferea_webkit_scroll_pagedown (GtkWidget *webview)
647633
void
648634
liferea_webkit_set_proxy (ProxyDetectMode mode)
649635
{
650-
#if WEBKIT_CHECK_VERSION (2, 15, 3)
651636
switch (mode) {
652637
default:
653638
case PROXY_DETECT_MODE_MANUAL:
@@ -664,7 +649,6 @@ liferea_webkit_set_proxy (ProxyDetectMode mode)
664649
NULL);
665650
break;
666651
}
667-
#endif
668652
}
669653

670654
/**

src/webkit/webkit.h

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,20 +125,18 @@ void liferea_webkit_reload (GtkWidget *webview);
125125
* @length: string length
126126
* @base: (nullable): base URI
127127
* @content_type: HTTP content type string
128-
*
128+
*
129129
* Load an HTML string into the web view. This is used to render
130130
* HTML documents created internally.
131131
*/
132132
void liferea_webkit_write_html (GtkWidget *webview, const gchar *string, const guint length, const gchar *base, const gchar *content_type);
133133

134134
/**
135-
* liferea_webkit_run_js:
136-
* @webview: the WebkitWebView
137-
* @js: the Javascript string
138-
* @cb: the JS callback
135+
* liferea_webkit_clear:
136+
* @webview: the WebkitWebView
139137
*
140-
* Run an Javascript against the webview
138+
* Clear the webview
141139
*/
142-
void liferea_webkit_run_js (GtkWidget *widget, gchar *js, GAsyncReadyCallback cb);
140+
void liferea_webkit_clear (GtkWidget *webview);
143141

144142
#endif

0 commit comments

Comments
 (0)