Closed Bug 526521 Opened 11 years ago Closed 11 years ago

Can't open preferences in SeaMonkey 2.0.1pre

Categories

(Cloud Services :: General, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
1.0 beta3

People

(Reporter: bugzilla.spam2, Assigned: iav)

References

Details

Attachments

(2 files, 9 obsolete files)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6pre) Gecko/20091104 Lightning/1.0pre SeaMonkey/2.0.1pre
Build Identifier: 

With SeaMonkey 2.0.1pre Weave 0.8 preferences can't be opened via "Tools - Weave - Preferences".
Error Console:
Error: gWeaveWin is undefined
Source File: chrome://navigator/content/navigator.xul
Line: 1

Reproducible: Always
Confirm.
Status: UNCONFIRMED → NEW
Ever confirmed: true
It's a copy of past version - from the old times, when it work. Now it's not. But why - I don't understand.
Just for bug linking: predecessor of this bug was bug 484982.
Attached patch Second version (obsolete) — Splinter Review
trying to open preferences error generates:

Error: undefined entity
Source file: chrome://weave/content/preferences/sm-prefs.xul
Line: 11, Column: 5
Source code:
    <treeitem id="weaveItem"
Maybe, option dialog from firefox now can't be inserted into prefpane at all?
Attachment #412651 - Attachment is obsolete: true
Attachment #413029 - Flags: review?
Igor, I'm going to look into this when I have some time but I think you'll probably have to fork the fx-prefs.xul for SeaMonkey.
Attached patch it's work! (obsolete) — Splinter Review
Now weave work on seamonkey, still work on firefox.
I have to rename one overlay all around the weave.
The bad is I have to copy fx-prefs.xul into sm-prefs.xul.
Attachment #413029 - Attachment is obsolete: true
Attachment #413029 - Flags: review?
changes 
-    let pbEnabled = Weave.Svc.Private.privateBrowsingEnabled;
+    let pbEnabled = Weave.Svc.Private && Weave.Svc.Private.privateBrowsingEnabled;

need not only for Seamonkey, but for all products without provate browsing.
Attached patch works (obsolete) — Splinter Review
Attachment #413191 - Attachment is obsolete: true
Attachment #413505 - Attachment description: completely work → works
Attachment #413505 - Flags: review?(edilee)
oops.
not completely. 
trying to connect into existing account from seamonkey with clean profile generates error
Error: gWeavePane.startSignIn is not a function
Source File: chrome://communicator/content/pref/preferences.xul
Line: 1

If profile already work successfully with weave - it work ok.
Please, ignore previous c#10. It was test of a wrong version.
Attached patch corrected to hg:1b30500c2bdf (obsolete) — Splinter Review
Attachment #413505 - Attachment is obsolete: true
Attachment #413625 - Flags: review?(edilee)
Attachment #413505 - Flags: review?(edilee)
Comment on attachment 413625 [details] [diff] [review]
corrected to hg:1b30500c2bdf

diff --git a/source/chrome.manifest.in b/source/chrome.manifest.in
--- a/source/chrome.manifest.in
+++ b/source/chrome.manifest.in
@@ -9,17 +9,17 @@ overlay chrome://browser/content/browser
 # Thunderbird only
 overlay chrome://messenger/content/messenger.xul chrome://weave/content/sync.xul application={3550f703-e582-4d05-9a08-453d09bdfdc6}
 overlay chrome://messenger/content/messenger.xul chrome://weave/content/tb-weave-overlay.xul application={3550f703-e582-4d05-9a08-453d09bdfdc6}
 
 # Seamonkey only
 overlay chrome://navigator/content/navigator.xul chrome://weave/content/sync.xul application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
 overlay chrome://navigator/content/navigator.xul chrome://weave/content/fx-weave-overlay.xul application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
 overlay chrome://messenger/content/messenger.xul chrome://weave/content/sync.xul application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
-
+overlay chrome://communicator/content/pref/preferences.xul chrome://weave/content/preferences/sm-prefs.xul  application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
 
 @unpacked@content weave chrome/content/
 @jar@content weave jar:chrome/sync.jar!/content/
 
 @unpacked@skin weave class/1.0 chrome/skin/
 @jar@skin weave class/1.0 jar:chrome/sync.jar!/skin/
 
 @unpacked@skin weave-platform class/1.0 chrome/skin/win/ os!=Darwin
