| Index: chrome/browser/resources/md_downloads/crisper.js
|
| diff --git a/chrome/browser/resources/md_downloads/crisper.js b/chrome/browser/resources/md_downloads/crisper.js
|
| index 55db37276f878b9e72f751573f00b9f95113255b..e78cb0824f8afad58b51ad06c32985558763a8a3 100644
|
| --- a/chrome/browser/resources/md_downloads/crisper.js
|
| +++ b/chrome/browser/resources/md_downloads/crisper.js
|
| @@ -648,6 +648,7 @@ function queryRequiredElement(selectors, opt_context) {
|
|
|
| [ 'click', 'auxclick' ].forEach(function(eventName) {
|
| document.addEventListener(eventName, function(e) {
|
| + if (e.button > 1) return;
|
| if (e.defaultPrevented) return;
|
| var eventPath = e.path;
|
| var anchor = null;
|
| @@ -733,6 +734,19 @@ function quoteString(str) {
|
| return str.replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g, '\\$1');
|
| }
|
|
|
| +function listenOnce(target, eventNames, callback) {
|
| + if (!Array.isArray(eventNames)) eventNames = eventNames.split(/ +/);
|
| + var removeAllAndCallCallback = function(event) {
|
| + eventNames.forEach(function(eventName) {
|
| + target.removeEventListener(eventName, removeAllAndCallCallback, false);
|
| + });
|
| + return callback(event);
|
| + };
|
| + eventNames.forEach(function(eventName) {
|
| + target.addEventListener(eventName, removeAllAndCallCallback, false);
|
| + });
|
| +}
|
| +
|
| // <if expr="is_ios">
|
| if (!('key' in KeyboardEvent.prototype)) {
|
| Object.defineProperty(KeyboardEvent.prototype, 'key', {
|
|
|