| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 #include "chrome/renderer/safe_browsing/phishing_dom_feature_extractor.h" | 5 #include "chrome/renderer/safe_browsing/phishing_dom_feature_extractor.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/containers/hash_tables.h" | 9 #include "base/containers/hash_tables.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 cur_document_.Url(), | 383 cur_document_.Url(), |
| 384 net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES); | 384 net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES); |
| 385 } | 385 } |
| 386 | 386 |
| 387 blink::WebDocument PhishingDOMFeatureExtractor::GetNextDocument() { | 387 blink::WebDocument PhishingDOMFeatureExtractor::GetNextDocument() { |
| 388 DCHECK(!cur_document_.IsNull()); | 388 DCHECK(!cur_document_.IsNull()); |
| 389 blink::WebFrame* frame = cur_document_.GetFrame(); | 389 blink::WebFrame* frame = cur_document_.GetFrame(); |
| 390 // Advance to the next frame that contains a document, with no wrapping. | 390 // Advance to the next frame that contains a document, with no wrapping. |
| 391 if (frame) { | 391 if (frame) { |
| 392 for (frame = frame->TraverseNext(); frame; frame = frame->TraverseNext()) { | 392 for (frame = frame->TraverseNext(); frame; frame = frame->TraverseNext()) { |
| 393 if (!frame->GetDocument().IsNull()) { | 393 // TODO(dcheng): Verify if the WebDocument::IsNull check is really needed. |
| 394 return frame->GetDocument(); | 394 if (frame->IsWebLocalFrame() && |
| 395 !frame->ToWebLocalFrame()->GetDocument().IsNull()) { |
| 396 return frame->ToWebLocalFrame()->GetDocument(); |
| 395 } | 397 } |
| 396 } | 398 } |
| 397 } else { | 399 } else { |
| 398 // Keep track of how often frame traversal got "stuck" due to the | 400 // Keep track of how often frame traversal got "stuck" due to the |
| 399 // current subdocument getting removed from the frame tree. | 401 // current subdocument getting removed from the frame tree. |
| 400 UMA_HISTOGRAM_COUNTS("SBClientPhishing.DOMFeatureFrameRemoved", 1); | 402 UMA_HISTOGRAM_COUNTS("SBClientPhishing.DOMFeatureFrameRemoved", 1); |
| 401 } | 403 } |
| 402 return blink::WebDocument(); | 404 return blink::WebDocument(); |
| 403 } | 405 } |
| 404 | 406 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 493 // Record number of script tags (discretized for numerical stability.) | 495 // Record number of script tags (discretized for numerical stability.) |
| 494 if (page_feature_state_->num_script_tags > 1) { | 496 if (page_feature_state_->num_script_tags > 1) { |
| 495 features_->AddBooleanFeature(features::kPageNumScriptTagsGTOne); | 497 features_->AddBooleanFeature(features::kPageNumScriptTagsGTOne); |
| 496 if (page_feature_state_->num_script_tags > 6) { | 498 if (page_feature_state_->num_script_tags > 6) { |
| 497 features_->AddBooleanFeature(features::kPageNumScriptTagsGTSix); | 499 features_->AddBooleanFeature(features::kPageNumScriptTagsGTSix); |
| 498 } | 500 } |
| 499 } | 501 } |
| 500 } | 502 } |
| 501 | 503 |
| 502 } // namespace safe_browsing | 504 } // namespace safe_browsing |
| OLD | NEW |