[Chromecast] Application-specific command-line switches

Allow individual Cast web applications to set command-line switches
for the render process.

Bug: internal b/67735190
Bug: internal b/77323820
Test: cast_shell_browsertests, cast_shell_unittests
Change-Id: I2fdeca54e9f4a46f6299c58482e9934ebffe8b69
Reviewed-on: https://chromium-review.googlesource.com/1018205
Commit-Queue: James West <[email protected]>
Reviewed-by: Luke Halliwell <[email protected]>
Cr-Commit-Position: refs/heads/master@{#558077}
diff --git a/chromecast/browser/lru_renderer_cache_test.cc b/chromecast/browser/lru_renderer_cache_test.cc
index 4d42de3..6ed903d 100644
--- a/chromecast/browser/lru_renderer_cache_test.cc
+++ b/chromecast/browser/lru_renderer_cache_test.cc
@@ -5,8 +5,10 @@
 #include "chromecast/browser/lru_renderer_cache.h"
 
 #include <memory>
+#include <utility>
 
 #include "base/memory/ptr_util.h"
+#include "chromecast/browser/renderer_config.h"
 #include "chromecast/browser/renderer_prelauncher.h"
 #include "content/public/browser/site_instance.h"
 #include "content/public/test/test_browser_context.h"
@@ -15,10 +17,12 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "url/gurl.h"
 
-#define EXPECT_CREATE_AND_PRELAUNCH(ptr, url)           \
-  ptr = new MockPrelauncher(&browser_context_, url);    \
-  EXPECT_CALL(*ptr, Prelaunch());                       \
-  EXPECT_CALL(factory_, Create(&browser_context_, url)) \
+#define EXPECT_CREATE_AND_PRELAUNCH(ptr, url)                      \
+  ptr = new MockPrelauncher(                                       \
+      &browser_context_,                                           \
+      renderer_config_manager_.CreateRendererConfigurator(), url); \
+  EXPECT_CALL(*ptr, Prelaunch());                                  \
+  EXPECT_CALL(factory_, Create(&browser_context_, url))            \
       .WillOnce(Return(ByMove(std::unique_ptr<MockPrelauncher>(ptr))));
 
 #define EXPECT_EVICTION(ptr) EXPECT_CALL(*ptr, Destroy());
@@ -43,8 +47,11 @@
 class MockPrelauncher : public RendererPrelauncher {
  public:
   MockPrelauncher(content::BrowserContext* browser_context,
+                  shell::RendererConfigurator renderer_configurator,
                   const GURL& page_url)
-      : RendererPrelauncher(browser_context, page_url) {}
+      : RendererPrelauncher(browser_context,
+                            std::move(renderer_configurator),
+                            page_url) {}
   virtual ~MockPrelauncher() { Destroy(); }
 
   MOCK_METHOD0(Prelaunch, void());
@@ -71,11 +78,13 @@
   content::TestBrowserThreadBundle threads_;
   content::TestBrowserContext browser_context_;
   MockFactory factory_;
+  shell::RendererConfigManager renderer_config_manager_;
   std::unique_ptr<LRURendererCache> lru_cache_;
 };
 
 TEST_F(LRURendererCacheTest, SimpleTakeAndRelease) {
-  lru_cache_ = std::make_unique<LRURendererCache>(&browser_context_, 1);
+  lru_cache_ = std::make_unique<LRURendererCache>(&browser_context_,
+                                                  &renderer_config_manager_, 1);
   SetFactory();
   MockPrelauncher* p1;
   std::unique_ptr<RendererPrelauncher> taken;
@@ -110,7 +119,8 @@
 }
 
 TEST_F(LRURendererCacheTest, SimpleCacheEviction) {
-  lru_cache_ = std::make_unique<LRURendererCache>(&browser_context_, 1);
+  lru_cache_ = std::make_unique<LRURendererCache>(&browser_context_,
+                                                  &renderer_config_manager_, 1);
   SetFactory();
   MockPrelauncher* p1;
   std::unique_ptr<RendererPrelauncher> taken;
@@ -135,7 +145,8 @@
 }
 
 TEST_F(LRURendererCacheTest, CapacityOne) {
-  lru_cache_ = std::make_unique<LRURendererCache>(&browser_context_, 1);
+  lru_cache_ = std::make_unique<LRURendererCache>(&browser_context_,
+                                                  &renderer_config_manager_, 1);
   SetFactory();
   MockPrelauncher* p1;
   MockPrelauncher* p2;
@@ -222,7 +233,8 @@
 }
 
 TEST_F(LRURendererCacheTest, CapacityTwo) {
-  lru_cache_ = std::make_unique<LRURendererCache>(&browser_context_, 2);
+  lru_cache_ = std::make_unique<LRURendererCache>(&browser_context_,
+                                                  &renderer_config_manager_, 2);
   SetFactory();
   MockPrelauncher* p1;
   MockPrelauncher* p2;