| 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 309 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 320 } | 320 } | 
| 321 | 321 | 
| 322 void PhishingDOMFeatureExtractor::HandleInput( | 322 void PhishingDOMFeatureExtractor::HandleInput( | 
| 323     const blink::WebElement& element) { | 323     const blink::WebElement& element) { | 
| 324   // The HTML spec says that if the type is unspecified, it defaults to text. | 324   // The HTML spec says that if the type is unspecified, it defaults to text. | 
| 325   // In addition, any unrecognized type will be treated as a text input. | 325   // In addition, any unrecognized type will be treated as a text input. | 
| 326   // | 326   // | 
| 327   // Note that we use the attribute value rather than | 327   // Note that we use the attribute value rather than | 
| 328   // WebFormControlElement::formControlType() for consistency with the | 328   // WebFormControlElement::formControlType() for consistency with the | 
| 329   // way the phishing classification model is created. | 329   // way the phishing classification model is created. | 
| 330   std::string type = element.getAttribute("type").utf8(); | 330   std::string type = base::ToLowerASCII(element.getAttribute("type").utf8()); | 
| 331   base::StringToLowerASCII(&type); |  | 
| 332   if (type == "password") { | 331   if (type == "password") { | 
| 333     ++page_feature_state_->num_pswd_inputs; | 332     ++page_feature_state_->num_pswd_inputs; | 
| 334   } else if (type == "radio") { | 333   } else if (type == "radio") { | 
| 335     ++page_feature_state_->num_radio_inputs; | 334     ++page_feature_state_->num_radio_inputs; | 
| 336   } else if (type == "checkbox") { | 335   } else if (type == "checkbox") { | 
| 337     ++page_feature_state_->num_check_inputs; | 336     ++page_feature_state_->num_check_inputs; | 
| 338   } else if (type != "submit" && type != "reset" && type != "file" && | 337   } else if (type != "submit" && type != "reset" && type != "file" && | 
| 339              type != "hidden" && type != "image" && type != "button") { | 338              type != "hidden" && type != "image" && type != "button") { | 
| 340     // Note that there are a number of new input types in HTML5 that are not | 339     // Note that there are a number of new input types in HTML5 that are not | 
| 341     // handled above.  For now, we will consider these as text inputs since | 340     // handled above.  For now, we will consider these as text inputs since | 
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 497   // Record number of script tags (discretized for numerical stability.) | 496   // Record number of script tags (discretized for numerical stability.) | 
| 498   if (page_feature_state_->num_script_tags > 1) { | 497   if (page_feature_state_->num_script_tags > 1) { | 
| 499     features_->AddBooleanFeature(features::kPageNumScriptTagsGTOne); | 498     features_->AddBooleanFeature(features::kPageNumScriptTagsGTOne); | 
| 500     if (page_feature_state_->num_script_tags > 6) { | 499     if (page_feature_state_->num_script_tags > 6) { | 
| 501       features_->AddBooleanFeature(features::kPageNumScriptTagsGTSix); | 500       features_->AddBooleanFeature(features::kPageNumScriptTagsGTSix); | 
| 502     } | 501     } | 
| 503   } | 502   } | 
| 504 } | 503 } | 
| 505 | 504 | 
| 506 }  // namespace safe_browsing | 505 }  // namespace safe_browsing | 
| OLD | NEW | 
|---|