[epiphany] Use EphyWebViewDocumentType to keep track of PDF



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]