Bug 433117 - Don't try to import IE favorites on mac. r=Mnyromyr, sr=Neil.

git-svn-id: svn://10.0.0.236/trunk@251789 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
stefanh%inbox.com 2008-05-23 18:29:19 +00:00
parent ce6d3fcdb0
commit b9ce835129
2 changed files with 15 additions and 140 deletions

View File

@ -1630,9 +1630,6 @@ nsBookmarksService::nsBookmarksService() :
mUpdateBatchNest(0),
mDirty(PR_FALSE)
#if defined(XP_MAC) || defined(XP_MACOSX)
,mIEFavoritesAvailable(PR_FALSE)
#endif
{ }
nsBookmarksService::~nsBookmarksService()
@ -3932,7 +3929,7 @@ nsBookmarksService::ImportSystemBookmarks(nsIRDFResource* aParentFolder)
{
gImportedSystemBookmarks = PR_TRUE;
#if defined(XP_WIN)
#ifdef XP_WIN
nsresult rv;
nsCOMPtr<nsIProperties> fileLocator(do_GetService("@mozilla.org/file/directory_service;1", &rv));
@ -3948,25 +3945,12 @@ nsBookmarksService::ImportSystemBookmarks(nsIRDFResource* aParentFolder)
// read Favorites folder if it exists on the machine.
if (favoritesDirectory)
return ParseFavoritesFolder(favoritesDirectory, aParentFolder);
#elif defined(XP_MAC) || defined(XP_MACOSX)
nsCOMPtr<nsIFile> ieFavoritesFile;
nsresult rv = NS_GetSpecialDirectory(NS_MAC_PREFS_DIR, getter_AddRefs(ieFavoritesFile));
NS_ENSURE_SUCCESS(rv, rv);
ieFavoritesFile->Append(NS_LITERAL_STRING("Explorer"));
ieFavoritesFile->Append(NS_LITERAL_STRING("Favorites.html"));
BookmarkParser parser;
parser.Init(ieFavoritesFile, mInner);
BeginUpdateBatch();
parser.Parse(aParentFolder, kNC_Bookmark);
EndUpdateBatch();
#endif
return NS_OK;
}
#if defined(XP_WIN) || defined(XP_MAC) || defined(XP_MACOSX)
#ifdef XP_WIN
void
nsBookmarksService::HandleSystemBookmarks(nsIRDFNode* aNode)
{
@ -3983,12 +3967,6 @@ nsBookmarksService::HandleSystemBookmarks(nsIRDFNode* aNode)
ImportSystemBookmarks(kNC_SystemBookmarksStaticRoot);
}
}
#if defined(XP_MAC) || defined(XP_MACOSX)
// on the Mac, IE favorites are stored in an HTML file.
// Defer importing the contents of this file until necessary.
else if ((aNode == kNC_IEFavoritesRoot) && (mIEFavoritesAvailable == PR_FALSE))
ReadFavorites();
#endif
}
#endif
@ -4344,7 +4322,7 @@ nsBookmarksService::HasAssertion(nsIRDFResource* source,
PRBool tv,
PRBool* hasAssertion)
{
#if defined(XP_WIN) || defined(XP_MAC) || defined(XP_MACOSX)
#ifdef XP_WIN
HandleSystemBookmarks(source);
#endif
@ -4378,7 +4356,7 @@ nsBookmarksService::RemoveObserver(nsIRDFObserver* aObserver)
NS_IMETHODIMP
nsBookmarksService::HasArcIn(nsIRDFNode *aNode, nsIRDFResource *aArc, PRBool *_retval)
{
#if defined(XP_WIN) || defined(XP_MAC) || defined(XP_MACOSX)
#ifdef XP_WIN
HandleSystemBookmarks(aNode);
#endif
@ -4388,7 +4366,7 @@ nsBookmarksService::HasArcIn(nsIRDFNode *aNode, nsIRDFResource *aArc, PRBool *_r
NS_IMETHODIMP
nsBookmarksService::HasArcOut(nsIRDFResource *aSource, nsIRDFResource *aArc, PRBool *_retval)
{
#if defined(XP_WIN) || defined(XP_MAC) || defined(XP_MACOSX)
#ifdef XP_WIN
HandleSystemBookmarks(aSource);
#endif
@ -4399,7 +4377,7 @@ NS_IMETHODIMP
nsBookmarksService::ArcLabelsOut(nsIRDFResource* source,
nsISimpleEnumerator** labels)
{
#if defined(XP_WIN) || defined(XP_MAC) || defined(XP_MACOSX)
#ifdef XP_WIN
HandleSystemBookmarks(source);
#endif
@ -4409,7 +4387,7 @@ nsBookmarksService::ArcLabelsOut(nsIRDFResource* source,
NS_IMETHODIMP
nsBookmarksService::GetAllResources(nsISimpleEnumerator** aResult)
{
#if defined(XP_WIN) || defined(XP_MAC) || defined(XP_MACOSX)
#ifdef XP_WIN
HandleSystemBookmarks(kNC_SystemBookmarksStaticRoot);
#endif
@ -5048,69 +5026,6 @@ nsBookmarksService::EnsureBookmarksFile()
return NS_OK;
}
#if defined(XP_MAC) || defined(XP_MACOSX)
nsresult
nsBookmarksService::ReadFavorites()
{
mIEFavoritesAvailable = PR_TRUE;
nsresult rv;
#ifdef DEBUG_varga
PRTime now;
#if defined(XP_MAC)
Microseconds((UnsignedWide *)&now);
#else
now = PR_Now();
#endif
printf("Start reading in IE Favorites.html\n");
#endif
// look for and import any IE Favorites
nsAutoString ieTitle;
getLocaleString("ImportedIEFavorites", ieTitle);
nsCOMPtr<nsIFile> ieFavoritesFile;
rv = NS_GetSpecialDirectory(NS_MAC_PREFS_DIR, getter_AddRefs(ieFavoritesFile));
NS_ENSURE_SUCCESS(rv, rv);
ieFavoritesFile->Append(NS_LITERAL_STRING("Explorer"));
ieFavoritesFile->Append(NS_LITERAL_STRING("Favorites.html"));
if (NS_SUCCEEDED(rv = gRDFC->MakeSeq(mInner, kNC_IEFavoritesRoot, nsnull)))
{
BookmarkParser parser;
parser.Init(ieFavoritesFile, mInner);
BeginUpdateBatch();
parser.Parse(kNC_IEFavoritesRoot, kNC_IEFavorite);
EndUpdateBatch();
nsCOMPtr<nsIRDFLiteral> ieTitleLiteral;
rv = gRDF->GetLiteral(ieTitle.get(), getter_AddRefs(ieTitleLiteral));
if (NS_SUCCEEDED(rv) && ieTitleLiteral)
{
rv = mInner->Assert(kNC_IEFavoritesRoot, kNC_Name, ieTitleLiteral, PR_TRUE);
}
}
#ifdef DEBUG_varga
PRTime now2;
#if defined(XP_MAC)
Microseconds((UnsignedWide *)&now2);
#else
now = PR_Now();
#endif
PRUint64 loadTime64;
LL_SUB(loadTime64, now2, now);
PRUint32 loadTime32;
LL_L2UI(loadTime32, loadTime64);
printf("Finished reading in IE Favorites.html (%u microseconds)\n", loadTime32);
#endif
return rv;
}
#endif
NS_IMETHODIMP
nsBookmarksService::ReadBookmarks(PRBool *didLoadBookmarks)
{
@ -5187,12 +5102,7 @@ nsBookmarksService::LoadBookmarks()
prefSvc->GetBranch("browser.bookmarks.", getter_AddRefs(bookmarksPrefs));
#ifdef DEBUG_varga
PRTime now;
#if defined(XP_MAC)
Microseconds((UnsignedWide *)&now);
#else
now = PR_Now();
#endif
PRTime now = PR_Now();
printf("Start reading in bookmarks.html\n");
#endif
@ -5227,9 +5137,9 @@ nsBookmarksService::LoadBookmarks()
#if defined(XP_WIN) || defined(XP_BEOS)
nsCOMPtr<nsIFile> systemBookmarksFolder;
#if defined(XP_WIN)
#ifdef XP_WIN
rv = NS_GetSpecialDirectory(NS_WIN_FAVORITES_DIR, getter_AddRefs(systemBookmarksFolder));
#elif defined(XP_BEOS)
#else
rv = NS_GetSpecialDirectory(NS_BEOS_SETTINGS_DIR, getter_AddRefs(systemBookmarksFolder));
if (NS_SUCCEEDED(rv))
@ -5247,8 +5157,7 @@ nsBookmarksService::LoadBookmarks()
if (NS_SUCCEEDED(rv))
rv = bookmarksURI->GetSpec(bookmarksURICString);
}
#elif defined(XP_MAC) || defined(XP_MACOSX)
bookmarksURICString.AssignLiteral(kURINC_IEFavoritesRoot);
#endif
nsCOMPtr<nsIRDFResource> systemFolderResource;
@ -5300,7 +5209,7 @@ nsBookmarksService::LoadBookmarks()
// When the user opens this folder for the first time, system bookmarks are
// imported into this folder. A pref is used to keep track of whether or
// not to perform this operation.
#if defined(XP_WIN) || defined(XP_MAC) || defined(XP_MACOSX)
#ifdef XP_WIN
PRBool addedStaticRoot = PR_FALSE;
if (bookmarksPrefs)
bookmarksPrefs->GetBoolPref("added_static_root",
@ -5355,24 +5264,7 @@ nsBookmarksService::LoadBookmarks()
// by setting the pref.
if (useDynamicSystemBookmarks)
{
#if defined(XP_MAC) || defined(XP_MACOSX)
// if the IE Favorites root isn't somewhere in bookmarks.html, add it
if (!foundIERoot)
{
nsCOMPtr<nsIRDFContainer> bookmarksRoot(do_CreateInstance(kRDFContainerCID, &rv));
if (NS_FAILED(rv)) return rv;
rv = bookmarksRoot->Init(this, kNC_BookmarksRoot);
if (NS_FAILED(rv)) return rv;
rv = bookmarksRoot->AppendElement(kNC_IEFavoritesRoot);
if (NS_FAILED(rv)) return rv;
// make sure IE Favorites root folder has the proper type
rv = mInner->Assert(kNC_IEFavoritesRoot, kRDF_type, kNC_IEFavoriteFolder, PR_TRUE);
if (NS_FAILED(rv)) return rv;
}
#elif defined(XP_WIN) || defined(XP_BEOS)
#if defined(XP_WIN) || defined(XP_BEOS)
if (systemFolderResource)
{
nsAutoString systemBookmarksFolderTitle;
@ -5406,12 +5298,7 @@ nsBookmarksService::LoadBookmarks()
}
#ifdef DEBUG_varga
PRTime now2;
#if defined(XP_MAC)
Microseconds((UnsignedWide *)&now2);
#else
now2 = PR_Now();
#endif
PRTime now2 = PR_Now();
PRUint64 loadTime64;
LL_SUB(loadTime64, now2, now);
PRUint32 loadTime32;

View File

@ -63,12 +63,6 @@
class nsIOutputStream;
#ifdef DEBUG
#if defined(XP_MAC) || defined(XP_MACOSX)
#include <Timer.h>
#endif
#endif
class nsBookmarksService : public nsIBookmarksService,
public nsIRDFDataSource,
public nsIRDFRemoteDataSource,
@ -101,19 +95,13 @@ protected:
PRBool busySchedule;
// System Bookmark parsing
#if defined(XP_WIN)
#ifdef XP_WIN
// @param aDirectory - Favorites Folder to import from.
// @param aParentResource - Folder into which to place imported
// Favorites.
nsresult ParseFavoritesFolder(nsIFile* aDirectory,
nsIRDFResource* aParentResource);
#elif defined(XP_MAC) || defined(XP_MACOSX)
PRBool mIEFavoritesAvailable;
nsresult ReadFavorites();
#endif
#if defined(XP_WIN) || defined(XP_MAC) || defined(XP_MACOSX)
void HandleSystemBookmarks(nsIRDFNode* aNode);
#endif