This commit is contained in:
ben%bengoodger.com 2004-10-08 00:30:13 +00:00
Родитель 8c3674543d
Коммит bdc89345a6
8 изменённых файлов: 194 добавлений и 59 удалений

Просмотреть файл

@ -0,0 +1,3 @@
# Do NOT localize or otherwise change these values
#expand browser.startup.homepage=http://start.mozilla.org/firefox/?__AB_CD__
#expand browser.startup.homepage_reset=http://start.mozilla.org/firefox/?__AB_CD__

Просмотреть файл

@ -1,6 +1,8 @@
# Do NOT localize or otherwise change these values
browser.search.param.Google.1.name=client
browser.search.param.Google.1.custom=firefox
browser.search.param.Google.1.default=firefox
browser.search.param.Google.release.name=rls
browser.search.param.Google.release.value=org.mozilla:%S:unofficial
browser.search.param.Google.1.custom=client=firefox
browser.search.param.Google.1.default=client=firefox
browser.search.param.Google.release=rls=org.mozilla:%S:unofficial
browser.search.order.Yahoo.1=client=firefox-1-unofficial
browser.search.order.Yahoo.2=client=firefox-2-unofficial
browser.search.order.Yahoo=client=firefox-3-unofficial

Просмотреть файл

@ -0,0 +1,3 @@
# Do NOT localize or otherwise change these values
#expand browser.startup.homepage=http://start.mozilla.org/firefox/?__AB_CD__
#expand browser.startup.homepage_reset=http://start.mozilla.org/firefox/?__AB_CD__

Просмотреть файл

@ -1,7 +1,9 @@
# Do NOT localize or otherwise change these values
browser.search.param.Google.1.name=client
browser.search.param.Google.1.custom=firefox
browser.search.param.Google.1.default=firefox-a
browser.search.param.Google.release.name=rls
browser.search.param.Google.release.value=org.mozilla:%S:official
browser.search.param.Google.1.custom=client=firefox
browser.search.param.Google.1.default=client=firefox-a
browser.search.param.Google.release=rls=org.mozilla:%S:official
browser.search.order.Yahoo.1=client=firefox-1-official
browser.search.order.Yahoo.2=client=firefox-2-official
browser.search.order.Yahoo=client=firefox-3-official

Просмотреть файл

@ -102,7 +102,6 @@ pref("browser.urlbar.clickSelectsAll", true);
// when clickSelectsAll=true, does it also apply when the click is past end of text?
pref("browser.urlbar.clickAtEndSelects", true);
pref("browser.search.param.Google.1.name", "chrome://navigator/content/searchconfig.properties");
pref("browser.search.param.Google.1.custom", "chrome://navigator/content/searchconfig.properties");
pref("browser.search.param.Google.1.default", "chrome://navigator/content/searchconfig.properties");

Просмотреть файл

@ -1,6 +1,5 @@
# Do NOT localize or otherwise change these values
browser.search.param.Google.1.name=client
browser.search.param.Google.1.custom=mozilla
browser.search.param.Google.1.default=mozilla
browser.search.param.Google.release.name=rls
browser.search.param.Google.release.value=org.mozilla:%S:unofficial
browser.search.param.Google.1.custom=client=mozilla
browser.search.param.Google.1.default=client=mozilla
browser.search.param.Google.release=rls=org.mozilla:%S:unofficial

Просмотреть файл

