97 + accesskey="&pinTab.accesskey;" |
97 + accesskey="&pinTab.accesskey;" |
98 + oncommand="gBrowser.pinTab(TabContextMenu.contextTab);"/> |
98 + oncommand="gBrowser.pinTab(TabContextMenu.contextTab);"/> |
99 + <menuitem id="context_unpinTab" label="&unpinTab.label;" hidden="true" |
99 + <menuitem id="context_unpinTab" label="&unpinTab.label;" hidden="true" |
100 + accesskey="&unpinTab.accesskey;" |
100 + accesskey="&unpinTab.accesskey;" |
101 + oncommand="gBrowser.unpinTab(TabContextMenu.contextTab);"/> |
101 + oncommand="gBrowser.unpinTab(TabContextMenu.contextTab);"/> |
102 + <menu id="context_tabViewMenu" label="&moveToGroup.label;" |
|
103 + accesskey="&moveToGroup.accesskey;"> |
|
104 + <menupopup id="context_tabViewMenuPopup" |
|
105 + onpopupshowing="if (event.target == this) TabView.moveToGroupPopupShowing(event);"> |
|
106 + <menuseparator id="context_tabViewNamedGroups" hidden="true"/> |
|
107 + <menuitem id="context_tabViewNewGroup" label="&moveToNewGroup.label;" |
|
108 + oncommand="TabView.moveTabTo(TabContextMenu.contextTab, null);"/> |
|
109 + </menupopup> |
|
110 + </menu> |
|
111 + <menuitem id="context_openTabInWindow" label="&moveToNewWindow.label;" |
102 + <menuitem id="context_openTabInWindow" label="&moveToNewWindow.label;" |
112 + accesskey="&moveToNewWindow.accesskey;" |
103 + accesskey="&moveToNewWindow.accesskey;" |
113 + tbattr="tabbrowser-multiple" |
104 + tbattr="tabbrowser-multiple" |
114 + oncommand="gBrowser.replaceTabWithWindow(TabContextMenu.contextTab);"/> |
105 + oncommand="gBrowser.replaceTabWithWindow(TabContextMenu.contextTab);"/> |
115 +#ifdef E10S_TESTING_ONLY |
106 +#ifdef E10S_TESTING_ONLY |
125 + <menuitem id="context_bookmarkAllTabs" |
116 + <menuitem id="context_bookmarkAllTabs" |
126 + label="&bookmarkAllTabs.label;" |
117 + label="&bookmarkAllTabs.label;" |
127 + accesskey="&bookmarkAllTabs.accesskey;" |
118 + accesskey="&bookmarkAllTabs.accesskey;" |
128 + command="Browser:BookmarkAllTabs"/> |
119 + command="Browser:BookmarkAllTabs"/> |
129 + <menuitem id="context_closeTabsToTheEnd" label="&closeTabsToTheEnd.label;" accesskey="&closeTabsToTheEnd.accesskey;" |
120 + <menuitem id="context_closeTabsToTheEnd" label="&closeTabsToTheEnd.label;" accesskey="&closeTabsToTheEnd.accesskey;" |
130 + oncommand="gBrowser.removeTabsToTheEndFrom(TabContextMenu.contextTab);"/> |
121 + oncommand="gBrowser.removeTabsToTheEndFrom(TabContextMenu.contextTab, {animate: true});"/> |
131 + <menuitem id="context_closeOtherTabs" label="&closeOtherTabs.label;" accesskey="&closeOtherTabs.accesskey;" |
122 + <menuitem id="context_closeOtherTabs" label="&closeOtherTabs.label;" accesskey="&closeOtherTabs.accesskey;" |
132 + oncommand="gBrowser.removeAllTabsBut(TabContextMenu.contextTab);"/> |
123 + oncommand="gBrowser.removeAllTabsBut(TabContextMenu.contextTab);"/> |
133 + <menuseparator/> |
124 + <menuseparator/> |
134 + <menuitem id="context_undoCloseTab" |
125 + <menuitem id="context_undoCloseTab" |
135 + label="&undoCloseTab.label;" |
126 + label="&undoCloseTab.label;" |
267 + consumeoutsideclicks="false" |
258 + consumeoutsideclicks="false" |
268 + mousethrough="always"> |
259 + mousethrough="always"> |
269 + <box id="UITourHighlight"></box> |
260 + <box id="UITourHighlight"></box> |
270 + </panel> |
261 + </panel> |
271 + |
262 + |
272 + <panel id="abouthome-search-panel" orient="vertical" type="arrow" hidden="true" |
|
273 + onclick="this.hidePopup()"> |
|
274 + <hbox id="abouthome-search-panel-manage" |
|
275 + onclick="openPreferences('paneSearch')"> |
|
276 + <label>&changeSearchSettings.button;</label> |
|
277 + </hbox> |
|
278 + </panel> |
|
279 + |
|
280 + <panel id="social-share-panel" |
263 + <panel id="social-share-panel" |
281 + class="social-panel" |
264 + class="social-panel" |
282 + type="arrow" |
265 + type="arrow" |
283 + orient="vertical" |
266 + orient="vertical" |
284 + onpopupshowing="SocialShare.onShowing()" |
267 + onpopupshowing="SocialShare.onShowing()" |
324 + <panel id="loop-panel" |
307 + <panel id="loop-panel" |
325 + class="loop-panel social-panel" |
308 + class="loop-panel social-panel" |
326 + type="arrow" |
309 + type="arrow" |
327 + orient="horizontal" |
310 + orient="horizontal" |
328 + hidden="true"/> |
311 + hidden="true"/> |
329 + |
|
330 + <menupopup id="processHangOptions" |
|
331 + onpopupshowing="ProcessHangMonitor.refreshMenu(window);"> |
|
332 + <menuitem id="processHangTerminateScript" |
|
333 + oncommand="ProcessHangMonitor.terminateScript(window)" |
|
334 + accesskey="&processHang.terminateScript.accessKey;" |
|
335 + label="&processHang.terminateScript.label;"/> |
|
336 + <menuitem id="processHangDebugScript" |
|
337 + oncommand="ProcessHangMonitor.debugScript(window)" |
|
338 + accesskey="&processHang.debugScript.accessKey;" |
|
339 + label="&processHang.debugScript.label;"/> |
|
340 + <menuitem id="processHangTerminatePlugin" |
|
341 + oncommand="ProcessHangMonitor.terminatePlugin(window)" |
|
342 + accesskey="&processHang.terminatePlugin.accessKey;" |
|
343 + label="&processHang.terminatePlugin.label;"/> |
|
344 + <menuitem id="processHangTerminateProcess" |
|
345 + oncommand="ProcessHangMonitor.terminateProcess(window)" |
|
346 + accesskey="&processHang.terminateProcess.accessKey;" |
|
347 + label="&processHang.terminateProcess.label;"/> |
|
348 + </menupopup> |
|
349 + |
312 + |
350 + <menupopup id="toolbar-context-menu" |
313 + <menupopup id="toolbar-context-menu" |
351 + onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('viewToolbarsMenuSeparator'));"> |
314 + onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('viewToolbarsMenuSeparator'));"> |
352 + <menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)" |
315 + <menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)" |
353 + accesskey="&customizeMenu.moveToPanel.accesskey;" |
316 + accesskey="&customizeMenu.moveToPanel.accesskey;" |
506 + </vbox> |
469 + </vbox> |
507 + </hbox> |
470 + </hbox> |
508 + |
471 + |
509 + <tooltip id="dynamic-shortcut-tooltip" |
472 + <tooltip id="dynamic-shortcut-tooltip" |
510 + onpopupshowing="UpdateDynamicShortcutTooltipText(this);"/> |
473 + onpopupshowing="UpdateDynamicShortcutTooltipText(this);"/> |
511 + |
|
512 + <menupopup id="emeNotificationsPopup"> |
|
513 + <menuitem id="emeNotificationsNotNow" |
|
514 + label="&emeNotificationsNotNow.label;" |
|
515 + acceskey="&emeNotificationsNotNow.accesskey;" |
|
516 + oncommand="gEMEHandler.onNotNow(this);"/> |
|
517 + <menuitem id="emeNotificationsDontAskAgain" |
|
518 + label="&emeNotificationsDontAskAgain.label;" |
|
519 + acceskey="&emeNotificationsDontAskAgain.accesskey;" |
|
520 + oncommand="gEMEHandler.onDontAskAgain(this);"/> |
|
521 + </menupopup> |
|
522 + </popupset> |
474 + </popupset> |
523 + |
475 + |
524 +#ifdef CAN_DRAW_IN_TITLEBAR |
476 +#ifdef CAN_DRAW_IN_TITLEBAR |
525 +<vbox id="titlebar"> |
477 +<vbox id="titlebar"> |
526 + <hbox id="titlebar-content"> |
478 + <hbox id="titlebar-content"> |
624 + label="&listAllTabs.label;" |
576 + label="&listAllTabs.label;" |
625 + tooltiptext="&listAllTabs.label;" |
577 + tooltiptext="&listAllTabs.label;" |
626 + removable="false"> |
578 + removable="false"> |
627 + <menupopup id="alltabs-popup" |
579 + <menupopup id="alltabs-popup" |
628 + position="after_end"> |
580 + position="after_end"> |
629 + <menuitem id="menu_tabview" |
|
630 + class="menuitem-iconic" |
|
631 + key="key_tabview" |
|
632 + label="&viewTabGroups.label;" |
|
633 + command="Browser:ToggleTabView" |
|
634 + observes="tabviewGroupsNumber"/> |
|
635 + <menuitem id="alltabs_undoCloseTab" |
581 + <menuitem id="alltabs_undoCloseTab" |
636 + class="menuitem-iconic" |
582 + class="menuitem-iconic" |
637 + key="key_undoCloseTab" |
583 + key="key_undoCloseTab" |
638 + label="&undoCloseTab.label;" |
584 + label="&undoCloseTab.label;" |
639 + observes="History:UndoCloseTab"/> |
585 + observes="History:UndoCloseTab"/> |
738 + <image id="webapps-notification-icon" class="notification-anchor-icon" role="button" |
684 + <image id="webapps-notification-icon" class="notification-anchor-icon" role="button" |
739 + aria-label="&urlbar.webappsNotificationAnchor.label;"/> |
685 + aria-label="&urlbar.webappsNotificationAnchor.label;"/> |
740 + <image id="plugins-notification-icon" class="notification-anchor-icon" role="button" |
686 + <image id="plugins-notification-icon" class="notification-anchor-icon" role="button" |
741 + aria-label="&urlbar.pluginsNotificationAnchor.label;"/> |
687 + aria-label="&urlbar.pluginsNotificationAnchor.label;"/> |
742 + <image id="web-notifications-notification-icon" class="notification-anchor-icon" role="button" |
688 + <image id="web-notifications-notification-icon" class="notification-anchor-icon" role="button" |
743 + aria-label="&urlbar.webNotsNotificationAnchor.label;"/> |
689 + aria-label="&urlbar.webNotsNotificationAnchor3.label;"/> |
744 + <image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon" role="button" |
690 + <image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon" role="button" |
745 + aria-label="&urlbar.webRTCShareDevicesNotificationAnchor.label;"/> |
691 + aria-label="&urlbar.webRTCShareDevicesNotificationAnchor.label;"/> |
746 + <image id="webRTC-sharingDevices-notification-icon" class="notification-anchor-icon" role="button" |
692 + <image id="webRTC-sharingDevices-notification-icon" class="notification-anchor-icon" role="button" |
747 + aria-label="&urlbar.webRTCSharingDevicesNotificationAnchor.label;"/> |
693 + aria-label="&urlbar.webRTCSharingDevicesNotificationAnchor.label;"/> |
748 + <image id="webRTC-shareMicrophone-notification-icon" class="notification-anchor-icon" role="button" |
694 + <image id="webRTC-shareMicrophone-notification-icon" class="notification-anchor-icon" role="button" |
772 + align="center" |
718 + align="center" |
773 + aria-label="&urlbar.viewSiteInfo.label;" |
719 + aria-label="&urlbar.viewSiteInfo.label;" |
774 + onclick="gIdentityHandler.handleIdentityButtonEvent(event);" |
720 + onclick="gIdentityHandler.handleIdentityButtonEvent(event);" |
775 + onkeypress="gIdentityHandler.handleIdentityButtonEvent(event);" |
721 + onkeypress="gIdentityHandler.handleIdentityButtonEvent(event);" |
776 + ondragstart="gIdentityHandler.onDragStart(event);"> |
722 + ondragstart="gIdentityHandler.onDragStart(event);"> |
777 + <hbox id="identity-icons" |
723 + <image id="identity-icon" |
778 + consumeanchor="identity-box"> |
724 + consumeanchor="identity-box" |
779 + <image id="tracking-protection-icon"/> |
725 + onclick="PageProxyClickHandler(event);"/> |
780 + <image id="page-proxy-favicon" |
726 + <image id="tracking-protection-icon"/> |
781 + onclick="PageProxyClickHandler(event);" |
727 + <image id="connection-icon"/> |
782 + pageproxystate="invalid"/> |
|
783 + </hbox> |
|
784 + <hbox id="identity-icon-labels"> |
728 + <hbox id="identity-icon-labels"> |
785 + <label id="identity-icon-label" class="plain" flex="1"/> |
729 + <label id="identity-icon-label" class="plain" flex="1"/> |
786 + <label id="identity-icon-country-label" class="plain"/> |
730 + <label id="identity-icon-country-label" class="plain"/> |
787 + </hbox> |
731 + </hbox> |
788 + </box> |
732 + </box> |
1089 + <toolbarbutton id="fullscreen-button" class="toolbarbutton-1 chromeclass-toolbar-additional" |
1033 + <toolbarbutton id="fullscreen-button" class="toolbarbutton-1 chromeclass-toolbar-additional" |
1090 + observes="View:FullScreen" |
1034 + observes="View:FullScreen" |
1091 + type="checkbox" |
1035 + type="checkbox" |
1092 + label="&fullScreenCmd.label;" |
1036 + label="&fullScreenCmd.label;" |
1093 + tooltip="dynamic-shortcut-tooltip"/> |
1037 + tooltip="dynamic-shortcut-tooltip"/> |
1094 + |
|
1095 +#ifdef MOZ_SERVICES_SYNC |
|
1096 + <toolbarbutton id="sync-button" |
|
1097 + class="toolbarbutton-1 chromeclass-toolbar-additional" |
|
1098 + label="&syncToolbarButton.label;" |
|
1099 + oncommand="gSyncUI.handleToolbarButton()"/> |
|
1100 +#endif |
|
1101 + |
|
1102 + <toolbarbutton id="tabview-button" class="toolbarbutton-1 chromeclass-toolbar-additional" |
|
1103 + label="&tabGroupsButton.label;" |
|
1104 + command="Browser:ToggleTabView" |
|
1105 + tooltip="dynamic-shortcut-tooltip" |
|
1106 + observes="tabviewGroupsNumber"/> |
|
1107 + </toolbarpalette> |
1038 + </toolbarpalette> |
1108 + </toolbox> |
1039 + </toolbox> |
1109 + |
1040 + |
1110 + <hbox id="fullscr-toggler" hidden="true"/> |
1041 + <hbox id="fullscr-toggler" hidden="true"/> |
1111 + |
1042 + |
1257 + |
1188 + |
1258 +</window> |
1189 +</window> |
1259 diff --git a/browser/base/jar.mn b/browser/base/jar.mn |
1190 diff --git a/browser/base/jar.mn b/browser/base/jar.mn |
1260 --- a/browser/base/jar.mn |
1191 --- a/browser/base/jar.mn |
1261 +++ b/browser/base/jar.mn |
1192 +++ b/browser/base/jar.mn |
1262 @@ -70,16 +70,18 @@ browser.jar: |
1193 @@ -71,16 +71,18 @@ browser.jar: |
1263 content/browser/aboutSocialError.xhtml (content/aboutSocialError.xhtml) |
|
1264 content/browser/aboutProviderDirectory.xhtml (content/aboutProviderDirectory.xhtml) |
|
1265 content/browser/aboutTabCrashed.css (content/aboutTabCrashed.css) |
1194 content/browser/aboutTabCrashed.css (content/aboutTabCrashed.css) |
1266 content/browser/aboutTabCrashed.js (content/aboutTabCrashed.js) |
1195 content/browser/aboutTabCrashed.js (content/aboutTabCrashed.js) |
1267 content/browser/aboutTabCrashed.xhtml (content/aboutTabCrashed.xhtml) |
1196 content/browser/aboutTabCrashed.xhtml (content/aboutTabCrashed.xhtml) |
|
1197 * content/browser/aboutTabGroupsMigration.xhtml (content/aboutTabGroupsMigration.xhtml) |
|
1198 content/browser/aboutTabGroupsMigration.js (content/aboutTabGroupsMigration.js) |
1268 * content/browser/browser.css (content/browser.css) |
1199 * content/browser/browser.css (content/browser.css) |
1269 * content/browser/browser.js (content/browser.js) |
1200 content/browser/browser.js (content/browser.js) |
1270 * content/browser/browser.xul (content/browser.xul) |
1201 * content/browser/browser.xul (content/browser.xul) |
1271 +* content/browser/browser-kde.xul (content/browser-kde.xul) |
1202 +* content/browser/browser-kde.xul (content/browser-kde.xul) |
1272 +% override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde |
1203 +% override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde |
1273 * content/browser/browser-tabPreviews.xml (content/browser-tabPreviews.xml) |
1204 content/browser/browser-addons.js (content/browser-addons.js) |
1274 * content/browser/chatWindow.xul (content/chatWindow.xul) |
1205 content/browser/browser-ctrlTab.js (content/browser-ctrlTab.js) |
1275 content/browser/tab-content.js (content/tab-content.js) |
1206 content/browser/browser-customization.js (content/browser-customization.js) |
1276 content/browser/content.js (content/content.js) |
1207 content/browser/browser-data-submission-info-bar.js (content/browser-data-submission-info-bar.js) |
1277 content/browser/social-content.js (content/social-content.js) |
1208 content/browser/browser-devedition.js (content/browser-devedition.js) |
1278 content/browser/defaultthemes/1.footer.jpg (content/defaultthemes/1.footer.jpg) |
1209 content/browser/browser-eme.js (content/browser-eme.js) |
1279 content/browser/defaultthemes/1.header.jpg (content/defaultthemes/1.header.jpg) |
1210 content/browser/browser-feeds.js (content/browser-feeds.js) |
1280 content/browser/defaultthemes/1.icon.jpg (content/defaultthemes/1.icon.jpg) |
1211 content/browser/browser-fullScreen.js (content/browser-fullScreen.js) |
1281 diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp |
1212 diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp |
1282 --- a/browser/components/build/nsModule.cpp |
1213 --- a/browser/components/build/nsModule.cpp |
1283 +++ b/browser/components/build/nsModule.cpp |
1214 +++ b/browser/components/build/nsModule.cpp |
1284 @@ -8,17 +8,17 @@ |
1215 @@ -8,17 +8,17 @@ |
1285 #include "nsBrowserCompsCID.h" |
1216 #include "nsBrowserCompsCID.h" |
1294 +#include "nsUnixShellService.h" |
1225 +#include "nsUnixShellService.h" |
1295 #endif |
1226 #endif |
1296 |
1227 |
1297 #if defined(XP_WIN) |
1228 #if defined(XP_WIN) |
1298 #include "nsIEHistoryEnumerator.h" |
1229 #include "nsIEHistoryEnumerator.h" |
1299 #include "nsEdgeReadingListExtractor.h" |
|
1300 #endif |
1230 #endif |
1301 |
1231 |
1302 #include "rdf.h" |
1232 #include "rdf.h" |
1303 @@ -32,18 +32,16 @@ using namespace mozilla::browser; |
1233 #include "nsFeedSniffer.h" |
|
1234 @@ -31,18 +31,16 @@ using namespace mozilla::browser; |
1304 |
1235 |
1305 ///////////////////////////////////////////////////////////////////////////// |
1236 ///////////////////////////////////////////////////////////////////////////// |
1306 |
1237 |
1307 NS_GENERIC_FACTORY_CONSTRUCTOR(DirectoryProvider) |
1238 NS_GENERIC_FACTORY_CONSTRUCTOR(DirectoryProvider) |
1308 #if defined(XP_WIN) |
1239 #if defined(XP_WIN) |
1313 -NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init) |
1244 -NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init) |
1314 #endif |
1245 #endif |
1315 |
1246 |
1316 #if defined(XP_WIN) |
1247 #if defined(XP_WIN) |
1317 NS_GENERIC_FACTORY_CONSTRUCTOR(nsIEHistoryEnumerator) |
1248 NS_GENERIC_FACTORY_CONSTRUCTOR(nsIEHistoryEnumerator) |
1318 NS_GENERIC_FACTORY_CONSTRUCTOR(nsEdgeReadingListExtractor) |
|
1319 #endif |
1249 #endif |
1320 |
1250 |
1321 NS_GENERIC_FACTORY_CONSTRUCTOR(nsFeedSniffer) |
1251 NS_GENERIC_FACTORY_CONSTRUCTOR(nsFeedSniffer) |
1322 @@ -63,17 +61,17 @@ NS_DEFINE_NAMED_CID(NS_EDGEREADINGLISTEX |
1252 |
|
1253 @@ -60,17 +58,17 @@ NS_DEFINE_NAMED_CID(NS_WINIEHISTORYENUME |
1323 NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID); |
1254 NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID); |
1324 #endif |
1255 #endif |
1325 |
1256 |
1326 static const mozilla::Module::CIDEntry kBrowserCIDs[] = { |
1257 static const mozilla::Module::CIDEntry kBrowserCIDs[] = { |
1327 { &kNS_BROWSERDIRECTORYPROVIDER_CID, false, nullptr, DirectoryProviderConstructor }, |
1258 { &kNS_BROWSERDIRECTORYPROVIDER_CID, false, nullptr, DirectoryProviderConstructor }, |
1333 #endif |
1264 #endif |
1334 { &kNS_FEEDSNIFFER_CID, false, nullptr, nsFeedSnifferConstructor }, |
1265 { &kNS_FEEDSNIFFER_CID, false, nullptr, nsFeedSnifferConstructor }, |
1335 { &kNS_BROWSER_ABOUT_REDIRECTOR_CID, false, nullptr, AboutRedirector::Create }, |
1266 { &kNS_BROWSER_ABOUT_REDIRECTOR_CID, false, nullptr, AboutRedirector::Create }, |
1336 #if defined(XP_WIN) |
1267 #if defined(XP_WIN) |
1337 { &kNS_WINIEHISTORYENUMERATOR_CID, false, nullptr, nsIEHistoryEnumeratorConstructor }, |
1268 { &kNS_WINIEHISTORYENUMERATOR_CID, false, nullptr, nsIEHistoryEnumeratorConstructor }, |
1338 { &kNS_EDGEREADINGLISTEXTRACTOR_CID, false, nullptr, nsEdgeReadingListExtractorConstructor }, |
|
1339 #elif defined(XP_MACOSX) |
1269 #elif defined(XP_MACOSX) |
1340 { &kNS_SHELLSERVICE_CID, false, nullptr, nsMacShellServiceConstructor }, |
1270 { &kNS_SHELLSERVICE_CID, false, nullptr, nsMacShellServiceConstructor }, |
|
1271 #endif |
1341 diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js |
1272 diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js |
1342 --- a/browser/components/preferences/in-content/main.js |
1273 --- a/browser/components/preferences/in-content/main.js |
1343 +++ b/browser/components/preferences/in-content/main.js |
1274 +++ b/browser/components/preferences/in-content/main.js |
1344 @@ -14,16 +14,22 @@ var gMainPane = { |
1275 @@ -18,16 +18,22 @@ var gMainPane = { |
1345 init: function () |
1276 init: function () |
1346 { |
1277 { |
1347 function setEventListener(aId, aEventType, aCallback) |
1278 function setEventListener(aId, aEventType, aCallback) |
1348 { |
1279 { |
1349 document.getElementById(aId) |
1280 document.getElementById(aId) |
1362 // In Windows 8 we launch the control panel since it's the only |
1293 // In Windows 8 we launch the control panel since it's the only |
1363 // way to get all file type association prefs. So we don't know |
1294 // way to get all file type association prefs. So we don't know |
1364 // when the user will select the default. We refresh here periodically |
1295 // when the user will select the default. We refresh here periodically |
1365 // in case the default changes. On other Windows OS's defaults can also |
1296 // in case the default changes. On other Windows OS's defaults can also |
1366 // be set while the prefs are open. |
1297 // be set while the prefs are open. |
1367 @@ -711,16 +717,27 @@ var gMainPane = { |
1298 @@ -720,16 +726,27 @@ var gMainPane = { |
1368 */ |
1299 */ |
1369 setDefaultBrowser: function() |
1300 setDefaultBrowser: function() |
1370 { |
1301 { |
1371 let shellSvc = getShellService(); |
1302 let shellSvc = getShellService(); |
1372 if (!shellSvc) |
1303 if (!shellSvc) |
1416 'nsSetDefaultBrowser.manifest', |
1347 'nsSetDefaultBrowser.manifest', |
1417 diff --git a/browser/components/shell/nsKDEShellService.cpp b/browser/components/shell/nsKDEShellService.cpp |
1348 diff --git a/browser/components/shell/nsKDEShellService.cpp b/browser/components/shell/nsKDEShellService.cpp |
1418 new file mode 100644 |
1349 new file mode 100644 |
1419 --- /dev/null |
1350 --- /dev/null |
1420 +++ b/browser/components/shell/nsKDEShellService.cpp |
1351 +++ b/browser/components/shell/nsKDEShellService.cpp |
1421 @@ -0,0 +1,292 @@ |
1352 @@ -0,0 +1,251 @@ |
1422 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
1353 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
1423 +/* This Source Code Form is subject to the terms of the Mozilla Public |
1354 +/* This Source Code Form is subject to the terms of the Mozilla Public |
1424 + * License, v. 2.0. If a copy of the MPL was not distributed with this |
1355 + * License, v. 2.0. If a copy of the MPL was not distributed with this |
1425 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
1356 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
1426 + |
1357 + |
1494 + |
1425 + |
1495 + paramstr->SetData( aClaimAllTypes ? NS_LITERAL_CSTRING( "ALLTYPES" ) : NS_LITERAL_CSTRING( "NORMAL" )); |
1426 + paramstr->SetData( aClaimAllTypes ? NS_LITERAL_CSTRING( "ALLTYPES" ) : NS_LITERAL_CSTRING( "NORMAL" )); |
1496 + command->AppendElement( paramstr, false ); |
1427 + command->AppendElement( paramstr, false ); |
1497 + |
1428 + |
1498 + return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE; |
1429 + return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE; |
1499 +} |
|
1500 + |
|
1501 +NS_IMETHODIMP |
|
1502 +nsKDEShellService::GetShouldSkipCheckDefaultBrowser(bool* aResult) |
|
1503 +{ |
|
1504 + NS_ENSURE_ARG_POINTER(aResult); |
|
1505 + |
|
1506 + nsresult rv; |
|
1507 + nsCOMPtr<nsIPrefBranch> prefs(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv)); |
|
1508 + if (NS_FAILED(rv)) { |
|
1509 + return rv; |
|
1510 + } |
|
1511 + |
|
1512 + rv = prefs->GetBoolPref(PREF_SKIPDEFAULTBROWSERCHECK, aResult); |
|
1513 + if (NS_FAILED(rv)) { |
|
1514 + return rv; |
|
1515 + } |
|
1516 + if (*aResult) { |
|
1517 + // Only skip the default browser check once. The next attempt in |
|
1518 + // a new session should proceed. |
|
1519 + return prefs->SetBoolPref(PREF_SKIPDEFAULTBROWSERCHECK, false); |
|
1520 + } |
|
1521 + |
|
1522 + int32_t defaultBrowserCheckCount; |
|
1523 + rv = prefs->GetIntPref(PREF_DEFAULTBROWSERCHECKCOUNT, |
|
1524 + &defaultBrowserCheckCount); |
|
1525 + if (NS_FAILED(rv)) { |
|
1526 + return rv; |
|
1527 + } |
|
1528 + if (defaultBrowserCheckCount < 4) { |
|
1529 + *aResult = false; |
|
1530 + return prefs->SetIntPref(PREF_DEFAULTBROWSERCHECKCOUNT, |
|
1531 + defaultBrowserCheckCount + 1); |
|
1532 + } |
|
1533 + |
|
1534 + // Disable the default browser check after three attempts. |
|
1535 + // Don't modify PREF_CHECKDEFAULTBROWSER since that is a |
|
1536 + // user-initiated action and it shouldn't get re-enabled |
|
1537 + // if it has been user disabled. |
|
1538 + *aResult = true; |
|
1539 + return rv; |
|
1540 +} |
1430 +} |
1541 + |
1431 + |
1542 +NS_IMETHODIMP |
1432 +NS_IMETHODIMP |
1543 +nsKDEShellService::GetShouldCheckDefaultBrowser(bool* aResult) |
1433 +nsKDEShellService::GetShouldCheckDefaultBrowser(bool* aResult) |
1544 +{ |
1434 +{ |
1793 + |
1683 + |
1794 +#endif // nsunixshellservice_h____ |
1684 +#endif // nsunixshellservice_h____ |
1795 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in |
1685 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in |
1796 --- a/browser/installer/package-manifest.in |
1686 --- a/browser/installer/package-manifest.in |
1797 +++ b/browser/installer/package-manifest.in |
1687 +++ b/browser/installer/package-manifest.in |
1798 @@ -709,16 +709,17 @@ |
1688 @@ -705,16 +705,17 @@ |
1799 @RESPATH@/defaults/autoconfig/prefcalls.js |
1689 @RESPATH@/defaults/autoconfig/prefcalls.js |
1800 @RESPATH@/browser/defaults/profile/prefs.js |
1690 @RESPATH@/browser/defaults/profile/prefs.js |
1801 @RESPATH@/browser/defaults/permissions |
1691 @RESPATH@/browser/defaults/permissions |
1802 |
1692 |
1803 ; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325) |
1693 ; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325) |