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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/audits2/lighthouse/renderer/dom.js

Issue 2888263002: DevTools: Roll Lighthouse binary to 2.0.1-alpha.0 (Closed)
Patch Set: rebase Created 3 years, 7 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 /** 1 /**
2 * Copyright 2017 Google Inc. All rights reserved. 2 * Copyright 2017 Google Inc. All rights reserved.
3 * 3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License. 5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at 6 * You may obtain a copy of the License at
7 * 7 *
8 * http://www.apache.org/licenses/LICENSE-2.0 8 * http://www.apache.org/licenses/LICENSE-2.0
9 * 9 *
10 * Unless required by applicable law or agreed to in writing, software 10 * Unless required by applicable law or agreed to in writing, software
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 resetTemplates() { 94 resetTemplates() {
95 this.findAll('template[data-stamped]', this._document).forEach(t => { 95 this.findAll('template[data-stamped]', this._document).forEach(t => {
96 t.removeAttribute('data-stamped'); 96 t.removeAttribute('data-stamped');
97 }); 97 });
98 } 98 }
99 99
100 /** 100 /**
101 * @param {string} text 101 * @param {string} text
102 * @return {!Element} 102 * @return {!Element}
103 */ 103 */
104 createSpanFromMarkdown(text) { 104 convertMarkdownLinkSnippets(text) {
105 const element = this.createElement('span'); 105 const element = this.createElement('span');
106 106
107 // Split on markdown links (e.g. [some link](https://...)). 107 // Split on markdown links (e.g. [some link](https://...)).
108 const parts = text.split(/\[(.*?)\]\((https?:\/\/.*?)\)/g); 108 const parts = text.split(/\[(.*?)\]\((https?:\/\/.*?)\)/g);
109 109
110 while (parts.length) { 110 while (parts.length) {
111 // Pop off the same number of elements as there are capture groups. 111 // Pop off the same number of elements as there are capture groups.
112 const [preambleText, linkText, linkHref] = parts.splice(0, 3); 112 const [preambleText, linkText, linkHref] = parts.splice(0, 3);
113 element.appendChild(this._document.createTextNode(preambleText)); 113 element.appendChild(this._document.createTextNode(preambleText));
114 114
115 // Append link if there are any. 115 // Append link if there are any.
116 if (linkText && linkHref) { 116 if (linkText && linkHref) {
117 const a = /** @type {!HTMLAnchorElement} */ (this.createElement('a')); 117 const a = /** @type {!HTMLAnchorElement} */ (this.createElement('a'));
118 a.rel = 'noopener'; 118 a.rel = 'noopener';
119 a.target = '_blank'; 119 a.target = '_blank';
120 a.textContent = linkText; 120 a.textContent = linkText;
121 a.href = (new URL(linkHref)).href; 121 a.href = (new URL(linkHref)).href;
122 element.appendChild(a); 122 element.appendChild(a);
123 } 123 }
124 } 124 }
125 125
126 return element; 126 return element;
127 } 127 }
128 128
129 /** 129 /**
130 * @param {string} text
131 * @return {!Element}
132 */
133 convertMarkdownCodeSnippets(text) {
134 const element = this.createElement('span');
135
136 const parts = text.split(/`(.*?)`/g); // Split on markdown code slashes
137 while (parts.length) {
138 // Pop off the same number of elements as there are capture groups.
139 const [preambleText, codeText] = parts.splice(0, 2);
140 element.appendChild(this._document.createTextNode(preambleText));
141 if (codeText) {
142 const pre = /** @type {!HTMLPreElement} */ (this.createElement('code'));
143 pre.textContent = codeText;
144 element.appendChild(pre);
145 }
146 }
147
148 return element;
149 }
150
151 /**
130 * @return {!Document} 152 * @return {!Document}
131 */ 153 */
132 document() { 154 document() {
133 return this._document; 155 return this._document;
134 } 156 }
135 157
136 /** 158 /**
137 * Guaranteed context.querySelector. Always returns an element or throws if 159 * Guaranteed context.querySelector. Always returns an element or throws if
138 * nothing matches query. 160 * nothing matches query.
139 * @param {string} query 161 * @param {string} query
(...skipping 17 matching lines...) Expand all
157 findAll(query, context) { 179 findAll(query, context) {
158 return Array.from(context.querySelectorAll(query)); 180 return Array.from(context.querySelectorAll(query));
159 } 181 }
160 } 182 }
161 183
162 if (typeof module !== 'undefined' && module.exports) { 184 if (typeof module !== 'undefined' && module.exports) {
163 module.exports = DOM; 185 module.exports = DOM;
164 } else { 186 } else {
165 self.DOM = DOM; 187 self.DOM = DOM;
166 } 188 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698