Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: components/previews/core/previews_io_data.cc

Issue 2749693003: Reland of Moving previews code from components/ to chrome/ (Closed)
Patch Set: fixed vector copy Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "components/previews/core/previews_io_data.h" 5 #include "components/previews/core/previews_io_data.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner, 44 const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner,
45 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) 45 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner)
46 : ui_task_runner_(ui_task_runner), 46 : ui_task_runner_(ui_task_runner),
47 io_task_runner_(io_task_runner), 47 io_task_runner_(io_task_runner),
48 weak_factory_(this) {} 48 weak_factory_(this) {}
49 49
50 PreviewsIOData::~PreviewsIOData() {} 50 PreviewsIOData::~PreviewsIOData() {}
51 51
52 void PreviewsIOData::Initialize( 52 void PreviewsIOData::Initialize(
53 base::WeakPtr<PreviewsUIService> previews_ui_service, 53 base::WeakPtr<PreviewsUIService> previews_ui_service,
54 std::unique_ptr<PreviewsOptOutStore> previews_opt_out_store) { 54 std::unique_ptr<PreviewsOptOutStore> previews_opt_out_store,
55 const PreviewsIsEnabledCallback& is_enabled_callback) {
55 DCHECK(ui_task_runner_->BelongsToCurrentThread()); 56 DCHECK(ui_task_runner_->BelongsToCurrentThread());
57 is_enabled_callback_ = is_enabled_callback;
56 previews_ui_service_ = previews_ui_service; 58 previews_ui_service_ = previews_ui_service;
57 59
58 // Set up the IO thread portion of |this|. 60 // Set up the IO thread portion of |this|.
59 io_task_runner_->PostTask( 61 io_task_runner_->PostTask(
60 FROM_HERE, 62 FROM_HERE,
61 base::Bind(&PreviewsIOData::InitializeOnIOThread, base::Unretained(this), 63 base::Bind(&PreviewsIOData::InitializeOnIOThread, base::Unretained(this),
62 base::Passed(&previews_opt_out_store))); 64 base::Passed(&previews_opt_out_store)));
63 } 65 }
64 66
65 void PreviewsIOData::InitializeOnIOThread( 67 void PreviewsIOData::InitializeOnIOThread(
(...skipping 15 matching lines...) Expand all
81 } 83 }
82 84
83 void PreviewsIOData::ClearBlackList(base::Time begin_time, 85 void PreviewsIOData::ClearBlackList(base::Time begin_time,
84 base::Time end_time) { 86 base::Time end_time) {
85 DCHECK(io_task_runner_->BelongsToCurrentThread()); 87 DCHECK(io_task_runner_->BelongsToCurrentThread());
86 previews_black_list_->ClearBlackList(begin_time, end_time); 88 previews_black_list_->ClearBlackList(begin_time, end_time);
87 } 89 }
88 90
89 bool PreviewsIOData::ShouldAllowPreview(const net::URLRequest& request, 91 bool PreviewsIOData::ShouldAllowPreview(const net::URLRequest& request,
90 PreviewsType type) const { 92 PreviewsType type) const {
91 if (!IsPreviewsTypeEnabled(type)) 93 if (is_enabled_callback_.is_null() || !previews_black_list_) {
92 return false;
93 // The blacklist will disallow certain hosts for periods of time based on
94 // user's opting out of the preview
95 if (!previews_black_list_) {
96 LogPreviewsEligibilityReason( 94 LogPreviewsEligibilityReason(
97 PreviewsEligibilityReason::BLACKLIST_UNAVAILABLE, type); 95 PreviewsEligibilityReason::BLACKLIST_UNAVAILABLE, type);
98 return false; 96 return false;
99 } 97 }
98 if (!is_enabled_callback_.Run(type))
99 return false;
100
101 // The blacklist will disallow certain hosts for periods of time based on
102 // user's opting out of the preview
100 PreviewsEligibilityReason status = 103 PreviewsEligibilityReason status =
101 previews_black_list_->IsLoadedAndAllowed(request.url(), type); 104 previews_black_list_->IsLoadedAndAllowed(request.url(), type);
102 if (status != PreviewsEligibilityReason::ALLOWED) { 105 if (status != PreviewsEligibilityReason::ALLOWED) {
103 LogPreviewsEligibilityReason(status, type); 106 LogPreviewsEligibilityReason(status, type);
104 return false; 107 return false;
105 } 108 }
106 net::NetworkQualityEstimator* network_quality_estimator = 109 net::NetworkQualityEstimator* network_quality_estimator =
107 request.context()->network_quality_estimator(); 110 request.context()->network_quality_estimator();
108 if (!network_quality_estimator || 111 if (!network_quality_estimator ||
109 network_quality_estimator->GetEffectiveConnectionType() < 112 network_quality_estimator->GetEffectiveConnectionType() <
(...skipping 15 matching lines...) Expand all
125 (net::LOAD_VALIDATE_CACHE | net::LOAD_BYPASS_CACHE)) { 128 (net::LOAD_VALIDATE_CACHE | net::LOAD_BYPASS_CACHE)) {
126 LogPreviewsEligibilityReason( 129 LogPreviewsEligibilityReason(
127 PreviewsEligibilityReason::RELOAD_DISALLOWED_FOR_OFFLINE, type); 130 PreviewsEligibilityReason::RELOAD_DISALLOWED_FOR_OFFLINE, type);
128 return false; 131 return false;
129 } 132 }
130 LogPreviewsEligibilityReason(PreviewsEligibilityReason::ALLOWED, type); 133 LogPreviewsEligibilityReason(PreviewsEligibilityReason::ALLOWED, type);
131 return true; 134 return true;
132 } 135 }
133 136
134 } // namespace previews 137 } // namespace previews
OLDNEW
« no previous file with comments | « components/previews/core/previews_io_data.h ('k') | components/previews/core/previews_io_data_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698