commit e788b69446a2699cbd223a23b8a0247621cc17b7 Author: Michael Catanzaro Date: Sun Feb 26 23:53:47 2017 -0600 Prepare 3.23.91 NEWS | 16 ++++++++++++++++ configure.ac | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) commit f42e9fbed2b3cd196e8577a0b0387e9b6ffeb1f7 Author: Baurzhan Muftakhidinov Date: Mon Feb 27 09:29:54 2017 +0000 Update Kazakh translation po/kk.po | 588 ++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 313 insertions(+), 275 deletions(-) commit 6c4c02b33c21ac09c44071a203ec268392a41c0a Author: Daniel Mustieles Date: Mon Feb 27 08:48:28 2017 +0000 Update Spanish translation po/es.po | 836 ++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 445 insertions(+), 391 deletions(-) commit ec9e0909fcbb17e5a230340886af8a54a6b8f693 Author: Fran Dieguez Date: Sun Feb 26 23:37:41 2017 +0100 Updated Galician translations po/gl.po | 2477 ++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 1376 insertions(+), 1101 deletions(-) commit 6dc4e6151f4c6919fb63ea9c76d4a66b1cdca1a3 Author: Piotr Drąg Date: Sun Feb 26 19:22:32 2017 +0100 Update Polish translation po/pl.po | 487 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 252 insertions(+), 235 deletions(-) commit a658ec7387110c2012d0e492d8768d43f835dd18 Author: Carlos Garcia Campos Date: Sun Feb 26 10:15:25 2017 +0100 clear-data-dialog: Do not remove data of sites filtered out src/clear-data-dialog.c | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) commit 963496b6860dc728c0315f54157227b4344a9cfe Author: Carlos Garcia Campos Date: Sun Feb 26 09:42:02 2017 +0100 clear-data-dialog: Convert filter iterators to treestore iterators https://bugzilla.gnome.org/show_bug.cgi?id=779100 src/clear-data-dialog.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 5a90f3875572da3ed67ab9cb6113a7b389073ffb Author: Carlos Garcia Campos Date: Sun Feb 26 09:25:50 2017 +0100 Bump WebKit version to 2.15.90 and use new API to handle cookies configure.ac | 2 +- src/cookies-dialog.c | 73 +++++++++++++++++++------------------ src/resources/gtk/cookies-dialog.ui | 2 +- 3 files changed, 39 insertions(+), 38 deletions(-) commit 36b198142962097e16b95e637fe46e92d0bcc62f Author: Mario Blättermann Date: Sat Feb 25 21:35:17 2017 +0100 Updated German translation po/de.po | 1268 +++++++++++++++----------------------------------------------- 1 file changed, 293 insertions(+), 975 deletions(-) commit a8a60d657d360c31dfe4d2b08ffb22d7bd0066b8 Author: Aurimas Černius Date: Sat Feb 25 18:28:41 2017 +0200 Updated Lithuanian translation po/lt.po | 678 ++++++++++++++++++++++++++++----------------------------------- 1 file changed, 303 insertions(+), 375 deletions(-) commit 44794bc7d89d0a0f98e34ff42e892e14263ac6e0 Author: Michael Catanzaro Date: Sat Feb 25 09:26:48 2017 -0600 prefs-dialog: Remove now-unused functions src/prefs-dialog.c | 61 ------------------------------------------------------ 1 file changed, 61 deletions(-) commit ca30fea5a408dccb21f59cb2c894a9e26fa54260 Author: Daniel Korostil Date: Sat Feb 25 16:16:55 2017 +0200 Updated Ukrainian translation po/uk.po | 375 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 195 insertions(+), 180 deletions(-) commit b7d9d2e215ba9c82aea61fdbfbd152f0bce15ffc Author: Rafael Fontenelle Date: Sat Feb 25 14:13:42 2017 +0000 Update Brazilian Portuguese translation po/pt_BR.po | 542 +++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 302 insertions(+), 240 deletions(-) commit 022c54007b978765c88e7cb1554b0b49221239c5 Author: Fabio Tomat Date: Fri Feb 24 23:26:26 2017 +0000 Update Friulian translation po/fur.po | 493 +++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 275 insertions(+), 218 deletions(-) commit 8b96bd222590f35a5398b70821e4cae0488f2bae Author: Michael Catanzaro Date: Fri Feb 24 17:13:15 2017 -0600 search-engine-manager: Another code style tweak lib/ephy-search-engine-manager.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f30bf73bf4e4c93591f971279952bea2c24eebe0 Author: Michael Catanzaro Date: Fri Feb 24 16:34:06 2017 -0600 Miscellaneous code style adjustments https://bugzilla.gnome.org/show_bug.cgi?id=776738 lib/ephy-search-engine-manager.c | 15 +++++++-------- src/ephy-location-controller.c | 12 ++++++------ src/ephy-search-engine-dialog.c | 19 ++++++++----------- 3 files changed, 21 insertions(+), 25 deletions(-) commit f6325a2ce480c485b152ccb499dfb28c411070f1 Author: Michael Catanzaro Date: Fri Feb 24 16:33:53 2017 -0600 embed-utils: Fix leak is is_bang_search() embed/ephy-embed-utils.c | 1 + 1 file changed, 1 insertion(+) commit 2c9c7e7b72799993d9f5220d8dbbae3945a3634d Author: Michael Catanzaro Date: Wed Feb 22 14:20:16 2017 -0600 bookmarks-manager: Fix use-after-free in _remove_bookmark() https://bugzilla.gnome.org/show_bug.cgi?id=776738 src/bookmarks/ephy-bookmarks-manager.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cdf7fc59720231e338b8eaa4fde09d3c4959f6cc Author: cedlemo Date: Wed Feb 15 16:08:37 2017 +0100 Replace smart bookmarks feature with search engine manager https://bugzilla.gnome.org/show_bug.cgi?id=776738 lib/ephy-profile-utils.h | 2 +- lib/ephy-search-engine-manager.c | 28 ++++ src/Makefile.am | 2 - src/bookmarks/ephy-bookmark.c | 35 ----- src/bookmarks/ephy-bookmark.h | 4 - src/bookmarks/ephy-bookmarks-list-model.c | 193 ------------------------- src/bookmarks/ephy-bookmarks-list-model.h | 36 ----- src/bookmarks/ephy-bookmarks-manager.c | 97 ++++++++----- src/bookmarks/ephy-bookmarks-manager.h | 1 - src/bookmarks/ephy-bookmarks-popover.c | 42 +----- src/ephy-completion-model.c | 5 +- src/ephy-location-controller.c | 205 +++++++++++---------------- src/profile-migrator/ephy-profile-migrator.c | 58 ++++++++ 13 files changed, 238 insertions(+), 470 deletions(-) commit e57ce8d3aa2a1539bb51413afa01ae31374717a4 Author: cedlemo Date: Thu Feb 16 19:22:41 2017 +0100 Implement search engine dialog https://bugzilla.gnome.org/show_bug.cgi?id=776738 po/POTFILES.in | 2 + src/Makefile.am | 2 + src/ephy-search-engine-dialog.c | 715 ++++++++++++++++++++++++++++++ src/ephy-search-engine-dialog.h | 33 ++ src/prefs-dialog.c | 135 +----- src/resources/epiphany.gresource.xml | 1 + src/resources/gtk/prefs-dialog.ui | 73 ++- src/resources/gtk/search-engine-dialog.ui | 301 +++++++++++++ 8 files changed, 1102 insertions(+), 160 deletions(-) commit 1d7ba9ca27853f8d13072da5814d15334a13a694 Author: cedlemo Date: Fri Feb 24 12:21:00 2017 -0600 implement search engine manager https://bugzilla.gnome.org/show_bug.cgi?id=776738 data/org.gnome.epiphany.gschema.xml | 27 ++- embed/ephy-embed-shell.c | 12 + embed/ephy-embed-shell.h | 2 + embed/ephy-embed-utils.c | 64 +++++- lib/Makefile.am | 2 + lib/ephy-prefs.h | 2 + lib/ephy-search-engine-manager.c | 337 +++++++++++++++++++++++++++++ lib/ephy-search-engine-manager.h | 67 ++++++ src/search-provider/ephy-search-provider.c | 29 +-- tests/ephy-embed-utils-test.c | 7 + tests/ephy-web-view-test.c | 34 +-- 11 files changed, 535 insertions(+), 48 deletions(-) commit e67c9d072a7b48a55d3ca3e6456350368bfc22e8 Author: Daniel Korostil Date: Fri Feb 24 20:34:54 2017 +0200 Updated Ukrainian translation po/uk.po | 4132 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 2078 insertions(+), 2054 deletions(-) commit c85479931c50d4bcd0bf81c83189a5212670aa43 Author: Fabio Tomat Date: Thu Feb 23 15:38:19 2017 +0000 Update Friulian translation po/fur.po | 640 +++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 337 insertions(+), 303 deletions(-) commit e4aba4456ce91eeca3ee91fd5e400d7bfa0dad8e Author: Chao-Hsiung Liao Date: Thu Feb 23 11:01:26 2017 +0000 Update Chinese (Taiwan) translation po/zh_TW.po | 854 ++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 479 insertions(+), 375 deletions(-) commit bb0f1f29f6fe02b461b51c701278f8fdbc2c63b3 Author: Michael Catanzaro Date: Wed Feb 22 19:16:52 2017 -0600 Revert "prefs-dialog: Bring back default encoding preference" This reverts commit 88aacc4f86762c805d2abf092c727e363282b64f. This combo is seriously broken; it only opens the first time you click on it, and the menu opens way off on the left side of the screen. It's just too broken to have in 3.24. Oh well. src/prefs-dialog.c | 75 --------------------------------------- src/resources/gtk/prefs-dialog.ui | 39 -------------------- 2 files changed, 114 deletions(-) commit defd406d788e7b837e9422bcc651cc789b2cb7b7 Author: Gabriel Ivascu Date: Wed Feb 22 13:55:20 2017 +0200 sync-secret: Fix string typo src/sync/ephy-sync-secret.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e99e1fe2093f5b7fe6de8b70db79b8a5f1480522 Author: Michael Catanzaro Date: Tue Feb 21 11:08:27 2017 -0600 HACKING: Fix advice about default web context use We don't use default context ever anymore HACKING | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 894dd409d1d52bacb4b04ba1d4f59563d963ddd8 Author: Michael Catanzaro Date: Tue Feb 21 11:05:35 2017 -0600 Fix typo in HACKING file HACKING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3f76e6e5d45e4be973653f530e23c5ce2667d079 Author: Michael Catanzaro Date: Tue Feb 21 10:36:18 2017 -0600 history-service: remove longstanding transactions Instead of having a longstanding transaction open at all times and scheduling commits that open a new transaction, just create transactions around history messages, so that each message forms its own atomic transaction. This is way simpler. I considered that we might not need transactions at all, but there are performance implications to removing transactions entirely. lib/history/ephy-history-service-hosts-table.c | 1 - lib/history/ephy-history-service-private.h | 2 - lib/history/ephy-history-service-urls-table.c | 1 - lib/history/ephy-history-service-visits-table.c | 7 +- lib/history/ephy-history-service.c | 135 ++++++++---------------- 5 files changed, 47 insertions(+), 99 deletions(-) commit fd742ea85019adb214865d8628f131c19ba8bc20 Author: Michael Catanzaro Date: Tue Feb 21 09:58:17 2017 -0600 sqlite-connection: Remove unused rollback transaction method lib/ephy-sqlite-connection.c | 8 -------- lib/ephy-sqlite-connection.h | 1 - 2 files changed, 9 deletions(-) commit 1dd71f3e08c9497b748e1138ec11910f3d2a53ce Author: Michael Catanzaro Date: Tue Feb 21 09:54:11 2017 -0600 history-service: Remove useless allocations lib/history/ephy-history-service-hosts-table.c | 7 +++---- lib/history/ephy-history-service-urls-table.c | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) commit ed2dad156899e6a8224447b696bbf15de2a52049 Author: Rafael Fontenelle Date: Tue Feb 21 11:11:18 2017 +0000 Update Brazilian Portuguese translation po/pt_BR.po | 293 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 147 insertions(+), 146 deletions(-) commit 2237adc1c7519d1565291a5080da3fbbdb99e669 Author: Michael Catanzaro Date: Mon Feb 20 20:24:03 2017 -0600 Fix theoretical race condition in ephy_history_service_add_visit_row The design of the history service feels like one big footgun. I'm really not sure why a history thread is necessary at all, or why we have longstanding transactions (defeating the entire purpose of transactions) instead of just using autocommit, which I think would be sufficient for everything we do. This commit doesn't fix any of that. That's just a rant. This commit just fixes one theoretical race condition. Prepared statements lock the database and need to be finalized BEFORE commit. The current code only works if the prepared statement is finalized on the UI thread before the scheduled commit occurs on the history thread. Which is probably always, but let's not leave it to luck. I could see this leading to a small loss of the last bit of history when closing the browser. https://bugzilla.gnome.org/show_bug.cgi?id=778649 lib/history/ephy-history-service-visits-table.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit cd99a05a856dfa7d373938b4b16a0f208db3167a Author: Michael Catanzaro Date: Mon Feb 20 13:51:48 2017 -0600 history-test: Remove extra blank line tests/ephy-history-test.c | 1 - 1 file changed, 1 deletion(-) commit dc29fb4c1c7d79878c7997d3ec45e6ec40ef4b0b Author: Kukuh Syafaat Date: Mon Feb 20 16:49:27 2017 +0000 Update Indonesian translation po/id.po | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) commit ddeb8a081797f5b94adfed68a03d729ec05ad8e1 Author: Kukuh Syafaat Date: Mon Feb 20 12:01:16 2017 +0000 Update Indonesian translation po/id.po | 3197 +++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 1816 insertions(+), 1381 deletions(-) commit 8eedd19772ec4bd5d5bdecd05cb4a9377e0cfff9 Author: Michael Catanzaro Date: Sun Feb 19 17:44:11 2017 -0600 bookmarks-popover: Don't crash when removing bookmarks src/bookmarks/ephy-bookmarks-popover.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 913dbc3042ec18c8699d0f48db21a015b1d12bb4 Author: Michael Catanzaro Date: Sun Feb 19 16:38:18 2017 -0600 bookmarks: Stop hardcoding "Favorites" everywhere po/POTFILES.in | 1 + src/bookmarks/ephy-bookmark-properties-grid.c | 4 ++-- src/bookmarks/ephy-bookmark.c | 4 ++-- src/bookmarks/ephy-bookmarks-manager.c | 4 ++-- src/bookmarks/ephy-bookmarks-manager.h | 3 +++ src/bookmarks/ephy-bookmarks-popover.c | 4 ++-- 6 files changed, 12 insertions(+), 8 deletions(-) commit adb1ef77cd11e875e95e8110f14047532f2b5c94 Author: Michael Catanzaro Date: Sun Feb 19 16:33:03 2017 -0600 bookmarks-manager: Don't allow deleting Favorites tag src/bookmarks/ephy-bookmarks-manager.c | 5 +++++ 1 file changed, 5 insertions(+) commit 02992ad08561e9432103995a4020a74dc0bf0208 Author: Michael Catanzaro Date: Sun Feb 19 16:24:53 2017 -0600 bookmarks-popover: Exit tag detail view if removing tag's last bookmark src/bookmarks/ephy-bookmarks-popover.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit dd589f663cade1b1041fe70dfa3d9bcfedcaf8be Author: Michael Catanzaro Date: Sun Feb 19 16:15:35 2017 -0600 bookmarks-popover: Fix removing tag while in tag detail view There were two problems here: (1) The code to handle removing the bookmark from the tag view was guarded by the code that checks if the bookmark is the last one remaining in the tag view. That is, it can never be reached except when we're about to exit tag view anyway. Fix that by moving it outside the top conditional, where it never belonged. (2) With that fixed, the code now removes the bookmark from the tag detail view even if the tag removed does not correspond to the current tag detail view. That's bogus. Check the current view's tag before removing the bookmark row. src/bookmarks/ephy-bookmarks-popover.c | 53 +++++++++++++++++----------------- 1 file changed, 26 insertions(+), 27 deletions(-) commit fe31197f7dce130ce73fcffc6e086550ced73bbf Author: Michael Catanzaro Date: Sun Feb 19 16:09:13 2017 -0600 bookmarks-popover: Properly remove bookmark from tag detail When a bookmark is removed, we need to also remove it from the tag detail. src/bookmarks/ephy-bookmarks-popover.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit 99a48a54667205b709598d6e5f15e7045f25557c Author: Michael Catanzaro Date: Sun Feb 19 15:52:14 2017 -0600 bookmarks-popover: Switch away from tag detail view only if necessary If we are deleting a tag while in tag detail view, only switch away from detail view if the tag we are deleting is the tag we are currently viewing. Otherwise it's confusing and dumb. src/bookmarks/ephy-bookmarks-manager.c | 5 +++-- src/bookmarks/ephy-bookmarks-popover.c | 28 +++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 7 deletions(-) commit f630032e1279d714d98ece3b7fdd6e41643c097a Author: Michael Catanzaro Date: Sun Feb 19 14:57:22 2017 -0600 bookmarks-popover: fix crash when deleting tag We want to do this once after processing all bookmarks, not once for each bookmark... this was causing crashes when deleting a tag while viewing a particular tag's list of bookmarks. src/bookmarks/ephy-bookmarks-popover.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) commit 1a09c3ec717d9e3b052215dc5cc924d3cf6ee61a Author: Michael Catanzaro Date: Sun Feb 19 14:46:13 2017 -0600 bookmarks-popover: Ignore smart bookmarks in tag added/removed callbacks Bookmarks popover is not designed to handle smart bookmarks. They're just going to make it crash. src/bookmarks/ephy-bookmarks-popover.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 8e35be677af9aa86d17b96b2f12b9b6971dd0cdf Author: Michael Catanzaro Date: Sun Feb 19 14:32:04 2017 -0600 bookmark-row: Fix criticals when destroyed before favicon loads src/bookmarks/ephy-bookmark-row.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit a048aa7684e79dc05fdfe4a69aa5e299e00870dc Author: Piotr Drąg Date: Sun Feb 19 20:59:09 2017 +0100 Update Polish translation po/pl.po | 102 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 53 insertions(+), 49 deletions(-) commit 03b5ca5a4996de96503d0c5113e7b5910aff4792 Author: Michael Catanzaro Date: Sun Feb 19 13:55:07 2017 -0600 Use emblem-favorite-symbolic icon for favorites This doesn't match the mockups, but it helps clarify that favorites are different from other bookmarks. Favorites are your favorite bookmarks! <3 https://bugzilla.gnome.org/show_bug.cgi?id=778849 src/bookmarks/ephy-bookmark-properties-grid.c | 2 +- src/bookmarks/ephy-bookmarks-popover.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit accffcdae816ea3f9d6bdf2d62673e7a58d4ff43 Author: Michael Catanzaro Date: Sun Feb 19 12:59:16 2017 -0600 Do not show add bookmarks popover star in incognito mode It doesn't work in incognito mode. src/ephy-window.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0f0e3ea6f1b9c388b33adb0d4d797de07debd64f Author: Michael Catanzaro Date: Sun Feb 19 12:50:47 2017 -0600 history-dialog: Disable forget actions in incognito mode They always fail, because the history service is read-only. I investigated using a separate history service in read/write mode, but couldn't get it to work properly. Carlos prefers not to modify anything in incognito mode anyway. src/ephy-history-dialog.c | 30 +++++++++++++++++++++++++++--- src/resources/gtk/history-dialog.ui | 4 ++-- 2 files changed, 29 insertions(+), 5 deletions(-) commit fff709a2babd44a6e1b8a16f6c70a60b21734f39 Author: Michael Catanzaro Date: Sun Feb 19 12:37:52 2017 -0600 history-service: Allow reading history filename There's no reason to prevent reading it. We should either do this or else remove the get_property implementation, as it doesn't make any sense to have code for getting an unreadable property. lib/history/ephy-history-service.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 937160676e46600c532450007764100e017761a0 Author: Michael Catanzaro Date: Sun Feb 19 12:23:09 2017 -0600 embed-shell: Fix dumb return types embed/ephy-about-handler.c | 2 +- embed/ephy-embed-shell.c | 10 +++++----- embed/ephy-embed-shell.h | 7 +++++-- embed/ephy-web-view.c | 2 +- src/ephy-encoding-dialog.c | 4 +--- src/ephy-header-bar.c | 2 +- src/ephy-location-controller.c | 2 +- src/ephy-shell.c | 3 +-- src/prefs-dialog.c | 2 +- src/search-provider/ephy-search-provider.c | 2 +- tests/ephy-completion-model-test.c | 4 ++-- tests/ephy-encodings-test.c | 2 +- tests/ephy-web-view-test.c | 2 +- 13 files changed, 22 insertions(+), 22 deletions(-) commit 122612b18bf4eec34b6b8ae4917f2b4fab021c47 Author: Aurimas Černius Date: Sun Feb 19 20:32:03 2017 +0200 Updated Lithuanian translation po/lt.po | 1878 +++++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 1196 insertions(+), 682 deletions(-) commit fd19259bddca1ca87116b34bb27beec356113e7e Author: Michael Catanzaro Date: Sun Feb 19 11:05:26 2017 -0600 history-service: Fix write to database in read-only mode Now that SQLite enforces read-only mode for us, bugs like this will be uncovered.... https://bugzilla.gnome.org/show_bug.cgi?id=778649 lib/history/ephy-history-service-hosts-table.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 486f4389a11bee5e5fb2a4e2f1b415d082e6e6b6 Author: Michael Catanzaro Date: Sun Feb 19 10:54:06 2017 -0600 Use gtk_show_uri_on_window To avoid deprecation warnings lib/ephy-gui.c | 8 +------- src/ephy-window.c | 4 +--- src/window-commands.c | 9 +-------- 3 files changed, 3 insertions(+), 18 deletions(-) commit 2cb839ce0e385335f6253ffeca5e4c57073b3daa Author: Michael Catanzaro Date: Sun Feb 19 09:45:32 2017 -0600 history-service: Fix multiple initialization race conditions This started out as a project to fix the read-only service test I just added. Initializing two history service objects in a row was racy, because I needed the first history service to be initialized before creating the second one, but there was no way to ensure that. This was only an issue for this one test, though; real Epiphany browser mode of course only creates one history service, so I assumed it was not a big problem. Fix this first issue using a condition variable to ensure the GObject initialization doesn't complete until after the history service has actually created the SQLite database. In doing this, I discovered a second bug. The use of the condition variable altered the timing slightly, and caused the history filename property to not be set in time when entering the history service thread. In fact, it's kind of amazing that the history service ever worked at all, because there is absolutely nothing here to guarantee that the filename and read-only properties have been initialized prior to starting the history service thread. So the database filename could be NULL when opening the database, which is a great way to lose all your history. Also, it could also be in read-only mode here even if it is supposed to be read/write mode, which is going to cause failures after today's commits. Fix this by adding a constructed function and starting the history thread from there, instead of doing it in init. This means that the history thread will not be started until after properties have been set. Note that, while I could not reproduce this bug on my machine until after adding the condition variable to fix the first bug, that was just due to timing and luck; it was already broken before. https://bugzilla.gnome.org/show_bug.cgi?id=778649 lib/history/ephy-history-service-private.h | 2 ++ lib/history/ephy-history-service.c | 47 ++++++++++++++++++++++++------ tests/ephy-history-test.c | 5 ---- 3 files changed, 40 insertions(+), 14 deletions(-) commit 132e08c158e75c781dc1b94a20ce8810c7c00ef5 Author: Michael Catanzaro Date: Sun Feb 19 08:58:42 2017 -0600 history-service: Remove incorrect comment The code does something different, and it's not complex enough to merit a comment anyway. https://bugzilla.gnome.org/show_bug.cgi?id=778649 lib/history/ephy-history-service.c | 1 - 1 file changed, 1 deletion(-) commit 492b0fce565b3517ae65a4484e2fb9413b953426 Author: Michael Catanzaro Date: Sun Feb 19 08:57:04 2017 -0600 history-service: Don't schedule commit after clearing history Now that clear all is implemented by deleting the database file, there's no longer any need to schedule a commit here. https://bugzilla.gnome.org/show_bug.cgi?id=778649 lib/history/ephy-history-service.c | 1 - 1 file changed, 1 deletion(-) commit cfd9e13b78ebac4d28ffa5e088added55c4e6b57 Author: Michael Catanzaro Date: Sat Feb 18 22:13:05 2017 -0600 history-service: Remove Yoda conditions There's no excuse for this.... https://bugzilla.gnome.org/show_bug.cgi?id=778649 lib/history/ephy-history-service.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit d75b14bb914ea2c4fa8177c0479b7f5e0bbef338 Author: Michael Catanzaro Date: Sat Feb 18 22:05:21 2017 -0600 history-service: Fix leak when clearing all history Closing the connection is great, but not enough. We're leaking our wrapper object. https://bugzilla.gnome.org/show_bug.cgi?id=778649 lib/history/ephy-history-service.c | 3 +++ 1 file changed, 3 insertions(+) commit 594e489735f0967dd582a664a759abfb0a2828a0 Author: Michael Catanzaro Date: Sat Feb 18 21:28:22 2017 -0600 history-service: Ensure thread member is initialized before use We have assertions to ensure that several functions are only ever called on the history thread. But the first such assertion, at the top of run_history_service_thread, sometimes fails when running the tests. It is racy. Use a mutex to fix this. These assertions are actually executed at runtime for end users, so it's surprising that nobody has ever reported a bug about this. We also need to be sure to initialize the async queue before running the history service thread. The mutex is needed as a memory barrier here, so it's not possible to remove the mutex by removing the assertions except in debug mode, which is something I considered. https://bugzilla.gnome.org/show_bug.cgi?id=778649 lib/history/ephy-history-service-private.h | 1 + lib/history/ephy-history-service.c | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) commit 9771c52f02fa72989af5d0bd9552657d8ecb5233 Author: Michael Catanzaro Date: Sat Feb 18 20:47:50 2017 -0600 Fix search provider horribly breaking history service If the search provider is running, all database transactions will fail because the search provider will take a write lock on the database. Ouch! This is worth a good string of profanities.... Notably, this causes opening the database to fail if you searched for anything in the shell overview in the minute prior to starting Epiphany. (One minute is our search provider timeout.) Then no history will ever get saved, ever. I think. Something like that. So, although our history service has read-only mode, it's enforced at the history service level, not the SQLite connection level. SQLite actually has a read-only mode, which we are not using, and which we need to use in the search provider if we want to have any chance of reliably saving history. Accordingly, give EphySQLiteConnection a mode property, to indicate whether it is in writable mode or read-only mode. Teach all callers to set it properly. Use it, rather than a boolean, when creating the EphyHistoryService, since boolean parameters are hard to read at call sites. And actually put the underlying SQLite connection in read-only mode when set. Don't open transactions or ever attempt to rollback in read-only mode, because that doesn't make any sense. This should never have been happening due to the history service level read-only checks, but it should be enforced at the SQLite connection level now, too. Avoid initializing tables when opening the database in read-only mode. This is obviously writing to the database, and now that we really have a read-only SQLite connection it fails. As it should. SQLite connection creation will now fail in case the connection is read-only and the database does not yet exist; it will no longer be created anyway. So handle this case gracefully. It's fine for the history service to return nothing in this case. This has the small advantage that the history thread will quit immediately after it's created in this case, so it's not constantly running if there's no history in incognito mode anymore. To check for this condition, we expose the underlying SQLite error; previously, only the error message was exposed outside of EphySQLiteConnection. Exposing the error isn't really necessary or sufficient, though, since it's super generic and we have to check if the file actually exists on disk anyway. Test it. Ensure that a read/write history service functions properly if it's running at the same time as a read-only history service. Using two read/write services here fails very badly, but when one of the services is read-only it works fine. Also, remove the original read-only service test. It only ever tested that creating a read-only history service with an empty history database would succeed. And, as I just explained, that fails now. Lastly, stop running a second history service for the search provider. It needed its own once upon a time when the search provider did not run an EphyShell instance. That changed when we stopped using the default web context, because nothing works without EphyEmbedShell now, as all sorts of places need it to get the embed's web context. And since EphyEmbedShell runs its own history service, the search provider can just use that now instead of running its own separate one. https://bugzilla.gnome.org/show_bug.cgi?id=778649 embed/ephy-embed-shell.c | 10 +++- lib/Makefile.am | 3 +- lib/ephy-sqlite-connection.c | 70 ++++++++++++++++++++++++---- lib/ephy-sqlite-connection.h | 13 +++++- lib/history/ephy-history-service.c | 21 +++++++-- lib/history/ephy-history-service.h | 4 +- src/bookmarks/ephy-bookmarks-import.c | 2 +- src/profile-migrator/ephy-profile-migrator.c | 2 +- src/search-provider/ephy-search-provider.c | 7 ++- tests/ephy-history-test.c | 64 +++++++++++++++---------- tests/ephy-sqlite-test.c | 2 +- 11 files changed, 149 insertions(+), 49 deletions(-) commit c88537ed8f4031b01edcc7f687a20b7636a8e453 Author: Jiri Grönroos Date: Sat Feb 18 16:40:13 2017 +0000 Update Finnish translation po/fi.po | 529 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 268 insertions(+), 261 deletions(-) commit 8ea2a2b748d7f24549c02c012c149bd44655dffe Author: Chao-Hsiung Liao Date: Sat Feb 18 04:46:13 2017 +0000 Update Chinese (Taiwan) translation po/zh_TW.po | 3257 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 1760 insertions(+), 1497 deletions(-) commit c9230985c4adb52f02b8cb5da8fcf31f873817b4 Author: Baurzhan Muftakhidinov Date: Fri Feb 17 03:58:14 2017 +0000 Update Kazakh translation po/kk.po | 575 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 299 insertions(+), 276 deletions(-) commit 779d91da2f9b2efa5ba645bde6c77aaf9eb1302d Author: Ask Hjorth Larsen Date: Thu Feb 16 14:11:57 2017 +0100 Updated Danish translation po/da.po | 3768 +++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 2224 insertions(+), 1544 deletions(-) commit 7221b573a6f90b37cc3329a505627d81e0f0b808 Author: Michael Catanzaro Date: Wed Feb 15 11:34:12 2017 -0600 downloads-manager: Add another assert Something is wrong here. This assert will help catch it. https://bugzilla.gnome.org/show_bug.cgi?id=778653 embed/ephy-downloads-manager.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit da8ce25619e084580e3e86996d5e0c41fc4c9e7d Author: Michael Catanzaro Date: Wed Feb 15 10:28:28 2017 -0600 downloads-popover: Disconnect more signals when popover is destroyed These signals can run after the popover has been destroyed. We don't want that. Speculative fix for this critical: epiphany-Gtk-CRITICAL: gtk_widget_set_sensitive: assertion 'GTK_IS_WIDGET (widget)' failed https://bugzilla.gnome.org/show_bug.cgi?id=778659 lib/widgets/ephy-downloads-popover.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 9b1a33f00c60411f6526365956d12620d6ca8717 Author: Michael Catanzaro Date: Tue Feb 14 22:55:37 2017 -0600 sqlite-connection: Do not ignore errors when executing commands This file is so careful to handle errors properly everywhere EXCEPT the point where actual SQLite commands are executed. The history database is pretty much totally broken right now; having error messages would be helpful thank you! lib/ephy-sqlite-connection.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit ed54cf59236c20835b47ea168c29eec74627d060 Author: Adrian Perez de Castro Date: Tue Feb 14 15:39:18 2017 +0200 Restore keybinding Ctrl+Shift+N for opening incognito windows This was lost after 8c2427f3b, which removed the old (non-GAction) code for handling this shortcut. A side effect of this patch is that we lose the ability of opening new incognito windows with Ctrl+I, but probably most people do no even know about that one: Firefox uses Ctrl+Shift+P, and Chrom{e,ium} use Ctrl+Shift+N. Also, Ctrl+Shift+N is orthogonal with Ctrl+N, which opens a new window. Additionally, handle Ctrl+Shift+N as one of the keyboard shortcuts that the web view should not be able to intercept (like Ctrl+N) so a webpage will not prevent users from creating new windows. TL;DR: Nobody is going to miss Ctrl+I, but people are already missing Ctrl+Shift+I. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=778606 src/ephy-window.c | 3 ++- src/resources/gtk/application-menu.ui | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) commit 22591a1e95d5b4b4fa94ea4eda895af93d08d898 Author: Daniel Mustieles Date: Tue Feb 14 20:28:51 2017 +0100 Updated Spanish translation po/es.po | 456 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 240 insertions(+), 216 deletions(-) commit 368e486c175840de3eb687a4f9d7dad063d78bc2 Author: Michael Catanzaro Date: Mon Feb 13 22:51:34 2017 -0600 embed-shell: fix criticals in delayed_thumbnail_update_data_free embed/ephy-embed-shell.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit bcfec58638afa695a7b99d5fa259f2e2fa4bc616 Author: Michael Catanzaro Date: Mon Feb 13 21:41:25 2017 -0600 Bump gdk-pixbuf requirement Or thumbnails will be low-res. https://bugzilla.gnome.org/show_bug.cgi?id=775991 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1c4598e080e684664318660b4825a8e63171615 Author: Michael Catanzaro Date: Mon Feb 13 21:40:57 2017 -0600 profile-migrator: Delete old bookmarks files Don't want this to be a personal data leak.... src/profile-migrator/ephy-profile-migrator.c | 34 ++++++++++++++++------------ 1 file changed, 20 insertions(+), 14 deletions(-) commit a3dccb21a027956669ecf9318b751f45deb536a0 Author: Michael Catanzaro Date: Mon Feb 13 21:07:31 2017 -0600 snapshot-service: Fix stale snapshot replacement Looks like I broke this in a refactoring, probably adc6c404f650d51bf2709ed3d6f70475a0. Snapshots loaded for the overview are almost always available in cache before a webpage is visited, so those pages would never get updated. We need to update stale snapshots in ephy_snapshot_service_get_snapshot_path_async() to avoid this. It *could* still happen that snapshot requests are scheduled multiple times in a row, but it's unlikely and harmless. lib/ephy-snapshot-service.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) commit 2c3a1c42210e85045818fbe45d27e1d0121b53d5 Author: Michael Catanzaro Date: Mon Feb 13 17:11:51 2017 -0600 Prepare 3.23.90 NEWS | 11 +++++++++++ configure.ac | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-)