@ -60,6 +60,7 @@
#include "nsIDirectoryService.h"
#include "nsDirectoryServiceDefs.h"
#include "nsAppDirectoryServiceDefs.h"
#include "nsCOMArray.h"
#include "nsCRT.h"
#include "nsEnumeratorUtils.h"
#include "nsIRDFRemoteDataSource.h"
@ -368,6 +369,7 @@ nsCOMPtr<nsISupportsArray> InternetSearchDataSource::mUpdateArray;
nsCOMPtr<nsIRDFDataSource> InternetSearchDataSource::mLocalstore;
nsCOMPtr<nsIRDFDataSource> InternetSearchDataSource::categoryDataSource;
PRBool InternetSearchDataSource::gEngineListBuilt = PR_FALSE;
PRBool InternetSearchDataSource::gReorderedEngineList = PR_FALSE;
nsCOMPtr<nsILoadGroup> InternetSearchDataSource::mBackgroundLoadGroup;
nsCOMPtr<nsILoadGroup> InternetSearchDataSource::mLoadGroup;
nsCOMPtr<nsIPref> InternetSearchDataSource::prefs;
@ -1201,7 +1203,94 @@ InternetSearchDataSource::GetTarget(nsIRDFResource *source,
return(rv);
}
#ifdef MOZ_PHOENIX
void
InternetSearchDataSource::ReorderEngineList()
{
// XXXben - a temporary, inelegant solution to search list ordering until
// after 1.0 when we replace all of this with something better
// suited to our needs.
nsresult rv;
nsCOMArray<nsIRDFResource> engineList;
// Load all data for sherlock files...
nsCOMPtr<nsISimpleEnumerator> engines;
rv = GetTargets(kNC_SearchEngineRoot, kNC_Child, PR_TRUE, getter_AddRefs(engines));
if (NS_FAILED(rv)) return; // Not Fatal.
do {
PRBool hasMore;
engines->HasMoreElements(&hasMore);
if (!hasMore)
break;
nsCOMPtr<nsISupports> supp;
engines->GetNext(getter_AddRefs(supp));
nsCOMPtr<nsIRDFResource> engineResource(do_QueryInterface(supp));
nsCOMPtr<nsIRDFLiteral> data;
FindData(engineResource, getter_AddRefs(data));
}
while (PR_TRUE);
// Build the ordered items first...
nsCOMPtr<nsIPrefBranch> pserv(do_QueryInterface(prefs));
char prefNameBuf[1096];
PRInt32 i = 0;
do {
++i;
sprintf(prefNameBuf, "browser.search.order.%d", i);
nsCOMPtr<nsIPrefLocalizedString> engineName;
rv = pserv->GetComplexValue(prefNameBuf,
NS_GET_IID(nsIPrefLocalizedString),
getter_AddRefs(engineName));
if (NS_FAILED(rv)) break;
nsXPIDLString data;
engineName->GetData(getter_Copies(data));
nsCOMPtr<nsIRDFLiteral> engineNameLiteral;
gRDFService->GetLiteral(data, getter_AddRefs(engineNameLiteral));
nsCOMPtr<nsIRDFResource> engineResource;
rv = mInner->GetSource(kNC_Name, engineNameLiteral, PR_TRUE, getter_AddRefs(engineResource));
if (NS_FAILED(rv)) continue;
engineList.AppendObject(engineResource);
}
while (PR_TRUE);
// Now add the rest...
rv = GetTargets(kNC_SearchEngineRoot, kNC_Child, PR_TRUE, getter_AddRefs(engines));
if (NS_FAILED(rv)) return; // Not Fatal.
do {
PRBool hasMore;
engines->HasMoreElements(&hasMore);
if (!hasMore)
break;
nsCOMPtr<nsISupports> supp;
engines->GetNext(getter_AddRefs(supp));
nsCOMPtr<nsIRDFResource> engineResource(do_QueryInterface(supp));
if (engineList.IndexOfObject(engineResource) == -1)
engineList.AppendObject(engineResource);
// Unhook the item from the list, so we can rebuild it in the right
// order. Failures are benign.
Unassert(kNC_SearchEngineRoot, kNC_Child, engineResource);
}
while (PR_TRUE);
PRInt32 engineCount = engineList.Count();
for (i = 0; i < engineCount; ++i)
Assert(kNC_SearchEngineRoot, kNC_Child, engineList[i], PR_TRUE);
gReorderedEngineList = PR_TRUE;
}
#endif
NS_IMETHODIMP
InternetSearchDataSource::GetTargets(nsIRDFResource *source,
@ -1265,7 +1354,7 @@ InternetSearchDataSource::GetTargets(nsIRDFResource *source,
DeferredInit();
}
rv = mInner->GetTargets(source, property, tv, targets);
rv = mInner->GetTargets(source, property, tv, targets);
}
if (isSearchURI(source))
{
@ -4219,8 +4308,6 @@ InternetSearchDataSource::SaveEngineInfoIntoGraph(nsIFile *file, nsIFile *icon,
return(NS_OK);
}
nsresult
InternetSearchDataSource::GetSearchEngineList(nsIFile *searchDir,
PRBool isSystemSearchFile, PRBool checkMacFileType)
@ -4336,11 +4423,13 @@ InternetSearchDataSource::GetSearchEngineList(nsIFile *searchDir,
SaveEngineInfoIntoGraph(dirEntry, iconFile, nsnull, nsnull, isSystemSearchFile, checkMacFileType);
}
#ifdef MOZ_PHOENIX
if (!gReorderedEngineList)
ReorderEngineList();
#endif
return(rv);
}
nsresult
InternetSearchDataSource::ReadFileContents(nsILocalFile *localFile, nsString& sourceContents)
{
@ -4756,36 +4845,21 @@ InternetSearchDataSource::GetInputs(const PRUnichar *dataUni, nsString &engineNa
if (NS_FAILED(rv))
break;
nsCOMPtr<nsIPrefLocalizedString> parameterName;
rv = pb->GetComplexValue("name",
nsCOMPtr<nsIPrefLocalizedString> parameter;
nsXPIDLString parameterStr;
rv = pb->GetComplexValue(engineIsNotDefault ? "custom" : "default",
NS_GET_IID(nsIPrefLocalizedString),
getter_AddRefs(parameterName));
getter_AddRefs(parameter));
if (NS_FAILED(rv))
break;
nsXPIDLString parameterNameStr;
parameterName->GetData(getter_Copies(parameterNameStr));
parameter->GetData(getter_Copies(parameterStr));
if (!parameterNameStr.IsEmpty())
if (!parameterStr.IsEmpty())
{
if (!input.IsEmpty())
input.Append(NS_LITERAL_STRING("&"));
input += parameterNameStr;
nsCOMPtr<nsIPrefLocalizedString> parameterValue;
nsXPIDLString parameterValueStr;
rv = pb->GetComplexValue(engineIsNotDefault ? "custom" : "default",
NS_GET_IID(nsIPrefLocalizedString),
getter_AddRefs(parameterValue));
if (NS_SUCCEEDED(rv))
parameterValue->GetData(getter_Copies(parameterValueStr));
if (!parameterValueStr.IsEmpty())
{
input.Append(NS_LITERAL_STRING("="));
input += parameterValueStr;
}
input += parameterStr;
}
}
while (1);
@ -4803,28 +4877,75 @@ InternetSearchDataSource::GetInputs(const PRUnichar *dataUni, nsString &engineNa
nsAutoString keyTemplate(NS_LITERAL_STRING("browser.search.param."));
keyTemplate += engineName;
keyTemplate.Append(NS_LITERAL_STRING(".release."));
keyTemplate.Append(NS_LITERAL_STRING(".release"));
nsAutoString releaseNameKey = keyTemplate + NS_LITERAL_STRING("name");
nsAutoString releaseValueKey = keyTemplate + NS_LITERAL_STRING("value");
nsXPIDLString releaseName, releaseValue;
bundle->GetStringFromName(releaseNameKey.get(), getter_Copies(releaseName));
nsXPIDLString releaseValue;
const PRUnichar* strings[] = { langName.get() };
bundle->FormatStringFromName(releaseValueKey.get(), strings, 1, getter_Copies(releaseValue));
bundle->FormatStringFromName(keyTemplate.get(), strings, 1, getter_Copies(releaseValue));
if (!releaseName.IsEmpty())
if (!releaseValue.IsEmpty())
{
if (!input.IsEmpty())
input.Append(NS_LITERAL_STRING("&"));
input += releaseName;
input += releaseValue;
}
if (!releaseValue.IsEmpty())
// Now add order parameters.
nsCOMPtr<nsIPrefBranch> pb;
rv = pserv->GetBranch("", getter_AddRefs(pb));
if (NS_FAILED(rv)) return rv;
i = 0;
do {
++i;
sprintf(prefNameBuf, "browser.search.order.%d", i);
nsCOMPtr<nsIPrefLocalizedString> orderEngineName;
rv = pb->GetComplexValue(prefNameBuf,
NS_GET_IID(nsIPrefLocalizedString),
getter_AddRefs(orderEngineName));
if (NS_FAILED(rv))
break;
nsXPIDLString orderEngineNameStr;
orderEngineName->GetData(getter_Copies(orderEngineNameStr));
if (orderEngineNameStr.Equals(engineName))
break;
}
while (PR_TRUE);
if (NS_SUCCEEDED(rv))
{
sprintf(prefNameBuf, "browser.search.order.%s.%d",
NS_ConvertUCS2toUTF8(engineName).get(), i);
nsCOMPtr<nsIPrefLocalizedString> orderParam;
rv = rootBranch->GetComplexValue(prefNameBuf,
NS_GET_IID(nsIPrefLocalizedString),
getter_AddRefs(orderParam));
if (NS_FAILED(rv))
{
input.Append(NS_LITERAL_STRING("="));
input += releaseValue;
sprintf(prefNameBuf, "browser.search.order.%s",
NS_ConvertUCS2toUTF8(engineName).get(), i);
rv = rootBranch->GetComplexValue(prefNameBuf,
NS_GET_IID(nsIPrefLocalizedString),
getter_AddRefs(orderParam));
}
if (NS_SUCCEEDED(rv))
{
nsXPIDLString orderParamStr;
orderParam->GetData(getter_Copies(orderParamStr));
if (!orderParamStr.IsEmpty())
{
if (!input.IsEmpty())
input.Append(NS_LITERAL_STRING("&"));
input += orderParamStr;
}
}
}
rv = NS_OK;
}

Просмотреть файл

@ -62,6 +62,9 @@ private:
static PRInt32 gRefCnt;
static PRInt32 gBrowserSearchMode;
static PRBool gEngineListBuilt;
#ifdef MOZ_PHOENIX
static PRBool gReorderedEngineList;
#endif
// pseudo-constants
static nsIRDFResource *kNC_SearchResult;
@ -175,6 +178,9 @@ friend int PR_CALLBACK searchModePrefCallback(const char *pref, void *aClosur
nsresult filterSite(nsIRDFResource *src);
nsresult clearFilters(void);
PRBool isSearchResultFiltered(const nsString &href);
#ifdef MOZ_PHOENIX
void ReorderEngineList();
#endif
static void FireTimer(nsITimer* aTimer, void* aClosure);