Implement nacl_irt_memory for non-sfi mode.
[chromium-blink-merge.git] / ui / keyboard / keyboard.cc
blob7825c7931cf41975ee38ee3c6ec8ccc3d4fc75a0
1 // Copyright (c) 2013 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.
5 #include "ui/keyboard/keyboard.h"
7 #include "base/files/file_path.h"
8 #include "base/memory/singleton.h"
9 #include "base/path_service.h"
10 #include "content/public/browser/browser_context.h"
11 #include "content/public/browser/web_ui_controller_factory.h"
12 #include "ui/base/resource/resource_bundle.h"
13 #include "ui/keyboard/keyboard_constants.h"
14 #include "ui/keyboard/keyboard_ui_controller.h"
15 #include "url/gurl.h"
17 namespace {
19 using content::BrowserContext;
20 using content::WebUI;
21 using content::WebUIController;
23 class KeyboardWebUIControllerFactory : public content::WebUIControllerFactory {
24 public:
25 // |WebUIControllerFactory| implementation:
26 virtual content::WebUI::TypeID GetWebUIType(
27 content::BrowserContext* browser_context,
28 const GURL& url) const OVERRIDE {
29 if (url == GURL(keyboard::kKeyboardWebUIURL))
30 return const_cast<KeyboardWebUIControllerFactory*>(this);
32 return WebUI::kNoWebUI;
34 virtual bool UseWebUIForURL(content::BrowserContext* browser_context,
35 const GURL& url) const OVERRIDE {
36 return GetWebUIType(browser_context, url) != WebUI::kNoWebUI;
38 virtual bool UseWebUIBindingsForURL(content::BrowserContext* browser_context,
39 const GURL& url) const OVERRIDE {
40 return UseWebUIForURL(browser_context, url);
42 virtual content::WebUIController* CreateWebUIControllerForURL(
43 content::WebUI* web_ui,
44 const GURL& url) const OVERRIDE {
45 if (url == GURL(keyboard::kKeyboardWebUIURL))
46 return new keyboard::KeyboardUIController(web_ui);
47 return NULL;
50 static KeyboardWebUIControllerFactory* GetInstance() {
51 return Singleton<KeyboardWebUIControllerFactory>::get();
54 protected:
55 KeyboardWebUIControllerFactory() {}
56 virtual ~KeyboardWebUIControllerFactory() {}
58 private:
59 friend struct DefaultSingletonTraits<KeyboardWebUIControllerFactory>;
61 DISALLOW_COPY_AND_ASSIGN(KeyboardWebUIControllerFactory);
64 } // namespace
66 namespace keyboard {
68 void InitializeKeyboard() {
69 static bool initialized = false;
70 if (initialized)
71 return;
72 initialized = true;
74 base::FilePath pak_dir;
75 PathService::Get(base::DIR_MODULE, &pak_dir);
76 base::FilePath pak_file = pak_dir.Append(
77 FILE_PATH_LITERAL("keyboard_resources.pak"));
78 ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
79 pak_file, ui::SCALE_FACTOR_100P);
81 content::WebUIControllerFactory::RegisterFactory(
82 KeyboardWebUIControllerFactory::GetInstance());
85 } // namespace keyboard