diff options
Diffstat (limited to 'chrome/browser/extensions/extension_function.cc')
-rw-r--r-- | chrome/browser/extensions/extension_function.cc | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_function.cc b/chrome/browser/extensions/extension_function.cc index 437867f..6f5b100 100644 --- a/chrome/browser/extensions/extension_function.cc +++ b/chrome/browser/extensions/extension_function.cc @@ -10,12 +10,30 @@ #include "chrome/browser/extensions/extensions_service.h" #include "chrome/browser/profile.h" +ExtensionFunction::ExtensionFunction() + : request_id_(-1), name_(""), has_callback_(false) { +} + +ExtensionFunction::~ExtensionFunction() { +} + Extension* ExtensionFunction::GetExtension() { ExtensionsService* service = profile_->GetExtensionsService(); DCHECK(service); return service->GetExtensionById(extension_id_, false); } +Browser* ExtensionFunction::GetCurrentBrowser() { + return dispatcher()->GetCurrentBrowser(include_incognito_); +} + +AsyncExtensionFunction::AsyncExtensionFunction() + : args_(NULL), bad_message_(false) { +} + +AsyncExtensionFunction::~AsyncExtensionFunction() { +} + void AsyncExtensionFunction::SetArgs(const ListValue* args) { DCHECK(!args_.get()); // Should only be called once. args_.reset(static_cast<ListValue*>(args->DeepCopy())); @@ -29,6 +47,15 @@ const std::string AsyncExtensionFunction::GetResult() { return json; } +const std::string AsyncExtensionFunction::GetError() { + return error_; +} + +void AsyncExtensionFunction::Run() { + if (!RunImpl()) + SendResponse(false); +} + void AsyncExtensionFunction::SendResponse(bool success) { if (!dispatcher()) return; @@ -43,3 +70,13 @@ bool AsyncExtensionFunction::HasOptionalArgument(size_t index) { Value* value; return args_->Get(index, &value) && !value->IsType(Value::TYPE_NULL); } + +SyncExtensionFunction::SyncExtensionFunction() { +} + +SyncExtensionFunction::~SyncExtensionFunction() { +} + +void SyncExtensionFunction::Run() { + SendResponse(RunImpl()); +} |