Menu

#45 Mozilla Firefox 0.9.2 Sync Broken

open
nobody
5
2004-07-09
2004-07-09
Slinka
No

Since the release of Firefox 0.9 the syncing soesn't
work between Firefox and IE. It worked fine in Firefox 0.8.

I have tried editing the registry key for the Phoenix
location as explained here:

http://bookmarksync.sourceforge.net/phpwiki/index.php/FAQ

Unfortunately it still doesn't work?!

Any ideas?

Thanks,

Slinka

Discussion

  • Sven Masters

    Sven Masters - 2004-07-17

    Logged In: YES
    user_id=991002

    I have fixed this, but have not submitted the fix to CVS as I
    don't have access (or haven't asked for it) yet.

    If you are interested the problem is in NetscapeInfo.cxx ->
    GetMozillaInfo

    Basically, the client is looking for a registry.dat to determine
    the location of the firefox bookmarks.html. Firefox 0.9.x uses
    an ini file to show this location. The fix is to look for the ini
    file if opening the registry.dat file fails.

     
  • Steffen Siebert

    Steffen Siebert - 2004-07-19

    Logged In: YES
    user_id=884962

    To Sven:

    Can you please attach the patched source and, for
    convenience, also the compiled binary to this bug? I'll then
    submit the fix to cvs.

    Ciao,
    Steffen

     
  • Sven Masters

    Sven Masters - 2004-07-22

    Logged In: YES
    user_id=991002

    I do not appear to have permission to attach the patch to
    this message (as there is no button that says "ATTACH FILE"),

     
  • Slinka

    Slinka - 2004-07-22

    Logged In: YES
    user_id=1080075

    Sven, The attach file option is below all the comments where
    it says "Check to Upload and Attach a File:"... If it is not
    available for you email me the file and I can attach it for
    you. Looking forward to getting hold of your solution - I
    will be great to have it working with Firefox again. Thanks,

    Slinka

     
  • Sven Masters

    Sven Masters - 2004-07-22

    Logged In: YES
    user_id=991002

    Okay, I don't want people to wait any longer so here is the
    (very time consuming) description of the patch.

    There are two files to be patched:
    SyncIt\WinMain.cxx
    SyncLib\NetscapeInfo.cxx

    Here's the change to WinMain.cxx:
    Search for this line:
    MozillaBrowser phoenix("Mozilla Firebird",
    "phoenix", "Phoenix");

    Add this line just after it:
    MozillaBrowser firefox("Mozilla Firefox",
    "firefox", "Mozilla\\Firefox");

    Search for this line:
    sync.addBrowser(&phoenix);
    Add this line just after it:
    sync.addBrowser(&firefox);

    Changes for NetscapeInfo.cxx:
    Search for this line:
    TCHAR achDirectory[MAX_PATH];

    Make sure the next several lines look like this:
    TCHAR achRootDirectory[MAX_PATH];
    if ( pfnSHGetFolderPath &&
    SUCCEEDED((*pfnSHGetFolderPath)(NULL, 0x001a /* =
    CSIDL_APPDATA */ , NULL, 0, achRootDirectory))
    || pfnSHGetSpecialFolderPath &&
    (*pfnSHGetSpecialFolderPath)(NULL, achRootDirectory, 0x001a
    /* = CSIDL_APPDATA */, FALSE))
    {
    if (achRootDirectory[lstrlen(achDirectory) - 1] != '\\')
    {
    lstrcatA(achRootDirectory, "\\");
    }

    if (subpath)
    {
    lstrcatA(achRootDirectory, subpath);
    }
    lstrcpyA(achDirectory, achRootDirectory);

    // Look for registry.dat
    lstrcatA(achDirectory, "registry.dat");

    Search for these two lines a few lines below: (don't forget
    the ending curley brace)
    CloseHandle(h);
    }

    Add the following lines below this:
    else // h == INVALID_HANDLE_VALUE
    {
    // So we cannot open registry.dat, assume that we
    are a newer version of Firefox (0.9.X) or later
    // and that the directory for bookmarks is stored
    in Firefox\Profiles.ini

    TCHAR achIniFile[MAX_PATH];
    TCHAR achReturnedString[MAX_PATH];

    lstrcpyA(achIniFile, achRootDirectory);
    lstrcatA(achIniFile,"profiles.ini");

    // Open the profiles.ini and try to read the Path
    setting for Profile0
    // Will need to do some work on this to make it
    work for multiple profiles.
    if (GetPrivateProfileString(
    "Profile0", // points to
    section name
    "Path", // points to key name
    "Profiles\\default.6o4", // points to
    default string
    achReturnedString, // points to
    destination buffer
    sizeof(achReturnedString), // size of
    destination buffer
    achIniFile)) // points to
    initialization filename (the Profile.ini)
    {
    for (int i = 0; i <
    lstrlenA(achReturnedString); i++)
    {
    if (achReturnedString[i] == '/')
    achReturnedString[i] = '\\';
    }

    lstrcpyA(pachProfileDirectory, achRootDirectory);
    lstrcatA(pachProfileDirectory,
    achReturnedString);

    fDone = 1;
    }
    }

    That's it. If someone gives me access I'll attach the patch
    to this bug. (I'll put some notes about this patch in
    another post)

     
  • Sven Masters

    Sven Masters - 2004-07-22

    Logged In: YES
    user_id=991002

    The patch below allows Firefox users (tested 0.9.2) to sync.
    It looks for Profiles.ini and in there looks for Profile0.
    Now, I haven't uses profiles in Firefox, so I don't know
    what happens when you DO use them. It appears that there
    could be several profiles in this file and so looking for
    Profile0 may not be the best idea for those that use profiles.

    If someone has problems, let me know and I'll look into a fix.

    Because the way this patch was done Firefox appears as a
    seperate browser than Firebird/Phoenix. I *think* this will
    work if both browsers (versions) are installed, but have not
    tested that either.

    Also, this patch was applied to 1.6.4 source. When I first
    tried to build 1.6.4 source it gave me an error with
    Bookmarks.ico. So, I downloaded 1.7.0 source and copied the
    Bookmarks.ico from that. This maybe just a simple file
    corruption on my HD, or this may be useful to someone.

     
  • Jack Dean

    Jack Dean - 2004-07-24

    Logged In: YES
    user_id=875930

    A couple of notes if you are patching client code.

    I've applied it to the 1.6.4 source and it works. I've not
    looked at the 1.7 code, but there is an existing variable
    declared in 1.6.4 that was confusing for me:

    TCHAR achDirectory[MAX_PATH];

    This patch adds an _additional_ variable called:
    TCHAR achRootDirectory[MAX_PATH];

    I didn't quite follow the instructions properly the first time and
    thought that the achRootDirectory[] variable _replaced_ the
    achDirectory[], it doesn't.

    Other than that, the fix appears to work.

    BTW, my profile is stored in a directory called "default.ihr"
    not "default.6o4". I wonder if Firefox is creating random
    directory extensions, perhaps for security reasons. If this is
    true, the default parameter in GetPrivateProfileString isn't
    worth anything.

    Thanks Sven for the hard work!

    Jack Dean
    sync2it.com

     
  • Ducem Barr

    Ducem Barr - 2004-07-25

    Logged In: YES
    user_id=880328

    This patch seems to be quite difficult to implement by hand
    - will it be committed into CVS ?

    TIA !

     
  • Nobody/Anonymous

    Logged In: NO

    I have patched the 1.6.4 source with the fix below to
    support Firefox 0.9. The binary is avail from
    http://www.mctubster.com/syncit

    Steve

     
  • Ducem Barr

    Ducem Barr - 2004-11-19

    Logged In: YES
    user_id=880328

    SyncIT doesn't work with Firefox 0.9.0, PR1, nor with the
    final release. There seems to be no development on this
    point for several months now.

    Not being a code-writer myself, unfortunately I can't help.
    So I appeal to the developers of this project.

    It's such a pity - 1 million Firefox downloads in the first
    four days of its final release - and no way to sync with IE
    favorites.

    I see BookmarkSync as a great complement to Firefox,
    especially due to its former ability to sync with windows
    favorites. It gives Firefox users the best browser without
    losing windows functionality.

    So I think that this project, more specifically Firefox
    ability for BookmarkSync, could contribute to the success of
    the open source browser number one.

    Please ! get this feature working again.

    P.S. 1) The versions on http://www.mctubster.com/syncit have
    stopped working since PR1.
    P.S. 2) Jason Heddings has written a great FireFox plug-in,
    SyncMarks, that does the job. But it is very slow.

     
  • Jott

    Jott - 2004-11-19

    Logged In: YES
    user_id=1151664

    I can do nothing but to agree with Ducembarr! Im neither a
    programmer, but I do appreciate good applications.
    You guys that have that programmers gift, please give us
    the possibility to use these two grate applications, Firefox
    and BookmarkSync!

     
  • Nobody/Anonymous

    Logged In: NO

    http://syncit.goth.dk/download2.php has a version that
    works with firefox final. It is not realy stable, but it works.

     
  • Ducem Barr

    Ducem Barr - 2004-11-24

    Logged In: YES
    user_id=880328

    I confirm both: the firefox_only version works with the
    final release. And it is not very stable. I'd really like to
    see an update of the client. Please.

     

Log in to post a comment.