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

Side by Side Diff: ios/chrome/browser/find_in_page/resources/find_in_page.js

Issue 1150173003: Fix some JS style nits. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge Created 5 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * Based heavily on code from the Google iOS app. 6 * Based heavily on code from the Google iOS app.
7 * 7 *
8 * @fileoverview A find in page tool. It scans the DOM for elements with the 8 * @fileoverview A find in page tool. It scans the DOM for elements with the
9 * text being search for, and wraps them with a span that highlights them. 9 * text being search for, and wraps them with a span that highlights them.
10 */ 10 */
11 11
12 /** 12 /**
13 * Namespace for this file. Depends on __gCrWeb having already been injected. 13 * Namespace for this file. Depends on __gCrWeb having already been injected.
14 */ 14 */
15 __gCrWeb['findInPage'] = {}; 15 __gCrWeb['findInPage'] = {};
16 16
17 /** 17 /**
18 * Index of the current highlighted choice. -1 means none. 18 * Index of the current highlighted choice. -1 means none.
19 * @type {number} 19 * @type {number}
20 */ 20 */
21 __gCrWeb['findInPage']['index'] = -1; 21 __gCrWeb['findInPage']['index'] = -1;
22 22
23 /** 23 /**
24 * The list of found searches in span form. 24 * The list of found searches in span form.
25 * @type {Array.<Element>} 25 * @type {Array<Element>}
26 */ 26 */
27 __gCrWeb['findInPage']['spans'] = []; 27 __gCrWeb['findInPage']['spans'] = [];
28 28
29 /** 29 /**
30 * The list of frame documents. 30 * The list of frame documents.
31 * TODO(justincohen): x-domain frames won't work. 31 * TODO(justincohen): x-domain frames won't work.
32 * @type {Array.<Document>} 32 * @type {Array<Document>}
33 */ 33 */
34 __gCrWeb['findInPage'].frameDocs = []; 34 __gCrWeb['findInPage'].frameDocs = [];
35 35
36 /** 36 /**
37 * Associate array to stash element styles while the element is highlighted. 37 * Associate array to stash element styles while the element is highlighted.
38 * @type {Object.<Element,Object<string,string>>} 38 * @type {Object<Element,Object<string,string>>}
39 */ 39 */
40 __gCrWeb['findInPage'].savedElementStyles = {}; 40 __gCrWeb['findInPage'].savedElementStyles = {};
41 41
42 /** 42 /**
43 * The style DOM element that we add. 43 * The style DOM element that we add.
44 * @type {Element} 44 * @type {Element}
45 */ 45 */
46 __gCrWeb['findInPage'].style = null; 46 __gCrWeb['findInPage'].style = null;
47 47
48 /** 48 /**
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 element.style[style] = savedStyles[style]; 614 element.style[style] = savedStyles[style];
615 } 615 }
616 delete __gCrWeb['findInPage'].savedElementStyles[element]; 616 delete __gCrWeb['findInPage'].savedElementStyles[element];
617 } 617 }
618 }; 618 };
619 619
620 /** 620 /**
621 * Normalize coordinates according to the current document dimensions. Don't go 621 * Normalize coordinates according to the current document dimensions. Don't go
622 * too far off the screen in either direction. Try to center if possible. 622 * too far off the screen in either direction. Try to center if possible.
623 * @param {Element} elem Element to find normalized coordinates for. 623 * @param {Element} elem Element to find normalized coordinates for.
624 * @return {Array.<number>} Normalized coordinates. 624 * @return {Array<number>} Normalized coordinates.
625 */ 625 */
626 __gCrWeb['findInPage'].getNormalizedCoordinates = function(elem) { 626 __gCrWeb['findInPage'].getNormalizedCoordinates = function(elem) {
627 var fip = __gCrWeb['findInPage']; 627 var fip = __gCrWeb['findInPage'];
628 var pos = fip.findAbsolutePosition(elem); 628 var pos = fip.findAbsolutePosition(elem);
629 var maxX = 629 var maxX =
630 Math.max(fip.getBodyWidth(), pos[0] + elem.offsetWidth); 630 Math.max(fip.getBodyWidth(), pos[0] + elem.offsetWidth);
631 var maxY = 631 var maxY =
632 Math.max(fip.getBodyHeight(), pos[1] + elem.offsetHeight); 632 Math.max(fip.getBodyHeight(), pos[1] + elem.offsetHeight);
633 // Don't go too far off the screen in either direction. Try to center if 633 // Don't go too far off the screen in either direction. Try to center if
634 // possible. 634 // possible.
635 var xPos = Math.max(0, 635 var xPos = Math.max(0,
636 Math.min(maxX - window.innerWidth, 636 Math.min(maxX - window.innerWidth,
637 pos[0] - (window.innerWidth / 2))); 637 pos[0] - (window.innerWidth / 2)));
638 var yPos = Math.max(0, 638 var yPos = Math.max(0,
639 Math.min(maxY - window.innerHeight, 639 Math.min(maxY - window.innerHeight,
640 pos[1] - (window.innerHeight / 2))); 640 pos[1] - (window.innerHeight / 2)));
641 return [xPos, yPos]; 641 return [xPos, yPos];
642 }; 642 };
643 643
644 /** 644 /**
645 * Scale coordinates according to the width of the screen, in case the screen 645 * Scale coordinates according to the width of the screen, in case the screen
646 * is zoomed out. 646 * is zoomed out.
647 * @param {Array.<number>} coordinates Coordinates to scale. 647 * @param {Array<number>} coordinates Coordinates to scale.
648 * @return {Array.<number>} Scaled coordinates. 648 * @return {Array<number>} Scaled coordinates.
649 */ 649 */
650 __gCrWeb['findInPage'].scaleCoordinates = function(coordinates) { 650 __gCrWeb['findInPage'].scaleCoordinates = function(coordinates) {
651 var scaleFactor = __gCrWeb['findInPage'].pageWidth / window.innerWidth; 651 var scaleFactor = __gCrWeb['findInPage'].pageWidth / window.innerWidth;
652 return [coordinates[0] * scaleFactor, coordinates[1] * scaleFactor]; 652 return [coordinates[0] * scaleFactor, coordinates[1] * scaleFactor];
653 }; 653 };
654 654
655 /** 655 /**
656 * Finds the position of the result and scrolls to it. 656 * Finds the position of the result and scrolls to it.
657 * @param {number} opt_index Index to replace __gCrWeb['findInPage']['index'] 657 * @param {number} opt_index Index to replace __gCrWeb['findInPage']['index']
658 * with. 658 * with.
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 907
908 elem = elem.parentNode; 908 elem = elem.parentNode;
909 computedStyle = elem.ownerDocument.defaultView.getComputedStyle(elem, null); 909 computedStyle = elem.ownerDocument.defaultView.getComputedStyle(elem, null);
910 } 910 }
911 return true; 911 return true;
912 }; 912 };
913 913
914 /** 914 /**
915 * Helper function to find the absolute position of an element on the page. 915 * Helper function to find the absolute position of an element on the page.
916 * @param {Element} elem Element to check. 916 * @param {Element} elem Element to check.
917 * @return {Array.<number>} [x, y] positions. 917 * @return {Array<number>} [x, y] positions.
918 */ 918 */
919 __gCrWeb['findInPage'].findAbsolutePosition = function(elem) { 919 __gCrWeb['findInPage'].findAbsolutePosition = function(elem) {
920 var boundingRect = elem.getBoundingClientRect(); 920 var boundingRect = elem.getBoundingClientRect();
921 return [boundingRect.left + window.pageXOffset, 921 return [boundingRect.left + window.pageXOffset,
922 boundingRect.top + window.pageYOffset]; 922 boundingRect.top + window.pageYOffset];
923 }; 923 };
924 924
925 /** 925 /**
926 * @param {string} text Text to escape. 926 * @param {string} text Text to escape.
927 * @return {string} escaped text. 927 * @return {string} escaped text.
928 */ 928 */
929 __gCrWeb['findInPage'].escapeHTML = function(text) { 929 __gCrWeb['findInPage'].escapeHTML = function(text) {
930 var unusedDiv = document.createElement('div'); 930 var unusedDiv = document.createElement('div');
931 unusedDiv.innerText = text; 931 unusedDiv.innerText = text;
932 return unusedDiv.innerHTML; 932 return unusedDiv.innerHTML;
933 }; 933 };
934 934
935 /** 935 /**
936 * Escapes regexp special characters. 936 * Escapes regexp special characters.
937 * @param {string} text Text to escape. 937 * @param {string} text Text to escape.
938 * @return {string} escaped text. 938 * @return {string} escaped text.
939 */ 939 */
940 __gCrWeb['findInPage'].escapeRegex = function(text) { 940 __gCrWeb['findInPage'].escapeRegex = function(text) {
941 return text.replace(__gCrWeb['findInPage'].REGEX_ESCAPER, '\\$1'); 941 return text.replace(__gCrWeb['findInPage'].REGEX_ESCAPER, '\\$1');
942 }; 942 };
943 943
944 /** 944 /**
945 * Gather all iframes in the main window. 945 * Gather all iframes in the main window.
946 * @return {Array.<Document>} frames. 946 * @return {Array<Document>} frames.
947 */ 947 */
948 __gCrWeb['findInPage'].frameDocuments = function() { 948 __gCrWeb['findInPage'].frameDocuments = function() {
949 var windowsToSearch = [window]; 949 var windowsToSearch = [window];
950 var documents = []; 950 var documents = [];
951 while (windowsToSearch.length != 0) { 951 while (windowsToSearch.length != 0) {
952 var win = windowsToSearch.pop(); 952 var win = windowsToSearch.pop();
953 for (var i = win.frames.length - 1; i >= 0; i--) { 953 for (var i = win.frames.length - 1; i >= 0; i--) {
954 if (win.frames[i].document) { 954 if (win.frames[i].document) {
955 documents.push(win.frames[i].document); 955 documents.push(win.frames[i].document);
956 windowsToSearch.push(win.frames[i]); 956 windowsToSearch.push(win.frames[i]);
957 } 957 }
958 } 958 }
959 } 959 }
960 return documents; 960 return documents;
961 }; 961 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698