Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(552)

Side by Side Diff: chrome/browser/resources/options/chromeos/internet_detail.js

Issue 983823002: Use GUID instead of servicePath in network settings (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@issue_430115_internet_options_enable_extension_apis
Patch Set: . Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // require: onc_data.js 5 // require: onc_data.js
6 6
7 // NOTE(stevenjb): This code is in the process of being converted to be 7 // NOTE(stevenjb): This code is in the process of being converted to be
8 // compatible with the networkingPrivate extension API: 8 // compatible with the networkingPrivate extension API:
9 // * The network property dictionaries are being converted to use ONC values. 9 // * The network property dictionaries are being converted to use ONC values.
10 // * chrome.send calls will be replaced with chrome.networkingPrivate calls. 10 // * chrome.send calls will be replaced with chrome.networkingPrivate calls.
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 Page.prototype.initializePage.call(this); 205 Page.prototype.initializePage.call(this);
206 this.initializePageContents_(); 206 this.initializePageContents_();
207 this.showNetworkDetails_(); 207 this.showNetworkDetails_();
208 }, 208 },
209 209
210 /** 210 /**
211 * Auto-activates the network details dialog if network information 211 * Auto-activates the network details dialog if network information
212 * is included in the URL. 212 * is included in the URL.
213 */ 213 */
214 showNetworkDetails_: function() { 214 showNetworkDetails_: function() {
215 var servicePath = parseQueryParams(window.location).servicePath; 215 var guid = parseQueryParams(window.location).guid;
216 if (!servicePath || !servicePath.length) 216 if (!guid || !guid.length)
pneubeck (no reviews) 2015/03/12 20:53:57 on the C++ side, this is actually also called with
stevenjb 2015/03/13 01:20:14 Yes. initializePage always gets called, and if the
217 return; 217 return;
218 // TODO(stevenjb): chrome.networkingPrivate.getManagedProperties 218 chrome.networkingPrivate.getManagedProperties(
219 // with initializeDetailsPage as the callback. 219 guid, function(oncProperties) {
220 chrome.send('getManagedProperties', [servicePath]); 220 DetailsInternetPage.initializeDetailsPage(oncProperties);
pneubeck (no reviews) 2015/03/12 20:53:57 instead of the anonymous function you could use
stevenjb 2015/03/13 01:20:14 Done.
221 });
221 }, 222 },
222 223
223 /** 224 /**
224 * Initializes the contents of the page. 225 * Initializes the contents of the page.
225 */ 226 */
226 initializePageContents_: function() { 227 initializePageContents_: function() {
227 $('details-internet-dismiss').addEventListener('click', function(event) { 228 $('details-internet-dismiss').addEventListener('click', function(event) {
228 DetailsInternetPage.setDetails(); 229 DetailsInternetPage.setDetails();
229 }); 230 });
230 231
(...skipping 13 matching lines...) Expand all
244 DetailsInternetPage.setDetails(); 245 DetailsInternetPage.setDetails();
245 DetailsInternetPage.configureNetwork(); 246 DetailsInternetPage.configureNetwork();
246 }); 247 });
247 248
248 $('activate-details').addEventListener('click', function(event) { 249 $('activate-details').addEventListener('click', function(event) {
249 DetailsInternetPage.activateFromDetails(); 250 DetailsInternetPage.activateFromDetails();
250 }); 251 });
251 252
252 $('view-account-details').addEventListener('click', function(event) { 253 $('view-account-details').addEventListener('click', function(event) {
253 chrome.send('showMorePlanInfo', 254 chrome.send('showMorePlanInfo',
254 [DetailsInternetPage.getInstance().servicePath_]); 255 [DetailsInternetPage.getInstance().onc_.guid()]);
255 PageManager.closeOverlay(); 256 PageManager.closeOverlay();
256 }); 257 });
257 258
258 $('cellular-apn-use-default').addEventListener('click', function(event) { 259 $('cellular-apn-use-default').addEventListener('click', function(event) {
259 DetailsInternetPage.getInstance().setDefaultApn_(); 260 DetailsInternetPage.getInstance().setDefaultApn_();
260 }); 261 });
261 262
262 $('cellular-apn-set').addEventListener('click', function(event) { 263 $('cellular-apn-set').addEventListener('click', function(event) {
263 DetailsInternetPage.getInstance().setApn_($('cellular-apn').value); 264 DetailsInternetPage.getInstance().setApn_($('cellular-apn').value);
264 }); 265 });
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after
901 if (apnName) { 902 if (apnName) {
902 activeApn['AccessPointName'] = apnName; 903 activeApn['AccessPointName'] = apnName;
903 activeApn['Username'] = stringFromValue(apnValue['Username']); 904 activeApn['Username'] = stringFromValue(apnValue['Username']);
904 activeApn['Password'] = stringFromValue(apnValue['Password']); 905 activeApn['Password'] = stringFromValue(apnValue['Password']);
905 } 906 }
906 // Set the cached ONC data. 907 // Set the cached ONC data.
907 this.onc_.setProperty('Cellular.APN', activeApn); 908 this.onc_.setProperty('Cellular.APN', activeApn);
908 // Set an ONC object with just the APN values. 909 // Set an ONC object with just the APN values.
909 var oncData = new OncData({}); 910 var oncData = new OncData({});
910 oncData.setProperty('Cellular.APN', activeApn); 911 oncData.setProperty('Cellular.APN', activeApn);
911 // TODO(stevenjb): chrome.networkingPrivate.setProperties 912 chrome.networkingPrivate.setProperties(this.onc_.guid(),
912 chrome.send('setProperties', [this.servicePath_, oncData.getData()]); 913 oncData.getData());
913 }, 914 },
914 915
915 /** 916 /**
916 * Event Listener for the cellular-apn-use-default button. 917 * Event Listener for the cellular-apn-use-default button.
917 * @private 918 * @private
918 */ 919 */
919 setDefaultApn_: function() { 920 setDefaultApn_: function() {
920 var apnSelector = $('select-apn'); 921 var apnSelector = $('select-apn');
921 922
922 // Remove the 'user' entry if it exists. 923 // Remove the 'user' entry if it exists.
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
1047 DetailsInternetPage.changeCellularButtonsState(visible); 1048 DetailsInternetPage.changeCellularButtonsState(visible);
1048 }; 1049 };
1049 1050
1050 /** 1051 /**
1051 * Changes the network carrier. 1052 * Changes the network carrier.
1052 */ 1053 */
1053 DetailsInternetPage.handleCarrierChanged = function() { 1054 DetailsInternetPage.handleCarrierChanged = function() {
1054 var carrierSelector = $('select-carrier'); 1055 var carrierSelector = $('select-carrier');
1055 var carrier = carrierSelector[carrierSelector.selectedIndex].textContent; 1056 var carrier = carrierSelector[carrierSelector.selectedIndex].textContent;
1056 DetailsInternetPage.showCarrierChangeSpinner(true); 1057 DetailsInternetPage.showCarrierChangeSpinner(true);
1057 chrome.send('setCarrier', [ 1058 chrome.send('setCarrier', [carrier]);
1058 DetailsInternetPage.getInstance().servicePath_, carrier]);
1059 }; 1059 };
1060 1060
1061 /** 1061 /**
1062 * Performs minimal initialization of the InternetDetails dialog in 1062 * Performs minimal initialization of the InternetDetails dialog in
1063 * preparation for showing proxy-settings. 1063 * preparation for showing proxy-settings.
1064 */ 1064 */
1065 DetailsInternetPage.initializeProxySettings = function() { 1065 DetailsInternetPage.initializeProxySettings = function() {
1066 DetailsInternetPage.getInstance().initializePageContents_(); 1066 DetailsInternetPage.getInstance().initializePageContents_();
1067 }; 1067 };
1068 1068
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1128 DetailsInternetPage.showCarrierChangeSpinner(false); 1128 DetailsInternetPage.showCarrierChangeSpinner(false);
1129 }; 1129 };
1130 1130
1131 DetailsInternetPage.loginFromDetails = function() { 1131 DetailsInternetPage.loginFromDetails = function() {
1132 var detailsPage = DetailsInternetPage.getInstance(); 1132 var detailsPage = DetailsInternetPage.getInstance();
1133 if (detailsPage.type_ == 'WiFi') 1133 if (detailsPage.type_ == 'WiFi')
1134 sendChromeMetricsAction('Options_NetworkConnectToWifi'); 1134 sendChromeMetricsAction('Options_NetworkConnectToWifi');
1135 else if (detailsPage.type_ == 'VPN') 1135 else if (detailsPage.type_ == 'VPN')
1136 sendChromeMetricsAction('Options_NetworkConnectToVPN'); 1136 sendChromeMetricsAction('Options_NetworkConnectToVPN');
1137 // TODO(stevenjb): chrome.networkingPrivate.startConnect 1137 // TODO(stevenjb): chrome.networkingPrivate.startConnect
1138 chrome.send('startConnect', [detailsPage.servicePath_]); 1138 chrome.send('startConnect', [detailsPage.onc_.guid()]);
1139 PageManager.closeOverlay(); 1139 PageManager.closeOverlay();
1140 }; 1140 };
1141 1141
1142 DetailsInternetPage.disconnectNetwork = function() { 1142 DetailsInternetPage.disconnectNetwork = function() {
1143 var detailsPage = DetailsInternetPage.getInstance(); 1143 var detailsPage = DetailsInternetPage.getInstance();
1144 if (detailsPage.type_ == 'WiFi') 1144 if (detailsPage.type_ == 'WiFi')
1145 sendChromeMetricsAction('Options_NetworkDisconnectWifi'); 1145 sendChromeMetricsAction('Options_NetworkDisconnectWifi');
1146 else if (detailsPage.type_ == 'VPN') 1146 else if (detailsPage.type_ == 'VPN')
1147 sendChromeMetricsAction('Options_NetworkDisconnectVPN'); 1147 sendChromeMetricsAction('Options_NetworkDisconnectVPN');
1148 var guid = detailsPage.onc_.getActiveValue('GUID'); 1148 chrome.networkingPrivate.startDisconnect(detailsPage.onc_.guid());
1149 chrome.networkingPrivate.startDisconnect(guid);
1150 PageManager.closeOverlay(); 1149 PageManager.closeOverlay();
1151 }; 1150 };
1152 1151
1153 DetailsInternetPage.configureNetwork = function() { 1152 DetailsInternetPage.configureNetwork = function() {
1154 var detailsPage = DetailsInternetPage.getInstance(); 1153 var detailsPage = DetailsInternetPage.getInstance();
1155 chrome.send('configureNetwork', [detailsPage.servicePath_]); 1154 chrome.send('configureNetwork', [detailsPage.onc_.guid()]);
1156 PageManager.closeOverlay(); 1155 PageManager.closeOverlay();
1157 }; 1156 };
1158 1157
1159 DetailsInternetPage.activateFromDetails = function() { 1158 DetailsInternetPage.activateFromDetails = function() {
1160 var detailsPage = DetailsInternetPage.getInstance(); 1159 var detailsPage = DetailsInternetPage.getInstance();
1161 if (detailsPage.type_ == 'Cellular') { 1160 if (detailsPage.type_ == 'Cellular') {
1162 chrome.send('activateNetwork', [detailsPage.servicePath_]); 1161 chrome.send('activateNetwork', [detailsPage.onc_.guid()]);
1163 } 1162 }
1164 PageManager.closeOverlay(); 1163 PageManager.closeOverlay();
1165 }; 1164 };
1166 1165
1167 /** 1166 /**
1168 * Event handler called when the details page is closed. Sends changed 1167 * Event handler called when the details page is closed. Sends changed
1169 * properties to Chrome and closes the overlay. 1168 * properties to Chrome and closes the overlay.
1170 */ 1169 */
1171 DetailsInternetPage.setDetails = function() { 1170 DetailsInternetPage.setDetails = function() {
1172 var detailsPage = DetailsInternetPage.getInstance(); 1171 var detailsPage = DetailsInternetPage.getInstance();
1173 var type = detailsPage.type_; 1172 var type = detailsPage.type_;
1174 var servicePath = detailsPage.servicePath_;
1175 var oncData = new OncData({}); 1173 var oncData = new OncData({});
1176 var autoConnectCheckboxId = ''; 1174 var autoConnectCheckboxId = '';
1177 if (type == 'WiFi') { 1175 if (type == 'WiFi') {
1178 var preferredCheckbox = 1176 var preferredCheckbox =
1179 assertInstanceof($('prefer-network-wifi'), HTMLInputElement); 1177 assertInstanceof($('prefer-network-wifi'), HTMLInputElement);
1180 if (!preferredCheckbox.hidden && !preferredCheckbox.disabled) { 1178 if (!preferredCheckbox.hidden && !preferredCheckbox.disabled) {
1181 var kPreferredPriority = 1; 1179 var kPreferredPriority = 1;
1182 var priority = preferredCheckbox.checked ? kPreferredPriority : 0; 1180 var priority = preferredCheckbox.checked ? kPreferredPriority : 0;
1183 oncData.setProperty('Priority', priority); 1181 oncData.setProperty('Priority', priority);
1184 sendChromeMetricsAction('Options_NetworkSetPrefer'); 1182 sendChromeMetricsAction('Options_NetworkSetPrefer');
(...skipping 28 matching lines...) Expand all
1213 var ipConfig = detailsPage.getIpConfig_(nameServerType); 1211 var ipConfig = detailsPage.getIpConfig_(nameServerType);
1214 var ipAddressType = ('IPAddress' in ipConfig) ? 'Static' : 'DHCP'; 1212 var ipAddressType = ('IPAddress' in ipConfig) ? 'Static' : 'DHCP';
1215 var nameServersType = ('NameServers' in ipConfig) ? 'Static' : 'DHCP'; 1213 var nameServersType = ('NameServers' in ipConfig) ? 'Static' : 'DHCP';
1216 oncData.setProperty('IPAddressConfigType', ipAddressType); 1214 oncData.setProperty('IPAddressConfigType', ipAddressType);
1217 oncData.setProperty('NameServersConfigType', nameServersType); 1215 oncData.setProperty('NameServersConfigType', nameServersType);
1218 oncData.setProperty('StaticIPConfig', ipConfig); 1216 oncData.setProperty('StaticIPConfig', ipConfig);
1219 1217
1220 var data = oncData.getData(); 1218 var data = oncData.getData();
1221 if (Object.keys(data).length > 0) { 1219 if (Object.keys(data).length > 0) {
1222 // TODO(stevenjb): Only set changed properties. 1220 // TODO(stevenjb): Only set changed properties.
1223 // TODO(stevenjb): chrome.networkingPrivate.setProperties 1221 chrome.networkingPrivate.setProperties(detailsPage.onc_.guid(), data);
1224 chrome.send('setProperties', [servicePath, data]);
1225 } 1222 }
1226 1223
1227 PageManager.closeOverlay(); 1224 PageManager.closeOverlay();
1228 }; 1225 };
1229 1226
1230 /** 1227 /**
1231 * Event handler called when the name server type changes. 1228 * Event handler called when the name server type changes.
1232 * @param {string} type The selected name sever type, 'automatic', 'google', 1229 * @param {string} type The selected name sever type, 'automatic', 'google',
1233 * or 'user'. 1230 * or 'user'.
1234 */ 1231 */
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1267 /** 1264 /**
1268 * Method called from Chrome when the ONC properties for the displayed 1265 * Method called from Chrome when the ONC properties for the displayed
1269 * network may have changed. 1266 * network may have changed.
1270 * @param {Object} oncData The updated ONC dictionary for the network. 1267 * @param {Object} oncData The updated ONC dictionary for the network.
1271 */ 1268 */
1272 DetailsInternetPage.updateConnectionData = function(oncData) { 1269 DetailsInternetPage.updateConnectionData = function(oncData) {
1273 var detailsPage = DetailsInternetPage.getInstance(); 1270 var detailsPage = DetailsInternetPage.getInstance();
1274 if (!detailsPage.visible) 1271 if (!detailsPage.visible)
1275 return; 1272 return;
1276 1273
1277 if (oncData.servicePath != detailsPage.servicePath_) 1274 if (oncData.GUID != detailsPage.onc_.guid())
1278 return; 1275 return;
1279 1276
1280 // Update our cached data object. 1277 // Update our cached data object.
1281 detailsPage.onc_ = new OncData(oncData); 1278 detailsPage.onc_ = new OncData(oncData);
1282 1279
1283 detailsPage.populateHeader_(); 1280 detailsPage.populateHeader_();
1284 detailsPage.updateConnectionButtonVisibilty_(); 1281 detailsPage.updateConnectionButtonVisibilty_();
1285 detailsPage.updateDetails_(); 1282 detailsPage.updateDetails_();
1286 }; 1283 };
1287 1284
1288 /** 1285 /**
1289 * Method called from Chrome in response to getManagedProperties. 1286 * Method called from Chrome in response to getManagedProperties.
1290 * We only use this when we want to call initializeDetailsPage. 1287 * We only use this when we want to call initializeDetailsPage.
1291 * TODO(stevenjb): Eliminate when we switch to networkingPrivate 1288 * TODO(stevenjb): Eliminate when we switch to networkingPrivate
1292 * (initializeDetailsPage will be provided as the callback). 1289 * (initializeDetailsPage will be provided as the callback).
1293 * @param {Object} oncData Dictionary of ONC properties. 1290 * @param {Object} oncData Dictionary of ONC properties.
1294 */ 1291 */
1295 DetailsInternetPage.getManagedPropertiesResult = function(oncData) { 1292 DetailsInternetPage.getManagedPropertiesResult = function(oncData) {
1296 DetailsInternetPage.initializeDetailsPage(oncData); 1293 DetailsInternetPage.initializeDetailsPage(oncData);
1297 }; 1294 };
1298 1295
1299 /** 1296 /**
1300 * Initializes the details page with the provided ONC data. 1297 * Initializes the details page with the provided ONC data.
1301 * @param {Object} oncData Dictionary of ONC properties. 1298 * @param {Object} oncData Dictionary of ONC properties.
1302 */ 1299 */
1303 DetailsInternetPage.initializeDetailsPage = function(oncData) { 1300 DetailsInternetPage.initializeDetailsPage = function(oncData) {
1304 var onc = new OncData(oncData); 1301 var onc = new OncData(oncData);
1305 1302
1306 var detailsPage = DetailsInternetPage.getInstance(); 1303 var detailsPage = DetailsInternetPage.getInstance();
1307 detailsPage.servicePath_ = oncData.servicePath;
1308 detailsPage.onc_ = onc; 1304 detailsPage.onc_ = onc;
1309 var type = onc.getActiveValue('Type'); 1305 var type = onc.getActiveValue('Type');
1310 detailsPage.type_ = type; 1306 detailsPage.type_ = type;
1311 1307
1312 sendShowDetailsMetrics(type, onc.getActiveValue('ConnectionState')); 1308 sendShowDetailsMetrics(type, onc.getActiveValue('ConnectionState'));
1313 1309
1314 detailsPage.populateHeader_(); 1310 detailsPage.populateHeader_();
1315 detailsPage.updateConnectionButtonVisibilty_(); 1311 detailsPage.updateConnectionButtonVisibilty_();
1316 detailsPage.updateDetails_(); 1312 detailsPage.updateDetails_();
1317 1313
1318 // TODO(stevenjb): Some of the setup below should be moved to 1314 // TODO(stevenjb): Some of the setup below should be moved to
1319 // updateDetails_() so that updates are reflected in the UI. 1315 // updateDetails_() so that updates are reflected in the UI.
1320 1316
1321 // Only show proxy for remembered networks. 1317 // Only show proxy for remembered networks.
1322 var remembered = onc.getSource() != 'None'; 1318 var remembered = onc.getSource() != 'None';
1323 if (remembered) { 1319 if (remembered) {
1324 detailsPage.showProxy_ = true; 1320 detailsPage.showProxy_ = true;
1325 // Inform Chrome which network to use for proxy configuration. 1321 // Inform Chrome which network to use for proxy configuration.
1326 chrome.send('selectNetwork', [detailsPage.servicePath_]); 1322 chrome.send('selectNetwork', [detailsPage.onc_.guid()]);
1327 } else { 1323 } else {
1328 detailsPage.showProxy_ = false; 1324 detailsPage.showProxy_ = false;
1329 } 1325 }
1330 1326
1331 $('web-proxy-auto-discovery').hidden = true; 1327 $('web-proxy-auto-discovery').hidden = true;
1332 1328
1333 var restricted = onc.getActiveValue('RestrictedConnectivity'); 1329 var restricted = onc.getActiveValue('RestrictedConnectivity');
1334 var restrictedString = loadTimeData.getString( 1330 var restrictedString = loadTimeData.getString(
1335 restricted ? 'restrictedYes' : 'restrictedNo'); 1331 restricted ? 'restrictedYes' : 'restrictedNo');
1336 1332
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
1581 var option = document.createElement('option'); 1577 var option = document.createElement('option');
1582 option.textContent = supportedCarriers[c2]; 1578 option.textContent = supportedCarriers[c2];
1583 carrierSelector.add(option); 1579 carrierSelector.add(option);
1584 } 1580 }
1585 carrierSelector.selectedIndex = currentCarrierIndex; 1581 carrierSelector.selectedIndex = currentCarrierIndex;
1586 } 1582 }
1587 } 1583 }
1588 if (currentCarrierIndex == -1) 1584 if (currentCarrierIndex == -1)
1589 $('service-name').textContent = networkName; 1585 $('service-name').textContent = networkName;
1590 1586
1587 // TODO(stevenjb): Ideally many of these should be localized.
1591 $('network-technology').textContent = 1588 $('network-technology').textContent =
1592 onc.getActiveValue('Cellular.NetworkTechnology'); 1589 onc.getActiveValue('Cellular.NetworkTechnology');
1593 $('roaming-state').textContent = 1590 $('roaming-state').textContent =
1594 onc.getTranslatedValue('Cellular.RoamingState'); 1591 onc.getTranslatedValue('Cellular.RoamingState');
1595 $('cellular-restricted-connectivity').textContent = restrictedString; 1592 $('cellular-restricted-connectivity').textContent = restrictedString;
1596 // 'errorMessage' is a non ONC property added by Chrome. 1593 $('error-state').textContent = onc.getActiveValue('ErrorState');
1597 $('error-state').textContent = onc.getActiveValue('errorMessage');
1598 $('manufacturer').textContent = 1594 $('manufacturer').textContent =
1599 onc.getActiveValue('Cellular.Manufacturer'); 1595 onc.getActiveValue('Cellular.Manufacturer');
1600 $('model-id').textContent = onc.getActiveValue('Cellular.ModelID'); 1596 $('model-id').textContent = onc.getActiveValue('Cellular.ModelID');
1601 $('firmware-revision').textContent = 1597 $('firmware-revision').textContent =
1602 onc.getActiveValue('Cellular.FirmwareRevision'); 1598 onc.getActiveValue('Cellular.FirmwareRevision');
1603 $('hardware-revision').textContent = 1599 $('hardware-revision').textContent =
1604 onc.getActiveValue('Cellular.HardwareRevision'); 1600 onc.getActiveValue('Cellular.HardwareRevision');
1605 $('mdn').textContent = onc.getActiveValue('Cellular.MDN'); 1601 $('mdn').textContent = onc.getActiveValue('Cellular.MDN');
1606 1602
1607 // Show ServingOperator properties only if available. 1603 // Show ServingOperator properties only if available.
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1707 1703
1708 // Don't show page name in address bar and in history to prevent people 1704 // Don't show page name in address bar and in history to prevent people
1709 // navigate here by hand and solve issue with page session restore. 1705 // navigate here by hand and solve issue with page session restore.
1710 PageManager.showPageByName('detailsInternetPage', false); 1706 PageManager.showPageByName('detailsInternetPage', false);
1711 }; 1707 };
1712 1708
1713 return { 1709 return {
1714 DetailsInternetPage: DetailsInternetPage 1710 DetailsInternetPage: DetailsInternetPage
1715 }; 1711 };
1716 }); 1712 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698