OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2009 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 #include "chrome/browser/chromeos/dom_ui/keyboard_overlay_ui.h" |
| 6 |
| 7 #include "app/l10n_util.h" |
| 8 #include "app/resource_bundle.h" |
| 9 #include "base/callback.h" |
| 10 #include "base/values.h" |
| 11 #include "base/weak_ptr.h" |
| 12 #include "chrome/browser/browser_thread.h" |
| 13 #include "chrome/browser/dom_ui/chrome_url_data_manager.h" |
| 14 #include "chrome/common/jstemplate_builder.h" |
| 15 #include "chrome/common/url_constants.h" |
| 16 #include "grit/browser_resources.h" |
| 17 #include "grit/generated_resources.h" |
| 18 |
| 19 #if defined(OS_CHROMEOS) |
| 20 #include "chrome/browser/chromeos/cros/cros_library.h" |
| 21 #endif |
| 22 |
| 23 class KeyboardOverlayUIHTMLSource : public ChromeURLDataManager::DataSource { |
| 24 public: |
| 25 KeyboardOverlayUIHTMLSource(); |
| 26 |
| 27 // Called when the keyboard overlay has requested a resource underneath |
| 28 // the path we registered. |
| 29 virtual void StartDataRequest(const std::string& path, |
| 30 bool is_off_the_record, |
| 31 int request_id); |
| 32 virtual std::string GetMimeType(const std::string&) const { |
| 33 return "text/html"; |
| 34 } |
| 35 |
| 36 private: |
| 37 ~KeyboardOverlayUIHTMLSource() {} |
| 38 |
| 39 DISALLOW_COPY_AND_ASSIGN(KeyboardOverlayUIHTMLSource); |
| 40 }; |
| 41 |
| 42 |
| 43 // The handler for Javascript messages related to the "keyboardoverlay" view. |
| 44 class KeyboardOverlayHandler |
| 45 : public DOMMessageHandler, |
| 46 public base::SupportsWeakPtr<KeyboardOverlayHandler> { |
| 47 public: |
| 48 KeyboardOverlayHandler(); |
| 49 virtual ~KeyboardOverlayHandler(); |
| 50 |
| 51 // DOMMessageHandler implementation. |
| 52 virtual DOMMessageHandler* Attach(DOMUI* dom_ui); |
| 53 virtual void RegisterMessages(); |
| 54 |
| 55 private: |
| 56 DISALLOW_COPY_AND_ASSIGN(KeyboardOverlayHandler); |
| 57 }; |
| 58 |
| 59 //////////////////////////////////////////////////////////////////////////////// |
| 60 // |
| 61 // KeyboardOverlayUIHTMLSource |
| 62 // |
| 63 //////////////////////////////////////////////////////////////////////////////// |
| 64 |
| 65 KeyboardOverlayUIHTMLSource::KeyboardOverlayUIHTMLSource() |
| 66 : DataSource(chrome::kChromeUIKeyboardOverlayHost, |
| 67 MessageLoop::current()) { |
| 68 } |
| 69 |
| 70 void KeyboardOverlayUIHTMLSource::StartDataRequest(const std::string& path, |
| 71 bool is_off_the_record, |
| 72 int request_id) { |
| 73 DictionaryValue localized_strings; |
| 74 localized_strings.SetString("keyboardOverlayTitle", |
| 75 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_TITLE)); |
| 76 localized_strings.SetString("keyboardOverlayInstructions", |
| 77 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_INSTRUCTIONS)); |
| 78 localized_strings.SetString("keyboardOverlayActivateLastTab", |
| 79 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_LAST_TAB)); |
| 80 localized_strings.SetString("keyboardOverlayActivateNextTab", |
| 81 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_NEXT_TAB)); |
| 82 localized_strings.SetString("keyboardOverlayActivatePreviousTab", |
| 83 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_PREVIOUS_TAB)); |
| 84 localized_strings.SetString("keyboardOverlayActivateTab1", |
| 85 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_1)); |
| 86 localized_strings.SetString("keyboardOverlayActivateTab2", |
| 87 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_2)); |
| 88 localized_strings.SetString("keyboardOverlayActivateTab3", |
| 89 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_3)); |
| 90 localized_strings.SetString("keyboardOverlayActivateTab4", |
| 91 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_4)); |
| 92 localized_strings.SetString("keyboardOverlayActivateTab5", |
| 93 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_5)); |
| 94 localized_strings.SetString("keyboardOverlayActivateTab6", |
| 95 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_6)); |
| 96 localized_strings.SetString("keyboardOverlayActivateTab7", |
| 97 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_7)); |
| 98 localized_strings.SetString("keyboardOverlayActivateTab8", |
| 99 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ACTIVATE_TAB_8)); |
| 100 localized_strings.SetString("keyboardOverlayAddWwwAndComAndOpenAddress", |
| 101 l10n_util::GetStringUTF16( |
| 102 IDS_KEYBOARD_OVERLAY_ADD_WWW_AND_COM_AND_OPEN_ADDRESS)); |
| 103 localized_strings.SetString("keyboardOverlayBookmarkCurrentPage", |
| 104 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_BOOKMARK_CURRENT_PAGE)); |
| 105 localized_strings.SetString("keyboardOverlayBookmarkAllTabs", |
| 106 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_BOOKMARK_ALL_TABS)); |
| 107 localized_strings.SetString("keyboardOverlayCloseTab", |
| 108 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_CLOSE_TAB)); |
| 109 localized_strings.SetString("keyboardOverlayCloseWindow", |
| 110 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_CLOSE_WINDOW)); |
| 111 localized_strings.SetString("keyboardOverlayDeleteWord", |
| 112 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_DELETE_WORD)); |
| 113 localized_strings.SetString("keyboardOverlayDeveloperTools", |
| 114 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_DEVELOPER_TOOLS)); |
| 115 localized_strings.SetString("keyboardOverlayFindAgain", |
| 116 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FIND_AGAIN)); |
| 117 localized_strings.SetString("keyboardOverlayFindPrevious", |
| 118 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FIND_PREVIOUS)); |
| 119 localized_strings.SetString("keyboardOverlayFindPrevious", |
| 120 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FIND_PREVIOUS)); |
| 121 localized_strings.SetString("keyboardOverlayFindText", |
| 122 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FIND_TEXT)); |
| 123 localized_strings.SetString("keyboardOverlayFocusAddressBar", |
| 124 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FOCUS_ADDRESS_BAR)); |
| 125 localized_strings.SetString("keyboardOverlayFocusAddressBar", |
| 126 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FOCUS_ADDRESS_BAR)); |
| 127 localized_strings.SetString("keyboardOverlayFocusAddressBarInSearchMode", |
| 128 l10n_util::GetStringUTF16( |
| 129 IDS_KEYBOARD_OVERLAY_FOCUS_ADDRESS_BAR_IN_SEARCH_MODE)); |
| 130 localized_strings.SetString("keyboardOverlayDomInspector", |
| 131 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_DOM_INSPECTOR)); |
| 132 localized_strings.SetString("keyboardOverlayDownloads", |
| 133 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_DOWNLOADS)); |
| 134 localized_strings.SetString("keyboardOverlayTaskManager", |
| 135 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_TASK_MANAGER)); |
| 136 localized_strings.SetString("keyboardOverlayBack", |
| 137 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_BACK)); |
| 138 localized_strings.SetString("keyboardOverlayForward", |
| 139 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FORWARD)); |
| 140 localized_strings.SetString("keyboardOverlayForward", |
| 141 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FORWARD)); |
| 142 localized_strings.SetString("keyboardOverlayHistory", |
| 143 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_HISTORY)); |
| 144 localized_strings.SetString("keyboardOverlayNewTab", |
| 145 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_NEW_TAB)); |
| 146 localized_strings.SetString("keyboardOverlayOpenAddressInNewTab", |
| 147 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_OPEN_ADDRESS_IN_NEW_TAB)); |
| 148 localized_strings.SetString("keyboardOverlayNewIncognitoWindow", |
| 149 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_NEW_INCOGNITO_WINDOW)); |
| 150 localized_strings.SetString("keyboardOverlayNewWindow", |
| 151 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_NEW_WINDOW)); |
| 152 localized_strings.SetString("keyboardOverlayPasteAsPlainText", |
| 153 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_PASTE_AS_PLAIN_TEXT)); |
| 154 localized_strings.SetString("keyboardOverlayPrint", |
| 155 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_PRINT)); |
| 156 localized_strings.SetString("keyboardOverlayReloadCurrentPage", |
| 157 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_RELOAD_CURRENT_PAGE)); |
| 158 localized_strings.SetString("keyboardOverlayReopenLastClosedTab", |
| 159 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_REOPEN_LAST_CLOSED_TAB)); |
| 160 localized_strings.SetString("keyboardOverlayResetZoom", |
| 161 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_RESET_ZOOM)); |
| 162 localized_strings.SetString("keyboardOverlaySelectWordAtATime", |
| 163 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_SELECT_WORD_AT_A_TIME)); |
| 164 localized_strings.SetString("keyboardOverlayToggleBookmarkBar", |
| 165 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_TOGGLE_BOOKMARK_BAR)); |
| 166 localized_strings.SetString("keyboardOverlayViewSource", |
| 167 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_VIEW_SOURCE)); |
| 168 localized_strings.SetString("keyboardOverlayZoomIn", |
| 169 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ZOOM_IN)); |
| 170 localized_strings.SetString("keyboardOverlayZoomOut", |
| 171 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_ZOOM_OUT)); |
| 172 localized_strings.SetString("keyboardOverlayResetZoom", |
| 173 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_RESET_ZOOM)); |
| 174 localized_strings.SetString("keyboardOverlayFocusAddressBarInSearchMode", |
| 175 l10n_util::GetStringUTF16( |
| 176 IDS_KEYBOARD_OVERLAY_FOCUS_ADDRESS_BAR_IN_SEARCH_MODE)); |
| 177 localized_strings.SetString("keyboardOverlayFullScreen", |
| 178 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_FULL_SCREEN)); |
| 179 localized_strings.SetString("keyboardOverlayTakeScreenshot", |
| 180 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_TAKE_SCREENSHOT)); |
| 181 localized_strings.SetString("keyboardOverlayHome", |
| 182 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_HOME)); |
| 183 localized_strings.SetString("keyboardOverlayEnd", |
| 184 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_END)); |
| 185 localized_strings.SetString("keyboardOverlayNextWindow", |
| 186 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_NEXT_WINDOW)); |
| 187 localized_strings.SetString("keyboardOverlayContentBrowser", |
| 188 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_CONTENT_BROWSER)); |
| 189 localized_strings.SetString("keyboardOverlayPageUp", |
| 190 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_PAGE_UP)); |
| 191 localized_strings.SetString("keyboardOverlayPageDown", |
| 192 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_PAGE_DOWN)); |
| 193 localized_strings.SetString("keyboardOverlayPreviousWindow", |
| 194 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_PREVIOUS_WINDOW)); |
| 195 localized_strings.SetString("keyboardOverlayUseExternalMonitor", |
| 196 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_USE_EXTERNAL_MONITOR)); |
| 197 localized_strings.SetString("keyboardOverlayReloadIgnoringCache", |
| 198 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_RELOAD_IGNORING_CACHE)); |
| 199 localized_strings.SetString("keyboardOverlaySave", |
| 200 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_SAVE)); |
| 201 localized_strings.SetString("keyboardOverlayScrollUpOnePage", |
| 202 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_SCROLL_UP_ONE_PAGE)); |
| 203 localized_strings.SetString("keyboardOverlaySettings", |
| 204 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_SETTINGS)); |
| 205 localized_strings.SetString("keyboardOverlaySignOut", |
| 206 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_SIGN_OUT)); |
| 207 localized_strings.SetString("keyboardOverlayUndo", |
| 208 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_UNDO)); |
| 209 localized_strings.SetString("keyboardOverlayWordMove", |
| 210 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_WORD_MOVE)); |
| 211 localized_strings.SetString("keyboardOverlaySelectAll", |
| 212 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_SELECT_ALL)); |
| 213 localized_strings.SetString("keyboardOverlaySelectPreviousInputMethod", |
| 214 l10n_util::GetStringUTF16( |
| 215 IDS_KEYBOARD_OVERLAY_SELECT_PREVIOUS_INPUT_METHOD)); |
| 216 localized_strings.SetString("keyboardOverlayCycleThroughInputMethods", |
| 217 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_CYCLE_THROUGH_INPUT_METHODS
)); |
| 218 localized_strings.SetString("keyboardOverlayCloseWindow", |
| 219 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_CLOSE_WINDOW)); |
| 220 localized_strings.SetString("keyboardOverlayViewKeyboardOverlay", |
| 221 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_VIEW_KEYBOARD_OVERLAY)); |
| 222 localized_strings.SetString("keyboardOverlayCut", |
| 223 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_CUT)); |
| 224 localized_strings.SetString("keyboardOverlayCopy", |
| 225 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_COPY)); |
| 226 localized_strings.SetString("keyboardOverlayPaste", |
| 227 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_PASTE)); |
| 228 localized_strings.SetString("keyboardOverlayHelp", |
| 229 l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_HELP)); |
| 230 |
| 231 static const base::StringPiece keyboard_overlay_html( |
| 232 ResourceBundle::GetSharedInstance().GetRawDataResource( |
| 233 IDR_KEYBOARD_OVERLAY_HTML)); |
| 234 const std::string full_html = jstemplate_builder::GetI18nTemplateHtml( |
| 235 keyboard_overlay_html, &localized_strings); |
| 236 |
| 237 scoped_refptr<RefCountedBytes> html_bytes(new RefCountedBytes); |
| 238 html_bytes->data.resize(full_html.size()); |
| 239 std::copy(full_html.begin(), full_html.end(), html_bytes->data.begin()); |
| 240 |
| 241 SendResponse(request_id, html_bytes); |
| 242 } |
| 243 |
| 244 //////////////////////////////////////////////////////////////////////////////// |
| 245 // |
| 246 // KeyboardOverlayHandler |
| 247 // |
| 248 //////////////////////////////////////////////////////////////////////////////// |
| 249 KeyboardOverlayHandler::KeyboardOverlayHandler() { |
| 250 } |
| 251 |
| 252 KeyboardOverlayHandler::~KeyboardOverlayHandler() { |
| 253 } |
| 254 |
| 255 DOMMessageHandler* KeyboardOverlayHandler::Attach(DOMUI* dom_ui) { |
| 256 return DOMMessageHandler::Attach(dom_ui); |
| 257 } |
| 258 |
| 259 void KeyboardOverlayHandler::RegisterMessages() { |
| 260 } |
| 261 |
| 262 //////////////////////////////////////////////////////////////////////////////// |
| 263 // |
| 264 // KeyboardOverlayUI |
| 265 // |
| 266 //////////////////////////////////////////////////////////////////////////////// |
| 267 |
| 268 KeyboardOverlayUI::KeyboardOverlayUI(TabContents* contents) |
| 269 : HtmlDialogUI(contents) { |
| 270 KeyboardOverlayHandler* handler = new KeyboardOverlayHandler(); |
| 271 AddMessageHandler((handler)->Attach(this)); |
| 272 KeyboardOverlayUIHTMLSource* html_source = new KeyboardOverlayUIHTMLSource(); |
| 273 |
| 274 // Set up the chrome://keyboardoverlay/ source. |
| 275 BrowserThread::PostTask( |
| 276 BrowserThread::IO, FROM_HERE, |
| 277 NewRunnableMethod( |
| 278 Singleton<ChromeURLDataManager>::get(), |
| 279 &ChromeURLDataManager::AddDataSource, |
| 280 make_scoped_refptr(html_source))); |
| 281 } |
OLD | NEW |