diff --git a/source/chrome/content/generic-change.xul b/source/chrome/content/generic-change.xul
old mode 100755
new mode 100644
diff --git a/source/chrome/content/options.xul b/source/chrome/content/options.xul
--- a/source/chrome/content/options.xul
+++ b/source/chrome/content/options.xul
@@ -27,16 +27,16 @@
       file = "chrome://browser/content/utilityOverlay.js";
       func = "openPreferences";
       break;
   }
 
   if (file != null && func != null) {
     let util = {};
     Weave.Svc.Script.loadSubScript(file, util);
-    util[func]("paneWeaveServices");
+    util[func]("waveServices_pane");
   }
 
   // Always prevent this "dialog" from showing
   window.close();
   ]]></script>
 
 </box>
diff --git a/source/chrome/content/preferences/fx-prefs.js b/source/chrome/content/preferences/fx-prefs.js
--- a/source/chrome/content/preferences/fx-prefs.js
+++ b/source/chrome/content/preferences/fx-prefs.js
@@ -135,17 +135,17 @@ let gWeavePane = {
     this.checkFields();
   },
   
   updateSetupButtons: function () {
     let elems = ["weaveUsername", "weaveUsernameLabel", 
                  "weavePassword", "weavePasswordLabel",
                  "weaveServerURL", "weaveServerURLLabel", 
                  "signInButton", "createAccountButton", "serverType"]
-    let pbEnabled = Weave.Svc.Private.privateBrowsingEnabled;
+    let pbEnabled = Weave.Svc.Private && Weave.Svc.Private.privateBrowsingEnabled;
     for (let i = 0;i < elems.length;i++)
       document.getElementById(elems[i]).disabled = pbEnabled;
   },
 
   handleChoice: function (event) {
     let desc = 0;
     switch (event.target.id) {
       case "wipeServer":
@@ -161,17 +161,17 @@ let gWeavePane = {
     document.getElementById("chosenActionDeck").selectedIndex = desc;
   },
 
   updateConnectButton: function () {
     let str = Weave.Service.isLoggedIn ? this.bundle.getString("disconnect.label")
                                        : this.bundle.getString("connect.label");
     document.getElementById("connectButton").label = str;
     let notReady = Weave.Status.service == Weave.STATUS_DELAYED ? true : false;
-    let pbEnabled = Weave.Svc.Private.privateBrowsingEnabled;
+    let pbEnabled = Weave.Svc.Private && Weave.Svc.Private.privateBrowsingEnabled;
     document.getElementById("connectButton").disabled = notReady || pbEnabled;
   },
 
   handleConnectCommand: function () {
     Weave.Service.isLoggedIn ? Weave.Service.logout() : Weave.Service.login();
   },
   
   startOver: function () {
@@ -243,18 +243,18 @@ let gWeavePane = {
     }
     return true;
   },
 
 
   handleExpanderClick: function () {
     // ok, this is pretty evil, and likely fragile if the prefwindow 
     // binding changes, but that won't happen in 3.6 *fingers crossed*
-    let prefwindow = document.getElementById("BrowserPreferences");
-    let pane = document.getElementById("paneWeaveServices");
+    let prefwindow = document.documentElement;
+    let pane = document.getElementById("waveServices_pane");
     if (prefwindow._shouldAnimate)
       prefwindow._currentHeight = pane.contentHeight;
 
     let expander = document.getElementById("manageAccountExpander");
     let expand = expander.className == "expander-down";
     expander.className = 
        expand ? "expander-up" : "expander-down";
     document.getElementById("manageAccountControls").hidden = !expand;
diff --git a/source/chrome/content/preferences/fx-prefs.xul b/source/chrome/content/preferences/fx-prefs.xul
--- a/source/chrome/content/preferences/fx-prefs.xul
+++ b/source/chrome/content/preferences/fx-prefs.xul
@@ -9,28 +9,32 @@
 <!DOCTYPE window SYSTEM "chrome://weave/locale/fx-prefs.dtd">
 
 <overlay id="weaveFxPrefsOverlay"
          xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
          xmlns:html="http://www.w3.org/1999/xhtml">
 
   <script type="application/x-javascript"
           src="chrome://weave/content/load-weave.js"/>
-  <script type="application/javascript" 
+  <script type="application/javascript"
           src="chrome://weave/content/preferences/fx-prefs.js"/>
 
   <prefwindow id="BrowserPreferences">
-    <stringbundle id="weavePrefStrings"
-                  src="chrome://weave/locale/fx-prefs.properties"/>
+    <prefpane id="waveServices_pane" />
+  </prefwindow>
 
-    <prefpane id="paneWeaveServices" 
-              label="&weavePrefPane.label;" 
+    <prefpane id="waveServices_pane"
+              label="&weavePrefPane.label;"
               image="chrome://weave/skin/sync-32x32.png"
-              helpTopic="prefs-weave" 
+              helpTopic="prefs-weave"
               onpaneload="gWeavePane.initWeavePrefs()">
+
+       <stringbundle id="weavePrefStrings"
+                     src="chrome://weave/locale/fx-prefs.properties"/>
+
       <preferences>
         <preference id="engine.bookmarks" name="extensions.weave.engine.bookmarks" type="bool"/>
         <preference id="engine.history"   name="extensions.weave.engine.history"   type="bool"/>
         <preference id="engine.tabs"      name="extensions.weave.engine.tabs"      type="bool"/>
         <preference id="engine.prefs"     name="extensions.weave.engine.prefs"     type="bool"/>
         <preference id="engine.passwords" name="extensions.weave.engine.passwords" type="bool"/>
       </preferences>
       <deck id="weavePrefsDeck">
@@ -51,35 +55,35 @@
               </columns>
               <rows>
                 <row id="serverRow" hidden="true" align="center">
                   <label id="weaveServerURLLabel"
                          value="&signIn.serverURL.label;"
                          control="weaveServerURL"/>
                   <textbox id="weaveServerURL"
                            onkeypress="gWeavePane.handleKeypress(event)"
-                           onkeyup="gWeavePane.checkFields(event)" 
+                           onkeyup="gWeavePane.checkFields(event)"
                            onchange="gWeavePane.checkFields(event)"/>
                 </row>
                 <row id="usernameRow" align="center">
-                  <label id="weaveUsernameLabel" 
-                         value="&signIn.username.label;" 
+                  <label id="weaveUsernameLabel"
+                         value="&signIn.username.label;"
                          control="weaveUsername"/>
-                  <textbox id="weaveUsername" 
+                  <textbox id="weaveUsername"
                            onkeypress="gWeavePane.handleKeypress(event)"
                            onkeyup="gWeavePane.checkFields(event)"
                            onchange="gWeavePane.checkFields(event)"/>
                 </row>
                 <row id="usernameFeedbackRow" hidden="true">
                   <spacer/>
                   <label value=""/>
                 </row>
                 <row id="passwordRow" align="center">
                   <label id="weavePasswordLabel"
-                         value="&signIn.password.label;" 
+                         value="&signIn.password.label;"
                          control="weavePassword"/>
                   <textbox id="weavePassword"
                            type="password"
                            onkeypress="gWeavePane.handleKeypress(event)"
                            onkeyup="gWeavePane.checkFields(event)"
                            onchange="gWeavePane.checkFields(event)"/>
                 </row>
                 <row id="passwordFeedbackRow" hidden="true">
@@ -103,47 +107,47 @@
                 </row>
               </rows>
             </grid>
           </groupbox>
           <spacer flex="1"/>
           <button id="createAccountButton"
                   label="&createAccountButton.label;"
                   accesskey="&createAccountButton.accesskey;"
-                  align="center" 
+                  align="center"
                   oncommand="gWeavePane.startAccountSetup();"/>
           <spacer flex="3"/>
         </vbox>
         <vbox id="passphraseEntry">
           <groupbox>
             <caption label="&passphraseGroupbox.label;"/>
             <description>&passphraseDesc3.label;</description>
             <textbox type="password" id="weavePassphrase"
                      onkeypress="gWeavePane.handleKeypress(event)"
-                     onkeyup="gWeavePane.checkFields(event)" 
+                     onkeyup="gWeavePane.checkFields(event)"
                      onchange="gWeavePane.checkFields(event)"/>
             <hbox align="left" id="passphraseFeedbackBox">
               <hbox id="passphrase-throbber" hidden="true">
                 <image src="chrome://global/skin/icons/loading_16.png"/>
                 <label value="&verifying.label;"/>
               </hbox>
               <label value=""/>
             </hbox>
             <vbox class="small" id="passphraseHelpBox" hidden="true">
               <description class="small">&passphraseHelp.label;</description>
               <label class="text-link small" value="&resetPassphrase.label;"
                      onclick="gWeavePane.resetPassphrase(); return false;"/>
             </vbox>
             <hbox align="right">
-              <button label="&goBack.label;" 
+              <button label="&goBack.label;"
                       oncommand="gWeavePane.goBack()"/>
               <button id="continueButton"
                       onkeypress="gWeavePane.handleKeypress(event)"
                       disabled="true"
-                      label="&continue.label;" 
+                      label="&continue.label;"
                       oncommand="gWeavePane.doSignIn();"/>
             </hbox>
           </groupbox>
         </vbox>
         <vbox id="mergeOptionsChoice">
           <groupbox align="start" orient="horizontal">
             <caption label="&choice.caption.label;"/>
             <button id="doMerge" class="mergeChoiceButton" oncommand="gWeavePane.handleChoice(event)" align="top">
@@ -209,17 +213,17 @@
                 </description>
                 <separator/>
                 <description class="warning">
                   &confirm.client.warning.label;
                 </description>
                 <separator/>
                 <hbox align="end" pack="end">
                   <button label="&goBack.label;" oncommand="gWeavePane.goBack()"/>
-                  <button label="&confirm.client.start.label;" 
+                  <button label="&confirm.client.start.label;"
                           oncommand="gWeavePane.setupInitialSync('wipeClient')"/>
                 </hbox>
               </vbox>
               <vbox>
                 <hbox pack="start" align="baseline">
                   <image src="chrome://weave/skin/sync-wipeServer.png"/>
                 </hbox>
                 <separator/>
@@ -246,34 +250,34 @@
               <rows>
                 <row align="center">
                   <label value="&connectedAs.label;" control="weaveUser"/>
                   <textbox id="currentUser" readonly="true">
                     <image src="chrome://mozapps/skin/profile/profileicon.png"/>
                   </textbox>
                   <button id="connectButton" oncommand="gWeavePane.handleConnectCommand()"
                           disabled="true"/>
-                  <image id="connect-throbber" 
+                  <image id="connect-throbber"
                          src="chrome://global/skin/icons/loading_16.png"
                          hidden="true"/>
                 </row>
                 <row id="loginFeedbackRow" hidden="true">
                   <spacer/>
                   <label value=""/>
                 </row>
                 <row id="manageAccountControls" hidden="true">
                   <spacer/>
                     <vbox class="indent">
-                      <label class="text-link" 
+                      <label class="text-link"
                              onclick="gWeavePane.changePassword(); return false;"
                              value="&changePassword.label;"/>
-                      <label class="text-link" 
+                      <label class="text-link"
                              onclick="gWeavePane.changePassphrase(); return false;"
                              value="&changePassphrase.label;"/>
-                      <label class="text-link" 
+                      <label class="text-link"
                              onclick="gWeavePane.startOver(); return false;"
                              value="&startOver.label;"/>
                     </vbox>
                   <spacer/>
                 </row>
                 <row>
                   <spacer/>
                   <button id="manageAccountExpander"
@@ -315,10 +319,9 @@
                           preference="engine.tabs"/>
               </vbox>
             </deck>
             <separator/>
           </groupbox>
         </vbox>
       </deck>
     </prefpane>
-  </prefwindow>
 </overlay>
diff --git a/source/chrome/content/preferences/sm-prefs.xul b/source/chrome/content/preferences/sm-prefs.xul
new file mode 100644
--- /dev/null
+++ b/source/chrome/content/preferences/sm-prefs.xul
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<?xul-overlay href="chrome://weave/content/preferences/fx-prefs.xul"?>
+<?xml-stylesheet href="chrome://weave/content/preferences.css"
+                 type="text/css"?>
+<!DOCTYPE overlay SYSTEM "chrome://weave/locale/sm-prefs.dtd">
+
+
+<overlay id="weave_preftree_overlay"
+         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+  <treechildren id="prefsPanelChildren">
+    <treeitem id="weaveServicesItem"
+              label="&weavePrefTreeItem.label;"
+              prefpane="waveServices_pane" />
+              
+  </treechildren>
+
+  <prefwindow id="prefDialog">
+    <prefpane id="waveServices_pane" label="&weavePrefTreeItem.label;"/>
+  </prefwindow>
+</overlay>
diff --git a/source/chrome/content/sync.js b/source/chrome/content/sync.js
old mode 100755
new mode 100644
--- a/source/chrome/content/sync.js
+++ b/source/chrome/content/sync.js
@@ -75,17 +75,17 @@ function WeaveWindow() {
       Weave.WEAVE_VERSION;
     setTimeout(function() { window.openUILinkIn(url, "tab"); }, 500);
     Weave.Svc.Prefs.set("lastversion", Weave.WEAVE_VERSION);
   }
 
   // TODO: This is a fix for the general case of bug 436936.  It will
   // not support marginal cases such as when a new browser window is
   // opened in the middle of signing-in or syncing.
-  if (Weave.Svc.Private.privateBrowsingEnabled)
+  if (Weave.Svc.Private && Weave.Svc.Private.privateBrowsingEnabled)
     this._setStatus("privateBrowsing");
   else if (Weave.Service.isLoggedIn)
     this.onLoginFinish();
   else
     this._setStatus("offline");
 
   Weave.Service.onWindowOpened();
 }
@@ -250,17 +250,30 @@ WeaveWindow.prototype = {
     let engine = subject == "clients" ? Weave.Clients : Weave.Engines.get(subject);
     let engineName = engine.displayName;
     let label = this._stringBundle.getFormattedString("syncing.label", [engineName]);
     let button = document.getElementById("sync-menu-button");
     button.setAttribute("label", label);
   },
 
   openPrefs: function openPrefs() {
-    openPreferences("paneWeaveServices");
+   let pane = "waveServices_pane";
+    switch (Weave.Svc.AppInfo.name) {
+      case "Firefox":
+        openPreferences(pane);
+        break;
+
+      case "SeaMonkey":
+        goPreferences(pane);
+        break;
+
+      case "Thunderbird":
+        openOptionsDialog(pane);
+        break;
+    }
   },
 
   doLogin: function WeaveWin_doLogout(event) {
     Weave.Service.login();
   },
 
   doLogout: function WeaveWin_doLogout(event) {
     Weave.Service.logout();
@@ -286,17 +299,17 @@ WeaveWindow.prototype = {
     let loginItem = document.getElementById("sync-loginitem");
     let logoutItem = document.getElementById("sync-logoutitem");
     let syncItem = document.getElementById("sync-syncnowitem");
 
     // Don't allow "login" to be selected in some cases
     let offline = Weave.Svc.IO.offline;
     let delayed = Weave.Status.service == Weave.STATUS_DELAYED;
     let locked = Weave.Service.locked;
-    let pbEnabled = Weave.Svc.Private.privateBrowsingEnabled;
+    let pbEnabled = Weave.Svc.Private && Weave.Svc.Private.privateBrowsingEnabled;
     let noUser = Weave.Service.username == "";
     let notReady = offline || delayed || locked || pbEnabled || noUser;
     loginItem.setAttribute("disabled", notReady);
     logoutItem.setAttribute("disabled", notReady);
 
     // Don't allow "sync now" to be selected in some cases
     let loggedIn = Weave.Service.isLoggedIn;
     let noNode = Weave.Status.sync == Weave.NO_SYNC_NODE_FOUND;
@@ -309,17 +322,17 @@ WeaveWindow.prototype = {
   },
 
   onNotificationAdded: function WeaveWin_onNotificationAdded() {
     document.getElementById("sync-notifications-button").hidden = false;
     let notifications = Weave.Notifications.notifications;
     let priority = 0;
     for (let i = 0;i < notifications.length;i++)
       priority = Math.max(notifications[i].priority, priority);
-      
+
     let image = priority >= Weave.Notifications.PRIORITY_WARNING ? 
                 "chrome://global/skin/icons/warning-16.png" : 
                 "chrome://global/skin/icons/information-16.png";
     document.getElementById("sync-notifications-button").image = image;
   },
 
   onNotificationRemoved: function WeaveWin_onNotificationRemoved() {
     if (Weave.Notifications.notifications.length == 0)
diff --git a/source/chrome/locale/en-US/sm-prefs.dtd b/source/chrome/locale/en-US/sm-prefs.dtd
new file mode 100644
--- /dev/null
+++ b/source/chrome/locale/en-US/sm-prefs.dtd
@@ -0,0 +1,1 @@
+<!ENTITY weavePrefTreeItem.label        "Weave sync">
diff --git a/source/modules/util.js b/source/modules/util.js
--- a/source/modules/util.js
+++ b/source/modules/util.js
@@ -786,13 +786,14 @@ Svc.Prefs = new Preferences(PREFS_BRANCH
  ["Private", "@mozilla.org/privatebrowsing;1", "nsIPrivateBrowsingService"],
  ["Profiles", "@mozilla.org/toolkit/profile-service;1", "nsIToolkitProfileService"],
  ["Prompt", "@mozilla.org/embedcomp/prompt-service;1", "nsIPromptService"],
  ["Script", "@mozilla.org/moz/jssubscript-loader;1", "mozIJSSubScriptLoader"],
  ["SysInfo", "@mozilla.org/system-info;1", "nsIPropertyBag2"],
  ["Version", "@mozilla.org/xpcom/version-comparator;1", "nsIVersionComparator"],
  ["WinMediator", "@mozilla.org/appshell/window-mediator;1", "nsIWindowMediator"],
  ["WinWatcher", "@mozilla.org/embedcomp/window-watcher;1", "nsIWindowWatcher"],
-].forEach(function(lazy) Utils.lazySvc(Svc, lazy[0], lazy[1], Ci[lazy[2]]));
+].forEach(function(lazy) { if (lazy[1] in Cc)
+                             Utils.lazySvc(Svc, lazy[0], lazy[1], Ci[lazy[2]])});
 
 let Str = {};
 ["engines", "errors", "sync"]
   .forEach(function(lazy) Utils.lazy2(Str, lazy, Utils.lazyStrings(lazy)));
Sorry, I just lost in bugzilla's UI. It should be a 1 line change in patch.
really sorry for bugspam
Attachment #413625 - Attachment is obsolete: true
Attachment #413625 - Flags: review?(edilee)
Attachment #413637 - Flags: review?(edilee)
Attached patch whitespace-related hunks removed (obsolete) — Splinter Review
Removed  { if (lazy[1] in Cc) checking and whitespace-related things
Attachment #413637 - Attachment is obsolete: true
Attachment #413710 - Flags: review?(edilee)
Attachment #413637 - Flags: review?(edilee)
Comment on attachment 413710 [details] [diff] [review]
whitespace-related hunks removed

>+++ b/source/chrome/content/options.xul
>-    util[func]("paneWeaveServices");
>+    util[func]("waveServices_pane");
Is the changing of the name necessary?

>+++ b/source/chrome/content/preferences/fx-prefs.js
>-    let pbEnabled = Weave.Svc.Private.privateBrowsingEnabled;
>+    let pbEnabled = Weave.Svc.Private && Weave.Svc.Private.privateBrowsingEnabled;
I'll push a change that will implement a fake service for private browsing for apps that don't build it.

>@@ -243,18 +243,18 @@ let gWeavePane = {
>   handleExpanderClick: function () {
>-    let prefwindow = document.getElementById("BrowserPreferences");
>+    let prefwindow = document.documentElement;
>     if (prefwindow._shouldAnimate)
>       prefwindow._currentHeight = pane.contentHeight;
Does this still work correctly in Firefox?

>+++ b/source/chrome/content/preferences/sm-prefs.xul
>+<!DOCTYPE overlay SYSTEM "chrome://weave/locale/sm-prefs.dtd">
>+    <prefpane id="waveServices_pane" label="&weavePrefTreeItem.label;"/>
Shouldn't need a whole separate dtd for this.. fx-prefs.dtd has a weavePrefPane.label string already.

>+++ b/source/chrome/content/sync.js
>@@ -250,17 +250,30 @@ WeaveWindow.prototype = {
>+    switch (Weave.Svc.AppInfo.name) {
We've run into issues before when switching on the AppInfo.name instead of AppInfo.ID. Should be able to do this like before:
http://hg.mozilla.org/labs/weave/file/0.5/source/chrome/content/sync.js#l295
(In reply to comment #17)
> (From update of attachment 413710 [details] [diff] [review])
> >+++ b/source/chrome/content/options.xul
> >-    util[func]("paneWeaveServices");
> >+    util[func]("waveServices_pane");
> Is the changing of the name necessary?

not. Dropped out.

> >+++ b/source/chrome/content/preferences/fx-prefs.js
> >-    let pbEnabled = Weave.Svc.Private.privateBrowsingEnabled;
> >+    let pbEnabled = Weave.Svc.Private && Weave.Svc.Private.privateBrowsingEnabled;
> I'll push a change that will implement a fake service for private browsing for
> apps that don't build it.

ok, but, maybe, let it be until you push it?

> >@@ -243,18 +243,18 @@ let gWeavePane = {
> >   handleExpanderClick: function () {
> >-    let prefwindow = document.getElementById("BrowserPreferences");
> >+    let prefwindow = document.documentElement;
> >     if (prefwindow._shouldAnimate)
> >       prefwindow._currentHeight = pane.contentHeight;
> Does this still work correctly in Firefox?

yes. At least I not see any changes on firefox.

> >+++ b/source/chrome/content/preferences/sm-prefs.xul
> >+<!DOCTYPE overlay SYSTEM "chrome://weave/locale/sm-prefs.dtd">
> >+    <prefpane id="waveServices_pane" label="&weavePrefTreeItem.label;"/>
> Shouldn't need a whole separate dtd for this.. fx-prefs.dtd has a
> weavePrefPane.label string already.

there is weavePrefPane.label, but now it assumed to "services". In seamonkey preftree it looks like something related to nothing
Until weave stay separate extention, it should be labeled as "weave", maybe "sync"... but "services" is completely unrelated. User should can to find weave settings.
Prefwindow label from sm-prefs not overlays label from fx-prefs. Then, now preftree on left shows "weave sync" text, and pane on right titled as "services". Not a big deal, if there is at least one label with "weave" or "sync" word. Sure, one line can be added into fx prefs directly.
Attachment #413710 - Attachment is obsolete: true
Attachment #413743 - Flags: review?(edilee)
Attachment #413710 - Flags: review?(edilee)
>>@@ -243,18 +243,18 @@ let gWeavePane = {
>>   handleExpanderClick: function () {
>>-    let prefwindow = document.getElementById("BrowserPreferences");
>>+    let prefwindow = document.documentElement;
>>     if (prefwindow._shouldAnimate)
>>       prefwindow._currentHeight = pane.contentHeight;
> Does this still work correctly in Firefox?

In fact using document.documentElement is more robust since it doesn't make any assumptions about the dialog/window id or even if it has an id at all. If the Firefox developers suddenly had a brainwave and changed the ID string, Weave would still continue working.
Blocks: 484982
please, please
Attachment #413743 - Attachment is obsolete: true
Attachment #414443 - Flags: review?(edilee)
Attachment #413743 - Flags: review?(edilee)
> please, please

That should be "Please, pretty please, with sugar and a cherry on top"
Attachment #414443 - Attachment is obsolete: true
Attachment #414690 - Flags: review?(edilee)
Attachment #414443 - Flags: review?(edilee)
Igor, try this in fx-prefs.css:

.mergeChoiceButtonBox {
  padding: 0.5em;
  max-width: 42ch;
}

This fixes the excessive overflow off the right edge for me. (originally the max-width was 425px).
Comment on attachment 414690 [details] [diff] [review]
rebase to 1877ed04cc9a

I'll remove the Weave.Svc.Private && checks for you now that the fakeSvc landed:
http://hg.mozilla.org/labs/weave/rev/e47125a36cc5
Attachment #414690 - Flags: review?(edilee) → review+
http://hg.mozilla.org/labs/weave/rev/df8536fd7d1b
Reorganize fx-prefs to overlay itself so seamonkey can reference the same id and add Tabs sync.
Assignee: nobody → mozdiav
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → 1.0 beta3
See my comment in bug 533580 for a regression introduced in Weave 1.0b3.
You need to log in before you can comment on or make changes to this bug.