diff --git a/docshell/base/IHistory.h b/docshell/base/IHistory.h index 6d65e9bb4ba..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 nsString& 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 nsString& aTitle); + PRUint32 aFlags); } // namespace mozilla diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp index 9e3c282fe3f..cc9c2251d0d 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -4694,16 +4694,11 @@ nsDocShell::SetTitle(const PRUnichar * aTitle) treeOwnerAsWin->SetTitle(aTitle); } - if (mCurrentURI && mLoadType != LOAD_ERROR_PAGE) { - nsCOMPtr history = services::GetHistoryService(); - if (history) { - history->SetURITitle(mCurrentURI, nsString(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 0d7f00adc2d..d156ce15294 100644 --- a/toolkit/components/places/src/History.cpp +++ b/toolkit/components/places/src/History.cpp @@ -305,7 +305,7 @@ public: if (!mData->hidden && mData->transitionType != nsINavHistoryService::TRANSITION_EMBED && mData->transitionType != nsINavHistoryService::TRANSITION_FRAMED_LINK) { - history->NotifyOnVisit(mData->uri, visitId, mData->dateTime, + history->FireOnVisit(mData->uri, visitId, mData->dateTime, mData->sessionId, mData->lastVisitId, mData->transitionType); } @@ -696,153 +696,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 //////////////////////////////////////////////////////////////////////////////// @@ -1128,36 +981,6 @@ History::UnregisterVisitedCallback(nsIURI* aURI, return NS_OK; } -NS_IMETHODIMP -History::SetURITitle(nsIURI* aURI, const nsString& aTitle) -{ - NS_PRECONDITION(aURI, "Must pass a non-null URI!"); - - 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; -} - - //////////////////////////////////////////////////////////////////////////////// //// nsISupports diff --git a/toolkit/components/places/src/History.h b/toolkit/components/places/src/History.h index f927e4dc2a1..4432befba26 100644 --- a/toolkit/components/places/src/History.h +++ b/toolkit/components/places/src/History.h @@ -52,7 +52,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 { diff --git a/toolkit/components/places/src/nsNavHistory.cpp b/toolkit/components/places/src/nsNavHistory.cpp index b68cbf5ff86..ae1b696ae61 100644 --- a/toolkit/components/places/src/nsNavHistory.cpp +++ b/toolkit/components/places/src/nsNavHistory.cpp @@ -2173,12 +2173,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, @@ -2187,13 +2187,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() { @@ -7365,6 +7358,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)