зеркало из https://github.com/mozilla/pjs.git
Fixes bug 11740 and bug 12283
This commit is contained in:
Родитель
bfc09d5778
Коммит
1b59fdd1f0
|
@ -736,9 +736,12 @@ void endElement(void *userData, const char *name)
|
||||||
{
|
{
|
||||||
|
|
||||||
// If locked, write to the .cfg file. Don't care if it's default or not.
|
// If locked, write to the .cfg file. Don't care if it's default or not.
|
||||||
BOOL bLocked = ((CPrefElement*)userData)->IsLocked();
|
|
||||||
BOOL bDefault = ((CPrefElement*)userData)->IsDefault();
|
BOOL bLocked = ((CPrefElement*)userData)->IsLocked();
|
||||||
if (bLocked)
|
BOOL bRemoteAdmin = ((CPrefElement*)userData)->IsRemoteAdmin();
|
||||||
|
BOOL bDefault = ((CPrefElement*)userData)->IsDefault();
|
||||||
|
|
||||||
|
if (bLocked && !bRemoteAdmin)
|
||||||
{
|
{
|
||||||
// Write the pref element to prefs file.
|
// Write the pref element to prefs file.
|
||||||
ExtractXPIFile(gstrInstallFile, gstrCFGPrefFile);
|
ExtractXPIFile(gstrInstallFile, gstrCFGPrefFile);
|
||||||
|
@ -758,7 +761,6 @@ void endElement(void *userData, const char *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// If remote admin, write to the .jsc file.
|
// If remote admin, write to the .jsc file.
|
||||||
BOOL bRemoteAdmin = ((CPrefElement*)userData)->IsRemoteAdmin();
|
|
||||||
if (bRemoteAdmin)
|
if (bRemoteAdmin)
|
||||||
{
|
{
|
||||||
if (!FileExists(remoteAdminFile))
|
if (!FileExists(remoteAdminFile))
|
||||||
|
@ -781,6 +783,49 @@ void endElement(void *userData, const char *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// special case for homepage URL: if locked or remote admin, do the right thing.
|
||||||
|
// otherwise, call the originally called ModifyProperties method
|
||||||
|
|
||||||
|
BOOL ModifyHomepageURL(CString xpifile, CString entity, CString newvalue)
|
||||||
|
{
|
||||||
|
|
||||||
|
bool bLocked = GetGlobal("HomePageURLLocked") == "1";
|
||||||
|
bool bRemoteAdmin = GetGlobal("HomePageURLRemoteAdmin") == "1";
|
||||||
|
|
||||||
|
CString strPref = "browser.startup.homepage";
|
||||||
|
CString strURL = GetGlobal("HomePageURL");
|
||||||
|
|
||||||
|
if (bLocked && !bRemoteAdmin)
|
||||||
|
{
|
||||||
|
// Write the pref element to prefs file.
|
||||||
|
ExtractXPIFile(gstrInstallFile, gstrCFGPrefFile);
|
||||||
|
ModifyHashedPref(gstrCFGPrefFile, strPref, strURL, "string", TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If remote admin, write to the .jsc file.
|
||||||
|
|
||||||
|
else if (bRemoteAdmin)
|
||||||
|
{
|
||||||
|
if (!FileExists(remoteAdminFile))
|
||||||
|
{
|
||||||
|
CString strComment;
|
||||||
|
strComment.Format("/* The Homepage URL should be %s */\n", strURL);
|
||||||
|
CreateNewFile(remoteAdminFile, strComment);
|
||||||
|
}
|
||||||
|
|
||||||
|
ModifyJS(remoteAdminFile, strPref, strURL, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// not locked, or remote, just modify the property
|
||||||
|
|
||||||
|
else
|
||||||
|
ModifyProperties(xpifile, entity, newvalue);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Sets the autoadmin.global_config_url in strPrefFile to strURL.
|
// Sets the autoadmin.global_config_url in strPrefFile to strURL.
|
||||||
BOOL ConfigureRemoteAdmin(CString strURL, CString strPrefFile)
|
BOOL ConfigureRemoteAdmin(CString strURL, CString strPrefFile)
|
||||||
{
|
{
|
||||||
|
@ -1236,6 +1281,7 @@ int interpret(char *cmd)
|
||||||
(strcmp(cmdname, "modifyJS") == 0) ||
|
(strcmp(cmdname, "modifyJS") == 0) ||
|
||||||
(strcmp(cmdname, "modifyJS1") == 0) ||
|
(strcmp(cmdname, "modifyJS1") == 0) ||
|
||||||
(strcmp(cmdname, "modifyJS2") == 0) ||
|
(strcmp(cmdname, "modifyJS2") == 0) ||
|
||||||
|
(strcmp(cmdname, "modifyHomepageURL") == 0) ||
|
||||||
(strcmp(cmdname, "modifyProperties") == 0) ||
|
(strcmp(cmdname, "modifyProperties") == 0) ||
|
||||||
(strcmp(cmdname, "modifyHashedPrefString") == 0) ||
|
(strcmp(cmdname, "modifyHashedPrefString") == 0) ||
|
||||||
(strcmp(cmdname, "modifyHashedPrefInt") == 0) ||
|
(strcmp(cmdname, "modifyHashedPrefInt") == 0) ||
|
||||||
|
@ -1274,6 +1320,8 @@ int interpret(char *cmd)
|
||||||
ModifyHashedPref(xpifile,entity,newvalue, "int", TRUE);
|
ModifyHashedPref(xpifile,entity,newvalue, "int", TRUE);
|
||||||
else if (strcmp(cmdname, "modifyHashedPrefBool") == 0)
|
else if (strcmp(cmdname, "modifyHashedPrefBool") == 0)
|
||||||
ModifyHashedPref(xpifile,entity,newvalue, "bool", TRUE);
|
ModifyHashedPref(xpifile,entity,newvalue, "bool", TRUE);
|
||||||
|
else if (strcmp(cmdname, "modifyHomepageURL") == 0)
|
||||||
|
ModifyHomepageURL(xpifile,entity,newvalue);
|
||||||
else if (strcmp(cmdname, "modifyJS") == 0)
|
else if (strcmp(cmdname, "modifyJS") == 0)
|
||||||
ModifyJS(xpifile,entity,newvalue, FALSE);
|
ModifyJS(xpifile,entity,newvalue, FALSE);
|
||||||
else if (strcmp(cmdname, "modifyProperties") == 0)
|
else if (strcmp(cmdname, "modifyProperties") == 0)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче