summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/extensions')
-rw-r--r--chrome/renderer/extensions/extension_process_bindings.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/chrome/renderer/extensions/extension_process_bindings.cc b/chrome/renderer/extensions/extension_process_bindings.cc
index d5cdefe..131b9a0 100644
--- a/chrome/renderer/extensions/extension_process_bindings.cc
+++ b/chrome/renderer/extensions/extension_process_bindings.cc
@@ -22,6 +22,7 @@ using bindings_utils::ContextList;
using bindings_utils::GetContexts;
using bindings_utils::GetPendingRequestMap;
using bindings_utils::PendingRequest;
+using bindings_utils::PendingRequestMap;
using bindings_utils::ExtensionBase;
namespace {
@@ -218,21 +219,22 @@ void ExtensionProcessBindings::SetFunctionNames(
void ExtensionProcessBindings::HandleResponse(int request_id, bool success,
const std::string& response,
const std::string& error) {
- PendingRequest* request = GetPendingRequestMap()[request_id].get();
- if (!request)
+ PendingRequestMap& pending_requests = GetPendingRequestMap();
+ PendingRequestMap::iterator request = pending_requests.find(request_id);
+ if (request == pending_requests.end())
return; // The frame went away.
v8::HandleScope handle_scope;
v8::Handle<v8::Value> argv[5];
argv[0] = v8::Integer::New(request_id);
- argv[1] = v8::String::New(request->name.c_str());
+ argv[1] = v8::String::New(request->second->name.c_str());
argv[2] = v8::Boolean::New(success);
argv[3] = v8::String::New(response.c_str());
argv[4] = v8::String::New(error.c_str());
bindings_utils::CallFunctionInContext(
- request->context, "handleResponse", arraysize(argv), argv);
+ request->second->context, "handleResponse", arraysize(argv), argv);
- GetPendingRequestMap().erase(request_id);
+ pending_requests.erase(request);
}
// static