Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 |
| OLD | NEW |