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

Unified Diff: chrome/browser/local_discovery/privet_http_asynchronous_factory.cc

Issue 195983023: Enable devices page UI on MacOSX (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@fix_dcheck
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/local_discovery/privet_http_asynchronous_factory.cc
diff --git a/chrome/browser/local_discovery/privet_http_asynchronous_factory.cc b/chrome/browser/local_discovery/privet_http_asynchronous_factory.cc
index 8bcbe52e95da1ee67ccea6ba5d449cf8e30827a0..506ef3c815f90a00eb3a0c5e8269453c05c0ada5 100644
--- a/chrome/browser/local_discovery/privet_http_asynchronous_factory.cc
+++ b/chrome/browser/local_discovery/privet_http_asynchronous_factory.cc
@@ -4,152 +4,28 @@
#include "chrome/browser/local_discovery/privet_http_asynchronous_factory.h"
-#include "base/bind.h"
-#include "base/command_line.h"
-#include "base/strings/stringprintf.h"
-#include "chrome/browser/local_discovery/privet_http.h"
-#include "chrome/browser/local_discovery/privet_http_impl.h"
-#include "chrome/common/chrome_switches.h"
-#include "chrome/common/local_discovery/service_discovery_client.h"
+#if defined(OS_MACOSX)
+#include "chrome/browser/local_discovery/privet_http_asynchronous_factory_mac.h"
+#else
+#include "chrome/browser/local_discovery/privet_http_asynchronous_factory_impl.h"
+#endif
namespace local_discovery {
-namespace {
-
-std::string IPAddressToHostString(const net::IPAddressNumber& address) {
- std::string address_str = net::IPAddressToString(address);
-
- // IPv6 addresses need to be surrounded by brackets.
- if (address.size() == net::kIPv6AddressSize) {
- address_str = base::StringPrintf("[%s]", address_str.c_str());
- }
-
- return address_str;
-}
-
-} // namespace
-
-class PrivetHTTPAsynchronousFactoryImpl : public PrivetHTTPAsynchronousFactory {
- public:
- PrivetHTTPAsynchronousFactoryImpl(
- ServiceDiscoveryClient* service_discovery_client,
- net::URLRequestContextGetter* request_context);
- virtual ~PrivetHTTPAsynchronousFactoryImpl();
-
- virtual scoped_ptr<PrivetHTTPResolution> CreatePrivetHTTP(
- const std::string& name,
- const net::HostPortPair& address,
- const ResultCallback& callback) OVERRIDE;
-
- private:
- class ResolutionImpl : public PrivetHTTPResolution {
- public:
- ResolutionImpl(const std::string& name,
- const net::HostPortPair& address,
- const ResultCallback& callback,
- ServiceDiscoveryClient* service_discovery_client,
- net::URLRequestContextGetter* request_context);
- virtual ~ResolutionImpl();
-
- virtual void Start() OVERRIDE;
- virtual const std::string& GetName() OVERRIDE;
- private:
- void ResolveComplete(bool success,
- const net::IPAddressNumber& address_ipv4,
- const net::IPAddressNumber& address_ipv6);
-
- std::string name_;
- scoped_ptr<LocalDomainResolver> resolver_;
- net::HostPortPair hostport_;
- ResultCallback callback_;
- scoped_refptr<net::URLRequestContextGetter> request_context_;
- };
-
- ServiceDiscoveryClient* service_discovery_client_;
- scoped_refptr<net::URLRequestContextGetter> request_context_;
-};
-
-PrivetHTTPAsynchronousFactoryImpl::PrivetHTTPAsynchronousFactoryImpl(
- ServiceDiscoveryClient* service_discovery_client,
- net::URLRequestContextGetter* request_context)
- : service_discovery_client_(service_discovery_client),
- request_context_(request_context) {
-}
-
-PrivetHTTPAsynchronousFactoryImpl::~PrivetHTTPAsynchronousFactoryImpl() {
-}
-
// static
scoped_ptr<PrivetHTTPAsynchronousFactory>
PrivetHTTPAsynchronousFactory::CreateInstance(
ServiceDiscoveryClient* service_discovery_client,
net::URLRequestContextGetter* request_context) {
+#if defined(OS_MACOSX)
+ return make_scoped_ptr<PrivetHTTPAsynchronousFactory>(
+ new PrivetHTTPAsynchronousFactoryMac(request_context));
+
+#else
return make_scoped_ptr<PrivetHTTPAsynchronousFactory>(
new PrivetHTTPAsynchronousFactoryImpl(service_discovery_client,
request_context));
-}
-
-scoped_ptr<PrivetHTTPResolution>
- PrivetHTTPAsynchronousFactoryImpl::CreatePrivetHTTP(
- const std::string& name,
- const net::HostPortPair& address,
- const ResultCallback& callback) {
- return scoped_ptr<PrivetHTTPResolution>(
- new ResolutionImpl(name, address, callback, service_discovery_client_,
- request_context_.get()));
-}
-
-PrivetHTTPAsynchronousFactoryImpl::ResolutionImpl::ResolutionImpl(
- const std::string& name,
- const net::HostPortPair& address,
- const ResultCallback& callback,
- ServiceDiscoveryClient* service_discovery_client,
- net::URLRequestContextGetter* request_context)
- : name_(name), hostport_(address), callback_(callback),
- request_context_(request_context) {
- net::AddressFamily address_family = net::ADDRESS_FAMILY_UNSPECIFIED;
-
- if (CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kPrivetIPv6Only)) {
- address_family = net::ADDRESS_FAMILY_IPV6;
- }
-
- resolver_ = service_discovery_client->CreateLocalDomainResolver(
- address.host(), address_family,
- base::Bind(&ResolutionImpl::ResolveComplete, base::Unretained(this)));
-}
-
-PrivetHTTPAsynchronousFactoryImpl::ResolutionImpl::~ResolutionImpl() {
-}
-
-void PrivetHTTPAsynchronousFactoryImpl::ResolutionImpl::Start() {
- resolver_->Start();
-}
-
-const std::string&
-PrivetHTTPAsynchronousFactoryImpl::ResolutionImpl::GetName() {
- return name_;
-}
-
-void PrivetHTTPAsynchronousFactoryImpl::ResolutionImpl::ResolveComplete(
- bool success,
- const net::IPAddressNumber& address_ipv4,
- const net::IPAddressNumber& address_ipv6) {
- if (!success) {
- callback_.Run(scoped_ptr<PrivetHTTPClient>());
- return;
- }
-
- net::IPAddressNumber address = address_ipv4;
- if (address.empty())
- address = address_ipv6;
-
- DCHECK(!address.empty());
-
- net::HostPortPair new_address = net::HostPortPair(
- IPAddressToHostString(address), hostport_.port());
- callback_.Run(scoped_ptr<PrivetHTTPClient>(
- new PrivetHTTPClientImpl(name_, new_address, request_context_.get())));
+#endif
}
} // namespace local_discovery

Powered by Google App Engine
This is Rietveld 408576698