Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(152)

Side by Side Diff: chrome/renderer/extensions/event_bindings.cc

Issue 9903010: Extract ExtensionRequestSender from SchemaGeneratedBindings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix bug Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/renderer/extensions/event_bindings.h" 5 #include "chrome/renderer/extensions/event_bindings.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 DCHECK(args[0]->IsString() || args[0]->IsUndefined()); 66 DCHECK(args[0]->IsString() || args[0]->IsUndefined());
67 67
68 if (args[0]->IsString()) { 68 if (args[0]->IsString()) {
69 ExtensionImpl* self = GetFromArguments<ExtensionImpl>(args); 69 ExtensionImpl* self = GetFromArguments<ExtensionImpl>(args);
70 const ChromeV8ContextSet& context_set = 70 const ChromeV8ContextSet& context_set =
71 self->extension_dispatcher()->v8_context_set(); 71 self->extension_dispatcher()->v8_context_set();
72 ChromeV8Context* context = context_set.GetCurrent(); 72 ChromeV8Context* context = context_set.GetCurrent();
73 CHECK(context); 73 CHECK(context);
74 std::string event_name(*v8::String::AsciiValue(args[0])); 74 std::string event_name(*v8::String::AsciiValue(args[0]));
75 75
76 if (!self->CheckCurrentContextAccessToExtensionAPI(event_name)) 76 ExtensionDispatcher* extension_dispatcher = self->extension_dispatcher();
77 if (!extension_dispatcher->CheckCurrentContextAccessToExtensionAPI(
78 event_name))
77 return v8::Undefined(); 79 return v8::Undefined();
78 80
79 EventListenerCounts& listener_counts = 81 EventListenerCounts& listener_counts =
80 g_listener_counts.Get()[context->extension_id()]; 82 g_listener_counts.Get()[context->extension_id()];
81 if (++listener_counts[event_name] == 1) { 83 if (++listener_counts[event_name] == 1) {
82 content::RenderThread::Get()->Send( 84 content::RenderThread::Get()->Send(
83 new ExtensionHostMsg_AddListener(context->extension_id(), 85 new ExtensionHostMsg_AddListener(context->extension_id(),
84 event_name)); 86 event_name));
85 } 87 }
86 88
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 return (extension && extension->has_lazy_background_page() && 150 return (extension && extension->has_lazy_background_page() &&
149 helper->view_type() == chrome::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE); 151 helper->view_type() == chrome::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE);
150 } 152 }
151 }; 153 };
152 154
153 } // namespace 155 } // namespace
154 156
155 ChromeV8Extension* EventBindings::Get(ExtensionDispatcher* dispatcher) { 157 ChromeV8Extension* EventBindings::Get(ExtensionDispatcher* dispatcher) {
156 return new ExtensionImpl(dispatcher); 158 return new ExtensionImpl(dispatcher);
157 } 159 }
OLDNEW
« no previous file with comments | « chrome/renderer/extensions/chrome_v8_extension.cc ('k') | chrome/renderer/extensions/extension_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698