| Index: chrome/renderer/render_thread.cc
|
| diff --git a/chrome/renderer/render_thread.cc b/chrome/renderer/render_thread.cc
|
| index a80fc7bd707f18a8789eb3e84c7fa7c55299765e..2af7579a159def8f21371e96b1f5fee6004f2aab 100644
|
| --- a/chrome/renderer/render_thread.cc
|
| +++ b/chrome/renderer/render_thread.cc
|
| @@ -278,7 +278,7 @@ void RenderThread::Init() {
|
| callback_factory_.reset(new base::ScopedCallbackFactory<RenderThread>(this));
|
|
|
| visited_link_slave_.reset(new VisitedLinkSlave());
|
| - user_script_slave_.reset(new UserScriptSlave());
|
| + user_script_slave_.reset(new UserScriptSlave(&extensions_));
|
| renderer_net_predictor_.reset(new RendererNetPredictor());
|
| histogram_snapshots_.reset(new RendererHistogramSnapshots());
|
| appcache_dispatcher_.reset(new AppCacheDispatcher(this));
|
| @@ -350,6 +350,10 @@ int32 RenderThread::RoutingIDForCurrentContext() {
|
| return routing_id;
|
| }
|
|
|
| +const ExtensionRendererInfo* RenderThread::GetExtensions() const {
|
| + return &extensions_;
|
| +}
|
| +
|
| bool RenderThread::Send(IPC::Message* msg) {
|
| // Certain synchronous messages cannot always be processed synchronously by
|
| // the browser, e.g., Chrome frame communicating with the embedding browser.
|
| @@ -536,9 +540,15 @@ void RenderThread::OnSetExtensionFunctionNames(
|
| ExtensionProcessBindings::SetFunctionNames(names);
|
| }
|
|
|
| -void RenderThread::OnExtensionsUpdated(
|
| - const ViewMsg_ExtensionsUpdated_Params& params) {
|
| - ExtensionRendererInfo::UpdateExtensions(params);
|
| +void RenderThread::OnExtensionLoaded(
|
| + const ViewMsg_ExtensionLoaded_Params& params) {
|
| + scoped_refptr<const Extension> extension(params.ConvertToExtension());
|
| + CHECK(extension);
|
| + extensions_.Update(extension);
|
| +}
|
| +
|
| +void RenderThread::OnExtensionUnloaded(const std::string& id) {
|
| + extensions_.Remove(id);
|
| }
|
|
|
| void RenderThread::OnPageActionsUpdated(
|
| @@ -614,8 +624,10 @@ bool RenderThread::OnControlMessageReceived(const IPC::Message& msg) {
|
| OnExtensionMessageInvoke)
|
| IPC_MESSAGE_HANDLER(ViewMsg_Extension_SetFunctionNames,
|
| OnSetExtensionFunctionNames)
|
| - IPC_MESSAGE_HANDLER(ViewMsg_ExtensionsUpdated,
|
| - OnExtensionsUpdated)
|
| + IPC_MESSAGE_HANDLER(ViewMsg_ExtensionLoaded,
|
| + OnExtensionLoaded)
|
| + IPC_MESSAGE_HANDLER(ViewMsg_ExtensionUnloaded,
|
| + OnExtensionUnloaded)
|
| IPC_MESSAGE_HANDLER(ViewMsg_PurgeMemory, OnPurgeMemory)
|
| IPC_MESSAGE_HANDLER(ViewMsg_PurgePluginListCache,
|
| OnPurgePluginListCache)
|
| @@ -1132,7 +1144,7 @@ bool RenderThread::AllowScriptExtension(const std::string& v8_extension_name,
|
| // Extension-only bindings should be restricted to content scripts and
|
| // extension-blessed URLs.
|
| if (extension_group == EXTENSION_GROUP_CONTENT_SCRIPTS ||
|
| - ExtensionRendererInfo::ExtensionBindingsAllowed(url)) {
|
| + extensions_.ExtensionBindingsAllowed(url)) {
|
| return true;
|
| }
|
|
|
|
|