Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / local_discovery / service_discovery_shared_client.cc
index 01c3c00..e7f851e 100644 (file)
 #endif
 
 #if defined(ENABLE_MDNS)
+#include "chrome/browser/local_discovery/service_discovery_client_mdns.h"
 #include "chrome/browser/local_discovery/service_discovery_client_utility.h"
 #endif  // ENABLE_MDNS
 
 namespace {
 
 #if defined(OS_WIN)
+
+bool g_is_firewall_ready = false;
+
 void ReportFirewallStats() {
   base::FilePath exe_path;
   if (!PathService::Get(base::FILE_EXE, &exe_path))
@@ -36,9 +40,9 @@ void ReportFirewallStats() {
                                          exe_path);
   if (!manager)
     return;
-  bool is_ready = manager->CanUseLocalPorts();
+  g_is_firewall_ready = manager->CanUseLocalPorts();
   UMA_HISTOGRAM_TIMES("LocalDiscovery.FirewallAccessTime", timer.Elapsed());
-  UMA_HISTOGRAM_BOOLEAN("LocalDiscovery.IsFirewallReady", is_ready);
+  UMA_HISTOGRAM_BOOLEAN("LocalDiscovery.IsFirewallReady", g_is_firewall_ready);
 }
 #endif  // OS_WIN
 
@@ -80,11 +84,13 @@ scoped_refptr<ServiceDiscoverySharedClient>
   static bool reported =
       BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
                               base::Bind(&ReportFirewallStats));
-#endif  // OS_WIN
-
   // TODO(vitalybuka): Switch to |ServiceDiscoveryClientMdns| after we find what
   // to do with firewall for user-level installs. crbug.com/366408
-  return new ServiceDiscoveryClientUtility();
+  if (!g_is_firewall_ready)
+    return new ServiceDiscoveryClientUtility();
+#endif  // OS_WIN
+
+  return new ServiceDiscoveryClientMdns();
 #endif // OS_MACOSX
 }