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

Side by Side Diff: extensions/renderer/dispatcher.cc

Issue 1349613003: [Extensions] Un-refcount PermissionSet (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 2 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/renderer/dispatcher.h" 5 #include "extensions/renderer/dispatcher.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 1137 matching lines...) Expand 10 before | Expand all | Expand 10 after
1148 // extension's URL just won't match anything anymore. 1148 // extension's URL just won't match anything anymore.
1149 } 1149 }
1150 1150
1151 void Dispatcher::OnUpdatePermissions( 1151 void Dispatcher::OnUpdatePermissions(
1152 const ExtensionMsg_UpdatePermissions_Params& params) { 1152 const ExtensionMsg_UpdatePermissions_Params& params) {
1153 const Extension* extension = 1153 const Extension* extension =
1154 RendererExtensionRegistry::Get()->GetByID(params.extension_id); 1154 RendererExtensionRegistry::Get()->GetByID(params.extension_id);
1155 if (!extension) 1155 if (!extension)
1156 return; 1156 return;
1157 1157
1158 scoped_refptr<const PermissionSet> active = 1158 scoped_ptr<const PermissionSet> active =
1159 params.active_permissions.ToPermissionSet(); 1159 params.active_permissions.ToPermissionSet();
1160 scoped_refptr<const PermissionSet> withheld = 1160 scoped_ptr<const PermissionSet> withheld =
1161 params.withheld_permissions.ToPermissionSet(); 1161 params.withheld_permissions.ToPermissionSet();
1162 1162
1163 if (is_webkit_initialized_) { 1163 if (is_webkit_initialized_) {
1164 UpdateOriginPermissions( 1164 UpdateOriginPermissions(
1165 extension->url(), 1165 extension->url(),
1166 extension->permissions_data()->GetEffectiveHostPermissions(), 1166 extension->permissions_data()->GetEffectiveHostPermissions(),
1167 active->effective_hosts()); 1167 active->effective_hosts());
1168 } 1168 }
1169 1169
1170 extension->permissions_data()->SetPermissions(active, withheld); 1170 extension->permissions_data()->SetPermissions(active.Pass(), withheld.Pass());
1171 UpdateBindings(extension->id()); 1171 UpdateBindings(extension->id());
1172 } 1172 }
1173 1173
1174 void Dispatcher::OnUpdateTabSpecificPermissions(const GURL& visible_url, 1174 void Dispatcher::OnUpdateTabSpecificPermissions(const GURL& visible_url,
1175 const std::string& extension_id, 1175 const std::string& extension_id,
1176 const URLPatternSet& new_hosts, 1176 const URLPatternSet& new_hosts,
1177 bool update_origin_whitelist, 1177 bool update_origin_whitelist,
1178 int tab_id) { 1178 int tab_id) {
1179 const Extension* extension = 1179 const Extension* extension =
1180 RendererExtensionRegistry::Get()->GetByID(extension_id); 1180 RendererExtensionRegistry::Get()->GetByID(extension_id);
1181 if (!extension) 1181 if (!extension)
1182 return; 1182 return;
1183 1183
1184 URLPatternSet old_effective = 1184 URLPatternSet old_effective =
1185 extension->permissions_data()->GetEffectiveHostPermissions(); 1185 extension->permissions_data()->GetEffectiveHostPermissions();
1186 extension->permissions_data()->UpdateTabSpecificPermissions( 1186 extension->permissions_data()->UpdateTabSpecificPermissions(
1187 tab_id, 1187 tab_id,
1188 new extensions::PermissionSet(extensions::APIPermissionSet(), 1188 extensions::PermissionSet(extensions::APIPermissionSet(),
1189 extensions::ManifestPermissionSet(), 1189 extensions::ManifestPermissionSet(), new_hosts,
1190 new_hosts, 1190 extensions::URLPatternSet()));
1191 extensions::URLPatternSet()));
1192 1191
1193 if (is_webkit_initialized_ && update_origin_whitelist) { 1192 if (is_webkit_initialized_ && update_origin_whitelist) {
1194 UpdateOriginPermissions( 1193 UpdateOriginPermissions(
1195 extension->url(), 1194 extension->url(),
1196 old_effective, 1195 old_effective,
1197 extension->permissions_data()->GetEffectiveHostPermissions()); 1196 extension->permissions_data()->GetEffectiveHostPermissions());
1198 } 1197 }
1199 } 1198 }
1200 1199
1201 void Dispatcher::OnClearTabSpecificPermissions( 1200 void Dispatcher::OnClearTabSpecificPermissions(
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
1606 void Dispatcher::AddChannelSpecificFeatures() { 1605 void Dispatcher::AddChannelSpecificFeatures() {
1607 // chrome-extension: resources should be allowed to register a Service Worker. 1606 // chrome-extension: resources should be allowed to register a Service Worker.
1608 if (FeatureProvider::GetBehaviorFeature(BehaviorFeature::kServiceWorker) 1607 if (FeatureProvider::GetBehaviorFeature(BehaviorFeature::kServiceWorker)
1609 ->IsAvailableToEnvironment() 1608 ->IsAvailableToEnvironment()
1610 .is_available()) 1609 .is_available())
1611 WebSecurityPolicy::registerURLSchemeAsAllowingServiceWorkers( 1610 WebSecurityPolicy::registerURLSchemeAsAllowingServiceWorkers(
1612 WebString::fromUTF8(kExtensionScheme)); 1611 WebString::fromUTF8(kExtensionScheme));
1613 } 1612 }
1614 1613
1615 } // namespace extensions 1614 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/common/permissions/permissions_data.cc ('k') | extensions/renderer/extension_injection_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698