| 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 #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 std::string wildcard_prefix = ""; |
| 37 if (config->include_subdomains) |
| 38 wildcard_prefix = "*."; |
| 39 |
| 40 std::string domain = wildcard_prefix + config->origin.host(); |
| 36 scoped_ptr<DomainReliabilityContext> context = | 41 scoped_ptr<DomainReliabilityContext> context = |
| 37 context_factory_->CreateContextForConfig(config.Pass()); | 42 context_factory_->CreateContextForConfig(config.Pass()); |
| 38 DomainReliabilityContext** entry = &contexts_[domain]; | 43 DomainReliabilityContext** entry = &contexts_[domain]; |
| 39 if (*entry) | 44 if (*entry) |
| 40 delete *entry; | 45 delete *entry; |
| 41 *entry = context.release(); | 46 *entry = context.release(); |
| 42 return *entry; | 47 return *entry; |
| 43 } | 48 } |
| 44 | 49 |
| 45 void DomainReliabilityContextManager::RemoveAllContexts() { | 50 void DomainReliabilityContextManager::RemoveAllContexts() { |
| (...skipping 30 matching lines...) Expand all Loading... |
| 76 | 81 |
| 77 std::string parent_with_asterisk = "*." + host.substr(dot_pos + 1); | 82 std::string parent_with_asterisk = "*." + host.substr(dot_pos + 1); |
| 78 context_it = contexts_.find(parent_with_asterisk); | 83 context_it = contexts_.find(parent_with_asterisk); |
| 79 if (context_it != contexts_.end()) | 84 if (context_it != contexts_.end()) |
| 80 return context_it->second; | 85 return context_it->second; |
| 81 | 86 |
| 82 return nullptr; | 87 return nullptr; |
| 83 } | 88 } |
| 84 | 89 |
| 85 } // namespace domain_reliability | 90 } // namespace domain_reliability |
| OLD | NEW |