Cleanup dependencies in web_resource

This CL removes the dependencies on channel_info,
browser_process and content metrics.
The goal of this work is to enable componentization of this code,
so that it can be shared on iOS.

notification_promo_helper is introduced so that code in //chrome
does not have to explicitly pass all the arguments to the static
methods in NotificationPromo.
This will also avoid updating all the callsites when future CLs
add even more arguments.

BUG=371477
TBR=sky

Committed: https://crrev.com/de37df07399b369ce22c332ac67fb2cce38f739e
Cr-Commit-Position: refs/heads/master@{#344779}

Review URL: https://codereview.chromium.org/1288933002

Cr-Commit-Position: refs/heads/master@{#345047}
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index 756c066b..00da45d 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -65,6 +65,7 @@
 #include "chrome/browser/ui/user_manager.h"
 #include "chrome/browser/update_client/chrome_update_query_params_delegate.h"
 #include "chrome/browser/web_resource/promo_resource_service.h"
+#include "chrome/common/channel_info.h"
 #include "chrome/common/chrome_constants.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
@@ -1067,7 +1068,8 @@
       *base::CommandLine::ForCurrentProcess();
   if (!command_line.HasSwitch(switches::kDisableWebResources)) {
     DCHECK(!promo_resource_service_.get());
-    promo_resource_service_.reset(new PromoResourceService);
+    promo_resource_service_.reset(
+        new PromoResourceService(local_state(), chrome::GetChannel()));
     promo_resource_service_->StartAfterDelay();
   }