From 46c06897f06eaccf09dd187b27cbdfbb83706996 Mon Sep 17 00:00:00 2001 From: "rjc%netscape.com" Date: Fri, 8 Nov 2002 22:34:02 +0000 Subject: [PATCH] Fix bug # 178368: reduce search graph footprint re: HTML chunks. r=sgehani sr=jag --- .../search/src/nsInternetSearchService.cpp | 25 ++++++++++--------- .../search/src/nsInternetSearchService.h | 3 ++- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/xpfe/components/search/src/nsInternetSearchService.cpp b/xpfe/components/search/src/nsInternetSearchService.cpp index 376dc4020863..b4ee6622c458 100755 --- a/xpfe/components/search/src/nsInternetSearchService.cpp +++ b/xpfe/components/search/src/nsInternetSearchService.cpp @@ -346,10 +346,9 @@ searchModePrefCallback(const char *pref, void *aClosure) if (searchDS->prefs) { - PRInt32 searchMode=0; - searchDS->prefs->GetIntPref(pref, &searchMode); + searchDS->prefs->GetIntPref(pref, &searchDS->gBrowserSearchMode); #ifdef DEBUG - printf("searchModePrefCallback: '%s' = %d\n", pref, searchMode); + printf("searchModePrefCallback: '%s' = %d\n", pref, searchDS->gBrowserSearchMode); #endif searchDS->Assert(searchDS->kNC_LastSearchRoot, searchDS->kNC_LastSearchMode, searchDS->kTrueLiteral, PR_TRUE); } @@ -359,11 +358,12 @@ searchModePrefCallback(const char *pref, void *aClosure) static nsIRDFService *gRDFService = nsnull; static nsIRDFContainerUtils *gRDFC = nsnull; PRInt32 InternetSearchDataSource::gRefCnt = 0; +PRInt32 InternetSearchDataSource::gBrowserSearchMode = 0; nsIRDFDataSource *InternetSearchDataSource::mInner = nsnull; nsCOMPtr InternetSearchDataSource::mUpdateArray; nsCOMPtr InternetSearchDataSource::mLocalstore; nsCOMPtr InternetSearchDataSource::categoryDataSource; -PRBool InternetSearchDataSource::mEngineListBuilt; +PRBool InternetSearchDataSource::gEngineListBuilt = PR_FALSE; nsCOMPtr InternetSearchDataSource::mBackgroundLoadGroup; nsCOMPtr InternetSearchDataSource::mLoadGroup; nsCOMPtr InternetSearchDataSource::prefs; @@ -494,6 +494,7 @@ InternetSearchDataSource::InternetSearchDataSource(void) if (NS_SUCCEEDED(rv) && (prefs)) { prefs->RegisterCallback("browser.search.mode", searchModePrefCallback, this); + prefs->GetIntPref("browser.search.mode", &gBrowserSearchMode); } } } @@ -933,7 +934,7 @@ InternetSearchDataSource::Init() } } - mEngineListBuilt = PR_FALSE; + gEngineListBuilt = PR_FALSE; // Register as a profile change obsevrer nsCOMPtr observerService = @@ -953,9 +954,9 @@ InternetSearchDataSource::DeferredInit() { nsresult rv = NS_OK; - if (mEngineListBuilt == PR_FALSE) + if (gEngineListBuilt == PR_FALSE) { - mEngineListBuilt = PR_TRUE; + gEngineListBuilt = PR_TRUE; // get available search engines nsCOMPtr nativeDir; @@ -1225,7 +1226,7 @@ InternetSearchDataSource::GetTargets(nsIRDFResource *source, { // defer search engine discovery until needed; small startup time improvement if (((source == kNC_SearchEngineRoot) || isSearchURI(source)) && (property == kNC_Child) - && (mEngineListBuilt == PR_FALSE)) + && (gEngineListBuilt == PR_FALSE)) { DeferredInit(); } @@ -2505,7 +2506,7 @@ InternetSearchDataSource::GetInternetSearchURL(const char *searchEngineURI, *resultURL = nsnull; // if we haven't already, load in the engines - if (mEngineListBuilt == PR_FALSE) DeferredInit(); + if (gEngineListBuilt == PR_FALSE) DeferredInit(); nsresult rv; nsCOMPtr engine; @@ -2650,7 +2651,7 @@ InternetSearchDataSource::FindInternetSearchResults(const char *url, PRBool *sea shortURL.Truncate(optionsOffset); // if we haven't already, load in the engines - if (mEngineListBuilt == PR_FALSE) DeferredInit(); + if (gEngineListBuilt == PR_FALSE) DeferredInit(); // look in available engines to see if any of them appear // to match this url (minus the GET options) @@ -5079,7 +5080,7 @@ InternetSearchDataSource::webSearchFinalize(nsIChannel* channel, nsIInternetSear const PRUnichar *uniBuf = nsnull; if (NS_SUCCEEDED(rv = context->GetBufferConst(&uniBuf)) && (uniBuf)) { - if (mParent) + if (mParent && (gBrowserSearchMode>0)) { // save HTML result page for this engine nsCOMPtr htmlLiteral; @@ -5489,7 +5490,7 @@ InternetSearchDataSource::ParseHTML(nsIURI *aURL, nsIRDFResource *mParent, // set HTML response chunk const PRUnichar *htmlResponseUni = resultItem.get(); - if (htmlResponseUni) + if (htmlResponseUni && (gBrowserSearchMode>0)) { nsCOMPtr htmlResponseLiteral; if (NS_SUCCEEDED(rv = gRDFService->GetLiteral(htmlResponseUni, getter_AddRefs(htmlResponseLiteral)))) diff --git a/xpfe/components/search/src/nsInternetSearchService.h b/xpfe/components/search/src/nsInternetSearchService.h index 6a37a65cf977..79046fe382f0 100644 --- a/xpfe/components/search/src/nsInternetSearchService.h +++ b/xpfe/components/search/src/nsInternetSearchService.h @@ -61,7 +61,8 @@ class InternetSearchDataSource : public nsIInternetSearchService, { private: static PRInt32 gRefCnt; - static PRBool mEngineListBuilt; + static PRInt32 gBrowserSearchMode; + static PRBool gEngineListBuilt; // pseudo-constants static nsIRDFResource *kNC_SearchResult;