aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXan Lopez <xan@igalia.com>2012-03-06 20:00:04 +0800
committerXan Lopez <xan@igalia.com>2012-03-07 04:49:46 +0800
commitec9466a67a56a55ab344273e6e993a33c139262c (patch)
treeb9ae2691758296ad51cf0f4e6e2f419a61024cd1
parentc8e0ba263ee394a8c500b30ae340193cfb81edf0 (diff)
downloadgsoc2013-epiphany-ec9466a67a56a55ab344273e6e993a33c139262c.tar.gz
gsoc2013-epiphany-ec9466a67a56a55ab344273e6e993a33c139262c.tar.zst
gsoc2013-epiphany-ec9466a67a56a55ab344273e6e993a33c139262c.zip
ephy-history-service: handle correctly zoom level migration
We need to consider the case of an "invalid" host with a non default zoom level, since the profile migrator will send us that kind of thing.
-rw-r--r--lib/history/ephy-history-service.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/history/ephy-history-service.c b/lib/history/ephy-history-service.c
index fb02c80f6..13ed3b3ca 100644
--- a/lib/history/ephy-history-service.c
+++ b/lib/history/ephy-history-service.c
@@ -432,6 +432,15 @@ ephy_history_service_execute_add_visit_helper (EphyHistoryService *self, EphyHis
{
if (visit->url->host == NULL)
visit->url->host = ephy_history_service_get_host_row_from_url (self, visit->url->url);
+ else if (visit->url->host->id == -1 && visit->url->host->zoom_level != 1.0) {
+ /* This will happen when we migrate the old history to the new
+ * format. We need to store a zoom level for a not-yet-created
+ * host, so we'll end up here. Ugly, but it works. */
+ double zoom_level = visit->url->host->zoom_level;
+ ephy_history_host_free (visit->url->host);
+ visit->url->host = ephy_history_service_get_host_row_from_url (self, visit->url->url);
+ visit->url->host->zoom_level = zoom_level;
+ }
visit->url->host->visit_count++;
ephy_history_service_update_host_row (self, visit->url->host);