| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef UI_KEYBOARD_WEBUI_VK_WEBUI_CONTROLLER_H_ | |
| 6 #define UI_KEYBOARD_WEBUI_VK_WEBUI_CONTROLLER_H_ | |
| 7 | |
| 8 #include "base/macros.h" | |
| 9 #include "base/memory/singleton.h" | |
| 10 #include "base/memory/weak_ptr.h" | |
| 11 #include "content/public/browser/web_ui_controller.h" | |
| 12 #include "content/public/browser/web_ui_controller_factory.h" | |
| 13 #include "third_party/mojo/src/mojo/public/cpp/bindings/interface_request.h" | |
| 14 #include "third_party/mojo/src/mojo/public/cpp/system/core.h" | |
| 15 #include "ui/keyboard/keyboard_export.h" | |
| 16 #include "ui/keyboard/webui/keyboard.mojom.h" | |
| 17 | |
| 18 namespace content { | |
| 19 class WebUIDataSource; | |
| 20 } | |
| 21 | |
| 22 namespace keyboard { | |
| 23 | |
| 24 class VKMojoHandler; | |
| 25 | |
| 26 class VKWebUIController : public content::WebUIController { | |
| 27 public: | |
| 28 explicit VKWebUIController(content::WebUI* web_ui); | |
| 29 ~VKWebUIController() override; | |
| 30 | |
| 31 private: | |
| 32 void CreateAndStoreUIHandler( | |
| 33 mojo::InterfaceRequest<KeyboardUIHandlerMojo> request); | |
| 34 | |
| 35 // content::WebUIController: | |
| 36 void RenderViewCreated(content::RenderViewHost* host) override; | |
| 37 | |
| 38 scoped_ptr<VKMojoHandler> ui_handler_; | |
| 39 base::WeakPtrFactory<VKWebUIController> weak_factory_; | |
| 40 | |
| 41 DISALLOW_COPY_AND_ASSIGN(VKWebUIController); | |
| 42 }; | |
| 43 | |
| 44 class KEYBOARD_EXPORT VKWebUIControllerFactory | |
| 45 : public content::WebUIControllerFactory { | |
| 46 public: | |
| 47 // WebUIControllerFactory: | |
| 48 content::WebUI::TypeID GetWebUIType(content::BrowserContext* browser_context, | |
| 49 const GURL& url) const override; | |
| 50 bool UseWebUIForURL(content::BrowserContext* browser_context, | |
| 51 const GURL& url) const override; | |
| 52 bool UseWebUIBindingsForURL(content::BrowserContext* browser_context, | |
| 53 const GURL& url) const override; | |
| 54 content::WebUIController* CreateWebUIControllerForURL( | |
| 55 content::WebUI* web_ui, | |
| 56 const GURL& url) const override; | |
| 57 | |
| 58 static VKWebUIControllerFactory* GetInstance(); | |
| 59 | |
| 60 protected: | |
| 61 VKWebUIControllerFactory(); | |
| 62 ~VKWebUIControllerFactory() override; | |
| 63 | |
| 64 private: | |
| 65 friend struct DefaultSingletonTraits<VKWebUIControllerFactory>; | |
| 66 | |
| 67 DISALLOW_COPY_AND_ASSIGN(VKWebUIControllerFactory); | |
| 68 }; | |
| 69 | |
| 70 } // namespace keyboard | |
| 71 | |
| 72 #endif // UI_KEYBOARD_WEBUI_VK_WEBUI_CONTROLLER_H_ | |
| OLD | NEW |