Create a protocol + handler for Background Service recording.

- Create protocol for starting/stopping/querying recording mode
- Add handler which talks to the DevTools context
- Add a SDK model that the view communicates with
- flat_map -> array to avoid multi-thread access issues

Bug: 927726
Change-Id: I11e55a747c7c5c60465508485d6b869b976d40dd
Reviewed-on: https://chromium-review.googlesource.com/c/1477851
Reviewed-by: Dmitry Gozman <[email protected]>
Commit-Queue: Rayan Kanso <[email protected]>
Cr-Commit-Position: refs/heads/master@{#637287}
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index fe17f062..14780267 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -230,6 +230,8 @@
   ]
 
   sources = [
+    "$target_gen_dir/devtools/protocol/background_service.cc",
+    "$target_gen_dir/devtools/protocol/background_service.h",
     "$target_gen_dir/devtools/protocol/base_string_adapter.cc",
     "$target_gen_dir/devtools/protocol/base_string_adapter.h",
     "$target_gen_dir/devtools/protocol/browser.cc",
@@ -672,6 +674,8 @@
     "devtools/devtools_video_consumer.h",
     "devtools/forwarding_agent_host.cc",
     "devtools/forwarding_agent_host.h",
+    "devtools/protocol/background_service_handler.cc",
+    "devtools/protocol/background_service_handler.h",
     "devtools/protocol/browser_handler.cc",
     "devtools/protocol/browser_handler.h",
     "devtools/protocol/devtools_domain_handler.cc",