Merge lp:~laney/ubuntu-release-upgrader/port-to-wk2-and-drop-vte-2.90 into lp:ubuntu-release-upgrader

Proposed by Iain Lane
Status: Merged
Merge reported by: Brian Murray
Merged at revision: not available
Proposed branch: lp:~laney/ubuntu-release-upgrader/port-to-wk2-and-drop-vte-2.90
Merge into: lp:ubuntu-release-upgrader
Diff against target: 146 lines (+37/-30)
4 files modified
DistUpgrade/DistUpgradeViewGtk3.py (+10/-18)
DistUpgrade/ReleaseNotesViewerWebkit.py (+19/-11)
debian/changelog (+7/-0)
debian/control (+1/-1)
To merge this branch: bzr merge lp:~laney/ubuntu-release-upgrader/port-to-wk2-and-drop-vte-2.90
Reviewer Review Type Date Requested Status
Brian Murray Pending
Ubuntu Core Development Team Pending
Review via email: mp+282486@code.launchpad.net

Description of the change

Port to webkit 2 and drop old support for vte 2.90 - it seems the dual support was actually borked.

I didn't give this a test in reality - would be good to do this.

To post a comment you must log in.
Revision history for this message
Brian Murray (brian-murray) wrote :

This was merged and uploaded.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'DistUpgrade/DistUpgradeViewGtk3.py'
2--- DistUpgrade/DistUpgradeViewGtk3.py 2015-10-19 21:10:20 +0000
3+++ DistUpgrade/DistUpgradeViewGtk3.py 2016-01-13 17:54:57 +0000
4@@ -20,18 +20,9 @@
5 # USA
6
7 import gi
8+gi.require_version("Vte", "2.91")
9+from gi.repository import Vte
10 gi.require_version("Gtk", "3.0")
11-try:
12- gi.require_version("Vte", "2.91")
13- from gi.repository import Vte
14-except Exception as e:
15- gi.require_version("Vte", "2.90")
16- # COMPAT: Dear upstream, this compat code below will be duplicated in
17- # all python-vte using applications. Love, Michael
18- from gi.repository import Vte
19- Vte.Pty.new_sync = Vte.Pty.new
20-
21-
22 from gi.repository import Gtk
23 from gi.repository import Gdk
24 from gi.repository import GLib
25@@ -365,7 +356,7 @@
26 self.term = term
27 self.parent = parent
28 def call(self, cmd, hidden=False):
29- def wait_for_child(widget):
30+ def wait_for_child(terminal, status):
31 #print("wait for child finished")
32 self.finished=True
33 self.term.show()
34@@ -411,14 +402,15 @@
35 def open(self, url):
36 if not self._webkit_view:
37 return
38- self._webkit_view.open(url)
39- self._webkit_view.connect("load-finished", self._on_load_finished)
40+ self._webkit_view.load_uri(url)
41+ self._webkit_view.connect("load-changed", self._on_load_changed)
42 def show(self):
43 self._webkit_view.show()
44 def hide(self):
45 self._webkit_view.hide()
46- def _on_load_finished(self, view, frame):
47- view.show()
48+ def _on_load_changed(self, view, event, data):
49+ if event == WebKit2.LoadEvent.LOAD_FINISHED:
50+ view.show()
51
52
53 class DistUpgradeViewGtk3(DistUpgradeView,SimpleGtkbuilderApp):
54@@ -520,8 +512,8 @@
55 def getHtmlView(self):
56 if self._webkit_view is None:
57 try:
58- from gi.repository import WebKit
59- self._webkit_view = WebKit.WebView()
60+ from gi.repository import WebKit2
61+ self._webkit_view = WebKit2.WebView()
62 settings = self._webkit_view.get_settings()
63 settings.set_property("enable-plugins", False)
64 self.vbox_main.pack_end(self._webkit_view, True, True, 0)
65
66=== modified file 'DistUpgrade/ReleaseNotesViewerWebkit.py'
67--- DistUpgrade/ReleaseNotesViewerWebkit.py 2014-05-02 13:07:42 +0000
68+++ DistUpgrade/ReleaseNotesViewerWebkit.py 2016-01-13 17:54:57 +0000
69@@ -25,23 +25,31 @@
70 # USA
71
72 from gi.repository import Gtk
73-from gi.repository import WebKit
74+from gi.repository import WebKit2
75
76 from .ReleaseNotesViewer import open_url
77
78
79-class ReleaseNotesViewerWebkit(WebKit.WebView):
80+class ReleaseNotesViewerWebkit(WebKit2.WebView):
81 def __init__(self, notes_url):
82 super(ReleaseNotesViewerWebkit, self).__init__()
83 self.load_uri(notes_url)
84- self.connect("navigation-policy-decision-requested",
85- self._on_navigation_policy_decision_requested)
86-
87- def _on_navigation_policy_decision_requested(self, view, frame, request,
88- action, policy):
89- open_url(request.get_uri())
90- policy.ignore()
91- return True
92+ self.connect("decide-policy",
93+ self._on_decide_policy)
94+
95+ def _on_decide_policy(self, web_view, decision, decision_type):
96+ if decision_type == WebKit2.PolicyDecisionType.NAVIGATION_ACTION:
97+ navigation_action = decision.get_navigation_action()
98+ navigation_request = navigation_action.get_request()
99+ navigation_type = navigation_action.get_navigation_type()
100+
101+ if navigation_type == WebKit2.NavigationType.LINK_CLICKED:
102+ uri = navigation_request.get_uri()
103+ open_url(uri)
104+ decision.ignore()
105+ return True
106+
107+ return False
108
109
110 if __name__ == "__main__":
111@@ -49,7 +57,7 @@
112 win.set_size_request(600, 400)
113 scroll = Gtk.ScrolledWindow()
114 rv = ReleaseNotesViewerWebkit("http://archive.ubuntu.com/ubuntu/dists/"
115- "natty/main/dist-upgrader-all/0.150/"
116+ "devel/main/dist-upgrader-all/current/"
117 "ReleaseAnnouncement.html")
118 scroll.add(rv)
119 win.add(scroll)
120
121=== modified file 'debian/changelog'
122--- debian/changelog 2015-11-18 19:20:13 +0000
123+++ debian/changelog 2016-01-13 17:54:57 +0000
124@@ -1,3 +1,10 @@
125+ubuntu-release-upgrader (1:16.04.4) UNRELEASED; urgency=medium
126+
127+ * Port to WebKit 2
128+ * Drop support for legacy vte 2.90
129+
130+ -- Iain Lane <iain@orangesquash.org.uk> Wed, 13 Jan 2016 13:26:25 +0000
131+
132 ubuntu-release-upgrader (1:16.04.3) xenial; urgency=medium
133
134 * DistUpgrade/DistUpgradeController.py: if a BaseMetaPkg has no origins,
135
136=== modified file 'debian/control'
137--- debian/control 2015-09-29 17:05:45 +0000
138+++ debian/control 2016-01-13 17:54:57 +0000
139@@ -58,7 +58,7 @@
140 python3-gi (>= 3.8),
141 gir1.2-vte-2.91,
142 gir1.2-gtk-3.0,
143- gir1.2-webkit-3.0
144+ gir1.2-webkit2-4.0
145 Description: manage release upgrades
146 This is the GTK+ frontend of the Ubuntu Release Upgrader
147

Subscribers

People subscribed via source and target branches