| OLD | NEW |
| 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/browser/extensions/active_tab_permission_granter.h" | 5 #include "chrome/browser/extensions/active_tab_permission_granter.h" |
| 6 | 6 |
| 7 #include "chrome/browser/extensions/active_script_controller.h" | 7 #include "chrome/browser/extensions/active_script_controller.h" |
| 8 #include "chrome/browser/profiles/profile.h" | 8 #include "chrome/browser/profiles/profile.h" |
| 9 #include "content/public/browser/navigation_details.h" | 9 #include "content/public/browser/navigation_details.h" |
| 10 #include "content/public/browser/navigation_entry.h" | 10 #include "content/public/browser/navigation_entry.h" |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 new_hosts.AddOrigin(UserScript::ValidUserScriptSchemes(), | 97 new_hosts.AddOrigin(UserScript::ValidUserScriptSchemes(), |
| 98 web_contents()->GetVisibleURL().GetOrigin()); | 98 web_contents()->GetVisibleURL().GetOrigin()); |
| 99 new_apis.insert(APIPermission::kTab); | 99 new_apis.insert(APIPermission::kTab); |
| 100 } | 100 } |
| 101 | 101 |
| 102 if (permissions_data->HasAPIPermission(APIPermission::kTabCapture)) | 102 if (permissions_data->HasAPIPermission(APIPermission::kTabCapture)) |
| 103 new_apis.insert(APIPermission::kTabCaptureForTab); | 103 new_apis.insert(APIPermission::kTabCaptureForTab); |
| 104 | 104 |
| 105 if (!new_apis.empty() || !new_hosts.is_empty()) { | 105 if (!new_apis.empty() || !new_hosts.is_empty()) { |
| 106 granted_extensions_.Insert(extension); | 106 granted_extensions_.Insert(extension); |
| 107 scoped_refptr<const PermissionSet> new_permissions = | 107 PermissionSet new_permissions(new_apis, ManifestPermissionSet(), new_hosts, |
| 108 new PermissionSet(new_apis, ManifestPermissionSet(), | 108 URLPatternSet()); |
| 109 new_hosts, URLPatternSet()); | |
| 110 permissions_data->UpdateTabSpecificPermissions(tab_id_, new_permissions); | 109 permissions_data->UpdateTabSpecificPermissions(tab_id_, new_permissions); |
| 111 const content::NavigationEntry* navigation_entry = | 110 const content::NavigationEntry* navigation_entry = |
| 112 web_contents()->GetController().GetVisibleEntry(); | 111 web_contents()->GetController().GetVisibleEntry(); |
| 113 if (navigation_entry) { | 112 if (navigation_entry) { |
| 114 // We update all extension render views with the new tab permissions, and | 113 // We update all extension render views with the new tab permissions, and |
| 115 // also the tab itself. | 114 // also the tab itself. |
| 116 CreateMessageFunction update_message = | 115 CreateMessageFunction update_message = |
| 117 base::Bind(&CreateUpdateMessage, | 116 base::Bind(&CreateUpdateMessage, |
| 118 navigation_entry->GetURL(), | 117 navigation_entry->GetURL(), |
| 119 extension->id(), | 118 extension->id(), |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 CreateMessageFunction clear_message = | 195 CreateMessageFunction clear_message = |
| 197 base::Bind(&CreateClearMessage, extension_ids, tab_id_); | 196 base::Bind(&CreateClearMessage, extension_ids, tab_id_); |
| 198 SendMessageToProcesses(frame_hosts, | 197 SendMessageToProcesses(frame_hosts, |
| 199 web_contents()->GetRenderProcessHost(), | 198 web_contents()->GetRenderProcessHost(), |
| 200 clear_message); | 199 clear_message); |
| 201 | 200 |
| 202 granted_extensions_.Clear(); | 201 granted_extensions_.Clear(); |
| 203 } | 202 } |
| 204 | 203 |
| 205 } // namespace extensions | 204 } // namespace extensions |
| OLD | NEW |