mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backed out 7 changesets (bug 872147, bug 872143, bug 877467, bug 877200, bug 870063, bug 872149) for robocop-2 failures on a CLOSED TREE.
Backed out changeset 3a1e8e7ac07e (bug 870063) Backed out changeset 8904d2bf5da0 (bug 877200) Backed out changeset 80455a25276b (bug 872149) Backed out changeset c3b5567f1271 (bug 872147) Backed out changeset d3106edd4a5a (bug 872143) Backed out changeset 4fd2ae88da98 (bug 870063) Backed out changeset 1797dc46e862 (bug 877467)
This commit is contained in:
parent
3dd3218865
commit
f644566996
@ -72,26 +72,34 @@ var FeedHandler = {
|
|||||||
// First, let's decide on which feed to subscribe
|
// First, let's decide on which feed to subscribe
|
||||||
let feedIndex = -1;
|
let feedIndex = -1;
|
||||||
if (feeds.length > 1) {
|
if (feeds.length > 1) {
|
||||||
let p = new Prompt({
|
// JSON for Prompt
|
||||||
window: browser.contentWindow,
|
let feedResult = {
|
||||||
}).setSingleChoiceItems(feeds.map(function(feed) {
|
type: "Prompt:Show",
|
||||||
return { label: feed.title || feed.href }
|
multiple: false,
|
||||||
})).show((function(data) {
|
selected: [],
|
||||||
feedIndex = data.button;
|
listitems: []
|
||||||
if (feedIndex == -1)
|
};
|
||||||
return;
|
|
||||||
|
|
||||||
this.loadFeed(feeds[feedIndex], browser);
|
// Build the list of feeds
|
||||||
}).bind(this));
|
for (let i = 0; i < feeds.length; i++) {
|
||||||
return;
|
let item = {
|
||||||
|
label: feeds[i].title || feeds[i].href,
|
||||||
|
isGroup: false,
|
||||||
|
inGroup: false,
|
||||||
|
disabled: false,
|
||||||
|
id: i
|
||||||
|
};
|
||||||
|
feedResult.listitems.push(item);
|
||||||
|
}
|
||||||
|
feedIndex = JSON.parse(sendMessageToJava(feedResult)).button;
|
||||||
|
} else {
|
||||||
|
// Only a single feed on the page
|
||||||
|
feedIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.loadFeed(feeds[0], browser);
|
if (feedIndex == -1)
|
||||||
}
|
return;
|
||||||
},
|
let feedURL = feeds[feedIndex].href;
|
||||||
|
|
||||||
loadFeed: function fh_loadFeed(aFeed, aBrowser) {
|
|
||||||
let feedURL = aFeed.href;
|
|
||||||
|
|
||||||
// Next, we decide on which service to send the feed
|
// Next, we decide on which service to send the feed
|
||||||
let handlers = this.getContentHandlers(this.TYPE_MAYBE_FEED);
|
let handlers = this.getContentHandlers(this.TYPE_MAYBE_FEED);
|
||||||
@ -99,21 +107,34 @@ var FeedHandler = {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// JSON for Prompt
|
// JSON for Prompt
|
||||||
let p = new Prompt({
|
let handlerResult = {
|
||||||
window: aBrowser.contentWindow
|
type: "Prompt:Show",
|
||||||
}).setSingleChoiceItems(handlers.map(function(handler) {
|
multiple: false,
|
||||||
return { label: handler.name };
|
selected: [],
|
||||||
})).show(function(data) {
|
listitems: []
|
||||||
if (data.button == -1)
|
};
|
||||||
return;
|
|
||||||
|
|
||||||
// Merge the handler URL and the feed URL
|
// Build the list of handlers
|
||||||
let readerURL = handlers[data.button].uri;
|
for (let i = 0; i < handlers.length; ++i) {
|
||||||
readerURL = readerURL.replace(/%s/gi, encodeURIComponent(feedURL));
|
let item = {
|
||||||
|
label: handlers[i].name,
|
||||||
|
isGroup: false,
|
||||||
|
inGroup: false,
|
||||||
|
disabled: false,
|
||||||
|
id: i
|
||||||
|
};
|
||||||
|
handlerResult.listitems.push(item);
|
||||||
|
}
|
||||||
|
let handlerIndex = JSON.parse(sendMessageToJava(handlerResult)).button;
|
||||||
|
if (handlerIndex == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
// Open the resultant URL in a new tab
|
// Merge the handler URL and the feed URL
|
||||||
BrowserApp.addTab(readerURL, { parentId: BrowserApp.selectedTab.id });
|
let readerURL = handlers[handlerIndex].uri;
|
||||||
});
|
readerURL = readerURL.replace(/%s/gi, encodeURIComponent(feedURL));
|
||||||
|
|
||||||
|
// Open the resultant URL in a new tab
|
||||||
|
BrowserApp.addTab(readerURL, { parentId: BrowserApp.selectedTab.id });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -23,41 +23,44 @@ var InputWidgetHelper = {
|
|||||||
|
|
||||||
show: function(aElement) {
|
show: function(aElement) {
|
||||||
let type = aElement.getAttribute('type');
|
let type = aElement.getAttribute('type');
|
||||||
let p = new Prompt({
|
let msg = {
|
||||||
window: aElement.ownerDocument.defaultView,
|
type: "Prompt:Show",
|
||||||
title: Strings.browser.GetStringFromName("inputWidgetHelper." + aElement.getAttribute('type')),
|
title: Strings.browser.GetStringFromName("inputWidgetHelper." + aElement.getAttribute('type')),
|
||||||
buttons: [
|
buttons: [
|
||||||
Strings.browser.GetStringFromName("inputWidgetHelper.set"),
|
Strings.browser.GetStringFromName("inputWidgetHelper.set"),
|
||||||
Strings.browser.GetStringFromName("inputWidgetHelper.clear"),
|
Strings.browser.GetStringFromName("inputWidgetHelper.clear"),
|
||||||
Strings.browser.GetStringFromName("inputWidgetHelper.cancel")
|
Strings.browser.GetStringFromName("inputWidgetHelper.cancel")
|
||||||
],
|
],
|
||||||
}).addDatePicker({
|
inputs: [
|
||||||
value: aElement.value,
|
{ type: type, value: aElement.value }
|
||||||
type: type,
|
]
|
||||||
}).show((function(data) {
|
};
|
||||||
let changed = false;
|
|
||||||
if (data.button == -1) {
|
let data = JSON.parse(sendMessageToJava(msg));
|
||||||
// This type is not supported with this android version.
|
|
||||||
return;
|
let changed = false;
|
||||||
}
|
if (data.button == -1) {
|
||||||
if (data.button == 1) {
|
// This type is not supported with this android version.
|
||||||
// The user cleared the value.
|
return;
|
||||||
if (aElement.value != "") {
|
}
|
||||||
aElement.value = "";
|
if (data.button == 1) {
|
||||||
changed = true;
|
// The user cleared the value.
|
||||||
}
|
if (aElement.value != "") {
|
||||||
} else if (data.button == 0) {
|
aElement.value = "";
|
||||||
// Commit the new value.
|
changed = true;
|
||||||
if (aElement.value != data[type]) {
|
}
|
||||||
aElement.value = data[type + "0"];
|
} else if (data.button == 0) {
|
||||||
changed = true;
|
// Commit the new value.
|
||||||
}
|
if (aElement.value != data[type]) {
|
||||||
}
|
aElement.value = data[type];
|
||||||
// Else the user canceled the input.
|
changed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Else the user canceled the input.
|
||||||
|
|
||||||
|
if (changed)
|
||||||
|
this.fireOnChange(aElement);
|
||||||
|
|
||||||
if (changed)
|
|
||||||
this.fireOnChange(aElement);
|
|
||||||
}).bind(this));
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_isValidInput: function(aElement) {
|
_isValidInput: function(aElement) {
|
||||||
|
@ -249,6 +249,7 @@ var BrowserApp = {
|
|||||||
_tabs: [],
|
_tabs: [],
|
||||||
_selectedTab: null,
|
_selectedTab: null,
|
||||||
_prefObservers: [],
|
_prefObservers: [],
|
||||||
|
_promptHandlers: {},
|
||||||
|
|
||||||
get isTablet() {
|
get isTablet() {
|
||||||
let sysInfo = Cc["@mozilla.org/system-info;1"].getService(Ci.nsIPropertyBag2);
|
let sysInfo = Cc["@mozilla.org/system-info;1"].getService(Ci.nsIPropertyBag2);
|
||||||
@ -298,6 +299,7 @@ var BrowserApp = {
|
|||||||
Services.obs.addObserver(this, "FormHistory:Init", false);
|
Services.obs.addObserver(this, "FormHistory:Init", false);
|
||||||
Services.obs.addObserver(this, "gather-telemetry", false);
|
Services.obs.addObserver(this, "gather-telemetry", false);
|
||||||
Services.obs.addObserver(this, "keyword-search", false);
|
Services.obs.addObserver(this, "keyword-search", false);
|
||||||
|
Services.obs.addObserver(this, "Prompt:Reply", false);
|
||||||
|
|
||||||
Services.obs.addObserver(this, "sessionstore-state-purge-complete", false);
|
Services.obs.addObserver(this, "sessionstore-state-purge-complete", false);
|
||||||
|
|
||||||
@ -1426,6 +1428,18 @@ var BrowserApp = {
|
|||||||
browser.contentDocument.mozCancelFullScreen();
|
browser.contentDocument.mozCancelFullScreen();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "Prompt:Reply":
|
||||||
|
{
|
||||||
|
let data = JSON.parse(aData);
|
||||||
|
let guid = data.guid;
|
||||||
|
let handler = this._promptHandlers[guid];
|
||||||
|
if (!handler)
|
||||||
|
break;
|
||||||
|
this._promptHandlers[guid];
|
||||||
|
handler(data);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case "Viewport:Change":
|
case "Viewport:Change":
|
||||||
if (this.isBrowserContentDocumentDisplayed())
|
if (this.isBrowserContentDocumentDisplayed())
|
||||||
this.selectedTab.setViewport(JSON.parse(aData));
|
this.selectedTab.setViewport(JSON.parse(aData));
|
||||||
@ -1490,26 +1504,35 @@ var BrowserApp = {
|
|||||||
// selecting selIndex(if fromIndex<=selIndex<=toIndex)
|
// selecting selIndex(if fromIndex<=selIndex<=toIndex)
|
||||||
showHistory: function(fromIndex, toIndex, selIndex) {
|
showHistory: function(fromIndex, toIndex, selIndex) {
|
||||||
let browser = this.selectedBrowser;
|
let browser = this.selectedBrowser;
|
||||||
|
let guid = uuidgen.generateUUID().toString();
|
||||||
|
let result = {
|
||||||
|
type: "Prompt:Show",
|
||||||
|
multiple: false,
|
||||||
|
async: true,
|
||||||
|
guid: guid,
|
||||||
|
selected: [],
|
||||||
|
listitems: []
|
||||||
|
};
|
||||||
let hist = browser.sessionHistory;
|
let hist = browser.sessionHistory;
|
||||||
let listitems = [];
|
|
||||||
for (let i = toIndex; i >= fromIndex; i--) {
|
for (let i = toIndex; i >= fromIndex; i--) {
|
||||||
let entry = hist.getEntryAtIndex(i, false);
|
let entry = hist.getEntryAtIndex(i, false);
|
||||||
let item = {
|
let item = {
|
||||||
label: entry.title || entry.URI.spec,
|
label: entry.title || entry.URI.spec,
|
||||||
selected: (i == selIndex)
|
isGroup: false,
|
||||||
|
inGroup: false,
|
||||||
|
disabled: false,
|
||||||
|
id: i
|
||||||
};
|
};
|
||||||
listitems.push(item);
|
result.listitems.push(item);
|
||||||
|
result.selected.push(i == selIndex);
|
||||||
}
|
}
|
||||||
|
this._promptHandlers[guid] = function (data) {
|
||||||
let p = new Prompt({
|
|
||||||
window: browser.contentWindow
|
|
||||||
}).setSingleChoiceItems(listitems).show(function(data) {
|
|
||||||
let selected = data.button;
|
let selected = data.button;
|
||||||
if (selected == -1)
|
if (selected == -1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
browser.gotoIndex(toIndex-selected);
|
browser.gotoIndex(toIndex-selected);
|
||||||
});
|
};
|
||||||
|
sendMessageToJava(result);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1889,8 +1912,10 @@ var NativeWindow = {
|
|||||||
icon: item.icon,
|
icon: item.icon,
|
||||||
label: item.label,
|
label: item.label,
|
||||||
id: id,
|
id: id,
|
||||||
|
isGroup: false,
|
||||||
|
inGroup: false,
|
||||||
disabled: item.disabled,
|
disabled: item.disabled,
|
||||||
parent: item instanceof Ci.nsIDOMHTMLMenuElement
|
isParent: item instanceof Ci.nsIDOMHTMLMenuElement
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -2015,36 +2040,36 @@ var NativeWindow = {
|
|||||||
if (itemArray.length == 0)
|
if (itemArray.length == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let prompt = new Prompt({
|
let msg = {
|
||||||
window: aTarget.ownerDocument.defaultView,
|
type: "Prompt:Show",
|
||||||
title: title
|
title: title,
|
||||||
}).setSingleChoiceItems(itemArray)
|
listitems: itemArray
|
||||||
.show(function(data) {
|
};
|
||||||
if (data.button == -1) {
|
let data = JSON.parse(sendMessageToJava(msg));
|
||||||
// prompt was cancelled
|
if (data.button == -1) {
|
||||||
return;
|
// prompt was cancelled
|
||||||
}
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let selectedId = itemArray[data.button].id;
|
let selectedId = itemArray[data.button].id;
|
||||||
let selectedItem = this._getMenuItemForId(selectedId);
|
let selectedItem = this._getMenuItemForId(selectedId);
|
||||||
|
|
||||||
this.menuitems = null;
|
this.menuitems = null;
|
||||||
if (selectedItem && selectedItem.callback) {
|
if (selectedItem && selectedItem.callback) {
|
||||||
if (selectedItem.matches) {
|
if (selectedItem.matches) {
|
||||||
// for menuitems added using the native UI, pass the dom element that matched that item to the callback
|
// for menuitems added using the native UI, pass the dom element that matched that item to the callback
|
||||||
while (aTarget) {
|
while (aTarget) {
|
||||||
if (selectedItem.matches(aTarget, aX, aY)) {
|
if (selectedItem.matches(aTarget, aX, aY)) {
|
||||||
selectedItem.callback.call(selectedItem, aTarget, aX, aY);
|
selectedItem.callback.call(selectedItem, aTarget, aX, aY);
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
aTarget = aTarget.parentNode;
|
|
||||||
}
|
}
|
||||||
} else {
|
aTarget = aTarget.parentNode;
|
||||||
// if this was added using the html5 context menu api, just click on the context menu item
|
|
||||||
selectedItem.callback.call(selectedItem, aTarget, aX, aY);
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// if this was added using the html5 context menu api, just click on the context menu item
|
||||||
|
selectedItem.callback.call(selectedItem, aTarget, aX, aY);
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
handleEvent: function(aEvent) {
|
handleEvent: function(aEvent) {
|
||||||
|
@ -82,19 +82,28 @@ PaymentUI.prototype = {
|
|||||||
requestText += " (" + request.productPrice[0].amount + " " +
|
requestText += " (" + request.productPrice[0].amount + " " +
|
||||||
request.productPrice[0].currency + ")";
|
request.productPrice[0].currency + ")";
|
||||||
}
|
}
|
||||||
listItems.push({ label: requestText });
|
listItems.push({
|
||||||
|
label: requestText,
|
||||||
|
isGroup: false,
|
||||||
|
inGroup: false,
|
||||||
|
disabled: false,
|
||||||
|
id: i
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
let p = new Prompt({
|
let result = this.sendMessageToJava({
|
||||||
window: null,
|
type: "Prompt:Show",
|
||||||
title: this.bundle.GetStringFromName("payments.providerdialog.title"),
|
title: this.bundle.GetStringFromName("payments.providerdialog.title"),
|
||||||
}).setSingleChoiceItems(listItems).show(function(data) {
|
multiple: false,
|
||||||
if (data.button > -1 && aSuccessCb) {
|
selected: [],
|
||||||
aSuccessCb.onresult(aRequestId, aRequests[data.button].wrappedJSObject.type);
|
listItems: listItems,
|
||||||
} else {
|
|
||||||
_error(aRequestId, "USER_CANCELED");
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (result.button > -1 && aSuccessCb) {
|
||||||
|
aSuccessCb.onresult(aRequestId, aRequests[result.button].wrappedJSObject.type);
|
||||||
|
} else {
|
||||||
|
_error(aRequestId, "USER_CANCELED");
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_error: function(aCallback) {
|
_error: function(aCallback) {
|
||||||
|
@ -48,8 +48,6 @@ Prompt.prototype = {
|
|||||||
obj.id = aOptions.id || (aOptions.type + this[aOptions.type + "_count"]);
|
obj.id = aOptions.id || (aOptions.type + this[aOptions.type + "_count"]);
|
||||||
this[aOptions.type + "_count"]++;
|
this[aOptions.type + "_count"]++;
|
||||||
|
|
||||||
if (!this.msg.inputs)
|
|
||||||
this.msg.inputs = [];
|
|
||||||
this.msg.inputs.push(obj);
|
this.msg.inputs.push(obj);
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
@ -83,13 +81,6 @@ Prompt.prototype = {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
addDatePicker: function(aOptions) {
|
|
||||||
return this._addInput({
|
|
||||||
type: aOptions.type || "date",
|
|
||||||
value: aOptions.value,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
addMenulist: function(aOptions) {
|
addMenulist: function(aOptions) {
|
||||||
return this._addInput({
|
return this._addInput({
|
||||||
type: "menulist",
|
type: "menulist",
|
||||||
@ -121,13 +112,17 @@ Prompt.prototype = {
|
|||||||
this.callback(data);
|
this.callback(data);
|
||||||
},
|
},
|
||||||
|
|
||||||
_setListItems: function(aItems) {
|
_setListItems: function(aItems, aInGroup) {
|
||||||
let hasSelected = false;
|
let hasSelected = false;
|
||||||
this.msg.listitems = [];
|
if (!aInGroup)
|
||||||
|
this.msg.listitems = [];
|
||||||
|
|
||||||
aItems.forEach(function(item) {
|
aItems.forEach(function(item) {
|
||||||
let obj = { id: item.id };
|
let obj = { id: item.id };
|
||||||
|
|
||||||
|
if (aInGroup !== undefined)
|
||||||
|
obj.inGroup = aInGroup;
|
||||||
|
|
||||||
obj.label = item.label;
|
obj.label = item.label;
|
||||||
|
|
||||||
if (item.disabled)
|
if (item.disabled)
|
||||||
@ -141,17 +136,19 @@ Prompt.prototype = {
|
|||||||
this.msg.selected[this.msg.listitems.length] = item.selected;
|
this.msg.selected[this.msg.listitems.length] = item.selected;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.header)
|
if (item.children) {
|
||||||
obj.isGroup = true;
|
obj.isGroup = true;
|
||||||
|
} else if (item.submenu) {
|
||||||
if (item.menu)
|
|
||||||
obj.isParent = true;
|
obj.isParent = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.child)
|
// Order matters in the java message, so make sure we add the obj
|
||||||
obj.inGroup = true;
|
// to the list before we add its children
|
||||||
|
|
||||||
this.msg.listitems.push(obj);
|
this.msg.listitems.push(obj);
|
||||||
|
|
||||||
|
if (item.children)
|
||||||
|
this._setListItems(item.children, true);
|
||||||
|
|
||||||
}, this);
|
}, this);
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user