| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_classifier_delegate.h" | 5 #include "chrome/renderer/safe_browsing/phishing_classifier_delegate.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 content::RenderView* render_view, PhishingClassifier* classifier) { | 89 content::RenderView* render_view, PhishingClassifier* classifier) { |
| 90 // Private constructor and public static Create() method to facilitate | 90 // Private constructor and public static Create() method to facilitate |
| 91 // stubbing out this class for binary-size reduction purposes. | 91 // stubbing out this class for binary-size reduction purposes. |
| 92 return new PhishingClassifierDelegate(render_view, classifier); | 92 return new PhishingClassifierDelegate(render_view, classifier); |
| 93 } | 93 } |
| 94 | 94 |
| 95 PhishingClassifierDelegate::PhishingClassifierDelegate( | 95 PhishingClassifierDelegate::PhishingClassifierDelegate( |
| 96 content::RenderView* render_view, | 96 content::RenderView* render_view, |
| 97 PhishingClassifier* classifier) | 97 PhishingClassifier* classifier) |
| 98 : content::RenderViewObserver(render_view), | 98 : content::RenderViewObserver(render_view), |
| 99 last_main_frame_transition_(content::PAGE_TRANSITION_LINK), | 99 last_main_frame_transition_(ui::PAGE_TRANSITION_LINK), |
| 100 have_page_text_(false), | 100 have_page_text_(false), |
| 101 is_classifying_(false) { | 101 is_classifying_(false) { |
| 102 g_delegates.Get().insert(this); | 102 g_delegates.Get().insert(this); |
| 103 if (!classifier) { | 103 if (!classifier) { |
| 104 classifier = new PhishingClassifier(render_view, | 104 classifier = new PhishingClassifier(render_view, |
| 105 new FeatureExtractorClock()); | 105 new FeatureExtractorClock()); |
| 106 } | 106 } |
| 107 | 107 |
| 108 classifier_.reset(classifier); | 108 classifier_.reset(classifier); |
| 109 | 109 |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 233 // | 233 // |
| 234 // Note that if we determine that this particular navigation should not be | 234 // Note that if we determine that this particular navigation should not be |
| 235 // classified at all (as opposed to deferring it until we get an IPC or the | 235 // classified at all (as opposed to deferring it until we get an IPC or the |
| 236 // load completes), we discard the page text since it won't be needed. | 236 // load completes), we discard the page text since it won't be needed. |
| 237 if (!classifier_->is_ready()) { | 237 if (!classifier_->is_ready()) { |
| 238 VLOG(2) << "Not starting classification, no Scorer created."; | 238 VLOG(2) << "Not starting classification, no Scorer created."; |
| 239 // Keep classifier_page_text_, in case a Scorer is set later. | 239 // Keep classifier_page_text_, in case a Scorer is set later. |
| 240 return; | 240 return; |
| 241 } | 241 } |
| 242 | 242 |
| 243 if (last_main_frame_transition_ & content::PAGE_TRANSITION_FORWARD_BACK) { | 243 if (last_main_frame_transition_ & ui::PAGE_TRANSITION_FORWARD_BACK) { |
| 244 // Skip loads from session history navigation. However, update the | 244 // Skip loads from session history navigation. However, update the |
| 245 // last URL sent to the classifier, so that we'll properly detect | 245 // last URL sent to the classifier, so that we'll properly detect |
| 246 // in-page navigations. | 246 // in-page navigations. |
| 247 VLOG(2) << "Not starting classification for back/forward navigation"; | 247 VLOG(2) << "Not starting classification for back/forward navigation"; |
| 248 last_url_sent_to_classifier_ = last_finished_load_url_; | 248 last_url_sent_to_classifier_ = last_finished_load_url_; |
| 249 classifier_page_text_.clear(); // we won't need this. | 249 classifier_page_text_.clear(); // we won't need this. |
| 250 have_page_text_ = false; | 250 have_page_text_ = false; |
| 251 return; | 251 return; |
| 252 } | 252 } |
| 253 | 253 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 283 VLOG(2) << "Starting classification for " << last_finished_load_url_; | 283 VLOG(2) << "Starting classification for " << last_finished_load_url_; |
| 284 last_url_sent_to_classifier_ = last_finished_load_url_; | 284 last_url_sent_to_classifier_ = last_finished_load_url_; |
| 285 is_classifying_ = true; | 285 is_classifying_ = true; |
| 286 classifier_->BeginClassification( | 286 classifier_->BeginClassification( |
| 287 &classifier_page_text_, | 287 &classifier_page_text_, |
| 288 base::Bind(&PhishingClassifierDelegate::ClassificationDone, | 288 base::Bind(&PhishingClassifierDelegate::ClassificationDone, |
| 289 base::Unretained(this))); | 289 base::Unretained(this))); |
| 290 } | 290 } |
| 291 | 291 |
| 292 } // namespace safe_browsing | 292 } // namespace safe_browsing |
| OLD | NEW |