| Index: chrome/renderer/safe_browsing/phishing_classifier.cc
|
| diff --git a/chrome/renderer/safe_browsing/phishing_classifier.cc b/chrome/renderer/safe_browsing/phishing_classifier.cc
|
| index f48e6c138c74e444e79c58d8edb32809d2b6daa7..8632c437825f07c2366d4159c05af1034219d83f 100644
|
| --- a/chrome/renderer/safe_browsing/phishing_classifier.cc
|
| +++ b/chrome/renderer/safe_browsing/phishing_classifier.cc
|
| @@ -63,6 +63,8 @@ void PhishingClassifier::set_phishing_scorer(const Scorer* scorer) {
|
| &scorer_->page_words(),
|
| scorer_->max_words_per_term(),
|
| scorer_->murmurhash3_seed(),
|
| + scorer_->max_shingles_per_page(),
|
| + scorer_->shingle_size(),
|
| clock_.get()));
|
| } else {
|
| // We're disabling client-side phishing detection, so tear down all
|
| @@ -154,12 +156,14 @@ void PhishingClassifier::CancelPendingClassification() {
|
| }
|
|
|
| void PhishingClassifier::DOMExtractionFinished(bool success) {
|
| + shingle_hashes_.reset(new std::set<uint32>);
|
| if (success) {
|
| // Term feature extraction can take awhile, so it runs asynchronously
|
| // in several chunks of work and invokes the callback when finished.
|
| term_extractor_->ExtractFeatures(
|
| page_text_,
|
| features_.get(),
|
| + shingle_hashes_.get(),
|
| base::Bind(&PhishingClassifier::TermExtractionFinished,
|
| base::Unretained(this)));
|
| } else {
|
| @@ -197,6 +201,10 @@ void PhishingClassifier::TermExtractionFinished(bool success) {
|
| feature->set_name(it->first);
|
| feature->set_value(it->second);
|
| }
|
| + for (std::set<uint32>::const_iterator it = shingle_hashes_->begin();
|
| + it != shingle_hashes_->end(); ++it) {
|
| + verdict.add_shingle_hashes(*it);
|
| + }
|
| float score = static_cast<float>(scorer_->ComputeScore(hashed_features));
|
| verdict.set_client_score(score);
|
| verdict.set_is_phishing(score >= kPhishyThreshold);
|
| @@ -236,6 +244,7 @@ void PhishingClassifier::Clear() {
|
| page_text_ = NULL;
|
| done_callback_.Reset();
|
| features_.reset(NULL);
|
| + shingle_hashes_.reset(NULL);
|
| }
|
|
|
| } // namespace safe_browsing
|
|
|