OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 * @constructor | 6 * @constructor |
7 * @param {!WebInspector.FormattedContentBuilder} builder | 7 * @param {!WebInspector.FormattedContentBuilder} builder |
8 */ | 8 */ |
9 WebInspector.HTMLFormatter = function(builder) | 9 WebInspector.HTMLFormatter = function(builder) |
10 { | 10 { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 * @param {number} tokenStart | 42 * @param {number} tokenStart |
43 * @param {number} tokenEnd | 43 * @param {number} tokenEnd |
44 * @return {(!Object|undefined)} | 44 * @return {(!Object|undefined)} |
45 * @this {WebInspector.HTMLFormatter} | 45 * @this {WebInspector.HTMLFormatter} |
46 */ | 46 */ |
47 function processToken(tokenValue, type, tokenStart, tokenEnd) | 47 function processToken(tokenValue, type, tokenStart, tokenEnd) |
48 { | 48 { |
49 tokenStart += fromOffset; | 49 tokenStart += fromOffset; |
50 tokenEnd += fromOffset; | 50 tokenEnd += fromOffset; |
51 lastOffset = tokenEnd; | 51 lastOffset = tokenEnd; |
52 var startLine = lineEndings.lowerBound(tokenStart); | 52 this._builder.addToken(tokenValue, tokenStart); |
53 var endLine = lineEndings.lowerBound(tokenEnd); | |
54 this._builder.addToken(tokenValue, tokenStart, startLine, endLine); | |
55 | 53 |
56 if (!type) | 54 if (!type) |
57 return; | 55 return; |
58 var tokenType = type.split(" ").keySet(); | 56 var tokenType = type.split(" ").keySet(); |
59 if (!tokenType["tag"]) | 57 if (!tokenType["tag"]) |
60 return; | 58 return; |
61 | 59 |
62 if (tokenType["bracket"] && (tokenValue === "<" || tokenValue === "<
/")) { | 60 if (tokenType["bracket"] && (tokenValue === "<" || tokenValue === "<
/")) { |
63 accumulatedTokenValue = tokenValue; | 61 accumulatedTokenValue = tokenValue; |
64 return; | 62 return; |
65 } | 63 } |
66 | 64 |
67 if (tagName && tokenValue === ">") | 65 if (tagName && tokenValue === ">") |
68 return WebInspector.AbortTokenization; | 66 return WebInspector.AbortTokenization; |
69 | 67 |
70 accumulatedTokenValue = accumulatedTokenValue + tokenValue.toLowerCa
se(); | 68 accumulatedTokenValue = accumulatedTokenValue + tokenValue.toLowerCa
se(); |
71 if (accumulatedTokenValue === "<script" || accumulatedTokenValue ===
"<style") | 69 if (accumulatedTokenValue === "<script" || accumulatedTokenValue ===
"<style") |
72 tagName = accumulatedTokenValue.substring(1); | 70 tagName = accumulatedTokenValue.substring(1); |
73 accumulatedTokenValue = ""; | 71 accumulatedTokenValue = ""; |
74 } | 72 } |
75 var tokenizer = WebInspector.createTokenizer("text/html"); | 73 var tokenizer = WebInspector.createTokenizer("text/html"); |
76 tokenizer(content, processToken.bind(this)); | 74 tokenizer(content, processToken.bind(this)); |
77 return new WebInspector.HTMLFormatter.Result(tagName, lastOffset); | 75 return new WebInspector.HTMLFormatter.Result(tagName, lastOffset); |
78 }, | 76 }, |
79 } | 77 } |
OLD | NEW |