Merge lp:~dobey/libubuntuone/update-from-trunk into lp:libubuntuone/stable-3-0

Proposed by dobey on 2012-03-06
Status: Merged
Approved by: dobey on 2012-03-07
Approved revision: no longer in the source branch.
Merged at revision: 152
Proposed branch: lp:~dobey/libubuntuone/update-from-trunk
Merge into: lp:libubuntuone/stable-3-0
Diff against target: 114 lines (+17/-19)
1 file modified
libubuntuoneui/u1-music-store.c (+17/-19)
To merge this branch: bzr merge lp:~dobey/libubuntuone/update-from-trunk
Reviewer Review Type Date Requested Status
Roberto Alsina (community) 2012-03-06 Approve on 2012-03-07
Review via email: mp+96249@code.launchpad.net

Commit Message

Don't register the custom handler for libsoup for now
Delay the initial loading of the connecting page, to avoid a race condition
Add a delay to the initial main store page loading, to avoid a race
Move progress bar creation, and notify signal connect, to avoid racing
Avoid an unneeded second call to get the URI from webkit in nav request

To post a comment you must log in.
Roberto Alsina (ralsina) wrote :

+1

review: Approve
152. By dobey on 2012-03-07

Don't register the custom handler for libsoup for now
Delay the initial loading of the connecting page, to avoid a race condition
Add a delay to the initial main store page loading, to avoid a race
Move progress bar creation, and notify signal connect, to avoid racing
Avoid an unneeded second call to get the URI from webkit in nav request

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'libubuntuoneui/u1-music-store.c'
2--- libubuntuoneui/u1-music-store.c 2012-01-31 20:46:15 +0000
3+++ libubuntuoneui/u1-music-store.c 2012-03-06 21:35:22 +0000
4@@ -544,12 +544,13 @@
5 music_store->priv->watched_downloads = NULL;
6 }
7
8+ network_uri = webkit_network_request_get_uri (request);
9+
10 /* Capture URLs we're interested in */
11- parsed_uri = soup_uri_new (webkit_network_request_get_uri (request));
12+ parsed_uri = soup_uri_new (network_uri);
13 if (parsed_uri == NULL)
14 return FALSE;
15
16- network_uri = webkit_network_request_get_uri (request);
17 if (network_uri != NULL && g_str_has_prefix (network_uri, U1_NOT_REGISTERED_URL)) {
18 fire_authentication (music_store, request, policy_decision);
19 } else if (g_str_has_prefix (parsed_uri->path, "/auth/login") &&
20@@ -561,7 +562,6 @@
21 fire_authentication (music_store, request, policy_decision);
22 } else if (g_strrstr (parsed_uri->path, "library.aspx") != NULL ||
23 g_str_has_prefix (parsed_uri->path, "/music/store/library")) {
24- //g_str_has_prefix (webkit_network_request_get_uri (request), "https://one.ubuntu.com/music/store/library")) {
25 const gchar *library_override;
26
27 /* If the URL being loaded is the 7d library page, and we have a library
28@@ -1222,9 +1222,6 @@
29 folder_info = syncdaemon_daemon_get_folder_info (music_store->priv->syncdaemon, u1_music_store_get_library_location (music_store));
30 music_store->priv->folder_subscribed = syncdaemon_folder_info_get_subscribed (folder_info);
31
32- g_signal_connect (G_OBJECT (music_store->priv->web_viewer), "notify",
33- G_CALLBACK (viewer_property_changed_cb), music_store);
34-
35 /* Rescan the purchased music folder */
36 _u1_music_store_rescan_purchased_folder (music_store);
37
38@@ -1266,6 +1263,9 @@
39
40 music_store->priv->base_url = g_strdup (url_to_use);
41
42+ /* Create a hidden progress bar */
43+ music_store->priv->progress = gtk_progress_bar_new ();
44+
45 /* Create web viewer object */
46 music_store->priv->scroll = gtk_scrolled_window_new (NULL, NULL);
47 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (music_store->priv->scroll),
48@@ -1291,9 +1291,6 @@
49 /* Use GNOME proxy settings */
50 soup_session_add_feature_by_type (session, SOUP_TYPE_PROXY_RESOLVER_GNOME);
51
52- /* Add our handler for u1chrome: URIs */
53- soup_session_add_feature_by_type (session, U1_TYPE_REQUEST_CHROME);
54-
55 g_signal_connect (G_OBJECT (music_store->priv->web_viewer), "navigation-policy-decision-requested",
56 G_CALLBACK (navigation_requested_cb), music_store);
57 g_signal_connect (G_OBJECT (music_store->priv->web_viewer), "load-finished",
58@@ -1303,9 +1300,9 @@
59 g_signal_connect (G_OBJECT (music_store->priv->web_viewer), "load-error",
60 G_CALLBACK (load_error_cb), music_store);
61
62- /* Show a temp view when loading the initial store page */
63- load_internal_html_page (WEBKIT_WEB_VIEW (music_store->priv->web_viewer),
64- U1_CONNECTING_PAGE, NULL);
65+ g_signal_connect (G_OBJECT (music_store->priv->web_viewer), "notify",
66+ G_CALLBACK (viewer_property_changed_cb), music_store);
67+
68 gtk_widget_show (music_store->priv->web_viewer);
69 gtk_container_add (GTK_CONTAINER (music_store->priv->scroll), music_store->priv->web_viewer);
70
71@@ -1344,19 +1341,20 @@
72 g_signal_connect (G_OBJECT (music_store->priv->subscribe_btn), "clicked",
73 G_CALLBACK (subscribe_purchased_folder), music_store);
74
75- /* Create a hidden progress bar */
76- music_store->priv->progress = gtk_progress_bar_new ();
77-
78 gtk_box_pack_start (GTK_BOX (music_store), music_store->priv->alertbar, FALSE, FALSE, 6);
79 gtk_box_pack_start (GTK_BOX (music_store), music_store->priv->scroll, TRUE, TRUE, 0);
80 gtk_box_pack_end (GTK_BOX (music_store), music_store->priv->progress, FALSE, FALSE, 0);
81
82+ /* Load the temporary connecting page */
83+ load_internal_html_page (WEBKIT_WEB_VIEW (music_store->priv->web_viewer),
84+ U1_CONNECTING_PAGE, NULL);
85+
86 /* Rescan for things later */
87 g_timeout_add_seconds(10, (GSourceFunc) _u1_music_store_delayed_init,
88 music_store);
89
90 /* And load the real store in the background */
91- music_store->priv->idle_cb = g_idle_add ((GSourceFunc) load_real_store_cb, music_store);
92+ music_store->priv->idle_cb = g_timeout_add_seconds (2, (GSourceFunc) load_real_store_cb, music_store);
93
94 }
95
96@@ -1416,15 +1414,15 @@
97 g_return_if_fail (U1_IS_MUSIC_STORE (music_store));
98 g_return_if_fail (url != NULL);
99
100- /* Stop any currently pending or active page loads first */
101- webkit_web_view_stop_loading (WEBKIT_WEB_VIEW (music_store->priv->web_viewer));
102-
103 /* If the load_real_store callback is set up, disable it first */
104 if (music_store->priv->idle_cb > 0) {
105 g_source_remove (music_store->priv->idle_cb);
106 music_store->priv->idle_cb = 0;
107 }
108
109+ /* Stop any currently pending or active page loads first */
110+ webkit_web_view_stop_loading (WEBKIT_WEB_VIEW (music_store->priv->web_viewer));
111+
112 quoted_url = g_uri_escape_string (url, NULL, FALSE);
113 real_url = g_strdup_printf ("%s%s?forward_on_to_url=%s",
114 music_store->priv->base_url,

Subscribers

People subscribed via source and target branches

to all changes: