| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/json/json_string_value_serializer.h" | 8 #include "base/json/json_string_value_serializer.h" |
| 9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| 11 #include "base/memory/ref_counted.h" | 11 #include "base/memory/ref_counted.h" |
| 12 #include "base/process/process.h" | 12 #include "base/process/process.h" |
| 13 #include "base/values.h" | 13 #include "base/values.h" |
| 14 #include "build/build_config.h" | 14 #include "build/build_config.h" |
| 15 #include "chrome/browser/extensions/activity_log/activity_action_constants.h" | 15 #include "chrome/browser/extensions/activity_log/activity_action_constants.h" |
| 16 #include "chrome/browser/extensions/activity_log/activity_log.h" | 16 #include "chrome/browser/extensions/activity_log/activity_log.h" |
| 17 #include "chrome/browser/extensions/api/activity_log_private/activity_log_privat
e_api.h" | 17 #include "chrome/browser/extensions/api/activity_log_private/activity_log_privat
e_api.h" |
| 18 #include "chrome/browser/extensions/extension_function_registry.h" | 18 #include "chrome/browser/extensions/extension_function_registry.h" |
| 19 #include "chrome/browser/extensions/extension_service.h" | 19 #include "chrome/browser/extensions/extension_service.h" |
| 20 #include "chrome/browser/extensions/extension_system.h" | 20 #include "chrome/browser/extensions/extension_system.h" |
| 21 #include "chrome/browser/extensions/extension_util.h" |
| 21 #include "chrome/browser/extensions/extension_web_ui.h" | 22 #include "chrome/browser/extensions/extension_web_ui.h" |
| 22 #include "chrome/browser/extensions/extensions_quota_service.h" | 23 #include "chrome/browser/extensions/extensions_quota_service.h" |
| 23 #include "chrome/browser/extensions/process_map.h" | 24 #include "chrome/browser/extensions/process_map.h" |
| 24 #include "chrome/browser/external_protocol/external_protocol_handler.h" | 25 #include "chrome/browser/external_protocol/external_protocol_handler.h" |
| 25 #include "chrome/browser/profiles/profile.h" | 26 #include "chrome/browser/profiles/profile.h" |
| 26 #include "chrome/browser/renderer_host/chrome_render_message_filter.h" | 27 #include "chrome/browser/renderer_host/chrome_render_message_filter.h" |
| 27 #include "chrome/common/extensions/api/extension_api.h" | 28 #include "chrome/common/extensions/api/extension_api.h" |
| 28 #include "chrome/common/extensions/extension_messages.h" | 29 #include "chrome/common/extensions/extension_messages.h" |
| 29 #include "chrome/common/extensions/extension_set.h" | 30 #include "chrome/common/extensions/extension_set.h" |
| 30 #include "chrome/common/url_constants.h" | 31 #include "chrome/common/url_constants.h" |
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 | 340 |
| 340 UIThreadExtensionFunction* function_ui = | 341 UIThreadExtensionFunction* function_ui = |
| 341 function->AsUIThreadExtensionFunction(); | 342 function->AsUIThreadExtensionFunction(); |
| 342 if (!function_ui) { | 343 if (!function_ui) { |
| 343 NOTREACHED(); | 344 NOTREACHED(); |
| 344 return; | 345 return; |
| 345 } | 346 } |
| 346 function_ui->SetRenderViewHost(render_view_host); | 347 function_ui->SetRenderViewHost(render_view_host); |
| 347 function_ui->set_dispatcher(AsWeakPtr()); | 348 function_ui->set_dispatcher(AsWeakPtr()); |
| 348 function_ui->set_profile(profile_); | 349 function_ui->set_profile(profile_); |
| 349 function->set_include_incognito(service->CanCrossIncognito(extension)); | 350 function->set_include_incognito(extension_util::CanCrossIncognito(extension, |
| 351 service)); |
| 350 | 352 |
| 351 if (!CheckPermissions(function.get(), extension, params, callback)) | 353 if (!CheckPermissions(function.get(), extension, params, callback)) |
| 352 return; | 354 return; |
| 353 | 355 |
| 354 ExtensionsQuotaService* quota = service->quota_service(); | 356 ExtensionsQuotaService* quota = service->quota_service(); |
| 355 std::string violation_error = quota->Assess(extension->id(), | 357 std::string violation_error = quota->Assess(extension->id(), |
| 356 function.get(), | 358 function.get(), |
| 357 ¶ms.arguments, | 359 ¶ms.arguments, |
| 358 base::TimeTicks::Now()); | 360 base::TimeTicks::Now()); |
| 359 if (violation_error.empty()) { | 361 if (violation_error.empty()) { |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 return function; | 482 return function; |
| 481 } | 483 } |
| 482 | 484 |
| 483 // static | 485 // static |
| 484 void ExtensionFunctionDispatcher::SendAccessDenied( | 486 void ExtensionFunctionDispatcher::SendAccessDenied( |
| 485 const ExtensionFunction::ResponseCallback& callback) { | 487 const ExtensionFunction::ResponseCallback& callback) { |
| 486 ListValue empty_list; | 488 ListValue empty_list; |
| 487 callback.Run(ExtensionFunction::FAILED, empty_list, | 489 callback.Run(ExtensionFunction::FAILED, empty_list, |
| 488 "Access to extension API denied."); | 490 "Access to extension API denied."); |
| 489 } | 491 } |
| OLD | NEW |