diff options
Diffstat (limited to 'Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/pixelzoomer.js')
-rw-r--r-- | Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/pixelzoomer.js | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/pixelzoomer.js b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/pixelzoomer.js deleted file mode 100644 index a88e22a0a..000000000 --- a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/pixelzoomer.js +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright (C) 2011 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - */ - -// pixelzoomer is shared with LayoutTests/fast/harness/results.html -// Unfortuantely, there's no good way to share code between these two uses. - -var pixelzoomer = pixelzoomer || {}; - -(function() { - -var kZoomFactor = 6; -var kDelayTimeoutMS = 400; - -var kResultWidth = 800; -var kResultHeight = 600; - -var kZoomedResultWidth = kResultWidth * kZoomFactor; -var kZoomedResultHeight = kResultHeight * kZoomFactor; - -function matchesSelector(node, selector) -{ - if (node.webkitMatchesSelector) - return node.webkitMatchesSelector(selector); - - if (node.mozMatchesSelector) - return node.mozMatchesSelector(selector); -} - -function parentOfType(node, selector) -{ - while (node = node.parentNode) { - if (matchesSelector(node, selector)) - return node; - } - return null; -} - -function zoomImageContainer(url) -{ - var container = document.createElement('div'); - container.className = 'zoom-image-container'; - - var title = url.match(/\-([^\-]*)\.png/)[1]; - - var label = document.createElement('div'); - label.className = 'label'; - label.appendChild(document.createTextNode(title)); - container.appendChild(label); - - var imageContainer = document.createElement('div'); - imageContainer.className = 'scaled-image-container'; - - var image = new Image(); - image.src = url; - image.style.width = kZoomedResultWidth + 'px'; - image.style.height = kZoomedResultHeight + 'px'; - image.style.border = '1px solid black'; - imageContainer.appendChild(image); - container.appendChild(imageContainer); - - return container; -} - -function createContainer(e) -{ - var tbody = parentOfType(e.target, 'tbody'); - var row = tbody.querySelector('tr'); - var images = row.querySelectorAll('img[src$=".png"]'); - - var container = document.createElement('div'); - container.className = 'pixel-zoom-container'; - - for (var i = 0; i < images.length; i++) - container.appendChild(zoomImageContainer(images[i].src)); - - document.body.appendChild(container); - drawAll(); -} - -function draw(imageContainer) -{ - var image = imageContainer.querySelector('img'); - var containerBounds = imageContainer.getBoundingClientRect(); - image.style.left = (containerBounds.width / 2 - pixelzoomer._percentX * kZoomedResultWidth) + 'px'; - image.style.top = (containerBounds.height / 2 - pixelzoomer._percentY * kZoomedResultHeight) + 'px'; -} - -function drawAll() -{ - Array.prototype.forEach.call(document.querySelectorAll('.pixel-zoom-container .scaled-image-container'), draw); -} - -function handleMouseOut(e) -{ - if (e.relatedTarget && e.relatedTarget.tagName != 'IFRAME') - return; - - // If e.relatedTarget is null, we've moused out of the document. - $('pixel-zoom-container').detach(); -} - -function handleMouseMove(e) -{ - if (pixelzoomer._mouseMoveTimeout) - clearTimeout(pixelzoomer._mouseMoveTimeout); - - if (parentOfType(e.target, '.pixel-zoom-container')) - return; - - var container = document.querySelector('.pixel-zoom-container'); - - var resultContainer = (e.target.className == 'result-container') ? - e.target : parentOfType(e.target, '.result-container'); - if (!resultContainer || !resultContainer.querySelector('img')) { - $(container).detach(); - return; - } - - var targetLocation = e.target.getBoundingClientRect(); - pixelzoomer._percentX = (e.clientX - targetLocation.left) / targetLocation.width; - pixelzoomer._percentY = (e.clientY - targetLocation.top) / targetLocation.height; - - if (!container) { - if (pixelzoomer.showOnDelay) { - pixelzoomer._mouseMoveTimeout = setTimeout(function() { - createContainer(e); - }, kDelayTimeoutMS); - return; - } - - createContainer(e); - return; - } - - drawAll(); -} - -pixelzoomer.showOnDelay = true; - -pixelzoomer.installEventListeners = function() -{ - document.addEventListener('mousemove', handleMouseMove, false); - document.addEventListener('mouseout', handleMouseOut, false); -}; - -})(); |