Enumerate layered service providers and namespace providers under Windows and display them on a new net-internals tab. On other OSes, the new tab is always hidden.
BUG=53474
TEST=manual
Review URL: http://codereview.chromium.org/3329016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59364 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/net/service_providers_win.h b/chrome/browser/net/service_providers_win.h
new file mode 100644
index 0000000..39687cd
--- /dev/null
+++ b/chrome/browser/net/service_providers_win.h
@@ -0,0 +1,41 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_NET_SERVICE_PROVIDERS_WIN_H_
+#define CHROME_BROWSER_NET_SERVICE_PROVIDERS_WIN_H_
+#pragma once
+
+#include <vector>
+
+class Value;
+
+struct WinsockNamespaceProvider {
+ std::wstring name;
+ int version;
+ bool active;
+ int type;
+};
+typedef std::vector<WinsockNamespaceProvider> WinsockNamespaceProviderList;
+
+struct WinsockLayeredServiceProvider {
+ std::wstring name;
+ std::wstring path;
+ int version;
+ int chain_length;
+ int socket_type;
+ int socket_protocol;
+};
+typedef std::vector<WinsockLayeredServiceProvider>
+ WinsockLayeredServiceProviderList;
+
+// Returns all the Winsock namespace providers.
+void GetWinsockNamespaceProviders(
+ WinsockNamespaceProviderList* namespace_list);
+
+// Returns all the Winsock layered service providers and their paths.
+void GetWinsockLayeredServiceProviders(
+ WinsockLayeredServiceProviderList* service_list);
+
+#endif // CHROME_BROWSER_NET_SERVICE_PROVIDERS_WIN_H_
+