зеркало из https://github.com/mozilla/gecko-dev.git
Fix the RDF-munging code to better handle the whole update-vs-assert thing.
Bugs 189034, 189080, 189107. r=pkw@us.ibm.com, sr=peterv
This commit is contained in:
Родитель
9a6a723dd3
Коммит
044609b7cc
|
@ -24,10 +24,7 @@ HandlerOverride.prototype = {
|
|||
|
||||
set mimeType(aMIMETypeString)
|
||||
{
|
||||
if (!this.mUpdateMode)
|
||||
assertMIMEStuff(MIME_URI(aMIMETypeString), "value", aMIMETypeString.toLowerCase());
|
||||
else
|
||||
changeMIMEStuff(MIME_URI(aMIMETypeString), "value", aMIMETypeString.toLowerCase());
|
||||
changeMIMEStuff(MIME_URI(aMIMETypeString), "value", aMIMETypeString.toLowerCase());
|
||||
},
|
||||
|
||||
get description()
|
||||
|
@ -37,10 +34,7 @@ HandlerOverride.prototype = {
|
|||
|
||||
set description(aDescriptionString)
|
||||
{
|
||||
if (!this.mUpdateMode)
|
||||
assertMIMEStuff(MIME_URI(this.mimeType), "description", aDescriptionString);
|
||||
else
|
||||
changeMIMEStuff(MIME_URI(this.mimeType), "description", aDescriptionString);
|
||||
changeMIMEStuff(MIME_URI(this.mimeType), "description", aDescriptionString);
|
||||
},
|
||||
|
||||
get isEditable()
|
||||
|
@ -50,10 +44,7 @@ HandlerOverride.prototype = {
|
|||
|
||||
set isEditable(aIsEditableString)
|
||||
{
|
||||
if (!this.mUpdateMode)
|
||||
assertMIMEStuff(MIME_URI(this.mimeType), "editable", aIsEditableString);
|
||||
else
|
||||
changeMIMEStuff(MIME_URI(this.mimeType), "editable", aIsEditableString);
|
||||
changeMIMEStuff(MIME_URI(this.mimeType), "editable", aIsEditableString);
|
||||
},
|
||||
|
||||
get largeIconURL()
|
||||
|
@ -66,10 +57,7 @@ HandlerOverride.prototype = {
|
|||
|
||||
set largeIconURL(aLargeIconURL)
|
||||
{
|
||||
if (!this.mUpdateMode)
|
||||
assertMIMEStuff(MIME_URI(this.mimeType), "largeIcon", aLargeIconURL);
|
||||
else
|
||||
changeMIMEStuff(MIME_URI(this.mimeType), "largeIcon", aLargeIconURL);
|
||||
changeMIMEStuff(MIME_URI(this.mimeType), "largeIcon", aLargeIconURL);
|
||||
},
|
||||
|
||||
get smallIconURL()
|
||||
|
@ -82,20 +70,16 @@ HandlerOverride.prototype = {
|
|||
|
||||
set smallIconURL(aSmallIconURL)
|
||||
{
|
||||
if (!this.mUpdateMode)
|
||||
assertMIMEStuff(MIME_URI(this.mimeType), "smallIcon", aSmallIconURL);
|
||||
else
|
||||
changeMIMEStuff(MIME_URI(this.mimeType), "smallIcon", aSmallIconURL);
|
||||
changeMIMEStuff(MIME_URI(this.mimeType), "smallIcon", aSmallIconURL);
|
||||
},
|
||||
|
||||
get extensions()
|
||||
{
|
||||
var extensionResource = gRDF.GetResource(NC_RDF("fileExtensions"));
|
||||
var contentTypeResource = gRDF.GetResource(MIME_URI(this.mimeType));
|
||||
var extensionTargets = gDS.GetTargets(contentTypeResource, extensionResource, true);
|
||||
var extensionTargets = gDS.GetTargets(contentTypeResource, extensionResource, true);
|
||||
var extString = "";
|
||||
if (extensionTargets) {
|
||||
extensionTargets = extensionTargets.QueryInterface(Components.interfaces.nsISimpleEnumerator);
|
||||
while (extensionTargets.hasMoreElements()) {
|
||||
var currentExtension = extensionTargets.getNext();
|
||||
if (currentExtension) {
|
||||
|
@ -119,6 +103,14 @@ HandlerOverride.prototype = {
|
|||
{
|
||||
unassertMIMEStuff(MIME_URI(this.mimeType), "fileExtensions", aExtensionString.toLowerCase());
|
||||
},
|
||||
|
||||
clearExtensions: function ()
|
||||
{
|
||||
var extArray = this.extensions.split(" ");
|
||||
for (i = extArray.length - 1; i >= 0; --i) {
|
||||
this.removeExtension(extArray[i]);
|
||||
}
|
||||
},
|
||||
|
||||
// content handling
|
||||
get saveToDisk()
|
||||
|
@ -128,18 +120,7 @@ HandlerOverride.prototype = {
|
|||
|
||||
set saveToDisk(aSavedToDisk)
|
||||
{
|
||||
var handlerSource = gRDF.GetResource(HANDLER_URI(this.mimeType));
|
||||
var handlerProperty = gRDF.GetResource(NC_RDF("saveToDisk"));
|
||||
var trueLiteral = gRDF.GetLiteral("true");
|
||||
var hasSaveToDisk = gDS.HasAssertion(handlerSource, handlerProperty, trueLiteral, true);
|
||||
if (!hasSaveToDisk) {
|
||||
var falseLiteral = gRDF.GetLiteral("false");
|
||||
hasSaveToDisk = gDS.HasAssertion(handlerSource, handlerProperty, falseLiteral, true);
|
||||
}
|
||||
if (!this.mUpdateMode || !hasSaveToDisk)
|
||||
assertMIMEStuff(HANDLER_URI(this.mimeType), "saveToDisk", aSavedToDisk);
|
||||
else
|
||||
changeMIMEStuff(HANDLER_URI(this.mimeType), "saveToDisk", aSavedToDisk);
|
||||
changeMIMEStuff(HANDLER_URI(this.mimeType), "saveToDisk", aSavedToDisk);
|
||||
this.setHandlerProcedure("handleInternal", "false");
|
||||
this.setHandlerProcedure("useSystemDefault", "false");
|
||||
},
|
||||
|
@ -151,18 +132,7 @@ HandlerOverride.prototype = {
|
|||
|
||||
set useSystemDefault(aUseSystemDefault)
|
||||
{
|
||||
var handlerSource = gRDF.GetResource(HANDLER_URI(this.mimeType));
|
||||
var handlerProperty = gRDF.GetResource(NC_RDF("useSystemDefault"));
|
||||
var trueLiteral = gRDF.GetLiteral("true");
|
||||
var hasUseSystemDefault = gDS.HasAssertion(handlerSource, handlerProperty, trueLiteral, true);
|
||||
if (!hasUseSystemDefault) {
|
||||
var falseLiteral = gRDF.GetLiteral("false");
|
||||
hasUseSystemDefault = gDS.HasAssertion(handlerSource, handlerProperty, falseLiteral, true);
|
||||
}
|
||||
if (!this.mUpdateMode || !hasUseSystemDefault)
|
||||
assertMIMEStuff(HANDLER_URI(this.mimeType), "useSystemDefault", aUseSystemDefault);
|
||||
else
|
||||
changeMIMEStuff(HANDLER_URI(this.mimeType), "useSystemDefault", aUseSystemDefault);
|
||||
changeMIMEStuff(HANDLER_URI(this.mimeType), "useSystemDefault", aUseSystemDefault);
|
||||
this.setHandlerProcedure("handleInternal", "false");
|
||||
this.setHandlerProcedure("saveToDisk", "false");
|
||||
},
|
||||
|
@ -174,18 +144,7 @@ HandlerOverride.prototype = {
|
|||
|
||||
set handleInternal(aHandledInternally)
|
||||
{
|
||||
var handlerSource = gRDF.GetResource(HANDLER_URI(this.mimeType));
|
||||
var handlerProperty = gRDF.GetResource(NC_RDF("handleInternal"));
|
||||
var trueLiteral = gRDF.GetLiteral("true");
|
||||
var hasHandleInternal = gDS.HasAssertion(handlerSource, handlerProperty, trueLiteral, true);
|
||||
if (!hasHandleInternal) {
|
||||
var falseLiteral = gRDF.GetLiteral("false");
|
||||
hasHandleInternal = gDS.HasAssertion(handlerSource, handlerProperty, falseLiteral, true);
|
||||
}
|
||||
if (!this.mUpdateMode || !hasHandleInternal)
|
||||
assertMIMEStuff(HANDLER_URI(this.mimeType), "handleInternal", aHandledInternally);
|
||||
else
|
||||
changeMIMEStuff(HANDLER_URI(this.mimeType), "handleInternal", aHandledInternally);
|
||||
changeMIMEStuff(HANDLER_URI(this.mimeType), "handleInternal", aHandledInternally);
|
||||
this.setHandlerProcedure("saveToDisk", "false");
|
||||
this.setHandlerProcedure("useSystemDefault", "false");
|
||||
},
|
||||
|
@ -210,10 +169,7 @@ HandlerOverride.prototype = {
|
|||
|
||||
set alwaysAsk(aAlwaysAsk)
|
||||
{
|
||||
if (!this.mUpdateMode)
|
||||
assertMIMEStuff(HANDLER_URI(this.mimeType), "alwaysAsk", aAlwaysAsk);
|
||||
else
|
||||
changeMIMEStuff(HANDLER_URI(this.mimeType), "alwaysAsk", aAlwaysAsk);
|
||||
changeMIMEStuff(HANDLER_URI(this.mimeType), "alwaysAsk", aAlwaysAsk);
|
||||
},
|
||||
|
||||
// helper application
|
||||
|
@ -224,10 +180,7 @@ HandlerOverride.prototype = {
|
|||
|
||||
set appDisplayName(aDisplayName)
|
||||
{
|
||||
if (!this.mUpdateMode)
|
||||
assertMIMEStuff(APP_URI(this.mimeType), "prettyName", aDisplayName);
|
||||
else
|
||||
changeMIMEStuff(APP_URI(this.mimeType), "prettyName", aDisplayName);
|
||||
changeMIMEStuff(APP_URI(this.mimeType), "prettyName", aDisplayName);
|
||||
},
|
||||
|
||||
get appPath()
|
||||
|
@ -237,10 +190,7 @@ HandlerOverride.prototype = {
|
|||
|
||||
set appPath(aAppPath)
|
||||
{
|
||||
if (!this.mUpdateMode)
|
||||
assertMIMEStuff(APP_URI(this.mimeType), "path", aAppPath);
|
||||
else
|
||||
changeMIMEStuff(APP_URI(this.mimeType), "path", aAppPath);
|
||||
changeMIMEStuff(APP_URI(this.mimeType), "path", aAppPath);
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -364,7 +314,11 @@ function changeMIMEStuff(aMIMEString, aPropertyString, aValueString)
|
|||
var valueProperty = gRDF.GetResource(NC_RDF(aPropertyString));
|
||||
var mimeLiteral = gRDF.GetLiteral(aValueString);
|
||||
var currentValue = gDS.GetTarget(mimeSource, valueProperty, true);
|
||||
gDS.Change(mimeSource, valueProperty, currentValue, mimeLiteral);
|
||||
if (currentValue) {
|
||||
gDS.Change(mimeSource, valueProperty, currentValue, mimeLiteral);
|
||||
} else {
|
||||
gDS.Assert(mimeSource, valueProperty, mimeLiteral, true);
|
||||
}
|
||||
}
|
||||
|
||||
function unassertMIMEStuff(aMIMEString, aPropertyString, aValueString)
|
||||
|
|
|
@ -326,6 +326,7 @@
|
|||
// set description, editable, and extensions
|
||||
handlerInfo.isEditable = true;
|
||||
handlerInfo.description = gDescription.value;
|
||||
handlerInfo.clearExtensions();
|
||||
var extensions = gExtension.value.toLowerCase().split(" ");
|
||||
for (var i = 0; i < extensions.length; i++) {
|
||||
var currExtension = extensions[i];
|
||||
|
|
Загрузка…
Ссылка в новой задаче