Merge lp:~mvo/software-center/set-ssl-stuff-in-webkitwidget into lp:software-center

Proposed by Michael Vogt
Status: Merged
Merged at revision: 3085
Proposed branch: lp:~mvo/software-center/set-ssl-stuff-in-webkitwidget
Merge into: lp:software-center
Diff against target: 136 lines (+28/-28)
5 files modified
po/POTFILES.in (+1/-1)
software-center (+0/-15)
softwarecenter/ui/gtk3/dialogs/dialog_tos.py (+1/-1)
softwarecenter/ui/gtk3/views/purchaseview.py (+1/-11)
softwarecenter/ui/gtk3/widgets/webkit.py (+25/-0)
To merge this branch: bzr merge lp:~mvo/software-center/set-ssl-stuff-in-webkitwidget
Reviewer Review Type Date Requested Status
Gary Lasker (community) Approve
Review via email: mp+119128@code.launchpad.net

Description of the change

A drive-by cleanup branch that moves the webkit.py file into "widgets"
where it fits better and it consolidates all setup of the webkit settings
there too.

To post a comment you must log in.
Revision history for this message
Gary Lasker (gary-lasker) wrote :

This is very nice, thanks Michael!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'po/POTFILES.in'
2--- po/POTFILES.in 2012-08-10 07:09:33 +0000
3+++ po/POTFILES.in 2012-08-10 13:33:19 +0000
4@@ -53,7 +53,6 @@
5 softwarecenter/ui/gtk3/views/appview.py
6 softwarecenter/ui/gtk3/views/catview_gtk.py
7 softwarecenter/ui/gtk3/views/purchaseview.py
8-softwarecenter/ui/gtk3/views/webkit.py
9 softwarecenter/ui/gtk3/widgets/apptreeview.py
10 softwarecenter/ui/gtk3/widgets/backforward.py
11 softwarecenter/ui/gtk3/widgets/buttons.py
12@@ -66,6 +65,7 @@
13 softwarecenter/ui/gtk3/widgets/thumbnail.py
14 softwarecenter/ui/gtk3/widgets/videoplayer.py
15 softwarecenter/ui/gtk3/widgets/weblivedialog.py
16+softwarecenter/ui/gtk3/widgets/webkit.py
17 softwarecenter/ui/gtk3/widgets/recommendations.py
18 utils/delete_review_gtk3.py
19 utils/modify_review_gtk3.py
20
21=== modified file 'software-center'
22--- software-center 2012-07-10 08:42:19 +0000
23+++ software-center 2012-08-10 13:33:19 +0000
24@@ -127,21 +127,6 @@
25 # ensure we can actually run
26 Gtk.init_check(sys.argv)
27
28- # set default ssl-ca-file here because it needs only be set once, but
29- # it can not be set in the global context as this will cause segfaults
30- # on exit. However its IMPORTANT to set it as libsoup is *not* secure
31- # by default (see bugzilla #666280 and #666276)
32- from gi.repository import WebKit as webkit
33- # enable certificates validation in webkit views unless specified otherwise
34- if not "SOFTWARE_CENTER_FORCE_DISABLE_CERTS_CHECK" in os.environ:
35- session = webkit.get_default_session()
36- session.set_property("ssl-ca-file", "/etc/ssl/certs/ca-certificates.crt")
37- else:
38- # WARN the user!! Do not remove this
39- LOG.warning("SOFTWARE_CENTER_FORCE_DISABLE_CERTS_CHECK " +
40- "has been specified, all purchase transactions " +
41- "are now INSECURE and UNENCRYPTED!!")
42-
43 # create the app
44 from softwarecenter.ui.gtk3.app import SoftwareCenterAppGtk3
45 with ExecutionTime("create SoftwareCenterApp"):
46
47=== modified file 'softwarecenter/ui/gtk3/dialogs/dialog_tos.py'
48--- softwarecenter/ui/gtk3/dialogs/dialog_tos.py 2012-03-21 20:54:46 +0000
49+++ softwarecenter/ui/gtk3/dialogs/dialog_tos.py 2012-08-10 13:33:19 +0000
50@@ -24,8 +24,8 @@
51
52 from gettext import gettext as _
53
54-from softwarecenter.ui.gtk3.views.webkit import ScrolledWebkitWindow
55 from softwarecenter.ui.gtk3.widgets.spinner import SpinnerNotebook
56+from softwarecenter.ui.gtk3.widgets.webkit import ScrolledWebkitWindow
57 from softwarecenter.enums import SOFTWARE_CENTER_TOS_LINK_NO_HEADER
58
59
60
61=== modified file 'softwarecenter/ui/gtk3/views/purchaseview.py'
62--- softwarecenter/ui/gtk3/views/purchaseview.py 2012-08-10 11:36:27 +0000
63+++ softwarecenter/ui/gtk3/views/purchaseview.py 2012-08-10 13:33:19 +0000
64@@ -33,21 +33,11 @@
65 from softwarecenter.ui.gtk3.dialogs import show_accept_tos_dialog
66 from softwarecenter.config import get_config
67 from softwarecenter.ui.gtk3.utils import get_parent
68-from softwarecenter.ui.gtk3.views.webkit import ScrolledWebkitWindow
69+from softwarecenter.ui.gtk3.widgets.webkit import ScrolledWebkitWindow
70
71 LOG = logging.getLogger(__name__)
72
73
74-def init_webkit_soup_debug():
75- session = webkit.get_default_session()
76- from gi.repository import Soup
77- # alternatively you can use HEADERS, BODY
78- logger = Soup.Logger.new(Soup.LoggerLogLevel.BODY, -1)
79- logger.attach(session)
80-if "SOFTWARE_CENTER_DEBUG_WEBKIT" in os.environ:
81- init_webkit_soup_debug()
82-
83-
84 class PurchaseView(Gtk.VBox):
85 """
86 View that displays the webkit-based UI for purchasing an item.
87
88=== renamed file 'softwarecenter/ui/gtk3/views/webkit.py' => 'softwarecenter/ui/gtk3/widgets/webkit.py'
89--- softwarecenter/ui/gtk3/views/webkit.py 2012-06-28 07:20:49 +0000
90+++ softwarecenter/ui/gtk3/widgets/webkit.py 2012-08-10 13:33:19 +0000
91@@ -17,6 +17,7 @@
92 # this program; if not, write to the Free Software Foundation, Inc.,
93 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
94
95+import logging
96 import os
97
98 from gi.repository import WebKit as webkit
99@@ -31,8 +32,26 @@
100 from gi.repository import WebKit
101
102
103+LOG = logging.getLogger(__name__)
104+
105+
106 def global_webkit_init():
107+ """ this sets the defaults for webkit, its important that this gets
108+ run if you want a secure webkit session
109+ """
110 session = WebKit.get_default_session()
111+ # add security by default (see bugzilla #666280 and #666276)
112+ # enable certificates validation in webkit views unless specified otherwise
113+ if not "SOFTWARE_CENTER_FORCE_DISABLE_CERTS_CHECK" in os.environ:
114+ session = webkit.get_default_session()
115+ session.set_property(
116+ "ssl-ca-file", "/etc/ssl/certs/ca-certificates.crt")
117+ else:
118+ # WARN the user!! Do not remove this
119+ LOG.warning("SOFTWARE_CENTER_FORCE_DISABLE_CERTS_CHECK " +
120+ "has been specified, all purchase transactions " +
121+ "are now INSECURE and UNENCRYPTED!!")
122+ # cookies by default
123 fname = os.path.join(SOFTWARE_CENTER_CACHE_DIR, "cookies.txt")
124 # clear cookies again in a new session, see #1018347 comment #4
125 # there is no "logout" support right now on any of the USC pages
126@@ -42,6 +61,12 @@
127 pass
128 cookie_jar = Soup.CookieJarText.new(fname, False)
129 session.add_feature(cookie_jar)
130+ # optional session debuggin
131+ if "SOFTWARE_CENTER_DEBUG_WEBKIT" in os.environ:
132+ # alternatively you can use HEADERS, BODY here
133+ logger = Soup.Logger.new(Soup.LoggerLogLevel.BODY, -1)
134+ logger.attach(session)
135+# ALWAYS AWLAYS run this or get insecurity by default
136 global_webkit_init()
137
138

Subscribers

People subscribed via source and target branches