# -*- Mode: HTML -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
null
null
false
null
null
null
null
null
let utils = {};
Components.utils.import("resource://gre/modules/PrivateBrowsingUtils.jsm", utils);
utils.PrivateBrowsingUtils
14
false
false
= 1)
this.mController.handleTab();
break;
case KeyEvent.DOM_VK_UP:
case KeyEvent.DOM_VK_DOWN:
case KeyEvent.DOM_VK_PAGE_UP:
case KeyEvent.DOM_VK_PAGE_DOWN:
cancel = this.mController.handleKeyNavigation(aEvent.keyCode);
break;
}
}
// Handle keys we know aren't part of a shortcut, even with Alt or
// Ctrl.
switch (aEvent.keyCode) {
case KeyEvent.DOM_VK_ESCAPE:
cancel = this.mController.handleEscape();
break;
case KeyEvent.DOM_VK_RETURN:
#ifdef XP_MACOSX
// Prevent the default action, since it will beep on Mac
if (aEvent.metaKey)
aEvent.preventDefault();
#endif
this.mEnterEvent = aEvent;
cancel = this.mController.handleEnter(false);
break;
case KeyEvent.DOM_VK_DELETE:
#ifdef XP_MACOSX
case KeyEvent.DOM_VK_BACK_SPACE:
if (aEvent.shiftKey)
#endif
cancel = this.mController.handleDelete();
break;
case KeyEvent.DOM_VK_DOWN:
case KeyEvent.DOM_VK_UP:
if (aEvent.altKey)
this.toggleHistoryPopup();
break;
#ifndef XP_MACOSX
case KeyEvent.DOM_VK_F4:
this.toggleHistoryPopup();
break;
#endif
}
if (cancel) {
aEvent.stopPropagation();
aEvent.preventDefault();
}
return true;
]]>
false
v != "action");
return panel.createResultLabel(title, url, type);
}
// aType (ex: "ac-result-type-") is related to the class of the image,
// and is not "visible" text so don't use it for the label (for accessibility).
return title + " " + url;
]]>
null
= 0) {
// Start the next search from where this one finished
startIndex = matchIndex + searchLen;
regions.push([matchIndex, startIndex]);
}
}
// Sort the regions by start position then end position
regions = regions.sort((a, b) => {
let start = a[0] - b[0];
return (start == 0) ? a[1] - b[1] : start;
});
// Generate the boundary indices from each region
let start = 0;
let end = 0;
let boundaries = [];
let len = regions.length;
for (let i = 0; i < len; i++) {
// We have a new boundary if the start of the next is past the end
let region = regions[i];
if (region[0] > end) {
// First index is the beginning of match
boundaries.push(start);
// Second index is the beginning of non-match
boundaries.push(end);
// Track the new region now that we've stored the previous one
start = region[0];
}
// Push back the end index for the current or new region
end = Math.max(end, region[1]);
}
// Add the last region
boundaries.push(start);
boundaries.push(end);
// Put on the end boundary if necessary
if (end < aText.length)
boundaries.push(aText.length);
// Skip the first item because it's always 0
return boundaries.slice(1);
]]>
= 0 && index < aReplacements.length) {
let replacement = aReplacements[index];
pairs.push([...replacement]);
}
} else {
pairs.push([part, false]);
}
}
return pairs;
]]>
0) {
// Subtract a little less to account for subpixel rounding
widthDiff -= childWidth - .5;
// Add to the tooltip if it's not hidden and has text
let childText = children[i].textContent;
if (childText)
tooltip.push(childText);
}
}
// If the children take up more space than the parent.. overflow!
if (widthDiff < 0) {
// Re-show the ellipsis now that we know it's needed
aEllipsis.style.visibility = "visible";
// Separate text components with a ndash --
aParentBox.tooltipText = tooltip.join(" \u2013 ");
}
]]>
Date.now()
30) {
var item = event.target;
while (item && item.localName != "richlistitem")
item = item.parentNode;
if (!item)
return;
var rc = this.getIndexOfItem(item);
if (rc != this.selectedIndex)
this.selectedIndex = rc;
this.mLastMoveTime = Date.now();
}
]]>
Date.now()
30) {
var rc = this.parentNode.treeBoxObject.getRowAt(event.clientX, event.clientY);
if (rc != this.parentNode.currentIndex)
this.parentNode.view.selection.select(rc);
this.mLastMoveTime = Date.now();
}
]]>