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

Side by Side Diff: third_party/WebKit/Source/core/dom/DocumentStatisticsCollector.cpp

Issue 1972503002: Add flag "distillability-dev" for distillability development Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix tests Created 4 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 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #include "DocumentStatisticsCollector.h" 5 #include "DocumentStatisticsCollector.h"
6 6
7 #include "core/HTMLNames.h" 7 #include "core/HTMLNames.h"
8 #include "core/InputTypeNames.h" 8 #include "core/InputTypeNames.h"
9 #include "core/dom/ElementTraversal.h" 9 #include "core/dom/ElementTraversal.h"
10 #include "core/dom/NodeComputedStyle.h" 10 #include "core/dom/NodeComputedStyle.h"
11 #include "core/dom/Text.h" 11 #include "core/dom/Text.h"
12 #include "core/frame/FrameHost.h" 12 #include "core/frame/FrameHost.h"
13 #include "core/html/HTMLHeadElement.h" 13 #include "core/html/HTMLHeadElement.h"
14 #include "core/html/HTMLInputElement.h" 14 #include "core/html/HTMLInputElement.h"
15 #include "core/html/HTMLMetaElement.h" 15 #include "core/html/HTMLMetaElement.h"
16 #include "core/inspector/ConsoleMessage.h"
16 #include "platform/Histogram.h" 17 #include "platform/Histogram.h"
17 #include "public/platform/Platform.h" 18 #include "public/platform/Platform.h"
18 #include "public/platform/WebDistillability.h" 19 #include "public/platform/WebDistillability.h"
19 20
20 namespace blink { 21 namespace blink {
21 22
22 using namespace HTMLNames; 23 using namespace HTMLNames;
23 24
24 namespace { 25 namespace {
25 26
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 207
207 bool isMobileFriendly(Document& document) 208 bool isMobileFriendly(Document& document)
208 { 209 {
209 if (FrameHost* frameHost = document.frameHost()) 210 if (FrameHost* frameHost = document.frameHost())
210 return frameHost->visualViewport().shouldDisableDesktopWorkarounds(); 211 return frameHost->visualViewport().shouldDisableDesktopWorkarounds();
211 return false; 212 return false;
212 } 213 }
213 214
214 } // namespace 215 } // namespace
215 216
216 WebDistillabilityFeatures DocumentStatisticsCollector::collectStatistics(Documen t& document) 217 WebDistillabilityFeatures DocumentStatisticsCollector::collectStatistics(Documen t& document, bool dumpInfo)
217 { 218 {
218 TRACE_EVENT0("blink", "DocumentStatisticsCollector::collectStatistics"); 219 TRACE_EVENT0("blink", "DocumentStatisticsCollector::collectStatistics");
219 220
220 WebDistillabilityFeatures features = WebDistillabilityFeatures(); 221 WebDistillabilityFeatures features = WebDistillabilityFeatures();
221 222
222 if (!document.frame() || !document.frame()->isMainFrame()) 223 if (!document.frame() || !document.frame()->isMainFrame())
223 return features; 224 return features;
224 225
225 DCHECK(document.hasFinishedParsing()); 226 DCHECK(document.hasFinishedParsing());
226 227
(...skipping 12 matching lines...) Expand all
239 240
240 // Traverse the DOM tree and collect statistics. 241 // Traverse the DOM tree and collect statistics.
241 collectFeatures(*body, features); 242 collectFeatures(*body, features);
242 features.openGraph = hasOpenGraphArticle(*head); 243 features.openGraph = hasOpenGraphArticle(*head);
243 244
244 double elapsedTime = monotonicallyIncreasingTime() - startTime; 245 double elapsedTime = monotonicallyIncreasingTime() - startTime;
245 246
246 DEFINE_STATIC_LOCAL(CustomCountHistogram, distillabilityHistogram, ("WebCore .DistillabilityUs", 1, 1000000, 50)); 247 DEFINE_STATIC_LOCAL(CustomCountHistogram, distillabilityHistogram, ("WebCore .DistillabilityUs", 1, 1000000, 50));
247 distillabilityHistogram.count(static_cast<int>(1e6 * elapsedTime)); 248 distillabilityHistogram.count(static_cast<int>(1e6 * elapsedTime));
248 249
250 if (dumpInfo) {
251 StringBuilder message;
252 message.append("distillability_features = {\"isMobileFriendly\": ");
253 message.appendNumber(features.isMobileFriendly);
254 message.append(", \"openGraph\": ");
255 message.appendNumber(features.openGraph);
256 message.append(", \"elementCount\": ");
257 message.appendNumber(features.elementCount);
258 message.append(", \"anchorCount\": ");
259 message.appendNumber(features.anchorCount);
260 message.append(", \"formCount\": ");
261 message.appendNumber(features.formCount);
262 message.append(", \"textInputCount\": ");
263 message.appendNumber(features.textInputCount);
264 message.append(", \"passwordInputCount\": ");
265 message.appendNumber(features.passwordInputCount);
266 message.append(", \"mozScore\": ");
267 message.appendNumber(features.mozScore);
268 message.append(", \"mozScoreAllSqrt\": ");
269 message.appendNumber(features.mozScoreAllSqrt);
270 message.append(", \"mozScoreAllLinear\": ");
271 message.appendNumber(features.mozScoreAllLinear);
272 message.append("}");
273 ConsoleMessage* consoleMessage = ConsoleMessage::create(ConsoleAPIMessag eSource, DebugMessageLevel, message.toString());
mdjones 2016/05/18 19:06:59 Is this automatically cleaned up (does ConsoleMess
wychen 2016/05/18 19:19:01 ConsoleMessage is derived from GarbageCollectedFin
274 document.addConsoleMessage(consoleMessage);
275 }
276
249 return features; 277 return features;
250 } 278 }
251 279
252 } // namespace blink 280 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698