From ad3054d09959ee06ed8ed79cac7544dbf71e81b1 Mon Sep 17 00:00:00 2001 From: Dave Townsend Date: Fri, 2 Jul 2010 20:00:45 -0700 Subject: [PATCH] Backed out changeset 07a9dcc28c5c from bug 566738 due to possible browser-chrome failures. --HG-- extra : transplant_source : %0C%19%86%CE%D8%F3%95%7FV%BA%3DsM%06%D4%EF%C8%B7%8Dq --- docshell/base/IHistory.h | 16 +- docshell/base/nsDocShell.cpp | 11 +- toolkit/components/places/src/History.cpp | 186 +----------------- toolkit/components/places/src/History.h | 2 +- .../components/places/src/nsNavHistory.cpp | 22 +-- toolkit/components/places/src/nsNavHistory.h | 13 +- .../places/tests/browser/Makefile.in | 3 - 7 files changed, 17 insertions(+), 236 deletions(-) diff --git a/docshell/base/IHistory.h b/docshell/base/IHistory.h index 04777ed9497..a5f9d9b39be 100644 --- a/docshell/base/IHistory.h +++ b/docshell/base/IHistory.h @@ -43,7 +43,6 @@ #include "nsISupports.h" class nsIURI; -class nsString; namespace mozilla { @@ -129,18 +128,6 @@ public: nsIURI *aLastVisitedURI, PRUint32 aFlags ) = 0; - - /** - * Set the title of the URI. - * - * @pre aURI must not be null. - * - * @param aURI - * The URI to set the title for. - * @param aTitle - * The title string. - */ - NS_IMETHOD SetURITitle(nsIURI* aURI, const nsAString& aTitle) = 0; }; NS_DEFINE_STATIC_IID_ACCESSOR(IHistory, IHISTORY_IID) @@ -152,8 +139,7 @@ NS_DEFINE_STATIC_IID_ACCESSOR(IHistory, IHISTORY_IID) mozilla::dom::Link *aContent); \ NS_IMETHOD VisitURI(nsIURI *aURI, \ nsIURI *aLastVisitedURI, \ - PRUint32 aFlags); \ - NS_IMETHOD SetURITitle(nsIURI* aURI, const nsAString& aTitle); + PRUint32 aFlags); } // namespace mozilla diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp index cab082269c2..07e40a54265 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -4704,16 +4704,11 @@ nsDocShell::SetTitle(const PRUnichar * aTitle) treeOwnerAsWin->SetTitle(aTitle); } - if (mCurrentURI && mLoadType != LOAD_ERROR_PAGE) { - nsCOMPtr history = services::GetHistoryService(); - if (history) { - history->SetURITitle(mCurrentURI, mTitle); - } - else if (mGlobalHistory) { - mGlobalHistory->SetPageTitle(mCurrentURI, nsString(mTitle)); - } + if (mGlobalHistory && mCurrentURI && mLoadType != LOAD_ERROR_PAGE) { + mGlobalHistory->SetPageTitle(mCurrentURI, nsString(mTitle)); } + // Update SessionHistory with the document's title. if (mOSHE && mLoadType != LOAD_BYPASS_HISTORY && mLoadType != LOAD_ERROR_PAGE) { diff --git a/toolkit/components/places/src/History.cpp b/toolkit/components/places/src/History.cpp index 8649a740b31..b8ad8e68736 100644 --- a/toolkit/components/places/src/History.cpp +++ b/toolkit/components/places/src/History.cpp @@ -305,9 +305,9 @@ public: if (!mData->hidden && mData->transitionType != nsINavHistoryService::TRANSITION_EMBED && mData->transitionType != nsINavHistoryService::TRANSITION_FRAMED_LINK) { - history->NotifyOnVisit(mData->uri, visitId, mData->dateTime, - mData->sessionId, mData->lastVisitId, - mData->transitionType); + history->FireOnVisit(mData->uri, visitId, mData->dateTime, + mData->sessionId, mData->lastVisitId, + mData->transitionType); } } @@ -698,154 +698,6 @@ NS_IMPL_ISUPPORTS1( , Step ) -//////////////////////////////////////////////////////////////////////////////// -//// Steps for SetURITitle - -struct SetTitleData : public FailSafeFinishTask -{ - nsCOMPtr uri; - nsString title; -}; - -/** - * Step 3: Notify that title has been updated. - */ -class TitleNotifyStep: public Step -{ -public: - NS_DECL_ISUPPORTS - - TitleNotifyStep(nsAutoPtr aData) - : mData(aData) - { - } - - NS_IMETHOD Callback(mozIStorageResultSet* aResultSet) - { - nsNavHistory* history = nsNavHistory::GetHistoryService(); - history->NotifyTitleChange(mData->uri, mData->title); - - return NS_OK; - } - -protected: - nsAutoPtr mData; -}; -NS_IMPL_ISUPPORTS1( - TitleNotifyStep -, mozIStorageStatementCallback -) - -/** - * Step 2: Set title. - */ -class SetTitleStep : public Step -{ -public: - NS_DECL_ISUPPORTS - - SetTitleStep(nsAutoPtr aData) - : mData(aData) - { - } - - NS_IMETHOD Callback(mozIStorageResultSet* aResultSet) - { - if (!aResultSet) { - // URI record was not found. - return NS_OK; - } - - nsCOMPtr row; - nsresult rv = aResultSet->GetNextRow(getter_AddRefs(row)); - NS_ENSURE_SUCCESS(rv, rv); - - nsAutoString title; - rv = row->GetString(2, title); - NS_ENSURE_SUCCESS(rv, rv); - - // It is actually common to set the title to be the same thing it used to - // be. For example, going to any web page will always cause a title to be set, - // even though it will often be unchanged since the last visit. In these - // cases, we can avoid DB writing and observer overhead. - if (mData->title.Equals(title) || (mData->title.IsVoid() && title.IsVoid())) - return NS_OK; - - nsNavHistory* history = nsNavHistory::GetHistoryService(); - - nsCOMPtr stmt = - history->GetStatementById(DB_SET_PLACE_TITLE); - NS_ENSURE_STATE(stmt); - - if (mData->title.IsVoid()) { - rv = stmt->BindNullByName(NS_LITERAL_CSTRING("page_title")); - } - else { - rv = stmt->BindStringByName( - NS_LITERAL_CSTRING("page_title"), - StringHead(mData->title, TITLE_LENGTH_MAX) - ); - } - NS_ENSURE_SUCCESS(rv, rv); - - rv = URIBinder::Bind(stmt, NS_LITERAL_CSTRING("page_url"), mData->uri); - NS_ENSURE_SUCCESS(rv, rv); - - nsCOMPtr step = new TitleNotifyStep(mData); - rv = step->ExecuteAsync(stmt); - NS_ENSURE_SUCCESS(rv, rv); - - return NS_OK; - } - -protected: - nsAutoPtr mData; -}; -NS_IMPL_ISUPPORTS1( - SetTitleStep -, mozIStorageStatementCallback -) - -/** - * Step 1: See if there is an existing URI. - */ -class StartSetURITitleStep : public Step -{ -public: - NS_DECL_ISUPPORTS - - StartSetURITitleStep(nsAutoPtr aData) - : mData(aData) - { - } - - NS_IMETHOD Callback(mozIStorageResultSet* aResultSet) - { - nsNavHistory* history = nsNavHistory::GetHistoryService(); - - // Find existing entry in moz_places table, if any. - nsCOMPtr stmt = - history->GetStatementById(DB_GET_URL_PAGE_INFO); - NS_ENSURE_STATE(stmt); - - nsresult rv = URIBinder::Bind(stmt, NS_LITERAL_CSTRING("page_url"), mData->uri); - NS_ENSURE_SUCCESS(rv, rv); - - nsCOMPtr step = new SetTitleStep(mData); - rv = step->ExecuteAsync(stmt); - NS_ENSURE_SUCCESS(rv, rv); - - return NS_OK; - } - -protected: - nsAutoPtr mData; -}; -NS_IMPL_ISUPPORTS1( - StartSetURITitleStep -, Step -) - } // anonymous namespace //////////////////////////////////////////////////////////////////////////////// @@ -1157,38 +1009,6 @@ History::UnregisterVisitedCallback(nsIURI* aURI, return NS_OK; } -NS_IMETHODIMP -History::SetURITitle(nsIURI* aURI, const nsAString& aTitle) -{ - NS_PRECONDITION(aURI, "Must pass a non-null URI!"); - if (mShuttingDown) { - return NS_OK; - } - - nsNavHistory* history = nsNavHistory::GetHistoryService(); - PRBool canAdd; - nsresult rv = history->CanAddURI(aURI, &canAdd); - NS_ENSURE_SUCCESS(rv, rv); - if (!canAdd) { - return NS_OK; - } - - nsAutoPtr data(new SetTitleData()); - data->uri = aURI; - - if (aTitle.IsEmpty()) { - data->title.SetIsVoid(PR_TRUE); - } - else { - data->title.Assign(aTitle); - } - - nsCOMPtr task(new StartSetURITitleStep(data)); - AppendTask(task); - - return NS_OK; -} - //////////////////////////////////////////////////////////////////////////////// //// nsIObserver diff --git a/toolkit/components/places/src/History.h b/toolkit/components/places/src/History.h index a087862cc73..78a47071461 100644 --- a/toolkit/components/places/src/History.h +++ b/toolkit/components/places/src/History.h @@ -53,7 +53,7 @@ namespace mozilla { namespace places { #define NS_HISTORYSERVICE_CID \ - {0x0937a705, 0x91a6, 0x417a, {0x82, 0x92, 0xb2, 0x2e, 0xb1, 0x0d, 0xa8, 0x6c}} + {0x9fc91e65, 0x1475, 0x4353, {0x9b, 0x9a, 0x93, 0xd7, 0x6f, 0x5b, 0xd9, 0xb7}} class History : public IHistory , public nsIObserver diff --git a/toolkit/components/places/src/nsNavHistory.cpp b/toolkit/components/places/src/nsNavHistory.cpp index 34ea17274be..a98ffb034fc 100644 --- a/toolkit/components/places/src/nsNavHistory.cpp +++ b/toolkit/components/places/src/nsNavHistory.cpp @@ -2155,12 +2155,12 @@ nsNavHistory::GetNewSessionID() void -nsNavHistory::NotifyOnVisit(nsIURI* aURI, - PRInt64 aVisitID, - PRTime aTime, - PRInt64 aSessionID, - PRInt64 referringVisitID, - PRInt32 aTransitionType) +nsNavHistory::FireOnVisit(nsIURI* aURI, + PRInt64 aVisitID, + PRTime aTime, + PRInt64 aSessionID, + PRInt64 referringVisitID, + PRInt32 aTransitionType) { PRUint32 added = 0; NOTIFY_OBSERVERS(mCanNotify, mCacheObservers, mObservers, @@ -2169,13 +2169,6 @@ nsNavHistory::NotifyOnVisit(nsIURI* aURI, referringVisitID, aTransitionType, &added)); } -void -nsNavHistory::NotifyTitleChange(nsIURI* aURI, const nsString& aTitle) -{ - NOTIFY_OBSERVERS(mCanNotify, mCacheObservers, mObservers, - nsINavHistoryObserver, OnTitleChanged(aURI, aTitle)); -} - PRInt32 nsNavHistory::GetDaysOfHistory() { @@ -2882,7 +2875,7 @@ nsNavHistory::AddVisit(nsIURI* aURI, PRTime aTime, nsIURI* aReferringURI, // GetQueryResults to maintain consistency. // FIXME bug 325241: make a way to observe hidden URLs if (!hidden) { - NotifyOnVisit(aURI, *aVisitID, aTime, aSessionID, referringVisitID, + FireOnVisit(aURI, *aVisitID, aTime, aSessionID, referringVisitID, aTransitionType); } @@ -7347,6 +7340,7 @@ nsNavHistory::SetPageTitleInternal(nsIURI* aURI, const nsAString& aTitle) rv = mDBSetPlaceTitle->Execute(); NS_ENSURE_SUCCESS(rv, rv); + // observers (have to check first if it's bookmarked) NOTIFY_OBSERVERS(mCanNotify, mCacheObservers, mObservers, nsINavHistoryObserver, OnTitleChanged(aURI, aTitle)); diff --git a/toolkit/components/places/src/nsNavHistory.h b/toolkit/components/places/src/nsNavHistory.h index f95daf86a55..5b126c6d688 100644 --- a/toolkit/components/places/src/nsNavHistory.h +++ b/toolkit/components/places/src/nsNavHistory.h @@ -121,8 +121,6 @@ namespace places { , DB_GET_PAGE_VISIT_STATS = 5 , DB_UPDATE_PAGE_VISIT_STATS = 6 , DB_ADD_NEW_PAGE = 7 - , DB_GET_URL_PAGE_INFO = 8 - , DB_SET_PLACE_TITLE = 9 }; } // namespace places @@ -440,10 +438,6 @@ public: return mDBUpdatePageVisitStats; case DB_ADD_NEW_PAGE: return mDBAddNewPage; - case DB_GET_URL_PAGE_INFO: - return mDBGetURLPageInfo; - case DB_SET_PLACE_TITLE: - return mDBSetPlaceTitle; } return nsnull; } @@ -453,18 +447,13 @@ public: /** * Fires onVisit event to nsINavHistoryService observers */ - void NotifyOnVisit(nsIURI* aURI, + void FireOnVisit(nsIURI* aURI, PRInt64 aVisitID, PRTime aTime, PRInt64 aSessionID, PRInt64 referringVisitID, PRInt32 aTransitionType); - /** - * Fires onTitleChanged event to nsINavHistoryService observers - */ - void NotifyTitleChange(nsIURI* aURI, const nsString& title); - private: ~nsNavHistory(); diff --git a/toolkit/components/places/tests/browser/Makefile.in b/toolkit/components/places/tests/browser/Makefile.in index e102872b80e..a155bd2b12d 100644 --- a/toolkit/components/places/tests/browser/Makefile.in +++ b/toolkit/components/places/tests/browser/Makefile.in @@ -48,7 +48,6 @@ include $(topsrcdir)/config/rules.mk _BROWSER_FILES = \ browser_bug399606.js \ browser_visituri.js \ - browser_settitle.js \ $(NULL) # These are files that need to be loaded via the HTTP proxy server @@ -64,8 +63,6 @@ _HTTP_FILES = \ visituri/redirect_twice.sjs \ visituri/redirect_once.sjs \ visituri/final.html \ - settitle/title1.html \ - settitle/title2.html \ $(NULL) libs:: $(_BROWSER_FILES)