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

Side by Side Diff: components/domain_reliability/context_manager.cc

Issue 1180223006: Domain Reliability: Simplify configs and reports (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make requested changes Created 5 years, 1 month 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 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 #include "components/domain_reliability/context_manager.h" 5 #include "components/domain_reliability/context_manager.h"
6 6
7 namespace domain_reliability { 7 namespace domain_reliability {
8 8
9 DomainReliabilityContextManager::DomainReliabilityContextManager( 9 DomainReliabilityContextManager::DomainReliabilityContextManager(
10 DomainReliabilityContext::Factory* context_factory) 10 DomainReliabilityContext::Factory* context_factory)
11 : context_factory_(context_factory) { 11 : context_factory_(context_factory) {
12 } 12 }
13 13
14 DomainReliabilityContextManager::~DomainReliabilityContextManager() { 14 DomainReliabilityContextManager::~DomainReliabilityContextManager() {
15 RemoveAllContexts(); 15 RemoveAllContexts();
16 } 16 }
17 17
18 void DomainReliabilityContextManager::RouteBeacon( 18 void DomainReliabilityContextManager::RouteBeacon(
19 const GURL& url, 19 scoped_ptr<DomainReliabilityBeacon> beacon) {
20 const DomainReliabilityBeacon& beacon) { 20 DomainReliabilityContext* context = GetContextForHost(beacon->url.host());
21 DomainReliabilityContext* context = GetContextForHost(url.host());
22 if (!context) 21 if (!context)
23 return; 22 return;
24 23
25 context->OnBeacon(url, beacon); 24 context->OnBeacon(beacon.Pass());
26 } 25 }
27 26
28 void DomainReliabilityContextManager::ClearBeaconsInAllContexts() { 27 void DomainReliabilityContextManager::ClearBeaconsInAllContexts() {
29 for (auto& context_entry : contexts_) 28 for (auto& context_entry : contexts_)
30 context_entry.second->ClearBeacons(); 29 context_entry.second->ClearBeacons();
31 } 30 }
32 31
33 DomainReliabilityContext* DomainReliabilityContextManager::AddContextForConfig( 32 DomainReliabilityContext* DomainReliabilityContextManager::AddContextForConfig(
34 scoped_ptr<const DomainReliabilityConfig> config) { 33 scoped_ptr<const DomainReliabilityConfig> config) {
35 std::string domain = config->domain; 34 // TODO(ttuttle): Convert this to actual origin.
35
36 // For some reason, initializing |wildcard_prefix| with a ternary operator
37 // makes ASAN mad.
38 std::string wildcard_prefix = "";
39 if (config->include_subdomains)
40 wildcard_prefix = "*.";
41
42 std::string domain = wildcard_prefix + config->origin.host();
36 scoped_ptr<DomainReliabilityContext> context = 43 scoped_ptr<DomainReliabilityContext> context =
37 context_factory_->CreateContextForConfig(config.Pass()); 44 context_factory_->CreateContextForConfig(config.Pass());
38 DomainReliabilityContext** entry = &contexts_[domain]; 45 DomainReliabilityContext** entry = &contexts_[domain];
39 if (*entry) 46 if (*entry)
40 delete *entry; 47 delete *entry;
41 *entry = context.release(); 48 *entry = context.release();
42 return *entry; 49 return *entry;
43 } 50 }
44 51
45 void DomainReliabilityContextManager::RemoveAllContexts() { 52 void DomainReliabilityContextManager::RemoveAllContexts() {
(...skipping 30 matching lines...) Expand all
76 83
77 std::string parent_with_asterisk = "*." + host.substr(dot_pos + 1); 84 std::string parent_with_asterisk = "*." + host.substr(dot_pos + 1);
78 context_it = contexts_.find(parent_with_asterisk); 85 context_it = contexts_.find(parent_with_asterisk);
79 if (context_it != contexts_.end()) 86 if (context_it != contexts_.end())
80 return context_it->second; 87 return context_it->second;
81 88
82 return nullptr; 89 return nullptr;
83 } 90 }
84 91
85 } // namespace domain_reliability 92 } // namespace domain_reliability
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698