OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/render_thread.h" | 5 #include "chrome/renderer/render_thread.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <map> | 9 #include <map> |
10 #include <vector> | 10 #include <vector> |
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 DCHECK(base::SharedMemory::IsHandleValid(scripts)) << "Bad scripts handle"; | 529 DCHECK(base::SharedMemory::IsHandleValid(scripts)) << "Bad scripts handle"; |
530 user_script_slave_->UpdateScripts(scripts); | 530 user_script_slave_->UpdateScripts(scripts); |
531 UpdateActiveExtensions(); | 531 UpdateActiveExtensions(); |
532 } | 532 } |
533 | 533 |
534 void RenderThread::OnSetExtensionFunctionNames( | 534 void RenderThread::OnSetExtensionFunctionNames( |
535 const std::vector<std::string>& names) { | 535 const std::vector<std::string>& names) { |
536 ExtensionProcessBindings::SetFunctionNames(names); | 536 ExtensionProcessBindings::SetFunctionNames(names); |
537 } | 537 } |
538 | 538 |
539 void RenderThread::OnExtensionsUpdated( | 539 void RenderThread::OnExtensionLoaded( |
540 const ViewMsg_ExtensionsUpdated_Params& params) { | 540 const ViewMsg_ExtensionLoaded_Params& params) { |
541 ExtensionRendererInfo::UpdateExtensions(params); | 541 scoped_refptr<const Extension> extension(params.ConvertToExtension()); |
| 542 CHECK(extension); |
| 543 extensions_.Update(extension); |
| 544 } |
| 545 |
| 546 void RenderThread::OnExtensionUnloaded(const std::string& id) { |
| 547 extensions_.Remove(id); |
542 } | 548 } |
543 | 549 |
544 void RenderThread::OnPageActionsUpdated( | 550 void RenderThread::OnPageActionsUpdated( |
545 const std::string& extension_id, | 551 const std::string& extension_id, |
546 const std::vector<std::string>& page_actions) { | 552 const std::vector<std::string>& page_actions) { |
547 ExtensionProcessBindings::SetPageActions(extension_id, page_actions); | 553 ExtensionProcessBindings::SetPageActions(extension_id, page_actions); |
548 } | 554 } |
549 | 555 |
550 void RenderThread::OnExtensionSetAPIPermissions( | 556 void RenderThread::OnExtensionSetAPIPermissions( |
551 const std::string& extension_id, | 557 const std::string& extension_id, |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
607 IPC_MESSAGE_HANDLER(ViewMsg_GetCacheResourceStats, | 613 IPC_MESSAGE_HANDLER(ViewMsg_GetCacheResourceStats, |
608 OnGetCacheResourceStats) | 614 OnGetCacheResourceStats) |
609 IPC_MESSAGE_HANDLER(ViewMsg_UserScripts_UpdatedScripts, | 615 IPC_MESSAGE_HANDLER(ViewMsg_UserScripts_UpdatedScripts, |
610 OnUpdateUserScripts) | 616 OnUpdateUserScripts) |
611 // TODO(rafaelw): create an ExtensionDispatcher that handles extension | 617 // TODO(rafaelw): create an ExtensionDispatcher that handles extension |
612 // messages seperates their handling from the RenderThread. | 618 // messages seperates their handling from the RenderThread. |
613 IPC_MESSAGE_HANDLER(ViewMsg_ExtensionMessageInvoke, | 619 IPC_MESSAGE_HANDLER(ViewMsg_ExtensionMessageInvoke, |
614 OnExtensionMessageInvoke) | 620 OnExtensionMessageInvoke) |
615 IPC_MESSAGE_HANDLER(ViewMsg_Extension_SetFunctionNames, | 621 IPC_MESSAGE_HANDLER(ViewMsg_Extension_SetFunctionNames, |
616 OnSetExtensionFunctionNames) | 622 OnSetExtensionFunctionNames) |
617 IPC_MESSAGE_HANDLER(ViewMsg_ExtensionsUpdated, | 623 IPC_MESSAGE_HANDLER(ViewMsg_ExtensionLoaded, |
618 OnExtensionsUpdated) | 624 OnExtensionLoaded) |
| 625 IPC_MESSAGE_HANDLER(ViewMsg_ExtensionUnloaded, |
| 626 OnExtensionUnloaded) |
619 IPC_MESSAGE_HANDLER(ViewMsg_PurgeMemory, OnPurgeMemory) | 627 IPC_MESSAGE_HANDLER(ViewMsg_PurgeMemory, OnPurgeMemory) |
620 IPC_MESSAGE_HANDLER(ViewMsg_PurgePluginListCache, | 628 IPC_MESSAGE_HANDLER(ViewMsg_PurgePluginListCache, |
621 OnPurgePluginListCache) | 629 OnPurgePluginListCache) |
622 IPC_MESSAGE_HANDLER(ViewMsg_Extension_UpdatePageActions, | 630 IPC_MESSAGE_HANDLER(ViewMsg_Extension_UpdatePageActions, |
623 OnPageActionsUpdated) | 631 OnPageActionsUpdated) |
624 IPC_MESSAGE_HANDLER(ViewMsg_Extension_SetAPIPermissions, | 632 IPC_MESSAGE_HANDLER(ViewMsg_Extension_SetAPIPermissions, |
625 OnExtensionSetAPIPermissions) | 633 OnExtensionSetAPIPermissions) |
626 IPC_MESSAGE_HANDLER(ViewMsg_Extension_SetHostPermissions, | 634 IPC_MESSAGE_HANDLER(ViewMsg_Extension_SetHostPermissions, |
627 OnExtensionSetHostPermissions) | 635 OnExtensionSetHostPermissions) |
628 IPC_MESSAGE_HANDLER(DOMStorageMsg_Event, | 636 IPC_MESSAGE_HANDLER(DOMStorageMsg_Event, |
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1125 return true; | 1133 return true; |
1126 | 1134 |
1127 // If the V8 extension is not restricted, allow it to run anywhere. | 1135 // If the V8 extension is not restricted, allow it to run anywhere. |
1128 bool restrict_to_extensions = v8_extensions_[v8_extension_name]; | 1136 bool restrict_to_extensions = v8_extensions_[v8_extension_name]; |
1129 if (!restrict_to_extensions) | 1137 if (!restrict_to_extensions) |
1130 return true; | 1138 return true; |
1131 | 1139 |
1132 // Extension-only bindings should be restricted to content scripts and | 1140 // Extension-only bindings should be restricted to content scripts and |
1133 // extension-blessed URLs. | 1141 // extension-blessed URLs. |
1134 if (extension_group == EXTENSION_GROUP_CONTENT_SCRIPTS || | 1142 if (extension_group == EXTENSION_GROUP_CONTENT_SCRIPTS || |
1135 ExtensionRendererInfo::ExtensionBindingsAllowed(url)) { | 1143 extensions_.ExtensionBindingsAllowed(url)) { |
1136 return true; | 1144 return true; |
1137 } | 1145 } |
1138 | 1146 |
1139 return false; | 1147 return false; |
1140 } | 1148 } |
1141 | 1149 |
1142 void RenderThread::RegisterExtension(v8::Extension* extension, | 1150 void RenderThread::RegisterExtension(v8::Extension* extension, |
1143 bool restrict_to_extensions) { | 1151 bool restrict_to_extensions) { |
1144 WebScriptController::registerExtension(extension); | 1152 WebScriptController::registerExtension(extension); |
1145 v8_extensions_[extension->name()] = restrict_to_extensions; | 1153 v8_extensions_[extension->name()] = restrict_to_extensions; |
1146 } | 1154 } |
OLD | NEW |