summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS6
-rw-r--r--debian/changelog12
-rw-r--r--debian/control6
-rw-r--r--debian/patches/0001-buildflags.patch20
-rw-r--r--debian/patches/0005-hardening.patch38
-rw-r--r--debian/patches/0010-libexec.patch16
-rw-r--r--debian/patches/0100-ios8.patch103
-rw-r--r--debian/patches/0110-fix_GoogleAuthenticator.patch135
-rw-r--r--debian/patches/0115-fix_meson_build.patch17
-rw-r--r--debian/patches/0500-Port-to-webkit2gtk-40.patch1026
-rw-r--r--debian/patches/0501-Dont-pack-webview-into-a-scrolled-window.patch44
-rw-r--r--debian/patches/0502-Have-all-soup-sessions-validate-TLS-certificates.patch39
-rw-r--r--debian/patches/0503-facebook-Dont-disable-XSS-auditor.patch25
-rw-r--r--debian/patches/0510-Delay_size_request.patch26
-rw-r--r--debian/patches/0515-Fix_background_color_drawing.patch32
-rw-r--r--debian/patches/0600-remove_wrong_marco.patch19
-rw-r--r--debian/patches/505-fix-viewer-desktop-file.patch27
-rw-r--r--debian/patches/series14
-rw-r--r--meson.build2
-rw-r--r--plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala4
-rw-r--r--plugins/authenticator/shotwell/OAuth1Authenticator.vala2
-rw-r--r--plugins/common/RESTSupport.vala4
-rw-r--r--plugins/common/WebAuthenticationPane.vala5
-rw-r--r--plugins/shotwell-publishing/FacebookPublishing.vala2
-rw-r--r--plugins/shotwell-transitions/shotwell-transitions.vala2
-rw-r--r--src/AppWindow.vala4
-rw-r--r--src/CheckerboardLayout.vala2
-rw-r--r--src/CollectionPage.vala2
-rw-r--r--src/ColorTransformation.vala6
-rw-r--r--src/CommandManager.vala2
-rw-r--r--src/Commands.vala18
-rw-r--r--src/Dialogs.vala6
-rw-r--r--src/MediaDataRepresentation.vala4
-rw-r--r--src/MediaInterfaces.vala3
-rw-r--r--src/MediaMetadata.vala3
-rw-r--r--src/MediaMonitor.vala2
-rw-r--r--src/MediaPage.vala2
-rw-r--r--src/Page.vala4
-rw-r--r--src/Photo.vala3
-rw-r--r--src/PhotoPage.vala2
-rw-r--r--src/PixbufCache.vala2
-rw-r--r--src/Properties.vala2
-rw-r--r--src/VideoSupport.vala4
-rw-r--r--src/camera/ImportPage.vala2
-rw-r--r--src/core/ContainerSourceCollection.vala2
-rw-r--r--src/core/DataObject.vala2
-rw-r--r--src/core/DataSource.vala4
-rw-r--r--src/core/DataSourceTypes.vala6
-rw-r--r--src/core/DatabaseSourceCollection.vala2
-rw-r--r--src/core/SourceCollection.vala2
-rw-r--r--src/editing_tools/EditingTools.vala8
-rw-r--r--src/events/EventsBranch.vala3
-rw-r--r--src/events/EventsDirectoryPage.vala2
-rw-r--r--src/faces/FaceShape.vala2
-rw-r--r--src/library/LibraryBranch.vala3
-rw-r--r--src/meson.build1
-rw-r--r--src/photos/GdkSupport.vala4
-rw-r--r--src/photos/PhotoFileAdapter.vala2
-rw-r--r--src/photos/PhotoFileSniffer.vala2
-rw-r--r--src/photos/PhotoMetadata.vala12
-rw-r--r--src/sidebar/common.vala3
-rw-r--r--src/threads/BackgroundJob.vala2
-rw-r--r--src/threads/Semaphore.vala2
-rw-r--r--vapi/libgdata.vapi6
-rw-r--r--vapi/misc.vapi8
65 files changed, 118 insertions, 1659 deletions
diff --git a/NEWS b/NEWS
index ff885dd..d05f550 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,9 @@
+Shotwell 0.30.7 - 20 Aug 2019
+ * Fix compatibility with Vala 0.46
+
+Shotwell 0.30.6 - 20 Aug 2019
+ * Fix issue with Flickr authentication introduced in 0.30.5
+
Shotwell 0.30.5 - 14 Aug 2019
* Update appdata release information
* Fix crash in Piwigo if system certificate store is empty
diff --git a/debian/changelog b/debian/changelog
index 485e033..adb6c3e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+shotwell (0.30.7-1) unstable; urgency=medium
+
+ * New upstream release:
+ - New debian/patches/0115-fix_meson_build.patch to fix FTBFS.
+ - debian/control: Add cmake to Build-Depends.
+ * Declare compliance with Debian Policy 4.4.1 (No changes needed).
+ * debian/control:
+ - Add Rules-Requires-Root: binary-targets.
+ * Remove unused patches.
+
+ -- Jörg Frings-Fürst <debian@jff.email> Mon, 07 Oct 2019 16:38:02 +0200
+
shotwell (0.30.5-1) unstable; urgency=medium
* New upstream release.
diff --git a/debian/control b/debian/control
index 0691e8b..745f9ae 100644
--- a/debian/control
+++ b/debian/control
@@ -4,6 +4,7 @@ Priority: optional
Maintainer: Jörg Frings-Fürst <debian@jff.email>
Build-Depends:
appstream-util,
+ cmake,
debhelper (>= 12),
desktop-file-utils,
gnome-doc-utils,
@@ -31,8 +32,9 @@ Build-Depends:
libxml2 (>= 2.6.32),
meson,
ninja-build,
- valac (>= 0.22.0)
-Standards-Version: 4.4.0
+ valac (>= 0.46.0)
+Standards-Version: 4.4.1
+Rules-Requires-Root: binary-targets
Homepage: https://wiki.gnome.org/Apps/Shotwell
Vcs-Git: git://jff.email/opt/git/shotwell.git
Vcs-Browser: https://jff.email/cgit/shotwell.git
diff --git a/debian/patches/0001-buildflags.patch b/debian/patches/0001-buildflags.patch
deleted file mode 100644
index 91ca3a0..0000000
--- a/debian/patches/0001-buildflags.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Description: Poke requested Debian buildflags for hardening into Makefile
-Author: Jörg Frings-Fürst <debian@jff-webhosting.net>
-Last-Update: 2015-01-07
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/Makefile
-===================================================================
---- trunk.orig/Makefile
-+++ trunk/Makefile
-@@ -385,8 +385,8 @@ PLUGIN_CFLAGS = -O2 -g -pipe
- endif
- endif
-
--CFLAGS += $(PROFILE_FLAGS) $(REQUIRED_CFLAGS)
--PLUGIN_CFLAGS += $(PROFILE_FLAGS) $(REQUIRED_CFLAGS)
-+CFLAGS += $(PROFILE_FLAGS) $(REQUIRED_CFLAGS) -fstack-protector-strong
-+PLUGIN_CFLAGS += $(PROFILE_FLAGS) $(REQUIRED_CFLAGS) -fPIC -fno-stack-protector
-
- # Required for gudev-1.0
- CFLAGS += -DG_UDEV_API_IS_SUBJECT_TO_CHANGE
diff --git a/debian/patches/0005-hardening.patch b/debian/patches/0005-hardening.patch
deleted file mode 100644
index c8abeea..0000000
--- a/debian/patches/0005-hardening.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Description: pass compiler flags set in debian/rules to compiler
-Author: Devid Antonio Filoni <d.filoni@ubuntu.com>
-
-Index: trunk/Makefile
-===================================================================
---- trunk.orig/Makefile
-+++ trunk/Makefile
-@@ -35,7 +35,7 @@ CORE_SUPPORTED_LANGUAGES=$(shell cat po/
- LOCAL_LANG_DIR=locale-langpack
- SYSTEM_LANG_DIR := $(DESTDIR)$(PREFIX)/share/locale
-
--VALAFLAGS := -g --enable-checking --target-glib=2.32 --thread --fatal-warnings --enable-experimental --enable-deprecated $(USER_VALAFLAGS)
-+VALAFLAGS := $(foreach w,$(CPPFLAGS) $(CFLAGS) $(LDFLAGS),-X $(w)) --enable-checking --target-glib=2.32 --thread --enable-experimental --enable-deprecated $(USER_VALAFLAGS)
- ifdef UNITY_SUPPORT
- VALAFLAGS := $(VALAFLAGS) --define UNITY_SUPPORT
- endif
-@@ -661,7 +661,7 @@ $(EXPANDED_C_FILES): $(VALA_STAMP)
- @
-
- $(EXPANDED_OBJ_FILES): %.o: %.c $(CONFIG_IN) Makefile
-- $(CC) -c $(VALA_CFLAGS) $(CFLAGS) -o $@ $<
-+ $(CC) -c $(VALA_CFLAGS) $(CPPFLAGS) $(CFLAGS) -o $@ $<
-
- $(PROGRAM): $(EXPANDED_OBJ_FILES) $(RESOURCES) $(LANG_STAMP) $(THUMBNAILER_BIN) misc/gschemas.compiled $(DOC_LANG_STAMP)
- $(CC) $(EXPANDED_OBJ_FILES) $(CFLAGS) $(LDFLAGS) $(RESOURCES) $(VALA_LDFLAGS) $(EXPORT_FLAGS) -o $@
-Index: trunk/plugins/Makefile.plugin.mk
-===================================================================
---- trunk.orig/plugins/Makefile.plugin.mk
-+++ trunk/plugins/Makefile.plugin.mk
-@@ -42,7 +42,7 @@ PLUGIN_EXTRAFLAGS ?= --vapidir=../common
- PLUGIN_EXTRALINKFLAGS ?= -L../common/ -lshotwell-plugin-common
-
- .stamp: $(SRC_FILES) $(MAKE_FILES) $(HEADER_FILES)
-- $(VALAC) --target-glib=$(MIN_GLIB_VERSION) -g --enable-checking --fatal-warnings --ccode --enable-deprecated \
-+ $(VALAC) --target-glib=$(MIN_GLIB_VERSION) -g --enable-checking --ccode --enable-deprecated \
- --vapidir=../ $(foreach pkg,$(PKGS),--pkg=$(pkg)) $(foreach pkg,$(CUSTOM_VAPI_PKGS),--pkg=$(pkg)) \
- $(USER_VALAFLAGS) \
- $(PLUGIN_EXTRAFLAGS) \
diff --git a/debian/patches/0010-libexec.patch b/debian/patches/0010-libexec.patch
deleted file mode 100644
index 0e06218..0000000
--- a/debian/patches/0010-libexec.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Description: do not install files in libexec directory
-Author: Luca Falavigna <dktrkranz@debian.org>
-
-Index: shotwell-0.15.0/Makefile
-===================================================================
---- shotwell-0.15.0.orig/Makefile 2013-10-13 09:51:58.893357001 +0200
-+++ shotwell-0.15.0/Makefile 2013-10-13 09:54:33.885361749 +0200
-@@ -27,7 +27,7 @@
-
- -include configure.mk
- ifndef LIBEXECDIR
--LIBEXECDIR=$(PREFIX)/libexec/shotwell
-+LIBEXECDIR=$(PREFIX)/share/shotwell
- endif
-
- CORE_SUPPORTED_LANGUAGES=$(shell cat po/LINGUAS)
diff --git a/debian/patches/0100-ios8.patch b/debian/patches/0100-ios8.patch
deleted file mode 100644
index 8844861..0000000
--- a/debian/patches/0100-ios8.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-Description: Reset iOS 8 devices to download files
-Origin: https://bugzilla.gnome.org/show_bug.cgi?id=742295#c22
-Bug: https://bugzilla.gnome.org/show_bug.cgi?id=742295
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=792016
-Last-Update: 2016-11-25
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/src/camera/ImportPage.vala
-===================================================================
---- trunk.orig/src/camera/ImportPage.vala
-+++ trunk/src/camera/ImportPage.vala
-@@ -773,6 +773,15 @@ public class ImportPage : CheckerboardPa
- ~ImportPage() {
- LibraryPhoto.global.contents_altered.disconnect(on_media_added_removed);
- Video.global.contents_altered.disconnect(on_media_added_removed);
-+
-+ // iOS 8 issue. Release the camera here
-+ if (camera != null) {
-+ GPhoto.Result res = camera.exit(spin_idle_context.context);
-+ if (res != GPhoto.Result.OK) {
-+ // log but don't fail
-+ warning("ImportPage destructor: Unable to unlock camera: %s", res.to_full_string());
-+ }
-+ }
- }
-
- public override Gtk.Toolbar get_toolbar() {
-@@ -1162,11 +1171,14 @@ public class ImportPage : CheckerboardPa
- update_status(busy, false);
-
- refresh_error = null;
-- refresh_result = camera.init(spin_idle_context.context);
-- if (refresh_result != GPhoto.Result.OK) {
-- warning("Unable to initialize camera: %s", refresh_result.to_full_string());
--
-- return (refresh_result == GPhoto.Result.IO_LOCK) ? RefreshResult.LOCKED : RefreshResult.LIBRARY_ERROR;
-+ // iOS 8 issue
-+ if (camera == null) {
-+ refresh_result = camera.init(spin_idle_context.context);
-+ if (refresh_result != GPhoto.Result.OK) {
-+ warning("Unable to initialize camera: %s", refresh_result.to_full_string());
-+
-+ return (refresh_result == GPhoto.Result.IO_LOCK) ? RefreshResult.LOCKED : RefreshResult.LIBRARY_ERROR;
-+ }
- }
-
- update_status(true, refreshed);
-@@ -1271,13 +1283,15 @@ public class ImportPage : CheckerboardPa
- progress_bar.set_ellipsize(Pango.EllipsizeMode.NONE);
- progress_bar.set_text("");
- progress_bar.set_fraction(0.0);
--
-+
-+#if 0
- GPhoto.Result res = camera.exit(spin_idle_context.context);
- if (res != GPhoto.Result.OK) {
- // log but don't fail
- warning("Unable to unlock camera: %s", res.to_full_string());
- }
--
-+#endif
-+
- if (refresh_result == GPhoto.Result.OK) {
- if (import_sources.get_count () == 0) {
- this.set_page_message (this.get_view_empty_message ());
-@@ -1646,11 +1660,15 @@ public class ImportPage : CheckerboardPa
- }
-
- private void import(Gee.Iterable<DataObject> items) {
-- GPhoto.Result res = camera.init(spin_idle_context.context);
-- if (res != GPhoto.Result.OK) {
-- AppWindow.error_message(_("Unable to lock camera: %s").printf(res.to_full_string()));
--
-- return;
-+ // We now keep the camera open as long as we can to
-+ // work around the iOS 8 directory name shuffling issue.
-+ if (camera == null) {
-+ GPhoto.Result res = camera.init(spin_idle_context.context);
-+ if (res != GPhoto.Result.OK) {
-+ AppWindow.error_message(_("Unable to lock camera: %s").printf(res.to_full_string()));
-+
-+ return;
-+ }
- }
-
- update_status(true, refreshed);
-@@ -1786,12 +1804,15 @@ public class ImportPage : CheckerboardPa
- }
-
- private void close_import() {
-+// iOS 8 issue
-+#if 0
- GPhoto.Result res = camera.exit(spin_idle_context.context);
- if (res != GPhoto.Result.OK) {
- // log but don't fail
- message("Unable to unlock camera: %s", res.to_full_string());
- }
--
-+#endif
-+
- update_status(false, refreshed);
-
- on_view_changed();
diff --git a/debian/patches/0110-fix_GoogleAuthenticator.patch b/debian/patches/0110-fix_GoogleAuthenticator.patch
deleted file mode 100644
index 2ea4155..0000000
--- a/debian/patches/0110-fix_GoogleAuthenticator.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-Description: Fix GoogleAuthenticator
-Author: Jörg Frings-Fürst <debian@jff.email>
-Origin: upstream, https://gitlab.gnome.org/GNOME/shotwell/commit/db18c371984b80ead9daf4e0ae2058469d2f5524.diff
-Bug: https://gitlab.gnome.org/GNOME/shotwell/issues/158
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934723
-Forwarded: not-needed
-Last-Update: 2019-08-14
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala
-===================================================================
---- trunk.orig/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala
-+++ trunk/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala
-@@ -54,6 +54,12 @@ namespace Publishing.Authenticator.Shotw
- }
-
- public override void on_page_load() {
-+ if (this.load_error != null) {
-+ this.error();
-+
-+ return;
-+ }
-+
- var uri = new Soup.URI(get_view().get_uri());
- if (uri.scheme == "shotwell-auth" && this.auth_code == null) {
- var form_data = Soup.Form.decode (uri.query);
-@@ -77,6 +83,8 @@ namespace Publishing.Authenticator.Shotw
- }
-
- internal class Flickr : Publishing.Authenticator.Shotwell.OAuth1.Authenticator {
-+ private WebAuthenticationPane pane;
-+
- public Flickr(Spit.Publishing.PluginHost host) {
- base(API_KEY, API_SECRET, host);
- }
-@@ -185,13 +193,17 @@ namespace Publishing.Authenticator.Shotw
- }
-
- private void do_web_authentication(string token) {
-- var pane = new WebAuthenticationPane(token);
-+ pane = new WebAuthenticationPane(token);
- host.install_dialog_pane(pane);
- pane.authorized.connect(this.do_verify_pin);
- pane.error.connect(this.on_web_login_error);
- }
-
- private void on_web_login_error() {
-+ if (pane.load_error != null) {
-+ host.post_error(pane.load_error);
-+ return;
-+ }
- host.post_error(new Spit.Publishing.PublishingError.PROTOCOL_ERROR(_("Flickr authorization failed")));
- }
-
-Index: trunk/plugins/authenticator/shotwell/GoogleAuthenticator.vala
-===================================================================
---- trunk.orig/plugins/authenticator/shotwell/GoogleAuthenticator.vala
-+++ trunk/plugins/authenticator/shotwell/GoogleAuthenticator.vala
-@@ -21,6 +21,12 @@ namespace Publishing.Authenticator.Shotw
- }
-
- public override void on_page_load() {
-+ if (this.load_error != null) {
-+ this.error ();
-+
-+ return;
-+ }
-+
- var uri = new Soup.URI(get_view().get_uri());
- if (uri.scheme == REVERSE_CLIENT_ID && this.auth_code == null) {
- var form_data = Soup.Form.decode (uri.query);
-@@ -173,6 +179,7 @@ namespace Publishing.Authenticator.Shotw
-
- web_auth_pane = new WebAuthenticationPane(user_authorization_url);
- web_auth_pane.authorized.connect(on_web_auth_pane_authorized);
-+ web_auth_pane.error.connect(on_web_auth_pane_error);
-
- host.install_dialog_pane(web_auth_pane);
- }
-@@ -185,6 +192,10 @@ namespace Publishing.Authenticator.Shotw
- do_get_access_tokens(auth_code);
- }
-
-+ private void on_web_auth_pane_error() {
-+ host.post_error(web_auth_pane.load_error);
-+ }
-+
- private void do_get_access_tokens(string auth_code) {
- debug("ACTION: exchanging authorization code for access & refresh tokens");
-
-Index: trunk/plugins/common/WebAuthenticationPane.vala
-===================================================================
---- trunk.orig/plugins/common/WebAuthenticationPane.vala
-+++ trunk/plugins/common/WebAuthenticationPane.vala
-@@ -12,6 +12,7 @@ namespace Shotwell.Plugins.Common {
- }
-
- public string login_uri { owned get; construct; }
-+ public Error load_error { get; private set; default = null; }
-
- private WebKit.WebView webview;
-
-@@ -22,6 +23,7 @@ namespace Shotwell.Plugins.Common {
- this.webview.get_settings ().enable_plugins = false;
-
- this.webview.load_changed.connect (this.on_page_load_changed);
-+ this.webview.load_failed.connect (this.on_page_load_failed);
- this.webview.context_menu.connect ( () => { return false; });
- }
-
-@@ -29,11 +31,24 @@ namespace Shotwell.Plugins.Common {
-
- protected void set_cursor (Gdk.CursorType type) {
- var window = webview.get_window ();
-+ if (window == null)
-+ return;
-+
- var display = window.get_display ();
-+ if (display == null)
-+ return;
-+
- var cursor = new Gdk.Cursor.for_display (display, type);
- window.set_cursor (cursor);
- }
-
-+ private bool on_page_load_failed (WebKit.LoadEvent load_event, string uri, Error error) {
-+ critical ("Failed to load uri %s: %s", uri, error.message);
-+ this.load_error = error;
-+
-+ return false;
-+ }
-+
- private void on_page_load_changed (WebKit.LoadEvent load_event) {
- switch (load_event) {
- case WebKit.LoadEvent.STARTED:
diff --git a/debian/patches/0115-fix_meson_build.patch b/debian/patches/0115-fix_meson_build.patch
new file mode 100644
index 0000000..0739a80
--- /dev/null
+++ b/debian/patches/0115-fix_meson_build.patch
@@ -0,0 +1,17 @@
+Description: Remove --fatal-warnings from build options
+Author: Jörg Frings-Fürst <debian@jff.email>
+Last-Update: 2019-10-07
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/meson.build
+===================================================================
+--- trunk.orig/meson.build
++++ trunk/meson.build
+@@ -25,7 +25,6 @@ add_global_arguments(['--target-glib=2.4
+ '--vapidir=@0@'.format(join_paths(meson.current_source_dir(),
+ 'vapi')),
+ '--enable-checking',
+- '--fatal-warnings',
+ '--enable-experimental',
+ '--enable-deprecated'], language : 'vala')
+
diff --git a/debian/patches/0500-Port-to-webkit2gtk-40.patch b/debian/patches/0500-Port-to-webkit2gtk-40.patch
deleted file mode 100644
index 51cd8de..0000000
--- a/debian/patches/0500-Port-to-webkit2gtk-40.patch
+++ /dev/null
@@ -1,1026 +0,0 @@
-From afc5e103d2dd414f0d028565097d86c7e85fadbc Mon Sep 17 00:00:00 2001
-From: Iain Lane <iain@orangesquash.org.uk>
-Date: Tue, 30 Jun 2015 10:43:15 +0100
-Subject: [PATCH] Port to webkit2gtk-4.0
-
-https://bugzilla.gnome.org/show_bug.cgi?id=751709
----
- Makefile | 8 +-
- debian/control | 2 +-
- plugins/common/RESTSupport.vala | 24 +-
- plugins/shotwell-publishing-extras/Makefile | 2 +-
- .../YandexPublishing.vala | 67 ++-
- .../shotwell-publishing/FacebookPublishing.vala | 36 +-
- plugins/shotwell-publishing/Makefile | 2 +-
- vapi/webkitgtk-3.0.deps | 8 -
- vapi/webkitgtk-3.0.vapi | 653 ---------------------
- 9 files changed, 97 insertions(+), 705 deletions(-)
- delete mode 100644 vapi/webkitgtk-3.0.deps
- delete mode 100644 vapi/webkitgtk-3.0.vapi
-
-diff --git a/Makefile b/Makefile
-index fe354a7..1ce5668 100644
---- a/Makefile
-+++ b/Makefile
-@@ -14,7 +14,7 @@ VALAC := $(shell which $(VALAC))
- endif
-
- VALAC_VERSION := `$(VALAC) --version | awk '{print $$2}'`
--MIN_VALAC_VERSION := 0.20.1
-+MIN_VALAC_VERSION := 0.28.0
- INSTALL_PROGRAM := install
- INSTALL_DATA := install -m 644
-
-@@ -120,12 +120,10 @@ VAPI_FILES = \
- LConv.vapi \
- libexif.vapi \
- libraw.vapi \
-- webkitgtk-3.0.vapi \
- unique-3.0.vapi \
- unity.vapi
-
- DEPS_FILES = \
-- webkitgtk-3.0.deps \
- unique-3.0.deps \
- unity.deps
-
-@@ -271,7 +269,7 @@ EXT_PKGS = \
- libsoup-2.4 \
- libxml-2.0 \
- sqlite3 \
-- webkitgtk-3.0
-+ webkit2gtk-4.0
- ifdef UNITY_SUPPORT
- EXT_PKGS += unity
- endif
-@@ -303,7 +301,7 @@ EXT_PKG_VERSIONS = \
- libxml-2.0 >= 2.6.32 \
- rest-0.7 >= 0.7 \
- sqlite3 >= 3.5.9 \
-- webkitgtk-3.0 >= 1.4.0 \
-+ webkit2gtk-4.0 \
- gnome-doc-utils
-
- DIRECT_LIBS_VERSIONS =
-diff --git a/plugins/common/RESTSupport.vala b/plugins/common/RESTSupport.vala
-index fdde409..a4a0621 100644
---- a/plugins/common/RESTSupport.vala
-+++ b/plugins/common/RESTSupport.vala
-@@ -741,10 +741,9 @@ public abstract class GooglePublisher : Object, Spit.Publishing.Publisher {
-
- webview = new WebKit.WebView();
- webview.get_settings().enable_plugins = false;
-- webview.get_settings().enable_default_context_menu = false;
-
-- webview.load_finished.connect(on_page_load);
-- webview.load_started.connect(on_load_started);
-+ webview.load_changed.connect(on_page_load_changed);
-+ webview.context_menu.connect(() => { return false; });
-
- webview_frame.add(webview);
- pane_widget.pack_start(webview_frame, true, true, 0);
-@@ -754,7 +753,7 @@ public abstract class GooglePublisher : Object, Spit.Publishing.Publisher {
- return cache_dirty;
- }
-
-- private void on_page_load(WebKit.WebFrame origin_frame) {
-+ private void on_page_load() {
- pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.LEFT_PTR));
-
- string page_title = webview.get_title();
-@@ -772,9 +771,22 @@ public abstract class GooglePublisher : Object, Spit.Publishing.Publisher {
- }
- }
-
-- private void on_load_started(WebKit.WebFrame frame) {
-+ private void on_load_started() {
- pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.WATCH));
- }
-+
-+ private void on_page_load_changed (WebKit.LoadEvent load_event) {
-+ switch (load_event) {
-+ case WebKit.LoadEvent.STARTED:
-+ on_load_started();
-+ break;
-+ case WebKit.LoadEvent.FINISHED:
-+ on_page_load();
-+ break;
-+ }
-+
-+ return;
-+ }
-
- public Spit.Publishing.DialogPane.GeometryOptions get_preferred_geometry() {
- return Spit.Publishing.DialogPane.GeometryOptions.NONE;
-@@ -785,7 +797,7 @@ public abstract class GooglePublisher : Object, Spit.Publishing.Publisher {
- }
-
- public void on_pane_installed() {
-- webview.open(auth_sequence_start_url);
-+ webview.load_uri(auth_sequence_start_url);
- }
-
- public void on_pane_uninstalled() {
-diff --git a/plugins/shotwell-publishing-extras/Makefile b/plugins/shotwell-publishing-extras/Makefile
-index 9259fbb..91452cf 100644
---- a/plugins/shotwell-publishing-extras/Makefile
-+++ b/plugins/shotwell-publishing-extras/Makefile
-@@ -5,7 +5,7 @@ PLUGIN_PKGS := \
- gtk+-3.0 \
- libsoup-2.4 \
- libxml-2.0 \
-- webkitgtk-3.0 \
-+ webkit2gtk-4.0 \
- gee-0.8 \
- rest-0.7 \
- json-glib-1.0
-diff --git a/plugins/shotwell-publishing-extras/YandexPublishing.vala b/plugins/shotwell-publishing-extras/YandexPublishing.vala
-index 36a3ede..ec99c2b 100644
---- a/plugins/shotwell-publishing-extras/YandexPublishing.vala
-+++ b/plugins/shotwell-publishing-extras/YandexPublishing.vala
-@@ -120,43 +120,70 @@ internal class WebAuthPane : Spit.Publishing.DialogPane, GLib.Object {
-
- webview = new WebKit.WebView();
- webview.get_settings().enable_plugins = false;
-- webview.get_settings().enable_default_context_menu = false;
-
-- webview.load_finished.connect(on_page_load);
-- webview.load_started.connect(on_load_started);
-- webview.navigation_requested.connect(navigation_requested);
-+ webview.load_changed.connect(on_page_load_changed);
-+ webview.decide_policy.connect(on_decide_policy);
-+ webview.context_menu.connect(() => { return false; });
-
- webview_frame.add(webview);
- pane_widget.pack_start(webview_frame, true, true, 0);
- }
-
-- private void on_page_load(WebKit.WebFrame origin_frame) {
-+ private void on_page_load() {
- pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.LEFT_PTR));
- }
-
-- private WebKit.NavigationResponse navigation_requested (WebKit.WebFrame frame, WebKit.NetworkRequest req) {
-- debug("Navigating to '%s'", req.uri);
-+ private bool on_decide_policy (WebKit.PolicyDecision decision,
-+ WebKit.PolicyDecisionType type) {
-+ switch (type) {
-+ case WebKit.PolicyDecisionType.NAVIGATION_ACTION:
-+ WebKit.NavigationPolicyDecision n_decision = (WebKit.NavigationPolicyDecision) decision;
-+ WebKit.NavigationAction action = n_decision.navigation_action;
-+ string uri = action.get_request().uri;
-+ debug("Navigating to '%s'", uri);
-
-- MatchInfo info = null;
-+ MatchInfo info = null;
-
-- if (re.match(req.uri, 0, out info)) {
-- string access_token = info.fetch_all()[2];
-+ if (re.match(uri, 0, out info)) {
-+ string access_token = info.fetch_all()[2];
-
-- debug("Load completed: %s", access_token);
-- pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.LEFT_PTR));
-- if (access_token != null) {
-- login_succeeded(access_token);
-- return WebKit.NavigationResponse.IGNORE;
-- } else
-- login_failed();
-+ debug("Load completed: %s", access_token);
-+ pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.LEFT_PTR));
-+ if (access_token != null) {
-+ login_succeeded(access_token);
-+ decision.ignore();
-+ break;
-+ } else
-+ login_failed();
-+ }
-+ decision.use();
-+ break;
-+ case WebKit.PolicyDecisionType.RESPONSE:
-+ decision.use();
-+ break;
-+ default:
-+ return false;
- }
-- return WebKit.NavigationResponse.ACCEPT;
-+ return true;
- }
-
-- private void on_load_started(WebKit.WebFrame frame) {
-+ private void on_load_started() {
- pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.WATCH));
- }
-
-+ private void on_page_load_changed (WebKit.LoadEvent load_event) {
-+ switch (load_event) {
-+ case WebKit.LoadEvent.STARTED:
-+ on_load_started();
-+ break;
-+ case WebKit.LoadEvent.FINISHED:
-+ on_page_load();
-+ break;
-+ }
-+
-+ return;
-+ }
-+
- public Gtk.Widget get_widget() {
- return pane_widget;
- }
-@@ -166,7 +193,7 @@ internal class WebAuthPane : Spit.Publishing.DialogPane, GLib.Object {
- }
-
- public void on_pane_installed() {
-- webview.open(login_url);
-+ webview.load_uri(login_url);
- }
-
- public void on_pane_uninstalled() {
-diff --git a/plugins/shotwell-publishing/FacebookPublishing.vala b/plugins/shotwell-publishing/FacebookPublishing.vala
-index 1dd793d..4efe7f7 100644
---- a/plugins/shotwell-publishing/FacebookPublishing.vala
-+++ b/plugins/shotwell-publishing/FacebookPublishing.vala
-@@ -535,7 +535,7 @@ public class FacebookPublisher : Spit.Publishing.Publisher, GLib.Object {
- return;
-
- debug("EVENT: endpoint test transaction failed to detect a connection to the Facebook " +
-- "endpoint");
-+ "endpoint" + error.message);
-
- on_generic_error(error);
- }
-@@ -829,15 +829,15 @@ internal class WebAuthenticationPane : Spit.Publishing.DialogPane, Object {
-
- webview = new WebKit.WebView();
- webview.get_settings().enable_plugins = false;
-- webview.get_settings().enable_default_context_menu = false;
-+ webview.get_settings().enable_xss_auditor = false;
-
-- webview.load_finished.connect(on_page_load);
-- webview.load_started.connect(on_load_started);
-+ webview.load_changed.connect(on_page_load_changed);
-+ webview.context_menu.connect(() => { return true; });
-
- webview_frame.add(webview);
- pane_widget.pack_start(webview_frame, true, true, 0);
- }
--
-+
- private class LocaleLookup {
- public string prefix;
- public string translation;
-@@ -945,10 +945,11 @@ internal class WebAuthenticationPane : Spit.Publishing.DialogPane, Object {
- return "https://%s.facebook.com/dialog/oauth?client_id=%s&redirect_uri=https://www.facebook.com/connect/login_success.html&scope=publish_actions,user_photos,user_videos&response_type=token".printf(facebook_locale, APPLICATION_ID);
- }
-
-- private void on_page_load(WebKit.WebFrame origin_frame) {
-+ private void on_page_load() {
- pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.LEFT_PTR));
-
-- string loaded_url = origin_frame.get_uri().dup();
-+ string loaded_url = webview.uri.dup();
-+ debug("loaded url: " + loaded_url);
-
- // strip parameters from the loaded url
- if (loaded_url.contains("?")) {
-@@ -960,7 +961,7 @@ internal class WebAuthenticationPane : Spit.Publishing.DialogPane, Object {
- // were we redirected to the facebook login success page?
- if (loaded_url.contains("login_success")) {
- cache_dirty = true;
-- login_succeeded(origin_frame.get_uri());
-+ login_succeeded(webview.uri);
- return;
- }
-
-@@ -971,10 +972,24 @@ internal class WebAuthenticationPane : Spit.Publishing.DialogPane, Object {
- }
- }
-
-- private void on_load_started(WebKit.WebFrame frame) {
-+ private void on_load_started() {
- pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.WATCH));
- }
-
-+ private void on_page_load_changed (WebKit.LoadEvent load_event) {
-+ switch (load_event) {
-+ case WebKit.LoadEvent.STARTED:
-+ case WebKit.LoadEvent.REDIRECTED:
-+ on_load_started();
-+ break;
-+ case WebKit.LoadEvent.FINISHED:
-+ on_page_load();
-+ break;
-+ }
-+
-+ return;
-+ }
-+
- public static bool is_cache_dirty() {
- return cache_dirty;
- }
-@@ -988,7 +1003,7 @@ internal class WebAuthenticationPane : Spit.Publishing.DialogPane, Object {
- }
-
- public void on_pane_installed() {
-- webview.open(get_login_url());
-+ webview.load_uri(get_login_url());
- }
-
- public void on_pane_uninstalled() {
-@@ -1527,6 +1542,7 @@ internal class GraphSession {
- "Service %s returned HTTP status code %u %s", real_message.get_uri(),
- msg.status_code, msg.reason_phrase);
- } else {
-+ debug(msg.reason_phrase);
- error = new Spit.Publishing.PublishingError.NO_ANSWER(
- "Failure communicating with %s (error code %u)", real_message.get_uri(),
- msg.status_code);
-diff --git a/plugins/shotwell-publishing/Makefile b/plugins/shotwell-publishing/Makefile
-index 639fa88..6b3945b 100644
---- a/plugins/shotwell-publishing/Makefile
-+++ b/plugins/shotwell-publishing/Makefile
-@@ -5,7 +5,7 @@ PLUGIN_PKGS := \
- gtk+-3.0 \
- libsoup-2.4 \
- libxml-2.0 \
-- webkitgtk-3.0 \
-+ webkit2gtk-4.0 \
- gexiv2 \
- rest-0.7 \
- gee-0.8 \
-diff --git a/vapi/webkitgtk-3.0.deps b/vapi/webkitgtk-3.0.deps
-deleted file mode 100644
-index 91b1dfe..0000000
---- a/vapi/webkitgtk-3.0.deps
-+++ /dev/null
-@@ -1,8 +0,0 @@
--atk
--gio-2.0
--cairo
--pango
--gdk-pixbuf-2.0
--gdk-3.0
--gtk+-3.0
--libsoup-2.4
-diff --git a/vapi/webkitgtk-3.0.vapi b/vapi/webkitgtk-3.0.vapi
-deleted file mode 100644
-index 9e0d347..0000000
---- a/vapi/webkitgtk-3.0.vapi
-+++ /dev/null
-@@ -1,653 +0,0 @@
--/* webkit-1.0.vapi generated by vapigen, do not modify. */
--
--[CCode (cprefix = "WebKit", lower_case_cprefix = "webkit_")]
--namespace WebKit {
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class Download : GLib.Object {
-- [CCode (has_construct_function = false)]
-- public Download (WebKit.NetworkRequest request);
-- public void cancel ();
-- public uint64 get_current_size ();
-- public unowned string get_destination_uri ();
-- public double get_elapsed_time ();
-- public unowned WebKit.NetworkRequest get_network_request ();
-- public unowned WebKit.NetworkResponse get_network_response ();
-- public double get_progress ();
-- public WebKit.DownloadStatus get_status ();
-- public unowned string get_suggested_filename ();
-- public uint64 get_total_size ();
-- public unowned string get_uri ();
-- public void set_destination_uri (string destination_uri);
-- public void start ();
-- public uint64 current_size { get; }
-- public string destination_uri { get; set; }
-- public WebKit.NetworkRequest network_request { get; construct; }
-- public WebKit.NetworkResponse network_response { get; construct; }
-- public double progress { get; }
-- public WebKit.DownloadStatus status { get; }
-- public string suggested_filename { get; }
-- public uint64 total_size { get; }
-- public virtual signal bool error (int p0, int p1, string p2);
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class GeolocationPolicyDecision : GLib.Object {
-- [CCode (has_construct_function = false)]
-- protected GeolocationPolicyDecision ();
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class HitTestResult : GLib.Object {
-- [CCode (has_construct_function = false)]
-- protected HitTestResult ();
-- [NoAccessorMethod]
-- public WebKit.HitTestResultContext context { get; construct; }
-- [NoAccessorMethod]
-- public string image_uri { owned get; construct; }
-- [NoAccessorMethod]
-- public string link_uri { owned get; construct; }
-- [NoAccessorMethod]
-- public string media_uri { owned get; construct; }
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class NetworkRequest : GLib.Object {
-- [CCode (has_construct_function = false)]
-- public NetworkRequest (string uri);
-- public unowned Soup.Message get_message ();
-- public unowned string get_uri ();
-- public void set_uri (string uri);
-- public Soup.Message message { get; construct; }
-- public string uri { get; set; }
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class NetworkResponse : GLib.Object {
-- [CCode (has_construct_function = false)]
-- public NetworkResponse (string uri);
-- public unowned Soup.Message get_message ();
-- public unowned string get_uri ();
-- public void set_uri (string uri);
-- public Soup.Message message { get; construct; }
-- public string uri { get; set; }
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class SecurityOrigin : GLib.Object {
-- [CCode (has_construct_function = false)]
-- protected SecurityOrigin ();
-- public unowned GLib.List<WebKit.WebDatabase> get_all_web_databases ();
-- public unowned string get_host ();
-- public uint get_port ();
-- public unowned string get_protocol ();
-- public uint64 get_web_database_quota ();
-- public uint64 get_web_database_usage ();
-- public void set_web_database_quota (uint64 quota);
-- public string host { get; }
-- public uint port { get; }
-- public string protocol { get; }
-- public uint64 web_database_quota { get; set; }
-- public uint64 web_database_usage { get; }
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class SoupAuthDialog : GLib.Object, Soup.SessionFeature {
-- [CCode (has_construct_function = false)]
-- protected SoupAuthDialog ();
-- public virtual signal unowned Gtk.Widget current_toplevel (Soup.Message message);
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class WebBackForwardList : GLib.Object {
-- [CCode (has_construct_function = false)]
-- protected WebBackForwardList ();
-- public void add_item (WebKit.WebHistoryItem history_item);
-- public void clear ();
-- public bool contains_item (WebKit.WebHistoryItem history_item);
-- public unowned WebKit.WebHistoryItem get_back_item ();
-- public int get_back_length ();
-- public unowned GLib.List<WebKit.WebHistoryItem> get_back_list_with_limit (int limit);
-- public unowned WebKit.WebHistoryItem get_current_item ();
-- public unowned WebKit.WebHistoryItem get_forward_item ();
-- public int get_forward_length ();
-- public unowned GLib.List<WebKit.WebHistoryItem> get_forward_list_with_limit (int limit);
-- public int get_limit ();
-- public unowned WebKit.WebHistoryItem get_nth_item (int index);
-- public void go_back ();
-- public void go_forward ();
-- public void go_to_item (WebKit.WebHistoryItem history_item);
-- public void set_limit (int limit);
-- [CCode (has_construct_function = false)]
-- public WebBackForwardList.with_web_view (WebKit.WebView web_view);
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class WebDataSource : GLib.Object {
-- [CCode (has_construct_function = false)]
-- public WebDataSource ();
-- public unowned GLib.StringBuilder get_data ();
-- public unowned string get_encoding ();
-- public unowned WebKit.NetworkRequest get_initial_request ();
-- public unowned WebKit.WebResource get_main_resource ();
-- public unowned WebKit.NetworkRequest get_request ();
-- public unowned GLib.List<WebKit.WebResource> get_subresources ();
-- public unowned string get_unreachable_uri ();
-- public unowned WebKit.WebFrame get_web_frame ();
-- public bool is_loading ();
-- [CCode (has_construct_function = false)]
-- public WebDataSource.with_request (WebKit.NetworkRequest request);
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class WebDatabase : GLib.Object {
-- [CCode (has_construct_function = false)]
-- protected WebDatabase ();
-- public unowned string get_display_name ();
-- public uint64 get_expected_size ();
-- public unowned string get_filename ();
-- public unowned string get_name ();
-- public unowned WebKit.SecurityOrigin get_security_origin ();
-- public uint64 get_size ();
-- public void remove ();
-- public string display_name { get; }
-- public uint64 expected_size { get; }
-- public string filename { get; }
-- public string name { get; construct; }
-- public WebKit.SecurityOrigin security_origin { get; construct; }
-- public uint64 size { get; }
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class WebFrame : GLib.Object {
-- [CCode (has_construct_function = false)]
-- public WebFrame (WebKit.WebView web_view);
-- public unowned WebKit.WebFrame find_frame (string name);
-- public unowned WebKit.WebDataSource get_data_source ();
-- public Gtk.PolicyType get_horizontal_scrollbar_policy ();
-- public WebKit.LoadStatus get_load_status ();
-- public unowned string get_name ();
-- public unowned WebKit.NetworkResponse get_network_response ();
-- public unowned WebKit.WebFrame get_parent ();
-- public unowned WebKit.WebDataSource get_provisional_data_source ();
-- public unowned WebKit.SecurityOrigin get_security_origin ();
-- public unowned string get_title ();
-- public unowned string get_uri ();
-- public Gtk.PolicyType get_vertical_scrollbar_policy ();
-- public unowned WebKit.WebView get_web_view ();
-- public void load_alternate_string (string content, string base_url, string unreachable_url);
-- public void load_request (WebKit.NetworkRequest request);
-- public void load_string (string content, string mime_type, string encoding, string base_uri);
-- public void load_uri (string uri);
-- public void print ();
-- public Gtk.PrintOperationResult print_full (Gtk.PrintOperation operation, Gtk.PrintOperationAction action) throws GLib.Error;
-- public void reload ();
-- public void stop_loading ();
-- public Gtk.PolicyType horizontal_scrollbar_policy { get; }
-- public WebKit.LoadStatus load_status { get; }
-- public string name { get; }
-- public string title { get; }
-- public string uri { get; }
-- public Gtk.PolicyType vertical_scrollbar_policy { get; }
-- public virtual signal void cleared ();
-- public virtual signal void hovering_over_link (string p0, string p1);
-- public virtual signal void load_committed ();
-- public virtual signal void load_done (bool p0);
-- public virtual signal bool scrollbars_policy_changed ();
-- public virtual signal void title_changed (string p0);
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class WebHistoryItem : GLib.Object {
-- [CCode (has_construct_function = false)]
-- public WebHistoryItem ();
-- public unowned WebKit.WebHistoryItem copy ();
-- public unowned string get_alternate_title ();
-- public double get_last_visited_time ();
-- public unowned string get_original_uri ();
-- public unowned string get_title ();
-- public unowned string get_uri ();
-- public void set_alternate_title (string title);
-- [CCode (has_construct_function = false)]
-- public WebHistoryItem.with_data (string uri, string title);
-- public string alternate_title { get; set; }
-- public double last_visited_time { get; }
-- public string original_uri { get; }
-- public string title { get; }
-- public string uri { get; }
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class WebInspector : GLib.Object {
-- [CCode (has_construct_function = false)]
-- protected WebInspector ();
-- public void close ();
-- public unowned string get_inspected_uri ();
-- public unowned WebKit.WebView get_web_view ();
-- public void inspect_coordinates (double x, double y);
-- public void show ();
-- public string inspected_uri { get; }
-- [NoAccessorMethod]
-- public bool javascript_profiling_enabled { get; set; }
-- [NoAccessorMethod]
-- public bool timeline_profiling_enabled { get; set; }
-- public WebKit.WebView web_view { get; }
-- public virtual signal bool attach_window ();
-- public virtual signal bool close_window ();
-- public virtual signal bool detach_window ();
-- public virtual signal void finished ();
-- public virtual signal unowned WebKit.WebView inspect_web_view (WebKit.WebView p0);
-- public virtual signal bool show_window ();
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class WebNavigationAction : GLib.Object {
-- [CCode (has_construct_function = false)]
-- protected WebNavigationAction ();
-- public int get_button ();
-- public int get_modifier_state ();
-- public unowned string get_original_uri ();
-- public WebKit.WebNavigationReason get_reason ();
-- public unowned string get_target_frame ();
-- public void set_original_uri (string originalUri);
-- public void set_reason (WebKit.WebNavigationReason reason);
-- public int button { get; construct; }
-- public int modifier_state { get; construct; }
-- public string original_uri { get; set construct; }
-- public WebKit.WebNavigationReason reason { get; set construct; }
-- public string target_frame { get; construct; }
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class WebPolicyDecision : GLib.Object {
-- [CCode (has_construct_function = false)]
-- protected WebPolicyDecision ();
-- public void download ();
-- public void ignore ();
-- public void use ();
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class WebResource : GLib.Object {
-- [CCode (has_construct_function = false)]
-- public WebResource (string data, ssize_t size, string uri, string mime_type, string encoding, string frame_name);
-- public unowned GLib.StringBuilder get_data ();
-- public unowned string get_encoding ();
-- public unowned string get_frame_name ();
-- public unowned string get_mime_type ();
-- public unowned string get_uri ();
-- public string encoding { get; }
-- public string frame_name { get; }
-- public string mime_type { get; }
-- public string uri { get; construct; }
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class WebSettings : GLib.Object {
-- [CCode (has_construct_function = false)]
-- public WebSettings ();
-- public WebKit.WebSettings copy ();
-- public unowned string get_user_agent ();
-- [NoAccessorMethod]
-- public bool auto_load_images { get; set construct; }
-- [NoAccessorMethod]
-- public bool auto_resize_window { get; set construct; }
-- [NoAccessorMethod]
-- public bool auto_shrink_images { get; set construct; }
-- [NoAccessorMethod]
-- public string cursive_font_family { owned get; set construct; }
-- [NoAccessorMethod]
-- public string default_encoding { owned get; set construct; }
-- [NoAccessorMethod]
-- public string default_font_family { owned get; set construct; }
-- [NoAccessorMethod]
-- public int default_font_size { get; set construct; }
-- [NoAccessorMethod]
-- public int default_monospace_font_size { get; set construct; }
-- [NoAccessorMethod]
-- public WebKit.EditingBehavior editing_behavior { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_caret_browsing { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_default_context_menu { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_developer_extras { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_dom_paste { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_file_access_from_file_uris { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_html5_database { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_html5_local_storage { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_java_applet { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_offline_web_application_cache { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_page_cache { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_plugins { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_private_browsing { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_scripts { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_site_specific_quirks { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_spatial_navigation { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_spell_checking { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_universal_access_from_file_uris { get; set construct; }
-- [NoAccessorMethod]
-- public bool enable_xss_auditor { get; set construct; }
-- [NoAccessorMethod]
-- public bool enforce_96_dpi { get; set construct; }
-- [NoAccessorMethod]
-- public string fantasy_font_family { owned get; set construct; }
-- [NoAccessorMethod]
-- public bool javascript_can_access_clipboard { get; set construct; }
-- [NoAccessorMethod]
-- public bool javascript_can_open_windows_automatically { get; set construct; }
-- [NoAccessorMethod]
-- public int minimum_font_size { get; set construct; }
-- [NoAccessorMethod]
-- public int minimum_logical_font_size { get; set construct; }
-- [NoAccessorMethod]
-- public string monospace_font_family { owned get; set construct; }
-- [NoAccessorMethod]
-- public bool print_backgrounds { get; set construct; }
-- [NoAccessorMethod]
-- public bool resizable_text_areas { get; set construct; }
-- [NoAccessorMethod]
-- public string sans_serif_font_family { owned get; set construct; }
-- [NoAccessorMethod]
-- public string serif_font_family { owned get; set construct; }
-- [NoAccessorMethod]
-- public string spell_checking_languages { owned get; set construct; }
-- [NoAccessorMethod]
-- public bool tab_key_cycles_through_elements { get; set construct; }
-- [NoAccessorMethod]
-- public string user_agent { owned get; set construct; }
-- [NoAccessorMethod]
-- public string user_stylesheet_uri { owned get; set construct; }
-- [NoAccessorMethod]
-- public float zoom_step { get; set construct; }
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class WebView : Gtk.Container, Atk.Implementor, Gtk.Buildable {
-- [CCode (type = "GtkWidget*", has_construct_function = false)]
-- public WebView ();
-- public bool can_copy_clipboard ();
-- public bool can_cut_clipboard ();
-- public bool can_go_back ();
-- public bool can_go_back_or_forward (int steps);
-- public bool can_go_forward ();
-- public bool can_paste_clipboard ();
-- public bool can_redo ();
-- public bool can_show_mime_type (string mime_type);
-- public bool can_undo ();
-- [NoWrapper]
-- public virtual unowned string choose_file (WebKit.WebFrame frame, string old_file);
-- public void delete_selection ();
-- public void execute_script (string script);
-- public unowned WebKit.WebBackForwardList get_back_forward_list ();
-- public unowned Gtk.TargetList get_copy_target_list ();
-- public unowned string get_custom_encoding ();
-- public bool get_editable ();
-- public unowned string get_encoding ();
-- public unowned WebKit.WebFrame get_focused_frame ();
-- public bool get_full_content_zoom ();
-- public unowned WebKit.HitTestResult get_hit_test_result (Gdk.EventButton event);
-- public unowned string get_icon_uri ();
-- public unowned WebKit.WebInspector get_inspector ();
-- public WebKit.LoadStatus get_load_status ();
-- public unowned WebKit.WebFrame get_main_frame ();
-- public unowned Gtk.TargetList get_paste_target_list ();
-- public double get_progress ();
-- public unowned WebKit.WebSettings get_settings ();
-- public unowned string get_title ();
-- public bool get_transparent ();
-- public unowned string get_uri ();
-- public bool get_view_source_mode ();
-- public unowned WebKit.WebWindowFeatures get_window_features ();
-- public float get_zoom_level ();
-- public void go_back ();
-- public void go_back_or_forward (int steps);
-- public void go_forward ();
-- public bool go_to_back_forward_item (WebKit.WebHistoryItem item);
-- public bool has_selection ();
-- public void load_html_string (string content, string base_uri);
-- public void load_request (WebKit.NetworkRequest request);
-- public void load_string (string content, string mime_type, string encoding, string base_uri);
-- public void load_uri (string uri);
-- public uint mark_text_matches (string str, bool case_sensitive, uint limit);
-- public void open (string uri);
-- public void reload ();
-- public void reload_bypass_cache ();
-- public bool search_text (string text, bool case_sensitive, bool forward, bool wrap);
-- public void set_custom_encoding (string encoding);
-- public void set_editable (bool flag);
-- public void set_full_content_zoom (bool full_content_zoom);
-- public void set_highlight_text_matches (bool highlight);
-- public void set_maintains_back_forward_list (bool flag);
-- public void set_settings (WebKit.WebSettings settings);
-- public void set_transparent (bool flag);
-- public void set_view_source_mode (bool view_source_mode);
-- public void set_zoom_level (float zoom_level);
-- public void stop_loading ();
-- public void unmark_text_matches ();
-- public void zoom_in ();
-- public void zoom_out ();
-- public Gtk.TargetList copy_target_list { get; }
-- public string custom_encoding { get; set; }
-- public bool editable { get; set; }
-- public string encoding { get; }
-- public bool full_content_zoom { get; set; }
-- public string icon_uri { get; }
-- [NoAccessorMethod]
-- public Gtk.IMContext im_context { owned get; }
-- public WebKit.LoadStatus load_status { get; }
-- public Gtk.TargetList paste_target_list { get; }
-- public double progress { get; }
-- public WebKit.WebSettings settings { get; set; }
-- public string title { get; }
-- public bool transparent { get; set; }
-- public string uri { get; }
-- [NoAccessorMethod]
-- public WebKit.WebInspector web_inspector { owned get; }
-- [NoAccessorMethod]
-- public WebKit.WebWindowFeatures window_features { owned get; set; }
-- public float zoom_level { get; set; }
-- public virtual signal bool close_web_view ();
-- public virtual signal bool console_message (string message, int line_number, string source_id);
-- [HasEmitter]
-- public virtual signal void copy_clipboard ();
-- public virtual signal unowned Gtk.Widget create_plugin_widget (string p0, string p1, GLib.HashTable p2);
-- public virtual signal WebKit.WebView create_web_view (WebKit.WebFrame web_frame);
-- [HasEmitter]
-- public virtual signal void cut_clipboard ();
-- public virtual signal void database_quota_exceeded (GLib.Object p0, GLib.Object p1);
-- public virtual signal void document_load_finished (WebKit.WebFrame p0);
-- public virtual signal bool download_requested (GLib.Object p0);
-- public virtual signal void geolocation_policy_decision_cancelled (WebKit.WebFrame p0);
-- public virtual signal bool geolocation_policy_decision_requested (WebKit.WebFrame p0, WebKit.GeolocationPolicyDecision p1);
-- public virtual signal void hovering_over_link (string? p0, string p1);
-- public virtual signal void icon_loaded (string p0);
-- public virtual signal void load_committed (WebKit.WebFrame p0);
-- public virtual signal bool load_error (WebKit.WebFrame p0, string p1, GLib.Error p2);
-- public virtual signal void load_finished (WebKit.WebFrame p0);
-- public virtual signal void load_progress_changed (int p0);
-- public virtual signal void load_started (WebKit.WebFrame p0);
-- public virtual signal bool mime_type_policy_decision_requested (WebKit.WebFrame p0, WebKit.NetworkRequest p1, string p2, WebKit.WebPolicyDecision p3);
-- [HasEmitter]
-- public virtual signal bool move_cursor (Gtk.MovementStep step, int count);
-- public virtual signal bool navigation_policy_decision_requested (WebKit.WebFrame p0, WebKit.NetworkRequest p1, WebKit.WebNavigationAction p2, WebKit.WebPolicyDecision p3);
-- public virtual signal WebKit.NavigationResponse navigation_requested (WebKit.WebFrame frame, WebKit.NetworkRequest request);
-- public virtual signal bool new_window_policy_decision_requested (WebKit.WebFrame p0, WebKit.NetworkRequest p1, WebKit.WebNavigationAction p2, WebKit.WebPolicyDecision p3);
-- [HasEmitter]
-- public virtual signal void paste_clipboard ();
-- public virtual signal void populate_popup (Gtk.Menu p0);
-- public virtual signal bool print_requested (WebKit.WebFrame p0);
-- [HasEmitter]
-- public virtual signal void redo ();
-- public virtual signal void resource_request_starting (WebKit.WebFrame p0, WebKit.WebResource p1, WebKit.NetworkRequest p2, WebKit.NetworkResponse p3);
-- public virtual signal bool script_alert (WebKit.WebFrame frame, string alert_message);
-- public virtual signal bool script_confirm (WebKit.WebFrame frame, string confirm_message, void* did_confirm);
-- public virtual signal bool script_prompt (WebKit.WebFrame frame, string message, string default_value, void* value);
-- [HasEmitter]
-- public virtual signal void select_all ();
-- public virtual signal void selection_changed ();
-- public virtual signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
-- public virtual signal void status_bar_text_changed (string p0);
-- public virtual signal void title_changed (WebKit.WebFrame p0, string p1);
-- [HasEmitter]
-- public virtual signal void undo ();
-- public virtual signal bool web_view_ready ();
-- public virtual signal void window_object_cleared (WebKit.WebFrame frame, void* context, void* window_object);
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public class WebWindowFeatures : GLib.Object {
-- [CCode (has_construct_function = false)]
-- public WebWindowFeatures ();
-- public bool equal (WebKit.WebWindowFeatures features2);
-- [NoAccessorMethod]
-- public bool fullscreen { get; set construct; }
-- [NoAccessorMethod]
-- public int height { get; set construct; }
-- [NoAccessorMethod]
-- public bool locationbar_visible { get; set construct; }
-- [NoAccessorMethod]
-- public bool menubar_visible { get; set construct; }
-- [NoAccessorMethod]
-- public bool scrollbar_visible { get; set construct; }
-- [NoAccessorMethod]
-- public bool statusbar_visible { get; set construct; }
-- [NoAccessorMethod]
-- public bool toolbar_visible { get; set construct; }
-- [NoAccessorMethod]
-- public int width { get; set construct; }
-- [NoAccessorMethod]
-- public int x { get; set construct; }
-- [NoAccessorMethod]
-- public int y { get; set construct; }
-- }
-- [CCode (cprefix = "WEBKIT_CACHE_MODEL_", cheader_filename = "webkit/webkit.h")]
-- public enum CacheModel {
-- DOCUMENT_VIEWER,
-- WEB_BROWSER
-- }
-- [CCode (cprefix = "WEBKIT_DOWNLOAD_ERROR_", cheader_filename = "webkit/webkit.h")]
-- public enum DownloadError {
-- CANCELLED_BY_USER,
-- DESTINATION,
-- NETWORK
-- }
-- [CCode (cprefix = "WEBKIT_DOWNLOAD_STATUS_", cheader_filename = "webkit/webkit.h")]
-- public enum DownloadStatus {
-- ERROR,
-- CREATED,
-- STARTED,
-- CANCELLED,
-- FINISHED
-- }
-- [CCode (cprefix = "WEBKIT_EDITING_BEHAVIOR_", cheader_filename = "webkit/webkit.h")]
-- public enum EditingBehavior {
-- MAC,
-- WINDOWS
-- }
-- [CCode (cprefix = "WEBKIT_HIT_TEST_RESULT_CONTEXT_", cheader_filename = "webkit/webkit.h")]
-- [Flags]
-- public enum HitTestResultContext {
-- DOCUMENT,
-- LINK,
-- IMAGE,
-- MEDIA,
-- SELECTION,
-- EDITABLE
-- }
-- [CCode (cprefix = "WEBKIT_LOAD_", cheader_filename = "webkit/webkit.h")]
-- public enum LoadStatus {
-- PROVISIONAL,
-- COMMITTED,
-- FINISHED,
-- FIRST_VISUALLY_NON_EMPTY_LAYOUT,
-- FAILED
-- }
-- [CCode (cprefix = "WEBKIT_NAVIGATION_RESPONSE_", cheader_filename = "webkit/webkit.h")]
-- public enum NavigationResponse {
-- ACCEPT,
-- IGNORE,
-- DOWNLOAD
-- }
-- [CCode (cprefix = "WEBKIT_NETWORK_ERROR_", cheader_filename = "webkit/webkit.h")]
-- public enum NetworkError {
-- FAILED,
-- TRANSPORT,
-- UNKNOWN_PROTOCOL,
-- CANCELLED,
-- FILE_DOES_NOT_EXIST
-- }
-- [CCode (cprefix = "WEBKIT_PLUGIN_ERROR_", cheader_filename = "webkit/webkit.h")]
-- public enum PluginError {
-- FAILED,
-- CANNOT_FIND_PLUGIN,
-- CANNOT_LOAD_PLUGIN,
-- JAVA_UNAVAILABLE,
-- CONNECTION_CANCELLED,
-- WILL_HANDLE_LOAD
-- }
-- [CCode (cprefix = "WEBKIT_POLICY_ERROR_", cheader_filename = "webkit/webkit.h")]
-- public enum PolicyError {
-- FAILED,
-- CANNOT_SHOW_MIME_TYPE,
-- CANNOT_SHOW_URL,
-- FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE,
-- CANNOT_USE_RESTRICTED_PORT
-- }
-- [CCode (cprefix = "WEBKIT_WEB_NAVIGATION_REASON_", cheader_filename = "webkit/webkit.h")]
-- public enum WebNavigationReason {
-- LINK_CLICKED,
-- FORM_SUBMITTED,
-- BACK_FORWARD,
-- RELOAD,
-- FORM_RESUBMITTED,
-- OTHER
-- }
-- [CCode (cprefix = "WEBKIT_WEB_VIEW_TARGET_INFO_", cheader_filename = "webkit/webkit.h")]
-- public enum WebViewTargetInfo {
-- HTML,
-- TEXT,
-- IMAGE,
-- URI_LIST,
-- NETSCAPE_URL
-- }
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public const int MAJOR_VERSION;
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public const int MICRO_VERSION;
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public const int MINOR_VERSION;
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public const int USER_AGENT_MAJOR_VERSION;
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public const int USER_AGENT_MINOR_VERSION;
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static bool check_version (uint major, uint minor, uint micro);
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static void geolocation_policy_allow (WebKit.GeolocationPolicyDecision decision);
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static void geolocation_policy_deny (WebKit.GeolocationPolicyDecision decision);
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static WebKit.CacheModel get_cache_model ();
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static unowned Soup.Session get_default_session ();
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static uint64 get_default_web_database_quota ();
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static unowned string get_web_database_directory_path ();
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static uint major_version ();
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static uint micro_version ();
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static uint minor_version ();
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static GLib.Quark network_error_quark ();
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static GLib.Quark plugin_error_quark ();
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static GLib.Quark policy_error_quark ();
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static void remove_all_web_databases ();
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static void set_cache_model (WebKit.CacheModel cache_model);
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static void set_default_web_database_quota (uint64 defaultQuota);
-- [CCode (cheader_filename = "webkit/webkit.h")]
-- public static void set_web_database_directory_path (string path);
--}
---
-2.5.0 \ No newline at end of file
diff --git a/debian/patches/0501-Dont-pack-webview-into-a-scrolled-window.patch b/debian/patches/0501-Dont-pack-webview-into-a-scrolled-window.patch
deleted file mode 100644
index a5820dd..0000000
--- a/debian/patches/0501-Dont-pack-webview-into-a-scrolled-window.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 130ebe6f1eda9564e89ab617bdfa30a50f828e47 Mon Sep 17 00:00:00 2001
-From: Michael Catanzaro <mcatanzaro@igalia.com>
-Date: Fri, 4 Dec 2015 17:33:43 +0100
-Subject: [PATCH] Don't pack webview into a scrolled window
-
-The scrollbar is drawn by WebKitWebView in WK2.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=751709
----
- plugins/common/RESTSupport.vala | 8 +-------
- 1 file changed, 1 insertion(+), 7 deletions(-)
-
-Index: trunk/plugins/common/RESTSupport.vala
-===================================================================
---- trunk.orig/plugins/common/RESTSupport.vala
-+++ trunk/plugins/common/RESTSupport.vala
-@@ -725,7 +725,6 @@ public abstract class GooglePublisher :
-
- private WebKit.WebView webview;
- private Gtk.Box pane_widget;
-- private Gtk.ScrolledWindow webview_frame;
- private string auth_sequence_start_url;
-
- public signal void authorized(string auth_code);
-@@ -735,18 +734,13 @@ public abstract class GooglePublisher :
-
- pane_widget = new Gtk.Box(Gtk.Orientation.VERTICAL, 0);
-
-- webview_frame = new Gtk.ScrolledWindow(null, null);
-- webview_frame.set_shadow_type(Gtk.ShadowType.ETCHED_IN);
-- webview_frame.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);
--
- webview = new WebKit.WebView();
- webview.get_settings().enable_plugins = false;
-
- webview.load_changed.connect(on_page_load_changed);
- webview.context_menu.connect(() => { return false; });
-
-- webview_frame.add(webview);
-- pane_widget.pack_start(webview_frame, true, true, 0);
-+ pane_widget.pack_start(webview, true, true, 0);
- }
-
- public static bool is_cache_dirty() {
diff --git a/debian/patches/0502-Have-all-soup-sessions-validate-TLS-certificates.patch b/debian/patches/0502-Have-all-soup-sessions-validate-TLS-certificates.patch
deleted file mode 100644
index df24283..0000000
--- a/debian/patches/0502-Have-all-soup-sessions-validate-TLS-certificates.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From ac6efab13554d1ef39eb8b86744234d72773c2da Mon Sep 17 00:00:00 2001
-From: Michael Catanzaro <mcatanzaro@igalia.com>
-Date: Fri, 4 Dec 2015 17:34:17 +0100
-Subject: [PATCH] Have all soup sessions validate TLS certificates
-
-Note that this commit is *not* sufficient to fix certificate verification
-on its own. The port to WK2 is also required, else WebKit's soup session
-will not verify certificates.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=751709
----
- plugins/common/RESTSupport.vala | 1 +
- plugins/shotwell-publishing/FacebookPublishing.vala | 1 +
- 2 files changed, 2 insertions(+)
-
-Index: trunk/plugins/common/RESTSupport.vala
-===================================================================
---- trunk.orig/plugins/common/RESTSupport.vala
-+++ trunk/plugins/common/RESTSupport.vala
-@@ -20,6 +20,7 @@ public abstract class Session {
- public Session(string? endpoint_url = null) {
- this.endpoint_url = endpoint_url;
- soup_session = new Soup.SessionAsync();
-+ this.soup_session.ssl_use_system_ca_file = true;
- }
-
- protected void notify_wire_message_unqueued(Soup.Message message) {
-Index: trunk/plugins/shotwell-publishing/FacebookPublishing.vala
-===================================================================
---- trunk.orig/plugins/shotwell-publishing/FacebookPublishing.vala
-+++ trunk/plugins/shotwell-publishing/FacebookPublishing.vala
-@@ -1473,6 +1473,7 @@ internal class GraphSession {
- this.soup_session.timeout = 15;
- this.access_token = null;
- this.current_message = null;
-+ this.soup_session.ssl_use_system_ca_file = true;
- }
-
- ~GraphSession() {
diff --git a/debian/patches/0503-facebook-Dont-disable-XSS-auditor.patch b/debian/patches/0503-facebook-Dont-disable-XSS-auditor.patch
deleted file mode 100644
index 976b6ec..0000000
--- a/debian/patches/0503-facebook-Dont-disable-XSS-auditor.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 2a1dd48e702b0e8524a4ed212252aa4c49c6b0f0 Mon Sep 17 00:00:00 2001
-From: Michael Catanzaro <mcatanzaro@igalia.com>
-Date: Fri, 4 Dec 2015 18:08:54 +0100
-Subject: [PATCH] facebook: Don't disable XSS auditor
-
-This is a separate commit to make it possible to revert easily, as
-I don't know why it was disabled.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=751709
----
- plugins/shotwell-publishing/FacebookPublishing.vala | 1 -
- 1 file changed, 1 deletion(-)
-
-Index: trunk/plugins/shotwell-publishing/FacebookPublishing.vala
-===================================================================
---- trunk.orig/plugins/shotwell-publishing/FacebookPublishing.vala
-+++ trunk/plugins/shotwell-publishing/FacebookPublishing.vala
-@@ -829,7 +829,6 @@ internal class WebAuthenticationPane : S
-
- webview = new WebKit.WebView();
- webview.get_settings().enable_plugins = false;
-- webview.get_settings().enable_xss_auditor = false;
-
- webview.load_changed.connect(on_page_load_changed);
- webview.context_menu.connect(() => { return true; });
diff --git a/debian/patches/0510-Delay_size_request.patch b/debian/patches/0510-Delay_size_request.patch
deleted file mode 100644
index 7c03791..0000000
--- a/debian/patches/0510-Delay_size_request.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Description: Delay size_request
-Author: Jens Georg <mail@jensge.org>
-Origin: https://git.gnome.org/browse/shotwell/commit/?id=4a70d87
-Bug: https://bugzilla.gnome.org/show_bug.cgi?id=766864
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=823835
-Forwarded: not-needed
-Last-Update: 2015-06-05
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/src/CheckerboardLayout.vala
-===================================================================
---- trunk.orig/src/CheckerboardLayout.vala
-+++ trunk/src/CheckerboardLayout.vala
-@@ -911,7 +911,11 @@ public class CheckerboardLayout : Gtk.Dr
- debug("on_viewport_resized: due_to_reflow=%s set_size_request %dx%d",
- size_allocate_due_to_reflow.to_string(), parent_allocation.width, req.height);
- #endif
-- set_size_request(parent_allocation.width - SCROLLBAR_PLACEHOLDER_WIDTH, req.height);
-+ // But if the current height is 0, don't request a size yet. Delay
-+ // it to do_reflow (bgo#766864)
-+ if (req.height != 0) {
-+ set_size_request(parent_allocation.width - SCROLLBAR_PLACEHOLDER_WIDTH, req.height);
-+ }
- } else {
- // set the layout's width and height to always match the parent's
- set_size_request(parent_allocation.width, parent_allocation.height);
diff --git a/debian/patches/0515-Fix_background_color_drawing.patch b/debian/patches/0515-Fix_background_color_drawing.patch
deleted file mode 100644
index 04a1adb..0000000
--- a/debian/patches/0515-Fix_background_color_drawing.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Description: Fix background color drawing
-Author: Jens Georg <mail@jensge.org>
-Origin: https://git.gnome.org/browse/shotwell/commit/?id=7361b3f
-Bug: https://bugzilla.gnome.org/show_bug.cgi?id=766864
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=823835
-Forwarded: not-needed
-Last-Update: 2015-06-05
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/src/CheckerboardLayout.vala
-===================================================================
---- trunk.orig/src/CheckerboardLayout.vala
-+++ trunk/src/CheckerboardLayout.vala
-@@ -1812,6 +1812,10 @@ public class CheckerboardLayout : Gtk.Dr
- // we want switched_to() to be the final call in the process (indicating that the page is
- // now in place and should do its thing to update itself), have to be be prepared for
- // GTK/GDK calls between the widgets being actually present on the screen and "switched to"
-+
-+ Gtk.Allocation allocation;
-+ get_allocation(out allocation);
-+ get_style_context().render_background (ctx, 0, 0, allocation.width, allocation.height);
-
- // watch for message mode
- if (message == null) {
-@@ -1833,7 +1837,6 @@ public class CheckerboardLayout : Gtk.Dr
- int text_width, text_height;
- pango_layout.get_pixel_size(out text_width, out text_height);
-
-- Gtk.Allocation allocation;
- get_allocation(out allocation);
-
- int x = allocation.width - text_width;
diff --git a/debian/patches/0600-remove_wrong_marco.patch b/debian/patches/0600-remove_wrong_marco.patch
deleted file mode 100644
index 42ec942..0000000
--- a/debian/patches/0600-remove_wrong_marco.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Description: Remove wrong macro 'R' from manpage
-Author: Jörg Frings-Fürst <debian@jff-webhosting.net>
-Last-Update: 2016-08-20
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/help/shotwell.1
-===================================================================
---- trunk.orig/help/shotwell.1
-+++ trunk/help/shotwell.1
-@@ -13,7 +13,8 @@ import photos from disk or camera, organ
-
- .SH "OPTIONS"
- .B \-h, \-\-help
--.R Show help options
-+Show help options
-+.RE
-
- .B \-d, \-\-datadir=DIRECTORY
- .RS
diff --git a/debian/patches/505-fix-viewer-desktop-file.patch b/debian/patches/505-fix-viewer-desktop-file.patch
deleted file mode 100644
index 30505b5..0000000
--- a/debian/patches/505-fix-viewer-desktop-file.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Description: Fix viewer desktop file
- A typo in the Makefile, probably due to a quick copy/paste, results in an
- incorrectly generated desktop file for the photo viewer.
-Author: Raphaël Halimi <raphael.halimi@gmail.com>
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776745
-Bug: https://bugzilla.gnome.org/show_bug.cgi?id=743799
-Forwarded: https://bugzilla.gnome.org/show_bug.cgi?id=743799
-Applied-Upstream: 0.22.0, https://git.gnome.org/browse/shotwell/commit/?id=2ecda59a5562565967647b6c3d44dd99a48a04ef
-Last-Update: 2015-04-03
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: trunk/Makefile
-===================================================================
---- trunk.orig/Makefile
-+++ trunk/Makefile
-@@ -493,9 +493,8 @@ endif
- misc/shotwell-viewer.desktop: misc/shotwell-viewer.desktop.head $(EXPANDED_CORE_PO_FILES)
- cp misc/shotwell-viewer.desktop.head misc/shotwell-viewer.desktop
- $(foreach lang,$(CORE_SUPPORTED_LANGUAGES), echo X-GNOME-FullName[$(lang)]=`TEXTDOMAINDIR=locale-langpack \
-- LANGUAGE=$(lang) gettext --domain=shotwell $(DESKTOP_APP_FULL_NAME)` \
-- echo X-GNOME-FullName[$(lang)]=`TEXTDOMAINDIR=locale-langpack LANGUAGE=$(lang) gettext \
-- --domain=shotwell $(DIRECT_EDIT_DESKTOP_APP_FULL_NAME)` >> misc/shotwell-viewer.desktop ; \
-+ LANGUAGE=$(lang) gettext --domain=shotwell $(DIRECT_EDIT_DESKTOP_APP_FULL_NAME)` \
-+ >> misc/shotwell-viewer.desktop ; \
- echo GenericName[$(lang)]=`TEXTDOMAINDIR=locale-langpack LANGUAGE=$(lang) gettext \
- --domain=shotwell $(DIRECT_EDIT_DESKTOP_APPLICATION_CLASS)` >> misc/shotwell-viewer.desktop ;)
- ifndef DISABLE_DESKTOP_VALIDATE
diff --git a/debian/patches/series b/debian/patches/series
index 0bf22a4..7fbf718 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,14 +1,2 @@
-#0001-buildflags.patch
-#0005-hardening.patch
-#0010-libexec.patch
-#0500-Port-to-webkit2gtk-40.patch
-#0501-Dont-pack-webview-into-a-scrolled-window.patch
-#0502-Have-all-soup-sessions-validate-TLS-certificates.patch
-#0503-facebook-Dont-disable-XSS-auditor.patch
-#0600-remove_wrong_marco.patch
-#0100-ios8.patch
-#0510-Delay_size_request.patch
-#0515-Fix_background_color_drawing.patch
-#505-fix-viewer-desktop-file.patch
0105-gitversion.patch
-#0110-fix_GoogleAuthenticator.patch
+0115-fix_meson_build.patch
diff --git a/meson.build b/meson.build
index 1b8e72e..ebc9847 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('shotwell', ['vala', 'c'],
- version : '0.30.5',
+ version : '0.30.7',
meson_version : '>= 0.43.0',
default_options : ['buildtype=debugoptimized'])
diff --git a/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala b/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala
index ea4d9ce..82448e2 100644
--- a/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala
+++ b/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala
@@ -51,6 +51,10 @@ namespace Publishing.Authenticator.Shotwell.Flickr {
var ctx = WebKit.WebContext.get_default();
ctx.register_uri_scheme("shotwell-auth", this.on_shotwell_auth_request_cb);
+
+ var mgr = ctx.get_security_manager();
+ mgr.register_uri_scheme_as_secure("shotwell-auth");
+ mgr.register_uri_scheme_as_cors_enabled("shotwell-auth");
}
public override void on_page_load() {
diff --git a/plugins/authenticator/shotwell/OAuth1Authenticator.vala b/plugins/authenticator/shotwell/OAuth1Authenticator.vala
index 399b66f..39752ec 100644
--- a/plugins/authenticator/shotwell/OAuth1Authenticator.vala
+++ b/plugins/authenticator/shotwell/OAuth1Authenticator.vala
@@ -12,7 +12,7 @@ namespace Publishing.Authenticator.Shotwell.OAuth1 {
protected Publishing.RESTSupport.OAuth1.Session session;
protected Spit.Publishing.PluginHost host;
- public Authenticator(string api_key, string api_secret, Spit.Publishing.PluginHost host) {
+ protected Authenticator(string api_key, string api_secret, Spit.Publishing.PluginHost host) {
base();
this.host = host;
diff --git a/plugins/common/RESTSupport.vala b/plugins/common/RESTSupport.vala
index 5cd3768..0d0a3fb 100644
--- a/plugins/common/RESTSupport.vala
+++ b/plugins/common/RESTSupport.vala
@@ -31,7 +31,7 @@ public abstract class Session {
public signal void authenticated();
public signal void authentication_failed(Spit.Publishing.PublishingError err);
- public Session(string? endpoint_url = null) {
+ protected Session(string? endpoint_url = null) {
this.endpoint_url = endpoint_url;
soup_session = new Soup.Session ();
this.soup_session.ssl_use_system_ca_file = true;
@@ -685,7 +685,7 @@ public abstract class BatchUploader {
public signal void upload_complete(int num_photos_published);
public signal void upload_error(Spit.Publishing.PublishingError err);
- public BatchUploader(Session session, Spit.Publishing.Publishable[] publishables) {
+ protected BatchUploader(Session session, Spit.Publishing.Publishable[] publishables) {
this.publishables = publishables;
this.session = session;
}
diff --git a/plugins/common/WebAuthenticationPane.vala b/plugins/common/WebAuthenticationPane.vala
index 1704780..43afe65 100644
--- a/plugins/common/WebAuthenticationPane.vala
+++ b/plugins/common/WebAuthenticationPane.vala
@@ -43,6 +43,11 @@ namespace Shotwell.Plugins.Common {
}
private bool on_page_load_failed (WebKit.LoadEvent load_event, string uri, Error error) {
+ // OAuth call-back scheme. Produces a load error because it is not HTTP(S)
+ // Do not set the load_error, but continue the error handling
+ if (uri.has_prefix ("shotwell-auth://"))
+ return false;
+
critical ("Failed to load uri %s: %s", uri, error.message);
this.load_error = error;
diff --git a/plugins/shotwell-publishing/FacebookPublishing.vala b/plugins/shotwell-publishing/FacebookPublishing.vala
index c979b26..1633269 100644
--- a/plugins/shotwell-publishing/FacebookPublishing.vala
+++ b/plugins/shotwell-publishing/FacebookPublishing.vala
@@ -1002,7 +1002,7 @@ internal class GraphSession {
public weak GraphSession host_session;
public int bytes_so_far;
- public GraphMessageImpl(GraphSession host_session, Publishing.RESTSupport.HttpMethod method,
+ protected GraphMessageImpl(GraphSession host_session, Publishing.RESTSupport.HttpMethod method,
string relative_uri, string access_token, Endpoint endpoint = Endpoint.DEFAULT) {
this.method = method;
this.access_token = access_token;
diff --git a/plugins/shotwell-transitions/shotwell-transitions.vala b/plugins/shotwell-transitions/shotwell-transitions.vala
index 7673414..1d2344f 100644
--- a/plugins/shotwell-transitions/shotwell-transitions.vala
+++ b/plugins/shotwell-transitions/shotwell-transitions.vala
@@ -56,7 +56,7 @@ public abstract class ShotwellTransitionDescriptor : Object, Spit.Pluggable, Spi
private static Gdk.Pixbuf[] icon_pixbuf_set = null;
- public ShotwellTransitionDescriptor(GLib.File resource_directory) {
+ protected ShotwellTransitionDescriptor(GLib.File resource_directory) {
if (icon_pixbuf_set == null)
icon_pixbuf_set =
Resources.load_from_resource(Resources.RESOURCE_PATH + "/" + ICON_FILENAME);
diff --git a/src/AppWindow.vala b/src/AppWindow.vala
index 5c1496e..a5b27a4 100644
--- a/src/AppWindow.vala
+++ b/src/AppWindow.vala
@@ -283,7 +283,7 @@ public abstract class PageWindow : Gtk.ApplicationWindow {
protected virtual void switched_pages(Page? old_page, Page? new_page) {
}
- public PageWindow() {
+ protected PageWindow() {
Object (application: Application.get_instance().get_system_app ());
// the current page needs to know when modifier keys are pressed
@@ -407,7 +407,7 @@ public abstract class AppWindow : PageWindow {
protected int pos_x = 0;
protected int pos_y = 0;
- public AppWindow() {
+ protected AppWindow() {
base();
// although there are multiple AppWindow types, only one may exist per-process
diff --git a/src/CheckerboardLayout.vala b/src/CheckerboardLayout.vala
index c2d1a52..70e3b5c 100644
--- a/src/CheckerboardLayout.vala
+++ b/src/CheckerboardLayout.vala
@@ -138,7 +138,7 @@ public abstract class CheckerboardItem : ThumbnailView {
private int row = -1;
private int horizontal_trinket_offset = 0;
- public CheckerboardItem(ThumbnailSource source, Dimensions initial_pixbuf_dim, string title, string? comment,
+ protected CheckerboardItem(ThumbnailSource source, Dimensions initial_pixbuf_dim, string title, string? comment,
bool marked_up = false, Pango.Alignment alignment = Pango.Alignment.LEFT) {
base(source);
diff --git a/src/CollectionPage.vala b/src/CollectionPage.vala
index 4206ec8..ac05f8b 100644
--- a/src/CollectionPage.vala
+++ b/src/CollectionPage.vala
@@ -29,7 +29,7 @@ public abstract class CollectionPage : MediaPage {
private ExporterUI exporter = null;
private CollectionSearchViewFilter search_filter = new CollectionSearchViewFilter();
- public CollectionPage(string page_name) {
+ protected CollectionPage(string page_name) {
base (page_name);
get_view().items_altered.connect(on_photos_altered);
diff --git a/src/ColorTransformation.vala b/src/ColorTransformation.vala
index 8595e96..6a1f822 100644
--- a/src/ColorTransformation.vala
+++ b/src/ColorTransformation.vala
@@ -268,8 +268,8 @@ public abstract class PixelTransformation {
private PixelTransformationType type;
private PixelFormat preferred_format;
- public PixelTransformation(PixelTransformationType type,
- PixelFormat preferred_format) {
+ protected PixelTransformation(PixelTransformationType type,
+ PixelFormat preferred_format) {
this.type = type;
this.preferred_format = preferred_format;
}
@@ -476,7 +476,7 @@ public class RGBTransformation : PixelTransformation {
public abstract class HSVTransformation : PixelTransformation {
protected float remap_table[256];
- public HSVTransformation(PixelTransformationType type) {
+ protected HSVTransformation(PixelTransformationType type) {
base(type, PixelFormat.HSV);
}
diff --git a/src/CommandManager.vala b/src/CommandManager.vala
index c7e40ab..398dc46 100644
--- a/src/CommandManager.vala
+++ b/src/CommandManager.vala
@@ -29,7 +29,7 @@ public abstract class Command : Object, CommandDescription {
private string explanation;
private weak CommandManager manager = null;
- public Command(string name, string explanation) {
+ protected Command(string name, string explanation) {
this.name = name;
this.explanation = explanation;
}
diff --git a/src/Commands.vala b/src/Commands.vala
index 6924f82..2b9eac1 100644
--- a/src/Commands.vala
+++ b/src/Commands.vala
@@ -12,7 +12,7 @@ public abstract class PageCommand : Command {
private Photo library_photo = null;
private CollectionPage collection_page = null;
- public PageCommand(string name, string explanation) {
+ protected PageCommand(string name, string explanation) {
base (name, explanation);
page = AppWindow.get_instance().get_current_page();
@@ -103,7 +103,7 @@ public abstract class PageCommand : Command {
public abstract class SingleDataSourceCommand : PageCommand {
protected DataSource source;
- public SingleDataSourceCommand(DataSource source, string name, string explanation) {
+ protected SingleDataSourceCommand(DataSource source, string name, string explanation) {
base(name, explanation);
this.source = source;
@@ -130,7 +130,7 @@ public abstract class SimpleProxyableCommand : PageCommand {
private SourceProxy proxy;
private Gee.HashSet<SourceProxy> proxies = new Gee.HashSet<SourceProxy>();
- public SimpleProxyableCommand(Proxyable proxyable, string name, string explanation) {
+ protected SimpleProxyableCommand(Proxyable proxyable, string name, string explanation) {
base (name, explanation);
proxy = proxyable.get_proxy();
@@ -183,7 +183,7 @@ public abstract class SimpleProxyableCommand : PageCommand {
public abstract class SinglePhotoTransformationCommand : SingleDataSourceCommand {
private PhotoTransformationState state;
- public SinglePhotoTransformationCommand(Photo photo, string name, string explanation) {
+ protected SinglePhotoTransformationCommand(Photo photo, string name, string explanation) {
base(photo, name, explanation);
state = photo.save_transformation_state();
@@ -207,7 +207,7 @@ public abstract class GenericPhotoTransformationCommand : SingleDataSourceComman
private PhotoTransformationState original_state = null;
private PhotoTransformationState transformed_state = null;
- public GenericPhotoTransformationCommand(Photo photo, string name, string explanation) {
+ protected GenericPhotoTransformationCommand(Photo photo, string name, string explanation) {
base(photo, name, explanation);
}
@@ -282,7 +282,7 @@ public abstract class MultipleDataSourceCommand : PageCommand {
private Gee.ArrayList<DataSource> acted_upon = new Gee.ArrayList<DataSource>();
private Gee.HashSet<SourceCollection> hooked_collections = new Gee.HashSet<SourceCollection>();
- public MultipleDataSourceCommand(Gee.Iterable<DataView> iter, string progress_text,
+ protected MultipleDataSourceCommand(Gee.Iterable<DataView> iter, string progress_text,
string undo_progress_text, string name, string explanation) {
base(name, explanation);
@@ -414,7 +414,7 @@ public abstract class MultipleDataSourceAtOnceCommand : PageCommand {
private Gee.HashSet<DataSource> sources = new Gee.HashSet<DataSource>();
private Gee.HashSet<SourceCollection> hooked_collections = new Gee.HashSet<SourceCollection>();
- public MultipleDataSourceAtOnceCommand(Gee.Collection<DataSource> sources, string name,
+ protected MultipleDataSourceAtOnceCommand(Gee.Collection<DataSource> sources, string name,
string explanation) {
base (name, explanation);
@@ -490,7 +490,7 @@ public abstract class MultiplePhotoTransformationCommand : MultipleDataSourceCom
private Gee.HashMap<Photo, PhotoTransformationState> map = new Gee.HashMap<
Photo, PhotoTransformationState>();
- public MultiplePhotoTransformationCommand(Gee.Iterable<DataView> iter, string progress_text,
+ protected MultiplePhotoTransformationCommand(Gee.Iterable<DataView> iter, string progress_text,
string undo_progress_text, string name, string explanation) {
base(iter, progress_text, undo_progress_text, name, explanation);
@@ -963,7 +963,7 @@ public abstract class MovePhotosCommand : Command {
protected RealMovePhotosCommand real_command;
- public MovePhotosCommand(string name, string explanation) {
+ protected MovePhotosCommand(string name, string explanation) {
base(name, explanation);
}
diff --git a/src/Dialogs.vala b/src/Dialogs.vala
index d99ac9f..dc9f5a0 100644
--- a/src/Dialogs.vala
+++ b/src/Dialogs.vala
@@ -612,7 +612,7 @@ internal void save_import_results(Gtk.Window? chooser_dialog_parent, string resu
public abstract class TextEntryDialogMediator {
private TextEntryDialog dialog;
- public TextEntryDialogMediator(string title, string label, string? initial_text = null,
+ protected TextEntryDialogMediator(string title, string label, string? initial_text = null,
Gee.Collection<string>? completion_list = null, string? completion_delimiter = null) {
dialog = new TextEntryDialog();
dialog.setup(on_modify_validate, title, label, initial_text, completion_list, completion_delimiter);
@@ -630,7 +630,7 @@ public abstract class TextEntryDialogMediator {
public abstract class MultiTextEntryDialogMediator {
private MultiTextEntryDialog dialog;
- public MultiTextEntryDialogMediator(string title, string label, string? initial_text = null) {
+ protected MultiTextEntryDialogMediator(string title, string label, string? initial_text = null) {
dialog = new MultiTextEntryDialog();
dialog.setup(on_modify_validate, title, label, initial_text);
}
@@ -822,7 +822,7 @@ public void multiple_object_error_dialog(Gee.ArrayList<DataObject> objects, stri
}
public abstract class TagsDialog : TextEntryDialogMediator {
- public TagsDialog(string title, string label, string? initial_text = null) {
+ protected TagsDialog(string title, string label, string? initial_text = null) {
base (title, label, initial_text, HierarchicalTagIndex.get_global_index().get_all_tags(),
",");
}
diff --git a/src/MediaDataRepresentation.vala b/src/MediaDataRepresentation.vala
index f4b9f7d..6e6af00 100644
--- a/src/MediaDataRepresentation.vala
+++ b/src/MediaDataRepresentation.vala
@@ -36,7 +36,7 @@ public abstract class MediaSource : ThumbnailSource, Indexable {
private Event? event = null;
private string? indexable_keywords = null;
- public MediaSource(int64 object_id = INVALID_OBJECT_ID) {
+ protected MediaSource(int64 object_id = INVALID_OBJECT_ID) {
base (object_id);
}
@@ -381,7 +381,7 @@ public abstract class MediaSourceCollection : DatabaseSourceCollection {
public virtual signal void flagged_contents_altered() {
}
- public MediaSourceCollection(string name, GetSourceDatabaseKey source_key_func) {
+ protected MediaSourceCollection(string name, GetSourceDatabaseKey source_key_func) {
base(name, source_key_func);
trashcan = create_trashcan();
diff --git a/src/MediaInterfaces.vala b/src/MediaInterfaces.vala
index 37209cf..1a352a2 100644
--- a/src/MediaInterfaces.vala
+++ b/src/MediaInterfaces.vala
@@ -51,9 +51,6 @@
public abstract class TransactionController {
private int count = 0;
- public TransactionController() {
- }
-
~TransactionController() {
lock (count) {
assert(count == 0);
diff --git a/src/MediaMetadata.vala b/src/MediaMetadata.vala
index 68f7251..b2ba1b7 100644
--- a/src/MediaMetadata.vala
+++ b/src/MediaMetadata.vala
@@ -5,9 +5,6 @@
*/
public abstract class MediaMetadata {
- public MediaMetadata() {
- }
-
public abstract void read_from_file(File file) throws Error;
public abstract MetadataDateTime? get_creation_date_time();
diff --git a/src/MediaMonitor.vala b/src/MediaMonitor.vala
index a36f689..9c9d62d 100644
--- a/src/MediaMonitor.vala
+++ b/src/MediaMonitor.vala
@@ -115,7 +115,7 @@ public abstract class MediaMonitor : Object {
MonitorableUpdates>();
private uint pending_updates_timer_id = 0;
- public MediaMonitor(MediaSourceCollection sources, Cancellable cancellable) {
+ protected MediaMonitor(MediaSourceCollection sources, Cancellable cancellable) {
this.sources = sources;
this.cancellable = cancellable;
diff --git a/src/MediaPage.vala b/src/MediaPage.vala
index 8316906..f849ac3 100644
--- a/src/MediaPage.vala
+++ b/src/MediaPage.vala
@@ -161,7 +161,7 @@ public abstract class MediaPage : CheckerboardPage {
private DragAndDropHandler dnd_handler = null;
private MediaViewTracker tracker;
- public MediaPage(string page_name) {
+ protected MediaPage(string page_name) {
base (page_name);
tracker = new MediaViewTracker(get_view());
diff --git a/src/Page.vala b/src/Page.vala
index b92eaa0..65b263b 100644
--- a/src/Page.vala
+++ b/src/Page.vala
@@ -1243,7 +1243,7 @@ public abstract class CheckerboardPage : Page {
public bool super_pressed;
}
- public CheckerboardPage(string page_name) {
+ protected CheckerboardPage(string page_name) {
base (page_name);
layout = new CheckerboardLayout(get_view());
@@ -1989,7 +1989,7 @@ public abstract class SinglePhotoPage : Page {
private bool has_saved_zoom_state = false;
private uint32 last_nav_key = 0;
- public SinglePhotoPage(string page_name, bool scale_up_to_viewport) {
+ protected SinglePhotoPage(string page_name, bool scale_up_to_viewport) {
base(page_name);
this.scale_up_to_viewport = scale_up_to_viewport;
diff --git a/src/Photo.vala b/src/Photo.vala
index ae0f489..41b6f1d 100644
--- a/src/Photo.vala
+++ b/src/Photo.vala
@@ -69,9 +69,6 @@ public abstract class PhotoTransformationState : Object {
is_broke = true;
}
- protected PhotoTransformationState() {
- }
-
public bool is_broken() {
return is_broke;
}
diff --git a/src/PhotoPage.vala b/src/PhotoPage.vala
index af1d50c..bced0ea 100644
--- a/src/PhotoPage.vala
+++ b/src/PhotoPage.vala
@@ -417,7 +417,7 @@ public abstract class EditingHostPage : SinglePhotoPage {
private ZoomBuffer? zoom_buffer = null;
private Gee.HashMap<string, int> last_locations = new Gee.HashMap<string, int>();
- public EditingHostPage(SourceCollection sources, string name) {
+ protected EditingHostPage(SourceCollection sources, string name) {
base(name, false);
this.sources = sources;
diff --git a/src/PixbufCache.vala b/src/PixbufCache.vala
index 6ab4426..6ff740e 100644
--- a/src/PixbufCache.vala
+++ b/src/PixbufCache.vala
@@ -25,7 +25,7 @@ public class PixbufCache : Object {
public Gdk.Pixbuf pixbuf = null;
public Error err = null;
- public FetchJob(PixbufCache owner, BackgroundJob.JobPriority priority, Photo photo,
+ protected FetchJob(PixbufCache owner, BackgroundJob.JobPriority priority, Photo photo,
Scaling scaling, CompletionCallback callback) {
base(owner, callback, new Cancellable(), null, new Semaphore());
diff --git a/src/Properties.vala b/src/Properties.vala
index 2a07bb0..ad0a041 100644
--- a/src/Properties.vala
+++ b/src/Properties.vala
@@ -7,7 +7,7 @@
private abstract class Properties : Gtk.Grid {
uint line_count = 0;
- public Properties() {
+ protected Properties() {
row_spacing = 6;
column_spacing = 12;
}
diff --git a/src/VideoSupport.vala b/src/VideoSupport.vala
index 857a901..533dfe6 100644
--- a/src/VideoSupport.vala
+++ b/src/VideoSupport.vala
@@ -232,7 +232,11 @@ public class VideoReader {
debug("Thumbnailer timer called");
if (thumbnailer_pid != 0) {
debug("Killing thumbnailer process: %d", thumbnailer_pid);
+#if VALA_0_40
+ Posix.kill(thumbnailer_pid, Posix.Signal.KILL);
+#else
Posix.kill(thumbnailer_pid, Posix.SIGKILL);
+#endif
}
return false; // Don't call again.
}
diff --git a/src/camera/ImportPage.vala b/src/camera/ImportPage.vala
index 0839590..3f70f08 100644
--- a/src/camera/ImportPage.vala
+++ b/src/camera/ImportPage.vala
@@ -25,7 +25,7 @@ abstract class ImportSource : ThumbnailSource, Indexable {
private Gdk.Pixbuf? preview = null;
private string? indexable_keywords = null;
- public ImportSource(string camera_name, GPhoto.Camera camera, int fsid, string folder,
+ protected ImportSource(string camera_name, GPhoto.Camera camera, int fsid, string folder,
string filename, ulong file_size, time_t modification_time) {
this.camera_name = camera_name;
this.camera = camera;
diff --git a/src/core/ContainerSourceCollection.vala b/src/core/ContainerSourceCollection.vala
index cf6218a..0b231dc 100644
--- a/src/core/ContainerSourceCollection.vala
+++ b/src/core/ContainerSourceCollection.vala
@@ -35,7 +35,7 @@ public abstract class ContainerSourceCollection : DatabaseSourceCollection {
Gee.Collection<DataSource> sources) {
}
- public ContainerSourceCollection(string backlink_name, string name,
+ protected ContainerSourceCollection(string backlink_name, string name,
GetSourceDatabaseKey source_key_func) {
base (name, source_key_func);
diff --git a/src/core/DataObject.vala b/src/core/DataObject.vala
index 3c98e9e..62241b5 100644
--- a/src/core/DataObject.vala
+++ b/src/core/DataObject.vala
@@ -35,7 +35,7 @@ public abstract class DataObject : Object {
// NOTE: Supplying an object ID should *only* be used when reconstituting the object (generally
// only done by DataSources).
- public DataObject(int64 object_id = INVALID_OBJECT_ID) {
+ protected DataObject(int64 object_id = INVALID_OBJECT_ID) {
this.object_id = (object_id == INVALID_OBJECT_ID) ? object_id_generator++ : object_id;
}
diff --git a/src/core/DataSource.vala b/src/core/DataSource.vala
index 352ac54..3f2eb22 100644
--- a/src/core/DataSource.vala
+++ b/src/core/DataSource.vala
@@ -60,7 +60,7 @@ public abstract class DataSource : DataObject {
public virtual signal void destroyed() {
}
- public DataSource(int64 object_id = INVALID_OBJECT_ID) {
+ protected DataSource(int64 object_id = INVALID_OBJECT_ID) {
base (object_id);
}
@@ -568,7 +568,7 @@ public abstract class SourceProxy {
public virtual signal void broken() {
}
- public SourceProxy(DataSource source) {
+ protected SourceProxy(DataSource source) {
object_id = source.get_object_id();
source_string = source.to_string();
diff --git a/src/core/DataSourceTypes.vala b/src/core/DataSourceTypes.vala
index 6d8479e..a79264f 100644
--- a/src/core/DataSourceTypes.vala
+++ b/src/core/DataSourceTypes.vala
@@ -12,7 +12,7 @@ public abstract class ThumbnailSource : DataSource {
public virtual signal void thumbnail_altered() {
}
- public ThumbnailSource(int64 object_id = INVALID_OBJECT_ID) {
+ protected ThumbnailSource(int64 object_id = INVALID_OBJECT_ID) {
base (object_id);
}
@@ -51,7 +51,7 @@ public abstract class ThumbnailSource : DataSource {
}
public abstract class PhotoSource : MediaSource {
- public PhotoSource(int64 object_id = INVALID_OBJECT_ID) {
+ protected PhotoSource(int64 object_id = INVALID_OBJECT_ID) {
base (object_id);
}
@@ -68,7 +68,7 @@ public abstract class VideoSource : MediaSource {
//
public abstract class EventSource : ThumbnailSource {
- public EventSource(int64 object_id = INVALID_OBJECT_ID) {
+ protected EventSource(int64 object_id = INVALID_OBJECT_ID) {
base (object_id);
}
diff --git a/src/core/DatabaseSourceCollection.vala b/src/core/DatabaseSourceCollection.vala
index fec6825..2808307 100644
--- a/src/core/DatabaseSourceCollection.vala
+++ b/src/core/DatabaseSourceCollection.vala
@@ -17,7 +17,7 @@ public abstract class DatabaseSourceCollection : SourceCollection {
private Gee.HashMap<int64?, DataSource> map = new Gee.HashMap<int64?, DataSource>(int64_hash,
int64_equal);
- public DatabaseSourceCollection(string name, GetSourceDatabaseKey source_key_func) {
+ protected DatabaseSourceCollection(string name, GetSourceDatabaseKey source_key_func) {
base (name);
this.source_key_func = source_key_func;
diff --git a/src/core/SourceCollection.vala b/src/core/SourceCollection.vala
index 066b813..6eaf86c 100644
--- a/src/core/SourceCollection.vala
+++ b/src/core/SourceCollection.vala
@@ -47,7 +47,7 @@ public abstract class SourceCollection : DataCollection {
private Gee.MultiMap<SourceBacklink, DataSource>? backlinks = null;
- public SourceCollection(string name) {
+ protected SourceCollection(string name) {
base (name);
}
diff --git a/src/editing_tools/EditingTools.vala b/src/editing_tools/EditingTools.vala
index f92b4a2..02e366a 100644
--- a/src/editing_tools/EditingTools.vala
+++ b/src/editing_tools/EditingTools.vala
@@ -31,7 +31,7 @@ public abstract class EditingToolWindow : Gtk.Window {
private Gtk.Frame layout_frame = new Gtk.Frame(null);
private bool user_moved = false;
- public EditingToolWindow(Gtk.Window container) {
+ protected EditingToolWindow(Gtk.Window container) {
set_decorated(false);
set_transient_for(container);
@@ -110,7 +110,7 @@ public abstract class PhotoCanvas {
private Gdk.Pixbuf scaled_pixbuf;
private Gdk.Rectangle scaled_position;
- public PhotoCanvas(Gtk.Window container, Gdk.Window drawing_window, Photo photo,
+ protected PhotoCanvas(Gtk.Window container, Gdk.Window drawing_window, Photo photo,
Cairo.Context default_ctx, Dimensions surface_dim, Gdk.Pixbuf scaled, Gdk.Rectangle scaled_position) {
this.container = container;
this.drawing_window = drawing_window;
@@ -465,7 +465,7 @@ public abstract class EditingTool {
public signal void aborted();
- public EditingTool(string name) {
+ protected EditingTool(string name) {
this.name = name;
}
@@ -2317,7 +2317,7 @@ public class AdjustTool : EditingTool {
private abstract class AdjustToolCommand : Command {
protected weak AdjustTool owner;
- public AdjustToolCommand(AdjustTool owner, string name, string explanation) {
+ protected AdjustToolCommand(AdjustTool owner, string name, string explanation) {
base (name, explanation);
this.owner = owner;
diff --git a/src/events/EventsBranch.vala b/src/events/EventsBranch.vala
index 8980d60..097a664 100644
--- a/src/events/EventsBranch.vala
+++ b/src/events/EventsBranch.vala
@@ -372,9 +372,6 @@ public class Events.Branch : Sidebar.Branch {
}
public abstract class Events.DirectoryEntry : Sidebar.SimplePageEntry, Sidebar.ExpandableEntry {
- public DirectoryEntry() {
- }
-
public override string? get_sidebar_icon() {
return Events.Branch.icon;
}
diff --git a/src/events/EventsDirectoryPage.vala b/src/events/EventsDirectoryPage.vala
index 2384a2b..e88b1a7 100644
--- a/src/events/EventsDirectoryPage.vala
+++ b/src/events/EventsDirectoryPage.vala
@@ -42,7 +42,7 @@ public abstract class EventsDirectoryPage : CheckerboardPage {
private EventsDirectorySearchViewFilter search_filter = new EventsDirectorySearchViewFilter();
- public EventsDirectoryPage(string page_name, ViewManager view_manager,
+ protected EventsDirectoryPage(string page_name, ViewManager view_manager,
Gee.Collection<Event>? initial_events) {
base (page_name);
diff --git a/src/faces/FaceShape.vala b/src/faces/FaceShape.vala
index c14b43b..21e85a9 100644
--- a/src/faces/FaceShape.vala
+++ b/src/faces/FaceShape.vala
@@ -27,7 +27,7 @@ public abstract class FaceShape : Object {
private weak FacesTool.FaceWidget face_widget = null;
- public FaceShape(EditingTools.PhotoCanvas canvas) {
+ protected FaceShape(EditingTools.PhotoCanvas canvas) {
this.canvas = canvas;
this.canvas.new_surface.connect(prepare_ctx);
diff --git a/src/library/LibraryBranch.vala b/src/library/LibraryBranch.vala
index f9113f5..622162e 100644
--- a/src/library/LibraryBranch.vala
+++ b/src/library/LibraryBranch.vala
@@ -121,9 +121,6 @@ public abstract class Library.HideablePageEntry : Sidebar.SimplePageEntry {
visibility_changed(value);
}
}
-
- public HideablePageEntry() {
- }
}
public class Library.MainPage : CollectionPage {
diff --git a/src/meson.build b/src/meson.build
index c452a98..e252a82 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -244,7 +244,6 @@ executable('shotwell',
vala_args : ['--pkg', 'libgphoto2',
'--pkg', 'libraw',
'--pkg', 'libexif',
- '--pkg', 'misc',
'--gresources',
join_paths(meson.source_root(),
'org.gnome.Shotwell.gresource.xml')
diff --git a/src/photos/GdkSupport.vala b/src/photos/GdkSupport.vala
index 2fd1926..f7e18d5 100644
--- a/src/photos/GdkSupport.vala
+++ b/src/photos/GdkSupport.vala
@@ -5,7 +5,7 @@
*/
public abstract class GdkReader : PhotoFileReader {
- public GdkReader(string filepath, PhotoFileFormat file_format) {
+ protected GdkReader(string filepath, PhotoFileFormat file_format) {
base (filepath, file_format);
}
@@ -30,7 +30,7 @@ public abstract class GdkSniffer : PhotoFileSniffer {
private bool size_ready = false;
private bool area_prepared = false;
- public GdkSniffer(File file, PhotoFileSniffer.Options options) {
+ protected GdkSniffer(File file, PhotoFileSniffer.Options options) {
base (file, options);
}
diff --git a/src/photos/PhotoFileAdapter.vala b/src/photos/PhotoFileAdapter.vala
index df49edb..ca7c662 100644
--- a/src/photos/PhotoFileAdapter.vala
+++ b/src/photos/PhotoFileAdapter.vala
@@ -22,7 +22,7 @@ public abstract class PhotoFileAdapter {
private PhotoFileFormat file_format;
private File file = null;
- public PhotoFileAdapter(string filepath, PhotoFileFormat file_format) {
+ protected PhotoFileAdapter(string filepath, PhotoFileFormat file_format) {
this.filepath = filepath;
this.file_format = file_format;
}
diff --git a/src/photos/PhotoFileSniffer.vala b/src/photos/PhotoFileSniffer.vala
index 3ea1b9d..7442fde 100644
--- a/src/photos/PhotoFileSniffer.vala
+++ b/src/photos/PhotoFileSniffer.vala
@@ -39,7 +39,7 @@ public abstract class PhotoFileSniffer {
protected Options options;
protected bool calc_md5;
- public PhotoFileSniffer(File file, Options options) {
+ protected PhotoFileSniffer(File file, Options options) {
this.file = file;
this.options = options;
diff --git a/src/photos/PhotoMetadata.vala b/src/photos/PhotoMetadata.vala
index 288a362..fdda0e6 100644
--- a/src/photos/PhotoMetadata.vala
+++ b/src/photos/PhotoMetadata.vala
@@ -96,11 +96,11 @@ public class ACDSeeKeywordTransformer : KeywordTransformer {
return;
}
- Workaround.markup_collect_attributes (name,
- attribute_names,
- attribute_values,
- Markup.CollectType.BOOLEAN,
- "Assigned", out assigned);
+ Markup.collect_attributes (name,
+ attribute_names,
+ attribute_values,
+ Markup.CollectType.BOOLEAN,
+ "Assigned", out assigned);
}
private void on_end (MarkupParseContext ctx, string name)
@@ -164,7 +164,7 @@ public abstract class PhotoPreview {
private string mime_type;
private string extension;
- public PhotoPreview(string name, Dimensions dimensions, uint32 size, string mime_type, string extension) {
+ protected PhotoPreview(string name, Dimensions dimensions, uint32 size, string mime_type, string extension) {
this.name = name;
this.dimensions = dimensions;
this.size = size;
diff --git a/src/sidebar/common.vala b/src/sidebar/common.vala
index 0467ce3..ebdba51 100644
--- a/src/sidebar/common.vala
+++ b/src/sidebar/common.vala
@@ -55,9 +55,6 @@ public abstract class Sidebar.SimplePageEntry : Object, Sidebar.Entry, Sidebar.S
Sidebar.PageRepresentative, Sidebar.Contextable {
private Page? page = null;
- public SimplePageEntry() {
- }
-
public abstract string get_sidebar_name();
public virtual string? get_sidebar_tooltip() {
diff --git a/src/threads/BackgroundJob.vala b/src/threads/BackgroundJob.vala
index 5d259e7..1c83ced 100644
--- a/src/threads/BackgroundJob.vala
+++ b/src/threads/BackgroundJob.vala
@@ -110,7 +110,7 @@ public abstract class BackgroundJob {
private int completion_priority = Priority.HIGH;
private int notification_priority = Priority.DEFAULT_IDLE;
- public BackgroundJob(Object? owner = null, CompletionCallback? callback = null,
+ protected BackgroundJob(Object? owner = null, CompletionCallback? callback = null,
Cancellable? cancellable = null, CancellationCallback? cancellation = null,
AbstractSemaphore? completion_semaphore = null) {
this.owner = owner;
diff --git a/src/threads/Semaphore.vala b/src/threads/Semaphore.vala
index 05b1f13..dcb9e6e 100644
--- a/src/threads/Semaphore.vala
+++ b/src/threads/Semaphore.vala
@@ -27,7 +27,7 @@ public abstract class AbstractSemaphore {
private Mutex mutex = Mutex();
private Cond monitor = Cond();
- public AbstractSemaphore(Type type) {
+ protected AbstractSemaphore(Type type) {
assert(type == Type.SERIAL || type == Type.BROADCAST);
this.type = type;
diff --git a/vapi/libgdata.vapi b/vapi/libgdata.vapi
index 4141f6b..bd7c4fc 100644
--- a/vapi/libgdata.vapi
+++ b/vapi/libgdata.vapi
@@ -436,8 +436,6 @@ namespace GData {
public void set_user_defined_field (string name, string? value);
public string billing_information { get; set; }
[NoAccessorMethod]
- public GLib.Date birthday { get; set; }
- [NoAccessorMethod]
public bool birthday_has_year { get; set; }
[NoAccessorMethod]
public bool deleted { get; }
@@ -1328,9 +1326,9 @@ namespace GData {
[CCode (has_construct_function = false)]
protected Parsable ();
[CCode (has_construct_function = false)]
- public Parsable.from_json (GLib.Type parsable_type, string json, int length) throws GLib.Error;
+ protected Parsable.from_json (GLib.Type parsable_type, string json, int length) throws GLib.Error;
[CCode (has_construct_function = false)]
- public Parsable.from_xml (GLib.Type parsable_type, string xml, int length) throws GLib.Error;
+ protected Parsable.from_xml (GLib.Type parsable_type, string xml, int length) throws GLib.Error;
[NoWrapper]
public virtual void get_json (Json.Builder builder);
[CCode (cname = "gdata_parsable_get_json")]
diff --git a/vapi/misc.vapi b/vapi/misc.vapi
deleted file mode 100644
index 805f73e..0000000
--- a/vapi/misc.vapi
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace Workaround {
-[CCode (cheader_filename = "glib.h", cname = "g_markup_collect_attributes", sentinel = "G_MARKUP_COLLECT_INVALID")]
-extern bool markup_collect_attributes(string element_name,
- [CCode (array_length = false, array_null_terminated = true)]
- string[] attribute_names,
- [CCode (array_length = false, array_null_terminated = true)]
- string[] attribute_values, ...) throws GLib.MarkupError;
-}