Add BrowserFeatureProvider.

This CL adds BrowserFeatureProvider, as a place where we can start
adding common features to the learning framework.  It currently
supports a single feature for the network connection type (wired,
3G, etc.), as an example.  Future CLs will add more.

This CL also updates the MediaCapabilities learning experiment to
include a task that uses the new feature.

Change-Id: I25ecb50c88d6b26b53fe01bbc089d235a8e2ccb4
Reviewed-on: https://chromium-review.googlesource.com/c/1437710
Commit-Queue: Frank Liberato <[email protected]>
Reviewed-by: Chrome Cunningham <[email protected]>
Reviewed-by: Robert Kaplow <[email protected]>
Reviewed-by: Mihai Sardarescu <[email protected]>
Reviewed-by: John Abd-El-Malek <[email protected]>
Reviewed-by: Dan Sanders <[email protected]>
Cr-Commit-Position: refs/heads/master@{#630883}
diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc
index 0c58a53..68e34ea 100644
--- a/content/browser/browser_context.cc
+++ b/content/browser/browser_context.cc
@@ -39,6 +39,7 @@
 #include "content/browser/download/download_manager_impl.h"
 #include "content/browser/indexed_db/indexed_db_context_impl.h"
 #include "content/browser/loader/resource_dispatcher_host_impl.h"
+#include "content/browser/media/browser_feature_provider.h"
 #include "content/browser/permissions/permission_controller_impl.h"
 #include "content/browser/push_messaging/push_messaging_router.h"
 #include "content/browser/service_manager/common_browser_interfaces.h"
@@ -783,8 +784,8 @@
     std::unique_ptr<media::VideoDecodeStatsDBImpl> stats_db =
         media::VideoDecodeStatsDBImpl::Create(
             GetPath().Append(FILE_PATH_LITERAL("VideoDecodeStats")));
-    auto new_decode_history =
-        std::make_unique<media::VideoDecodePerfHistory>(std::move(stats_db));
+    auto new_decode_history = std::make_unique<media::VideoDecodePerfHistory>(
+        std::move(stats_db), BrowserFeatureProvider::GetFactoryCB());
     decode_history = new_decode_history.get();
 
     SetUserData(kVideoDecodePerfHistoryId, std::move(new_decode_history));