[epiphany] web-view: Add accessor to get current error page
- From: Michael Catanzaro <mcatanzaro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany] web-view: Add accessor to get current error page
- Date: Mon, 22 Feb 2016 14:15:05 +0000 (UTC)
commit bc3579edfcaf73121a2c286a8338acd3ac590f56
Author: Michael Catanzaro <mcatanzaro igalia com>
Date: Mon Feb 8 17:00:32 2016 -0600
web-view: Add accessor to get current error page
https://bugzilla.gnome.org/show_bug.cgi?id=761735
embed/ephy-web-view.c | 31 ++++++++++++++++++++++++++++---
embed/ephy-web-view.h | 3 ++-
2 files changed, 30 insertions(+), 4 deletions(-)
---
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index 753f4b1..06d7911 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -113,6 +113,8 @@ struct _EphyWebView {
gboolean loading_error_page;
char *tls_error_failing_uri;
+ EphyWebViewErrorPage error_page;
+
/* Web Extension */
EphyWebExtensionProxy *web_extension;
};
@@ -1407,10 +1409,8 @@ update_security_status_for_committed_load (EphyWebView *view,
WebKitSecurityManager *security_manager;
SoupURI *soup_uri;
- if (view->loading_error_page) {
- view->loading_error_page = FALSE;
+ if (view->loading_error_page)
return;
- }
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (view));
if (EPHY_IS_EMBED_CONTAINER (toplevel))
@@ -1502,6 +1502,11 @@ load_changed_cb (WebKitWebView *web_view,
g_free (history_uri);
}
+ if (view->loading_error_page)
+ view->loading_error_page = FALSE;
+ else
+ view->error_page = EPHY_WEB_VIEW_ERROR_PAGE_NONE;
+
break;
}
case WEBKIT_LOAD_FINISHED:
@@ -1686,6 +1691,22 @@ get_tls_error_page_message (EphyWebView *view, const char *hostname)
}
/**
+ * ephy_web_view_get_error_page:
+ * @view: an #EphyWebView
+ *
+ * Returns the error page currently displayed, or
+ * %EPHY_WEB_VIEW_ERROR_PAGE_NONE.
+ *
+ **/
+EphyWebViewErrorPage
+ephy_web_view_get_error_page (EphyWebView *view)
+{
+ g_return_val_if_fail (EPHY_IS_WEB_VIEW (view), EPHY_WEB_VIEW_ERROR_PAGE_NONE);
+
+ return view->error_page;
+}
+
+/**
* ephy_web_view_load_error_page:
* @view: an #EphyWebView
* @uri: uri that caused the failure
@@ -1715,7 +1736,10 @@ ephy_web_view_load_error_page (EphyWebView *view,
const char *accesskey;
GBytes *html_file;
+ g_return_if_fail (page != EPHY_WEB_VIEW_ERROR_PAGE_NONE);
+
view->loading_error_page = TRUE;
+ view->error_page = page;
if (page == EPHY_WEB_VIEW_ERROR_INVALID_TLS_CERTIFICATE)
ephy_web_view_set_security_level (view, EPHY_SECURITY_LEVEL_UNACCEPTABLE_CERTIFICATE);
@@ -1791,6 +1815,7 @@ ephy_web_view_load_error_page (EphyWebView *view,
load_anyway_js = g_strdup_printf
("window.webkit.messageHandlers.tlsErrorPage.postMessage(%"G_GUINT64_FORMAT");",
webkit_web_view_get_page_id (WEBKIT_WEB_VIEW (view)));
break;
+ case EPHY_WEB_VIEW_ERROR_PAGE_NONE:
default:
g_assert_not_reached ();
}
diff --git a/embed/ephy-web-view.h b/embed/ephy-web-view.h
index 91480d4..4bda784 100644
--- a/embed/ephy-web-view.h
+++ b/embed/ephy-web-view.h
@@ -46,6 +46,7 @@ typedef enum
} EphyWebViewDocumentType;
typedef enum {
+ EPHY_WEB_VIEW_ERROR_PAGE_NONE,
EPHY_WEB_VIEW_ERROR_PAGE_NETWORK_ERROR,
EPHY_WEB_VIEW_ERROR_PAGE_CRASH,
EPHY_WEB_VIEW_ERROR_PROCESS_CRASH,
@@ -93,7 +94,7 @@ const char * ephy_web_view_get_display_address (EphyWebView
void ephy_web_view_set_placeholder (EphyWebView *view,
const char *uri,
const char *title);
-
+EphyWebViewErrorPage ephy_web_view_get_error_page (EphyWebView *view);
void ephy_web_view_load_error_page (EphyWebView *view,
const char *uri,
EphyWebViewErrorPage page,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]