[WebLayer] Polish the Site Settings UI

This CL fixes the following Site Settings issues in WebLayer:
 * Fix launching system settings from certain links
 * Apply themes to the UI, copied from Chrome's
 * Hide unsupported settings categories
 * Finish implementing pref-based settings
 * Properly handle multiple settings instances by closing one

Bug: 1049683
Change-Id: I9c8afa1b5a8faa9d2429d6c34b171225cc5f5af3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2209598
Reviewed-by: Bo <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Commit-Queue: Robbie McElrath <[email protected]>
Cr-Commit-Position: refs/heads/master@{#770784}
diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn
index 4ddadc20..f93c868 100644
--- a/weblayer/BUILD.gn
+++ b/weblayer/BUILD.gn
@@ -444,6 +444,7 @@
       "browser/weblayer_factory_impl_android.h",
       "browser/weblayer_impl_android.cc",
       "browser/weblayer_impl_android.h",
+      "browser/weblayer_site_settings_client.cc",
       "browser/webrtc/media_stream_manager.cc",
       "browser/webrtc/media_stream_manager.h",
       "common/crash_reporter/crash_keys.cc",
@@ -463,6 +464,7 @@
       "//components/content_settings/android",
       "//components/crash/android:crash_android",
       "//components/crash/android:crashpad_main",
+      "//components/embedder_support/android:browser_context",
       "//components/embedder_support/android:context_menu",
       "//components/embedder_support/android:util",
       "//components/embedder_support/android:web_contents_delegate",