[BASILISK] Port PM Sync Client - Part 2: Basic Integration with glue and preferences

This commit is contained in:
Matt A. Tobin 2019-03-31 18:49:29 -04:00 • committed by Roy Tam
commit 720e453480
12 changed files with 189 additions and 856 deletions

View file

@ -687,6 +687,18 @@ window[chromehidden~="toolbar"] toolbar:not(#nav-bar):not(#TabsToolbar):not(#pri
min-width: 1px;
}
%ifdef MOZ_SERVICES_SYNC
/* Sync notification UI */
#sync-notifications {
-moz-binding: url("chrome://browser/content/sync/notification.xml#notificationbox");
overflow-y: visible !important;
}
#sync-notifications notification {
-moz-binding: url("chrome://browser/content/sync/notification.xml#notification");
}
%endif
/* History Swipe Animation */
#historySwipeAnimationContainer {

View file

@ -107,6 +107,12 @@ XPCOMUtils.defineLazyGetter(this, "PageMenuParent", function() {
return new tmp.PageMenuParent();
});
#ifdef MOZ_SERVICES_SYNC
XPCOMUtils.defineLazyModuleGetter(this, "Weave",
"resource://services-sync/main.js");
#endif
XPCOMUtils.defineLazyGetter(this, "PopupNotifications", function () {
let tmp = {};
Cu.import("resource://gre/modules/PopupNotifications.jsm", tmp);
@ -212,6 +218,10 @@ var gInitialPages = [
"about:logopage"
];
#ifdef MOZ_SERVICES_SYNC
#include browser-syncui.js
#endif
function* browserWindows() {
let windows = Services.wm.getEnumerator("navigator:browser");
while (windows.hasMoreElements())
@ -1312,6 +1322,11 @@ var gBrowserInit = {
if (AppConstants.MOZ_DATA_REPORTING)
gDataNotificationInfoBar.init();
#ifdef MOZ_SERVICES_SYNC
// initialize the sync UI
gSyncUI.init();
#endif
gBrowserThumbnails.init();
gMenuButtonBadgeManager.init();
@ -1604,6 +1619,11 @@ if (AppConstants.platform == "macosx") {
// initialize the private browsing UI
gPrivateBrowsingUI.init();
#ifdef MOZ_SERVICES_SYNC
// initialize the sync UI
gSyncUI.init();
#endif
};
gBrowserInit.nonBrowserWindowShutdown = function() {
@ -3178,12 +3198,14 @@ var PrintPreviewListener = {
this._chromeState.globalNotificationsOpen = !globalNotificationBox.notificationsHidden;
globalNotificationBox.notificationsHidden = true;
#ifdef MOZ_SERVICES_SYNC
this._chromeState.syncNotificationsOpen = false;
var syncNotifications = document.getElementById("sync-notifications");
if (syncNotifications) {
this._chromeState.syncNotificationsOpen = !syncNotifications.notificationsHidden;
syncNotifications.notificationsHidden = true;
}
#endif
},
_showChrome: function () {
if (this._chromeState.notificationsOpen)
@ -3195,8 +3217,10 @@ var PrintPreviewListener = {
if (this._chromeState.globalNotificationsOpen)
document.getElementById("global-notificationbox").notificationsHidden = false;
#ifdef MOZ_SERVICES_SYNC
if (this._chromeState.syncNotificationsOpen)
document.getElementById("sync-notifications").notificationsHidden = false;
#endif
if (this._chromeState.sidebarOpen)
SidebarUI.show(this._sidebarCommand);
@ -6236,9 +6260,11 @@ function checkEmptyPageOrigin(browser = gBrowser.selectedBrowser,
return ssm.isSystemPrincipal(contentPrincipal);
}
#ifdef MOZ_SERVICES_SYNC
function BrowserOpenSyncTabs() {
switchToTabHavingURI("about:sync-tabs", true);
}
#endif
/**
* Format a URL