| 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 #import "ios/chrome/browser/ui/reader_mode/reader_mode_checker.h" | 5 #import "ios/chrome/browser/ui/reader_mode/reader_mode_checker.h" | 
| 6 | 6 | 
| 7 #include "base/logging.h" | 7 #include "base/logging.h" | 
| 8 #include "base/strings/sys_string_conversions.h" | 8 #include "base/strings/sys_string_conversions.h" | 
| 9 #include "components/dom_distiller/core/distillable_page_detector.h" | 9 #include "components/dom_distiller/core/distillable_page_detector.h" | 
| 10 #include "components/dom_distiller/core/experiments.h" | 10 #include "components/dom_distiller/core/experiments.h" | 
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 111   // references a weak pointer. | 111   // references a weak pointer. | 
| 112   base::WeakPtr<ReaderModeChecker> weak_this(weak_factory_.GetWeakPtr()); | 112   base::WeakPtr<ReaderModeChecker> weak_this(weak_factory_.GetWeakPtr()); | 
| 113   [receiver | 113   [receiver | 
| 114       executeJavaScript:extract_features_js | 114       executeJavaScript:extract_features_js | 
| 115       completionHandler:^(id result, NSError* error) { | 115       completionHandler:^(id result, NSError* error) { | 
| 116         if (!weak_this || error || ![result isKindOfClass:[NSString class]]) { | 116         if (!weak_this || error || ![result isKindOfClass:[NSString class]]) { | 
| 117           return;  // Inconclusive. | 117           return;  // Inconclusive. | 
| 118         } | 118         } | 
| 119         const dom_distiller::DistillablePageDetector* detector = | 119         const dom_distiller::DistillablePageDetector* detector = | 
| 120             dom_distiller::DistillablePageDetector::GetDefault(); | 120             dom_distiller::DistillablePageDetector::GetDefault(); | 
| 121         const base::StringValue value(base::SysNSStringToUTF8(result)); | 121         const base::Value value(base::SysNSStringToUTF8(result)); | 
| 122         std::vector<double> features( | 122         std::vector<double> features( | 
| 123             dom_distiller::CalculateDerivedFeaturesFromJSON(&value)); | 123             dom_distiller::CalculateDerivedFeaturesFromJSON(&value)); | 
| 124         if (detector->Classify(features)) { | 124         if (detector->Classify(features)) { | 
| 125           weak_this->is_distillable_ = Status::kSwitchPossible; | 125           weak_this->is_distillable_ = Status::kSwitchPossible; | 
| 126           for (auto& observer : weak_this->observers_) | 126           for (auto& observer : weak_this->observers_) | 
| 127             observer.PageIsDistillable(); | 127             observer.PageIsDistillable(); | 
| 128         } else { | 128         } else { | 
| 129           weak_this->is_distillable_ = Status::kSwitchMaybe; | 129           weak_this->is_distillable_ = Status::kSwitchMaybe; | 
| 130         } | 130         } | 
| 131       }]; | 131       }]; | 
| (...skipping 30 matching lines...) Expand all  Loading... | 
| 162 | 162 | 
| 163 void ReaderModeChecker::AddObserver(ReaderModeCheckerObserver* observer) { | 163 void ReaderModeChecker::AddObserver(ReaderModeCheckerObserver* observer) { | 
| 164   DCHECK(!observers_.HasObserver(observer)); | 164   DCHECK(!observers_.HasObserver(observer)); | 
| 165   observers_.AddObserver(observer); | 165   observers_.AddObserver(observer); | 
| 166 } | 166 } | 
| 167 | 167 | 
| 168 void ReaderModeChecker::RemoveObserver(ReaderModeCheckerObserver* observer) { | 168 void ReaderModeChecker::RemoveObserver(ReaderModeCheckerObserver* observer) { | 
| 169   DCHECK(observers_.HasObserver(observer)); | 169   DCHECK(observers_.HasObserver(observer)); | 
| 170   observers_.RemoveObserver(observer); | 170   observers_.RemoveObserver(observer); | 
| 171 } | 171 } | 
| OLD | NEW | 
|---|