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

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

Issue 51433002: Enable permission warnings from ManifestHandlers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebasing. Created 7 years, 1 month 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 (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/dispatcher.h" 5 #include "chrome/renderer/extensions/dispatcher.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/debug/alias.h" 9 #include "base/debug/alias.h"
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 1360 matching lines...) Expand 10 before | Expand all | Expand 10 after
1371 } 1371 }
1372 1372
1373 void Dispatcher::AddOrRemoveBindings(const std::string& extension_id) { 1373 void Dispatcher::AddOrRemoveBindings(const std::string& extension_id) {
1374 v8_context_set().ForEach( 1374 v8_context_set().ForEach(
1375 extension_id, 1375 extension_id,
1376 NULL, // all render views 1376 NULL, // all render views
1377 base::Bind(&Dispatcher::AddOrRemoveBindingsForContext, 1377 base::Bind(&Dispatcher::AddOrRemoveBindingsForContext,
1378 base::Unretained(this))); 1378 base::Unretained(this)));
1379 } 1379 }
1380 1380
1381 void Dispatcher::OnUpdatePermissions(int reason_id, 1381 void Dispatcher::OnUpdatePermissions(
1382 const std::string& extension_id, 1382 const ExtensionMsg_UpdatePermissions_Params& params) {
1383 const APIPermissionSet& apis, 1383 int reason_id = params.reason_id;
1384 const URLPatternSet& explicit_hosts, 1384 const std::string& extension_id = params.extension_id;
1385 const URLPatternSet& scriptable_hosts) { 1385 const APIPermissionSet& apis = params.apis;
1386 const ManifestPermissionSet& manifest_permissions =
1387 params.manifest_permissions;
1388 const URLPatternSet& explicit_hosts = params.explicit_hosts;
1389 const URLPatternSet& scriptable_hosts = params.scriptable_hosts;
1390
1386 const Extension* extension = extensions_.GetByID(extension_id); 1391 const Extension* extension = extensions_.GetByID(extension_id);
1387 if (!extension) 1392 if (!extension)
1388 return; 1393 return;
1389 1394
1390 scoped_refptr<const PermissionSet> delta = 1395 scoped_refptr<const PermissionSet> delta =
1391 new PermissionSet(apis, explicit_hosts, scriptable_hosts); 1396 new PermissionSet(apis, manifest_permissions,
1397 explicit_hosts, scriptable_hosts);
1392 scoped_refptr<const PermissionSet> old_active = 1398 scoped_refptr<const PermissionSet> old_active =
1393 extension->GetActivePermissions(); 1399 extension->GetActivePermissions();
1394 UpdatedExtensionPermissionsInfo::Reason reason = 1400 UpdatedExtensionPermissionsInfo::Reason reason =
1395 static_cast<UpdatedExtensionPermissionsInfo::Reason>(reason_id); 1401 static_cast<UpdatedExtensionPermissionsInfo::Reason>(reason_id);
1396 1402
1397 const PermissionSet* new_active = NULL; 1403 const PermissionSet* new_active = NULL;
1398 switch (reason) { 1404 switch (reason) {
1399 case UpdatedExtensionPermissionsInfo::ADDED: 1405 case UpdatedExtensionPermissionsInfo::ADDED:
1400 new_active = PermissionSet::CreateUnion(old_active.get(), delta.get()); 1406 new_active = PermissionSet::CreateUnion(old_active.get(), delta.get());
1401 break; 1407 break;
(...skipping 22 matching lines...) Expand all
1424 if (view && view->GetPageId() != page_id) 1430 if (view && view->GetPageId() != page_id)
1425 return; 1431 return;
1426 1432
1427 const Extension* extension = extensions_.GetByID(extension_id); 1433 const Extension* extension = extensions_.GetByID(extension_id);
1428 if (!extension) 1434 if (!extension)
1429 return; 1435 return;
1430 1436
1431 PermissionsData::UpdateTabSpecificPermissions( 1437 PermissionsData::UpdateTabSpecificPermissions(
1432 extension, 1438 extension,
1433 tab_id, 1439 tab_id,
1434 new PermissionSet(APIPermissionSet(), origin_set, URLPatternSet())); 1440 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(),
1441 origin_set, URLPatternSet()));
1435 } 1442 }
1436 1443
1437 void Dispatcher::OnClearTabSpecificPermissions( 1444 void Dispatcher::OnClearTabSpecificPermissions(
1438 int tab_id, 1445 int tab_id,
1439 const std::vector<std::string>& extension_ids) { 1446 const std::vector<std::string>& extension_ids) {
1440 for (std::vector<std::string>::const_iterator it = extension_ids.begin(); 1447 for (std::vector<std::string>::const_iterator it = extension_ids.begin();
1441 it != extension_ids.end(); ++it) { 1448 it != extension_ids.end(); ++it) {
1442 const Extension* extension = extensions_.GetByID(*it); 1449 const Extension* extension = extensions_.GetByID(*it);
1443 if (extension) 1450 if (extension)
1444 PermissionsData::ClearTabSpecificPermissions(extension, tab_id); 1451 PermissionsData::ClearTabSpecificPermissions(extension, tab_id);
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
1630 RenderView* background_view = 1637 RenderView* background_view =
1631 ExtensionHelper::GetBackgroundPage(extension_id); 1638 ExtensionHelper::GetBackgroundPage(extension_id);
1632 if (background_view) { 1639 if (background_view) {
1633 background_view->Send(new ExtensionHostMsg_EventAck( 1640 background_view->Send(new ExtensionHostMsg_EventAck(
1634 background_view->GetRoutingID())); 1641 background_view->GetRoutingID()));
1635 } 1642 }
1636 } 1643 }
1637 } 1644 }
1638 1645
1639 } // namespace extensions 1646 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698