[epiphany] Use EphyWebViewDocumentType to keep track of PDF
- From: Michael Catanzaro <mcatanzaro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany] Use EphyWebViewDocumentType to keep track of PDF
- Date: Sat, 6 Jun 2020 14:15:58 +0000 (UTC)
commit a358649a824befa071f30608ffde1d2c7f3e4188
Author: Jan-Michael Brummer <jan brummer tabos org>
Date: Sat Jun 6 12:33:23 2020 +0200
Use EphyWebViewDocumentType to keep track of PDF
embed/ephy-embed-shell.c | 2 +-
embed/ephy-embed.c | 4 ++--
embed/ephy-web-view.c | 16 +++-------------
embed/ephy-web-view.h | 3 +--
src/ephy-window.c | 2 +-
5 files changed, 8 insertions(+), 19 deletions(-)
---
diff --git a/embed/ephy-embed-shell.c b/embed/ephy-embed-shell.c
index c7444639d..b7ec98e00 100644
--- a/embed/ephy-embed-shell.c
+++ b/embed/ephy-embed-shell.c
@@ -803,7 +803,7 @@ download_started_cb (WebKitWebContext *web_context,
embed = EPHY_GET_EMBED_FROM_EPHY_WEB_VIEW (web_view);
ephy_embed_download_started (embed, ephy_download);
- if (!ephy_web_view_in_pdf_viewer (EPHY_WEB_VIEW (web_view)))
+ if (ephy_web_view_get_document_type (EPHY_WEB_VIEW (web_view)) != EPHY_WEB_VIEW_DOCUMENT_PDF)
ephy_downloads_manager_add_download (priv->downloads_manager, ephy_download);
} else {
ephy_downloads_manager_add_download (priv->downloads_manager, ephy_download);
diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c
index 208730764..b0de87d89 100644
--- a/embed/ephy-embed.c
+++ b/embed/ephy-embed.c
@@ -1106,7 +1106,7 @@ pdf_download_decide_destination_cb (WebKitDownload *wk_download,
{
EphyWebView *web_view = ephy_embed_get_web_view (EPHY_EMBED (user_data));
- if (ephy_web_view_in_pdf_viewer (web_view)) {
+ if (ephy_web_view_get_document_type (web_view) == EPHY_WEB_VIEW_DOCUMENT_PDF) {
g_autofree gchar *tmp_file = g_strdup_printf ("%s/%s", g_get_tmp_dir (), suggested_filename);
g_autofree gchar *file_uri = g_filename_to_uri (tmp_file, NULL, NULL);
@@ -1125,7 +1125,7 @@ ephy_embed_download_started (EphyEmbed *embed,
EphyWebView *web_view = ephy_embed_get_web_view (embed);
WebKitDownload *download = ephy_download_get_webkit_download (ephy_download);
- if (ephy_web_view_in_pdf_viewer (web_view)) {
+ if (ephy_web_view_get_document_type (web_view) == EPHY_WEB_VIEW_DOCUMENT_PDF) {
g_signal_connect_object (download, "finished", G_CALLBACK (pdf_download_finished_cb), embed, 0);
g_signal_connect_object (download, "decide-destination", G_CALLBACK
(pdf_download_decide_destination_cb), embed, 0);
}
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index 6ebcad0b5..4b5bd98c2 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -80,7 +80,6 @@ struct _EphyWebView {
guint history_frozen : 1;
guint ever_committed : 1;
guint in_auth_dialog : 1;
- guint in_pdf_viewer : 1;
char *address;
char *display_address;
@@ -802,7 +801,7 @@ uri_changed_cb (WebKitWebView *web_view,
{
EphyWebView *view = EPHY_WEB_VIEW (web_view);
- if (!view->in_pdf_viewer)
+ if (view->document_type != EPHY_WEB_VIEW_DOCUMENT_PDF)
ephy_web_view_set_address (view,
webkit_web_view_get_uri (web_view));
}
@@ -885,8 +884,7 @@ decide_policy_cb (WebKitWebView *web_view,
type = EPHY_WEB_VIEW_DOCUMENT_IMAGE;
} else if (strcmp (mime_type, "application/pdf") == 0) {
/* FIXME: figure out how to make PDFs work in iframes. */
- /* FIXME: Can we replace in_pdf_viewer with a new EphyWebViewDocumentType? */
- EPHY_WEB_VIEW (web_view)->in_pdf_viewer = TRUE;
+ type = EPHY_WEB_VIEW_DOCUMENT_PDF;
}
/* FIXME: maybe it makes more sense to have an API to query the mime
@@ -1297,7 +1295,7 @@ update_security_status_for_committed_load (EphyWebView *view,
SoupURI *soup_uri;
g_autofree char *tld = NULL;
- if (view->loading_error_page || view->in_pdf_viewer)
+ if (view->loading_error_page || (view->document_type == EPHY_WEB_VIEW_DOCUMENT_PDF))
return;
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (view));
@@ -1423,8 +1421,6 @@ load_changed_cb (WebKitWebView *web_view,
if (ephy_embed_utils_is_no_show_address (uri))
ephy_web_view_freeze_history (view);
- view->in_pdf_viewer = FALSE;
-
if (!ephy_web_view_is_history_frozen (view)) {
char *history_uri = NULL;
@@ -3925,9 +3921,3 @@ ephy_web_view_new_with_related_view (WebKitWebView *related_view)
"settings", ephy_embed_prefs_get_settings (),
NULL);
}
-
-gboolean
-ephy_web_view_in_pdf_viewer (EphyWebView *web_view)
-{
- return web_view->in_pdf_viewer;
-}
diff --git a/embed/ephy-web-view.h b/embed/ephy-web-view.h
index 4bc2516a1..74f306c31 100644
--- a/embed/ephy-web-view.h
+++ b/embed/ephy-web-view.h
@@ -60,6 +60,7 @@ typedef enum
EPHY_WEB_VIEW_DOCUMENT_HTML,
EPHY_WEB_VIEW_DOCUMENT_XML,
EPHY_WEB_VIEW_DOCUMENT_IMAGE,
+ EPHY_WEB_VIEW_DOCUMENT_PDF,
EPHY_WEB_VIEW_DOCUMENT_OTHER
} EphyWebViewDocumentType;
@@ -180,6 +181,4 @@ void ephy_web_view_show_auth_form_save_request (EphyWebVie
gpointer
response_data,
GDestroyNotify
response_destroy);
-gboolean ephy_web_view_in_pdf_viewer (EphyWebView *view);
-
G_END_DECLS
diff --git a/src/ephy-window.c b/src/ephy-window.c
index e41b34188..005918320 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -2747,7 +2747,7 @@ static void
download_only_load_cb (EphyWebView *view,
EphyWindow *window)
{
- if (ephy_web_view_in_pdf_viewer (view))
+ if (ephy_web_view_get_document_type (view) == EPHY_WEB_VIEW_DOCUMENT_PDF)
return;
if (gtk_notebook_get_n_pages (window->notebook) == 1) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]