| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/extension_function_dispatcher.h" | 5 #include "chrome/browser/extensions/extension_function_dispatcher.h" |
| 6 | 6 |
| 7 #include "base/process_util.h" | 7 #include "base/process_util.h" |
| 8 #include "base/singleton.h" | 8 #include "base/singleton.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "chrome/browser/extensions/execute_code_in_tab_function.h" | 10 #include "chrome/browser/extensions/execute_code_in_tab_function.h" |
| 11 #include "chrome/browser/extensions/extension_bookmarks_module.h" | 11 #include "chrome/browser/extensions/extension_bookmarks_module.h" |
| 12 #include "chrome/browser/extensions/extension_bookmarks_module_constants.h" | 12 #include "chrome/browser/extensions/extension_bookmarks_module_constants.h" |
| 13 #include "chrome/browser/extensions/extension_browser_actions_api.h" | 13 #include "chrome/browser/extensions/extension_browser_actions_api.h" |
| 14 #include "chrome/browser/extensions/extension_dom_ui.h" |
| 14 #include "chrome/browser/extensions/extension_function.h" | 15 #include "chrome/browser/extensions/extension_function.h" |
| 15 #include "chrome/browser/extensions/extension_history_api.h" | 16 #include "chrome/browser/extensions/extension_history_api.h" |
| 16 #include "chrome/browser/extensions/extension_i18n_api.h" | 17 #include "chrome/browser/extensions/extension_i18n_api.h" |
| 17 #include "chrome/browser/extensions/extension_message_service.h" | 18 #include "chrome/browser/extensions/extension_message_service.h" |
| 18 #include "chrome/browser/extensions/extension_page_actions_module.h" | 19 #include "chrome/browser/extensions/extension_page_actions_module.h" |
| 19 #include "chrome/browser/extensions/extension_page_actions_module_constants.h" | 20 #include "chrome/browser/extensions/extension_page_actions_module_constants.h" |
| 20 #include "chrome/browser/extensions/extension_popup_api.h" | 21 #include "chrome/browser/extensions/extension_popup_api.h" |
| 21 #include "chrome/browser/extensions/extension_process_manager.h" | 22 #include "chrome/browser/extensions/extension_process_manager.h" |
| 22 #include "chrome/browser/extensions/extension_tabs_module.h" | 23 #include "chrome/browser/extensions/extension_tabs_module.h" |
| 23 #include "chrome/browser/extensions/extension_tabs_module_constants.h" | 24 #include "chrome/browser/extensions/extension_tabs_module_constants.h" |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 | 233 |
| 233 ExtensionFunctionDispatcher::~ExtensionFunctionDispatcher() { | 234 ExtensionFunctionDispatcher::~ExtensionFunctionDispatcher() { |
| 234 all_instances()->erase(this); | 235 all_instances()->erase(this); |
| 235 peer_->dispatcher_ = NULL; | 236 peer_->dispatcher_ = NULL; |
| 236 } | 237 } |
| 237 | 238 |
| 238 Browser* ExtensionFunctionDispatcher::GetBrowser() { | 239 Browser* ExtensionFunctionDispatcher::GetBrowser() { |
| 239 return delegate_->GetBrowser(); | 240 return delegate_->GetBrowser(); |
| 240 } | 241 } |
| 241 | 242 |
| 243 ExtensionPopupHost* ExtensionFunctionDispatcher::GetPopupHost() { |
| 244 ExtensionHost* extension_host = GetExtensionHost(); |
| 245 if (extension_host) { |
| 246 DCHECK(!GetExtensionDOMUI()) << |
| 247 "Function dispatcher registered in too many environments."; |
| 248 return extension_host->popup_host(); |
| 249 } else { |
| 250 ExtensionDOMUI* dom_ui = GetExtensionDOMUI(); |
| 251 return dom_ui->popup_host(); |
| 252 } |
| 253 } |
| 254 |
| 242 ExtensionHost* ExtensionFunctionDispatcher::GetExtensionHost() { | 255 ExtensionHost* ExtensionFunctionDispatcher::GetExtensionHost() { |
| 243 return delegate_->GetExtensionHost(); | 256 return delegate_->GetExtensionHost(); |
| 244 } | 257 } |
| 245 | 258 |
| 259 ExtensionDOMUI* ExtensionFunctionDispatcher::GetExtensionDOMUI() { |
| 260 return delegate_->GetExtensionDOMUI(); |
| 261 } |
| 262 |
| 246 Extension* ExtensionFunctionDispatcher::GetExtension() { | 263 Extension* ExtensionFunctionDispatcher::GetExtension() { |
| 247 ExtensionsService* service = profile()->GetExtensionsService(); | 264 ExtensionsService* service = profile()->GetExtensionsService(); |
| 248 DCHECK(service); | 265 DCHECK(service); |
| 249 | 266 |
| 250 Extension* extension = service->GetExtensionById(extension_id(), false); | 267 Extension* extension = service->GetExtensionById(extension_id(), false); |
| 251 DCHECK(extension); | 268 DCHECK(extension); |
| 252 | 269 |
| 253 return extension; | 270 return extension; |
| 254 } | 271 } |
| 255 | 272 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 282 } else { | 299 } else { |
| 283 NOTREACHED(); | 300 NOTREACHED(); |
| 284 base::KillProcess(render_view_host_->process()->process().handle(), | 301 base::KillProcess(render_view_host_->process()->process().handle(), |
| 285 ResultCodes::KILLED_BAD_MESSAGE, false); | 302 ResultCodes::KILLED_BAD_MESSAGE, false); |
| 286 } | 303 } |
| 287 } | 304 } |
| 288 | 305 |
| 289 Profile* ExtensionFunctionDispatcher::profile() { | 306 Profile* ExtensionFunctionDispatcher::profile() { |
| 290 return render_view_host_->process()->profile(); | 307 return render_view_host_->process()->profile(); |
| 291 } | 308 } |
| OLD | NEW |