ThinWebView : Moved ThinWebView to components

This CL moves ThinWebView to components/thin_webview so that features
such as payments can use it while being on components.

Bug: 1116770
Change-Id: Ie412a88f2ef630739b2bf5828b89b3c1c5e4c44a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2358994
Reviewed-by: John Abd-El-Malek <[email protected]>
Reviewed-by: Ted Choc <[email protected]>
Reviewed-by: David Trainor <[email protected]>
Commit-Queue: Shakti Sahu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#799892}
diff --git a/components/thin_webview/thin_webview_initializer.h b/components/thin_webview/thin_webview_initializer.h
new file mode 100644
index 0000000..0d6607b
--- /dev/null
+++ b/components/thin_webview/thin_webview_initializer.h
@@ -0,0 +1,35 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_THIN_WEBVIEW_THIN_WEBVIEW_INITIALIZER_H_
+#define COMPONENTS_THIN_WEBVIEW_THIN_WEBVIEW_INITIALIZER_H_
+
+#include "base/macros.h"
+
+namespace content {
+class WebContents;
+}  // namespace content
+
+namespace thin_webview {
+namespace android {
+
+// A helper class to help in attaching tab helpers.
+class ThinWebViewInitializer {
+ public:
+  static void SetInstance(ThinWebViewInitializer* instance);
+  static ThinWebViewInitializer* GetInstance();
+
+  ThinWebViewInitializer() = default;
+  ~ThinWebViewInitializer() = default;
+
+  virtual void AttachTabHelpers(content::WebContents* web_contents) = 0;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(ThinWebViewInitializer);
+};
+
+}  // namespace android
+}  // namespace thin_webview
+
+#endif  // COMPONENTS_THIN_WEBVIEW_THIN_WEBVIEW_INITIALIZER_H_