Merge backout from mozilla-central in the hope it solves the permaorange in Android b-c

This commit is contained in:
Marco Bonardo 2011-06-24 15:21:50 +02:00
commit 8d22d9c86b
16 changed files with 10 additions and 336 deletions

View File

@ -530,6 +530,7 @@
<body>
<![CDATA[
let bcr = this.getBoundingClientRect();
let view = this.getRootView();
let scroll = this.getRootView().getPosition();
return { x: (clientX + scroll.x - bcr.left) / this.scale,
y: (clientY + scroll.y - bcr.top) / this.scale };
@ -537,19 +538,6 @@
</body>
</method>
<method name="transformBrowserToClient">
<parameter name="browserX"/>
<parameter name="browserY"/>
<body>
<![CDATA[
let bcr = this.getBoundingClientRect();
let scroll = this.getRootView().getPosition();
return { x: (browserX * this.scale - scroll.x + bcr.left) ,
y: (browserY * this.scale - scroll.y + bcr.top)};
]]>
</body>
</method>
<constructor>
<![CDATA[
this._frameLoader = this.QueryInterface(Components.interfaces.nsIFrameLoaderOwner).frameLoader;

View File

@ -71,7 +71,6 @@ XPCOMUtils.defineLazyGetter(this, "CommonUI", function() {
["FullScreenVideo"],
["BadgeHandlers"],
["ContextHelper"],
["SelectionHelper"],
["FormHelperUI"],
["FindHelperUI"],
["NewTabPopup"],

View File

@ -1754,13 +1754,11 @@ const ContentTouchHandler = {
case "Browser:ContextMenu":
// Long tap
let contextMenu = { name: aMessage.name, json: json, target: aMessage.target };
if (!SelectionHelper.showPopup(contextMenu)) {
if (ContextHelper.showPopup(contextMenu)) {
// Stop all input sequences
let event = document.createEvent("Events");
event.initEvent("CancelTouchSequence", true, false);
document.dispatchEvent(event);
}
if (ContextHelper.showPopup(contextMenu)) {
// Stop all input sequences
let event = document.createEvent("Events");
event.initEvent("CancelTouchSequence", true, false);
document.dispatchEvent(event);
}
break;
case "Browser:CaptureEvents": {

View File

@ -663,9 +663,6 @@
</vbox>
</hbox>
<toolbarbutton id="selectionhandle-start" label="^" left="0" top="0" hidden="true"/>
<toolbarbutton id="selectionhandle-end" label="^" left="0" top="0" hidden="true"/>
<hbox id="menulist-container" class="window-width window-height context-block" top="0" left="0" hidden="true" flex="1">
<vbox id="menulist-popup" class="dialog-dark">
<label id="menulist-title" class="options-title" crop="center" flex="1"/>

View File

@ -1235,166 +1235,6 @@ var ContextHelper = {
}
};
var SelectionHelper = {
popupState: null,
target: null,
deltaX: -1,
deltaY: -1,
get _start() {
delete this._start;
return this._start = document.getElementById("selectionhandle-start");
},
get _end() {
delete this._end;
return this._end = document.getElementById("selectionhandle-end");
},
showPopup: function ch_showPopup(aMessage) {
if (aMessage.json.types.indexOf("content-text") == -1)
return false;
this.popupState = aMessage.json;
this.popupState.target = aMessage.target;
this._start.customDragger = {
isDraggable: function isDraggable(target, content) { return { x: true, y: false }; },
dragStart: function dragStart(cx, cy, target, scroller) {},
dragStop: function dragStop(dx, dy, scroller) { return false; },
dragMove: function dragMove(dx, dy, scroller) { return false; }
};
this._end.customDragger = {
isDraggable: function isDraggable(target, content) { return { x: true, y: false }; },
dragStart: function dragStart(cx, cy, target, scroller) {},
dragStop: function dragStop(dx, dy, scroller) { return false; },
dragMove: function dragMove(dx, dy, scroller) { return false; }
};
this._start.addEventListener("TapDown", this, true);
this._start.addEventListener("TapUp", this, true);
this._end.addEventListener("TapDown", this, true);
this._end.addEventListener("TapUp", this, true);
messageManager.addMessageListener("Browser:SelectionRange", this);
messageManager.addMessageListener("Browser:SelectionCopied", this);
Services.prefs.setBoolPref("accessibility.browsewithcaret", true);
this.popupState.target.messageManager.sendAsyncMessage("Browser:SelectionStart", { x: this.popupState.x, y: this.popupState.y });
BrowserUI.pushPopup(this, [this._start, this._end]);
// Hide the selection handles
window.addEventListener("resize", this, true);
window.addEventListener("keypress", this, true);
Elements.browsers.addEventListener("URLChanged", this, true);
Elements.browsers.addEventListener("SizeChanged", this, true);
Elements.browsers.addEventListener("ZoomChanged", this, true);
let event = document.createEvent("Events");
event.initEvent("CancelTouchSequence", true, false);
this.popupState.target.dispatchEvent(event);
return true;
},
hide: function ch_hide() {
if (this._start.hidden)
return;
this.popupState.target.messageManager.sendAsyncMessage("Browser:SelectionEnd", {});
this.popupState = null;
Services.prefs.setBoolPref("accessibility.browsewithcaret", false);
this._start.hidden = true;
this._end.hidden = true;
this._start.removeEventListener("TapDown", this, true);
this._start.removeEventListener("TapUp", this, true);
this._end.removeEventListener("TapDown", this, true);
this._end.removeEventListener("TapUp", this, true);
messageManager.removeMessageListener("Browser:SelectionRange", this);
window.removeEventListener("resize", this, true);
window.removeEventListener("keypress", this, true);
Elements.browsers.removeEventListener("URLChanged", this, true);
Elements.browsers.removeEventListener("SizeChanged", this, true);
Elements.browsers.removeEventListener("ZoomChanged", this, true);
BrowserUI.popPopup(this);
},
handleEvent: function handleEvent(aEvent) {
switch (aEvent.type) {
case "TapDown":
this.target = aEvent.target;
this.deltaX = (aEvent.clientX - this.target.left);
this.deltaY = (aEvent.clientY - this.target.top);
window.addEventListener("TapMove", this, true);
break;
case "TapUp":
window.removeEventListener("TapMove", this, true);
this.target = null;
this.deltaX = -1;
this.deltaY = -1;
break;
case "TapMove":
if (this.target) {
this.target.left = aEvent.clientX - this.deltaX;
this.target.top = aEvent.clientY - this.deltaY;
let rect = this.target.getBoundingClientRect();
let data = this.target == this._start ? { x: rect.right, y: rect.top, type: "start" } : { x: rect.left, y: rect.top, type: "end" };
let pos = this.popupState.target.transformClientToBrowser(data.x || 0, data.y || 0);
let json = {
type: data.type,
x: pos.x,
y: pos.y
};
this.popupState.target.messageManager.sendAsyncMessage("Browser:SelectionMove", json);
}
break;
case "resize":
case "keypress":
case "URLChanged":
case "SizeChanged":
case "ZoomChanged":
this.hide();
break;
}
},
receiveMessage: function sh_receiveMessage(aMessage) {
let json = aMessage.json;
switch (aMessage.name) {
case "Browser:SelectionRange": {
let pos = this.popupState.target.transformBrowserToClient(json.start.x || 0, json.start.y || 0);
this._start.left = pos.x - 32;
this._start.top = pos.y + this.deltaY;
this._start.hidden = false;
pos = this.popupState.target.transformBrowserToClient(json.end.x || 0, json.end.y || 0);
this._end.left = pos.x;
this._end.top = pos.y;
this._end.hidden = false;
break;
}
case "Browser:SelectionCopied": {
messageManager.removeMessageListener("Browser:SelectionCopied", this);
if (json.succeeded) {
let toaster = Cc["@mozilla.org/toaster-alerts-service;1"].getService(Ci.nsIAlertsService);
toaster.showAlertNotification(null, Strings.browser.GetStringFromName("selectionHelper.textCopied"), "", false, "", null);
}
break;
}
}
}
};
var BadgeHandlers = {
_handlers: [
{

View File

@ -918,14 +918,6 @@ var ContextHandler = {
if (hasData && !elem.readOnly)
state.types.push("paste");
break;
} else if (elem instanceof Ci.nsIDOMHTMLParagraphElement ||
elem instanceof Ci.nsIDOMHTMLDivElement ||
elem instanceof Ci.nsIDOMHTMLLIElement ||
elem instanceof Ci.nsIDOMHTMLPreElement ||
elem instanceof Ci.nsIDOMHTMLHeadingElement ||
elem instanceof Ci.nsIDOMHTMLTableCellElement) {
state.types.push("content-text");
break;
}
}
@ -1289,7 +1281,6 @@ var TouchEventHandler = {
if (!this.element)
return;
let cancelled = !this.sendEvent(type, json, this.element);
if (type == "touchend")
this.element = null;
@ -1325,86 +1316,6 @@ var TouchEventHandler = {
}
return aElement.dispatchEvent(evt);
}
};
}
TouchEventHandler.init();
var SelectionHandler = {
cache: {},
init: function() {
addMessageListener("Browser:SelectionStart", this);
addMessageListener("Browser:SelectionEnd", this);
addMessageListener("Browser:SelectionMove", this);
},
receiveMessage: function(aMessage) {
let scrollOffset = ContentScroll.getScrollOffset(content);
let utils = Util.getWindowUtils(content);
let json = aMessage.json;
switch (aMessage.name) {
case "Browser:SelectionStart": {
// Position the caret using a fake mouse click
utils.sendMouseEventToWindow("mousedown", json.x - scrollOffset.x, json.y - scrollOffset.y, 0, 1, 0, true);
utils.sendMouseEventToWindow("mouseup", json.x - scrollOffset.x, json.y - scrollOffset.y, 0, 1, 0, true);
// Select the word nearest the caret
let selcon = docShell.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsISelectionDisplay).QueryInterface(Ci.nsISelectionController);
selcon.wordMove(false, false);
selcon.wordMove(true, true);
// Find the selected text rect and send it back so the handles can position correctly
let selection = content.getSelection();
let range = selection.getRangeAt(0).QueryInterface(Ci.nsIDOMNSRange);
this.cache = { start: {}, end: {} };
let rects = range.getClientRects();
for (let i=0; i<rects.length; i++) {
if (i == 0) {
this.cache.start.x = rects[i].left + scrollOffset.x;
this.cache.start.y = rects[i].bottom + scrollOffset.y;
}
this.cache.end.x = rects[i].right + scrollOffset.x;
this.cache.end.y = rects[i].bottom + scrollOffset.y;
}
sendAsyncMessage("Browser:SelectionRange", this.cache);
break;
}
case "Browser:SelectionEnd": {
let selection = content.getSelection();
let str = selection.toString();
selection.collapseToStart();
if (str.length) {
let clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper);
clipboard.copyString(str);
sendAsyncMessage("Browser:SelectionCopied", { succeeded: true });
} else {
sendAsyncMessage("Browser:SelectionCopied", { succeeded: false });
}
break;
}
case "Browser:SelectionMove":
if (json.type == "end") {
this.cache.end.x = json.x - scrollOffset.x;
this.cache.end.y = json.y - scrollOffset.y;
utils.sendMouseEventToWindow("mousedown", this.cache.end.x, this.cache.end.y, 0, 1, Ci.nsIDOMNSEvent.SHIFT_MASK, true);
utils.sendMouseEventToWindow("mouseup", this.cache.end.x, this.cache.end.y, 0, 1, Ci.nsIDOMNSEvent.SHIFT_MASK, true);
} else {
this.cache.start.x = json.x - scrollOffset.x;
this.cache.start.y = json.y - scrollOffset.y;
utils.sendMouseEventToWindow("mousedown", this.cache.start.x, this.cache.start.y, 0, 1, 0, true);
// Don't cause a click. A mousedown is enough to move the caret
//utils.sendMouseEventToWindow("mouseup", this.cache.start.x, this.cache.start.y, 0, 1, 0, true);
utils.sendMouseEventToWindow("mousedown", this.cache.end.x, this.cache.end.y, 0, 1, Ci.nsIDOMNSEvent.SHIFT_MASK, true);
utils.sendMouseEventToWindow("mouseup", this.cache.end.x, this.cache.end.y, 0, 1, Ci.nsIDOMNSEvent.SHIFT_MASK, true);
}
break;
}
}
};
SelectionHandler.init();

View File

@ -20,9 +20,5 @@
<a id="link-nested" href="browser_blank_02.html"><img id="img-nested" src="data:image/jpeg,%FF%D8%FF%E0%00%10JFIF%00%01%01%00%00%01%00%01%00%00%FF%FE%00%3BCREATOR%3A%20gd-jpeg%20v1.0%20(using%20IJG%20JPEG%20v62)%2C%20quality%20%3D%2090%0A%FF%DB%00C%00%03%02%02%03%02%02%03%03%03%03%04%03%03%04%05%08%05%05%04%04%05%0A%07%07%06%08%0C%0A%0C%0C%0B%0A%0B%0B%0D%0E%12%10%0D%0E%11%0E%0B%0B%10%16%10%11%13%14%15%15%15%0C%0F%17%18%16%14%18%12%14%15%14%FF%DB%00C%01%03%04%04%05%04%05%09%05%05%09%14%0D%0B%0D%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%14%FF%C0%00%11%08%00%24%00%24%03%01%22%00%02%11%01%03%11%01%FF%C4%00%1F%00%00%01%05%01%01%01%01%01%01%00%00%00%00%00%00%00%00%01%02%03%04%05%06%07%08%09%0A%0B%FF%C4%00%B5%10%00%02%01%03%03%02%04%03%05%05%04%04%00%00%01%7D%01%02%03%00%04%11%05%12!1A%06%13Qa%07%22q%142%81%91%A1%08%23B%B1%C1%15R%D1%F0%243br%82%09%0A%16%17%18%19%1A%25%26'()*456789%3ACDEFGHIJSTUVWXYZcdefghijstuvwxyz%83%84%85%86%87%88%89%8A%92%93%94%95%96%97%98%99%9A%A2%A3%A4%A5%A6%A7%A8%A9%AA%B2%B3%B4%B5%B6%B7%B8%B9%BA%C2%C3%C4%C5%C6%C7%C8%C9%CA%D2%D3%D4%D5%D6%D7%D8%D9%DA%E1%E2%E3%E4%E5%E6%E7%E8%E9%EA%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FF%C4%00%1F%01%00%03%01%01%01%01%01%01%01%01%01%00%00%00%00%00%00%01%02%03%04%05%06%07%08%09%0A%0B%FF%C4%00%B5%11%00%02%01%02%04%04%03%04%07%05%04%04%00%01%02w%00%01%02%03%11%04%05!1%06%12AQ%07aq%13%222%81%08%14B%91%A1%B1%C1%09%233R%F0%15br%D1%0A%16%244%E1%25%F1%17%18%19%1A%26'()*56789%3ACDEFGHIJSTUVWXYZcdefghijstuvwxyz%82%83%84%85%86%87%88%89%8A%92%93%94%95%96%97%98%99%9A%A2%A3%A4%A5%A6%A7%A8%A9%AA%B2%B3%B4%B5%B6%B7%B8%B9%BA%C2%C3%C4%C5%C6%C7%C8%C9%CA%D2%D3%D4%D5%D6%D7%D8%D9%DA%E2%E3%E4%E5%E6%E7%E8%E9%EA%F2%F3%F4%F5%F6%F7%F8%F9%FA%FF%DA%00%0C%03%01%00%02%11%03%11%00%3F%00%F8%D7C%F1%5CW%DF%194%FDf%F2%F5%26%8AR%3C%EB%82%C0%8D%BEQBI%1E%82%B8%3F%18%7Cm%F1G%8D4%3D%0FA%7DFX%F4%AD%26%D1--%AC%E0%FD%DCe%23%18V%60%3E%F3%11%D4%9C%FB%60W%23gos96%D6%EE%242%F0%10(%04%E7%AFJ%F4%CF%82%FF%00%0E%2C%EF%ED%A5%D7%B5%E8%5C%D8A!%89a%11%92X%8E%A7%03%9E%BC~u%CDR%AA%A6%A5%2B%EEm%87%C2%FBNXv%EAs%FE%11%97UeYD%97%11%A5%AF%EFCE%2F%20%8E%A7o%F9%F5%CDz%BF%C3%BF%19x%82%EFH%D5%B4W%D6%AF%5E%CE%FA%DEKYl%24%95%DA%22%0Cm%8F%90%F4%25%D5%08%E3%A9%1D%06k%E9_%82%DE%12%F0%07%8B%2FF%9D%1Cztf%E16%B5%B4%F6%C6%19%24_%E2%03p%04%FE%15%DA%FCN%FD%9Ac%F8u%E1%3F%F8O%7C6%B6%D2%D9i%12G%F6%8D8B%04%9ECH%A1%B0%F9%C9%23%3Cw8%EB%9CW%241R%95%EF%1B%1E%BDL%BE%10%8D%F9%93%3F9%E6%07%7D%15%B9%E3%98l%A0%F1v%AA%9Al%82%5B%0F%B49%85%80%C7%C8I%20c%DB8%FC(%AD%13%3C%87%B9%E5%BE%0F%BEXu%FBS2%3C%88K)X%FA%8C%A9%19%E7%D39%3FJ%FB%7F%E0%D7%86t%FF%00%EC(%F4%B9-%BC%EB)%8E%D7%8C%9E%08''%3F%9Dx%DF%80%BFf%1DCM%D2%AF%B5%3Df%16%93X6%EEl%AD%20%C9T%90%00%40%24%03%B9%9B%EE%81%C7%5E%F9%06%BD%F3%E1%95%FC~%1E%B0Qp%85X.%E5c%FC%40%8E%08%AE%5C%7BM%FB%A7%BD%94%C9E%3Eu%A7%F5%FEGu%F0%FB%C1%DAF%97%F1%9F%C3%9A%0E%93%17%92%24%93%CB%91%22F1%C4%AC%09%CEO%1B%B9%CE%075%2F%ED%19%F0%F7Q%F89%FB6%F8%A7Yo%1E%EA%1A%D0%D6o%ED%AC~%CE%D2%E2%19%B3%2F%9B%B8%A7M%C0!%E0%01%D0%F2Ev_%01%FC%23%AB%5E%F8%9AMJ7%B2%BD%D8%AC%EBq%3C%04%B2%12%A7%03%EF%83%DCr%2B%D7~%23~%C6Z%1F%C7%DF%84%9A6%87%E2%3DwV%D1%A6%B6%9D%EF%ED%24%D3%E4O)e*P%19Q%94%EF%00%16%C0%05N%09%E7%9A%8C579-7%3As%19%D3%A5I%A4%ED%D9z%9F%8C%D2j%11%B3d%9C%9CQ%5E%FB%F1W%FE%09%F5%F1g%E1%EF%8D.%F4m%2FMO%14%D8D%03%C3%A9Z%C9%1C%0B%22%9E%99I%1C%10%DFBG%3DO8%2B%D7%F62%EC%7C%97%3C%7B%9FaO%E1%ABM%0Ak1%03%CE%E5%23K%80e%94%9C%BE%C9rp09%0A%01%E3%D7%BF57%85%BC%0D%A3x%85%AE%A0%BC%B3R%8B%24%C1%0ApSl%AE%9C%7DB%82%7D%C94Q%5EF%23%E1O%CD%1E%E6%0B%E3k%C9%9A%3A%C6%9B%FF%00%08%3C%1E%1C%8FG%BB%B9%B4%FE%D2%D5%23%B5%9D%96N%7C%A1%C9Q%C7%19%C6%0F%B5%7Dw%F0%F6%EEK%EF%0CX%19NY-%89W%EA%D8%12%B2%81%93%DB%0A%3D%FA%D1Ew%60~%26c%99%7C%11%13%C6%96%16%B7%1A%ACm5%B430%85%40iP1%C6OsE%14W%ABvxvG%FF%D9"/></a>
</div>
<div style="margin-bottom:20px">
<div id="plain-text">Just some simple text</div>
</div>
</body>
</html>

View File

@ -125,7 +125,6 @@ function runNextTest() {
window.removeEventListener("TapDouble", dumpEvents, true);
window.removeEventListener("TapLong", dumpEvents, true);
SelectionHelper.hide();
Browser.closeTab(gCurrentTab);
finish();
@ -278,7 +277,7 @@ gTests.push({
contextPlainImageTest: function() {
waitForContextMenu(function() {
ok(checkContextTypes(["image","image-shareable","image-loaded", "content-text"]), "Plain image context types");
ok(checkContextTypes(["image","image-shareable","image-loaded"]), "Plain image context types");
}, gCurrentTest.contextNestedImageTest);
let browser = gCurrentTab.browser;
@ -291,25 +290,13 @@ gTests.push({
contextNestedImageTest: function() {
waitForContextMenu(function() {
ok(checkContextTypes(["link", "link-saveable","image","image-shareable","image-loaded","link-openable"]), "Nested image context types");
}, gCurrentTest.contextPlainTextTest);
}, runNextTest);
let browser = gCurrentTab.browser;
let img = browser.contentDocument.getElementById("img-nested");
let event = content.document.createEvent("PopupEvents");
event.initEvent("contextmenu", true, true);
img.dispatchEvent(event);
},
contextPlainTextTest: function() {
waitForContextMenu(function() {
ok(checkContextTypes(["content-text"]), "Plain text context types");
}, runNextTest);
let browser = gCurrentTab.browser;
let img = browser.contentDocument.getElementById("plain-text");
let event = content.document.createEvent("PopupEvents");
event.initEvent("contextmenu", true, true);
img.dispatchEvent(event);
}
});

View File

@ -235,6 +235,3 @@ intl.charsetmenu.browser.static=iso-8859-1,utf-8,x-gbk,big5,iso-2022-jp,shift_ji
#Application Menu
appMenu.more=More
#Text Selection
selectionHelper.textCopied=Text copied to clipboard

View File

@ -1531,20 +1531,3 @@ setting {
90% { -moz-transform: translateX(@sidebar_width_minimum@); }
to { -moz-transform: translateX(0); }
}
#selectionhandle-start,
#selectionhandle-end {
min-width: 35px !important;
width: 35px !important;
padding: 0 !important;
margin: 0 !important;
}
#selectionhandle-start {
list-style-image: url("chrome://browser/skin/images/handle-start.png");
}
#selectionhandle-end {
list-style-image: url("chrome://browser/skin/images/handle-end.png");
}

View File

@ -1497,20 +1497,3 @@ setting {
90% { -moz-transform: translateX(-@sidebar_width_minimum@); }
to { -moz-transform: translateX(0); }
}
#selectionhandle-start,
#selectionhandle-end {
min-width: 35px !important;
width: 35px !important;
padding: 0 !important;
margin: 0 !important;
}
#selectionhandle-start {
list-style-image: url("chrome://browser/skin/images/handle-start.png");
}
#selectionhandle-end {
list-style-image: url("chrome://browser/skin/images/handle-end.png");
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -122,8 +122,6 @@ chrome.jar:
skin/images/mute-hdpi.png (images/mute-hdpi.png)
skin/images/unmute-hdpi.png (images/unmute-hdpi.png)
skin/images/scrubber-hdpi.png (images/scrubber-hdpi.png)
skin/images/handle-start.png (images/handle-start.png)
skin/images/handle-end.png (images/handle-end.png)
chrome.jar:
% skin browser classic/1.0 %skin/gingerbread/ os=Android osversion=2.3 osversion=2.3.3 osversion=2.3.4
@ -242,8 +240,6 @@ chrome.jar:
skin/gingerbread/images/mute-hdpi.png (gingerbread/images/mute-hdpi.png)
skin/gingerbread/images/unmute-hdpi.png (gingerbread/images/unmute-hdpi.png)
skin/gingerbread/images/scrubber-hdpi.png (gingerbread/images/scrubber-hdpi.png)
skin/gingerbread/images/handle-start.png (gingerbread/images/handle-start.png)
skin/gingerbread/images/handle-end.png (gingerbread/images/handle-end.png)
chrome.jar:
% skin browser classic/1.0 %skin/honeycomb/ os=Android osversion>=3.0
@ -364,5 +360,4 @@ chrome.jar:
skin/honeycomb/images/mute-hdpi.png (honeycomb/images/mute-hdpi.png)
skin/honeycomb/images/unmute-hdpi.png (honeycomb/images/unmute-hdpi.png)
skin/honeycomb/images/scrubber-hdpi.png (honeycomb/images/scrubber-hdpi.png)
skin/honeycomb/images/handle-start.png (images/handle-start.png)
skin/honeycomb/images/handle-end.png (images/handle-end.png)