Files
tubestation/browser/devtools/highlighter/test/head.js
2012-05-21 12:12:37 +01:00

97 lines
2.4 KiB
JavaScript

/* 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/. */
const Cu = Components.utils;
let tempScope = {};
Cu.import("resource:///modules/devtools/LayoutHelpers.jsm", tempScope);
let LayoutHelpers = tempScope.LayoutHelpers;
// Clear preferences that may be set during the course of tests.
function clearUserPrefs()
{
Services.prefs.clearUserPref("devtools.inspector.htmlPanelOpen");
Services.prefs.clearUserPref("devtools.inspector.sidebarOpen");
Services.prefs.clearUserPref("devtools.inspector.activeSidebar");
}
registerCleanupFunction(clearUserPrefs);
function isHighlighting()
{
let veil = InspectorUI.highlighter.veilTransparentBox;
return !(veil.style.visibility == "hidden");
}
function getHighlitNode()
{
let h = InspectorUI.highlighter;
if (!isHighlighting() || !h._contentRect)
return null;
let a = {
x: h._contentRect.left,
y: h._contentRect.top
};
let b = {
x: a.x + h._contentRect.width,
y: a.y + h._contentRect.height
};
// Get midpoint of diagonal line.
let midpoint = midPoint(a, b);
return LayoutHelpers.getElementFromPoint(h.win.document, midpoint.x,
midpoint.y);
}
function midPoint(aPointA, aPointB)
{
let pointC = { };
pointC.x = (aPointB.x - aPointA.x) / 2 + aPointA.x;
pointC.y = (aPointB.y - aPointA.y) / 2 + aPointA.y;
return pointC;
}
function computedView()
{
return InspectorUI.sidebar._toolContext("computedview");
}
function computedViewTree()
{
return computedView().view;
}
function ruleView()
{
return InspectorUI.sidebar._toolContext("ruleview").view;
}
function synthesizeKeyFromKeyTag(aKeyId) {
let key = document.getElementById(aKeyId);
isnot(key, null, "Successfully retrieved the <key> node");
let modifiersAttr = key.getAttribute("modifiers");
let name = null;
if (key.getAttribute("keycode"))
name = key.getAttribute("keycode");
else if (key.getAttribute("key"))
name = key.getAttribute("key");
isnot(name, null, "Successfully retrieved keycode/key");
let modifiers = {
shiftKey: modifiersAttr.match("shift"),
ctrlKey: modifiersAttr.match("ctrl"),
altKey: modifiersAttr.match("alt"),
metaKey: modifiersAttr.match("meta"),
accelKey: modifiersAttr.match("accel")
}
EventUtils.synthesizeKey(name, modifiers);
}