Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1090)

Unified Diff: Source/core/xml/XMLViewer.js

Issue 539653002: [blink] Remove XMLViewer.js/css post blink-in-js migration of XML tree viewer. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/xml/XMLViewer.css ('k') | public/blink_resources.grd » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/xml/XMLViewer.js
diff --git a/Source/core/xml/XMLViewer.js b/Source/core/xml/XMLViewer.js
deleted file mode 100644
index 25a39ef811f1520f82c37204cf40d2938c4d848b..0000000000000000000000000000000000000000
--- a/Source/core/xml/XMLViewer.js
+++ /dev/null
@@ -1,432 +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 GOOGLE 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 GOOGLE 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.
- */
-
-var nodeParentPairs = [];
-
-// Script entry point.
-
-var tree;
-
-function prepareWebKitXMLViewer(noStyleMessage)
-{
- var html = createHTMLElement('html');
- var head = createHTMLElement('head');
- html.appendChild(head);
- var style = createHTMLElement('style');
- style.id = 'xml-viewer-style';
- head.appendChild(style);
- var body = createHTMLElement('body');
- html.appendChild(body);
- var sourceXML = createHTMLElement('div');
- sourceXML.id = 'webkit-xml-viewer-source-xml';
- body.appendChild(sourceXML);
-
- var child;
- while (child = document.firstChild) {
- document.removeChild(child);
- if (child.nodeType != Node.DOCUMENT_TYPE_NODE)
- sourceXML.appendChild(child);
- }
- document.appendChild(html);
-
- var header = createHTMLElement('div');
- body.appendChild(header);
- header.classList.add('header');
- var headerSpan = createHTMLElement('span');
- header.appendChild(headerSpan);
- headerSpan.textContent = noStyleMessage;
- header.appendChild(createHTMLElement('br'));
-
- tree = createHTMLElement('div');
- body.appendChild(tree);
- tree.classList.add('pretty-print');
- window.onload = sourceXMLLoaded;
-}
-
-function sourceXMLLoaded()
-{
- var sourceXML = document.getElementById('webkit-xml-viewer-source-xml');
- if (!sourceXML)
- return; // Stop if some XML tree extension is already processing this document
-
- for (var child = sourceXML.firstChild; child; child = child.nextSibling)
- nodeParentPairs.push({parentElement: tree, node: child});
-
- for (var i = 0; i < nodeParentPairs.length; i++)
- processNode(nodeParentPairs[i].parentElement, nodeParentPairs[i].node);
-
- drawArrows();
- initButtons();
-
- if (typeof(onAfterWebkitXMLViewerLoaded) == 'function')
- onAfterWebkitXMLViewerLoaded();
-}
-
-// Tree processing.
-
-function processNode(parentElement, node)
-{
- if (!processNode.processorsMap) {
- processNode.processorsMap = {};
- processNode.processorsMap[Node.PROCESSING_INSTRUCTION_NODE] = processProcessingInstruction;
- processNode.processorsMap[Node.ELEMENT_NODE] = processElement;
- processNode.processorsMap[Node.COMMENT_NODE] = processComment;
- processNode.processorsMap[Node.TEXT_NODE] = processText;
- processNode.processorsMap[Node.CDATA_SECTION_NODE] = processCDATA;
- }
- if (processNode.processorsMap[node.nodeType])
- processNode.processorsMap[node.nodeType].call(this, parentElement, node);
-}
-
-function processElement(parentElement, node)
-{
- if (!node.firstChild)
- processEmptyElement(parentElement, node);
- else {
- var child = node.firstChild;
- if (child.nodeType == Node.TEXT_NODE && isShort(child.nodeValue) && !child.nextSibling)
- processShortTextOnlyElement(parentElement, node);
- else
- processComplexElement(parentElement, node);
- }
-}
-
-function processEmptyElement(parentElement, node)
-{
- var line = createLine();
- line.appendChild(createTag(node, false, true));
- parentElement.appendChild(line);
-}
-
-function processShortTextOnlyElement(parentElement, node)
-{
- var line = createLine();
- line.appendChild(createTag(node, false, false));
- for (var child = node.firstChild; child; child = child.nextSibling)
- line.appendChild(createText(child.nodeValue));
- line.appendChild(createTag(node, true, false));
- parentElement.appendChild(line);
-}
-
-function processComplexElement(parentElement, node)
-{
- var collapsible = createCollapsible();
-
- collapsible.expanded.start.appendChild(createTag(node, false, false));
- for (var child = node.firstChild; child; child = child.nextSibling)
- nodeParentPairs.push({parentElement: collapsible.expanded.content, node: child});
- collapsible.expanded.end.appendChild(createTag(node, true, false));
-
- collapsible.collapsed.content.appendChild(createTag(node, false, false));
- collapsible.collapsed.content.appendChild(createText('...'));
- collapsible.collapsed.content.appendChild(createTag(node, true, false));
- parentElement.appendChild(collapsible);
-}
-
-function processComment(parentElement, node)
-{
- if (isShort(node.nodeValue)) {
- var line = createLine();
- line.appendChild(createComment('<!-- ' + node.nodeValue + ' -->'));
- parentElement.appendChild(line);
- } else {
- var collapsible = createCollapsible();
-
- collapsible.expanded.start.appendChild(createComment('<!--'));
- collapsible.expanded.content.appendChild(createComment(node.nodeValue));
- collapsible.expanded.end.appendChild(createComment('-->'));
-
- collapsible.collapsed.content.appendChild(createComment('<!--'));
- collapsible.collapsed.content.appendChild(createComment('...'));
- collapsible.collapsed.content.appendChild(createComment('-->'));
- parentElement.appendChild(collapsible);
- }
-}
-
-function processCDATA(parentElement, node)
-{
- if (isShort(node.nodeValue)) {
- var line = createLine();
- line.appendChild(createText('<![CDATA[ ' + node.nodeValue + ' ]]>'));
- parentElement.appendChild(line);
- } else {
- var collapsible = createCollapsible();
-
- collapsible.expanded.start.appendChild(createText('<![CDATA['));
- collapsible.expanded.content.appendChild(createText(node.nodeValue));
- collapsible.expanded.end.appendChild(createText(']]>'));
-
- collapsible.collapsed.content.appendChild(createText('<![CDATA['));
- collapsible.collapsed.content.appendChild(createText('...'));
- collapsible.collapsed.content.appendChild(createText(']]>'));
- parentElement.appendChild(collapsible);
- }
-}
-
-function processProcessingInstruction(parentElement, node)
-{
- if (isShort(node.nodeValue)) {
- var line = createLine();
- line.appendChild(createComment('<?' + node.nodeName + ' ' + node.nodeValue + '?>'));
- parentElement.appendChild(line);
- } else {
- var collapsible = createCollapsible();
-
- collapsible.expanded.start.appendChild(createComment('<?' + node.nodeName));
- collapsible.expanded.content.appendChild(createComment(node.nodeValue));
- collapsible.expanded.end.appendChild(createComment('?>'));
-
- collapsible.collapsed.content.appendChild(createComment('<?' + node.nodeName));
- collapsible.collapsed.content.appendChild(createComment('...'));
- collapsible.collapsed.content.appendChild(createComment('?>'));
- parentElement.appendChild(collapsible);
- }
-}
-
-function processText(parentElement, node)
-{
- parentElement.appendChild(createText(node.nodeValue));
-}
-
-// Processing utils.
-
-function trim(value)
-{
- return value.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
-}
-
-function isShort(value)
-{
- return trim(value).length <= 50;
-}
-
-// Tree rendering.
-
-function createHTMLElement(elementName)
-{
- return document.createElementNS('http://www.w3.org/1999/xhtml', elementName)
-}
-
-function createCollapsible()
-{
- var collapsible = createHTMLElement('div');
- collapsible.classList.add('collapsible');
- collapsible.expanded = createHTMLElement('div');
- collapsible.expanded.classList.add('expanded');
- collapsible.appendChild(collapsible.expanded);
-
- collapsible.expanded.start = createLine();
- collapsible.expanded.start.appendChild(createCollapseButton());
- collapsible.expanded.appendChild(collapsible.expanded.start);
-
- collapsible.expanded.content = createHTMLElement('div');
- collapsible.expanded.content.classList.add('collapsible-content');
- collapsible.expanded.appendChild(collapsible.expanded.content);
-
- collapsible.expanded.end = createLine();
- collapsible.expanded.appendChild(collapsible.expanded.end);
-
- collapsible.collapsed = createHTMLElement('div');
- collapsible.collapsed.classList.add('collapsed');
- collapsible.collapsed.classList.add('hidden');
- collapsible.appendChild(collapsible.collapsed);
- collapsible.collapsed.content = createLine();
- collapsible.collapsed.content.appendChild(createExpandButton());
- collapsible.collapsed.appendChild(collapsible.collapsed.content);
-
- return collapsible;
-}
-
-function createButton()
-{
- var button = createHTMLElement('span');
- button.classList.add('button');
- return button;
-}
-
-function createCollapseButton(str)
-{
- var button = createButton();
- button.classList.add('collapse-button');
- return button;
-}
-
-function createExpandButton(str)
-{
- var button = createButton();
- button.classList.add('expand-button');
- return button;
-}
-
-function createComment(commentString)
-{
- var comment = createHTMLElement('span');
- comment.classList.add('comment');
- comment.classList.add('webkit-html-comment');
- comment.textContent = commentString;
- return comment;
-}
-
-function createText(value)
-{
- var text = createHTMLElement('span');
- text.textContent = trim(value);
- text.classList.add('text');
- return text;
-}
-
-function createLine()
-{
- var line = createHTMLElement('div');
- line.classList.add('line');
- return line;
-}
-
-function createTag(node, isClosing, isEmpty)
-{
- var tag = createHTMLElement('span');
- tag.classList.add('webkit-html-tag');
-
- var stringBeforeAttrs = '<';
- if (isClosing)
- stringBeforeAttrs += '/';
- stringBeforeAttrs += node.nodeName;
- var textBeforeAttrs = document.createTextNode(stringBeforeAttrs);
- tag.appendChild(textBeforeAttrs);
-
- if (!isClosing) {
- for (var i = 0; i < node.attributes.length; i++)
- tag.appendChild(createAttribute(node.attributes[i]));
- }
-
- var stringAfterAttrs = '';
- if (isEmpty)
- stringAfterAttrs += '/';
- stringAfterAttrs += '>';
- var textAfterAttrs = document.createTextNode(stringAfterAttrs);
- tag.appendChild(textAfterAttrs);
-
- return tag;
-}
-
-function createAttribute(attributeNode)
-{
- var attribute = createHTMLElement('span');
- attribute.classList.add('webkit-html-attribute');
-
- var attributeName = createHTMLElement('span');
- attributeName.classList.add('webkit-html-attribute-name');
- attributeName.textContent = attributeNode.name;
-
- var textBefore = document.createTextNode(' ');
- var textBetween = document.createTextNode('="');
-
- var attributeValue = createHTMLElement('span');
- attributeValue.classList.add('webkit-html-attribute-value');
- attributeValue.textContent = attributeNode.value;
-
- var textAfter = document.createTextNode('"');
-
- attribute.appendChild(textBefore);
- attribute.appendChild(attributeName);
- attribute.appendChild(textBetween);
- attribute.appendChild(attributeValue);
- attribute.appendChild(textAfter);
- return attribute;
-}
-
-// Tree behaviour.
-
-function drawArrows()
-{
- var ctx = document.getCSSCanvasContext("2d", "arrowRight", 10, 11);
-
- ctx.fillStyle = "rgb(90,90,90)";
- ctx.beginPath();
- ctx.moveTo(0, 0);
- ctx.lineTo(0, 8);
- ctx.lineTo(7, 4);
- ctx.lineTo(0, 0);
- ctx.fill();
- ctx.closePath();
-
- var ctx = document.getCSSCanvasContext("2d", "arrowDown", 10, 10);
-
- ctx.fillStyle = "rgb(90,90,90)";
- ctx.beginPath();
- ctx.moveTo(0, 0);
- ctx.lineTo(8, 0);
- ctx.lineTo(4, 7);
- ctx.lineTo(0, 0);
- ctx.fill();
- ctx.closePath();
-}
-
-function expandFunction(sectionId)
-{
- return function()
- {
- document.querySelector('#' + sectionId + ' > .expanded').className = 'expanded';
- document.querySelector('#' + sectionId + ' > .collapsed').className = 'collapsed hidden';
- };
-}
-
-function collapseFunction(sectionId)
-{
- return function()
- {
- document.querySelector('#' + sectionId + ' > .expanded').className = 'expanded hidden';
- document.querySelector('#' + sectionId + ' > .collapsed').className = 'collapsed';
- };
-}
-
-function initButtons()
-{
- var sections = document.querySelectorAll('.collapsible');
- for (var i = 0; i < sections.length; i++) {
- var sectionId = 'collapsible' + i;
- sections[i].id = sectionId;
-
- var expandedPart = sections[i].querySelector('#' + sectionId + ' > .expanded');
- var collapseButton = expandedPart.querySelector('.collapse-button');
- collapseButton.onclick = collapseFunction(sectionId);
- collapseButton.onmousedown = handleButtonMouseDown;
-
- var collapsedPart = sections[i].querySelector('#' + sectionId + ' > .collapsed');
- var expandButton = collapsedPart.querySelector('.expand-button');
- expandButton.onclick = expandFunction(sectionId);
- expandButton.onmousedown = handleButtonMouseDown;
- }
-
-}
-
-function handleButtonMouseDown(e)
-{
- // To prevent selection on double click
- e.preventDefault();
-}
« no previous file with comments | « Source/core/xml/XMLViewer.css ('k') | public/blink_resources.grd » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698