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

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: Working on adding ManifestPermissionSet to PermissionSet. 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 1353 matching lines...) Expand 10 before | Expand all | Expand 10 after
1364 } 1364 }
1365 1365
1366 void Dispatcher::AddOrRemoveBindings(const std::string& extension_id) { 1366 void Dispatcher::AddOrRemoveBindings(const std::string& extension_id) {
1367 v8_context_set().ForEach( 1367 v8_context_set().ForEach(
1368 extension_id, 1368 extension_id,
1369 NULL, // all render views 1369 NULL, // all render views
1370 base::Bind(&Dispatcher::AddOrRemoveBindingsForContext, 1370 base::Bind(&Dispatcher::AddOrRemoveBindingsForContext,
1371 base::Unretained(this))); 1371 base::Unretained(this)));
1372 } 1372 }
1373 1373
1374 void Dispatcher::OnUpdatePermissions(int reason_id, 1374 void Dispatcher::OnUpdatePermissions(
1375 const std::string& extension_id, 1375 const ExtensionMsg_UpdatePermissions_Params& params) {
1376 const APIPermissionSet& apis, 1376 int reason_id = params.reason_id;
1377 const URLPatternSet& explicit_hosts, 1377 const std::string& extension_id = params.extension_id;
1378 const URLPatternSet& scriptable_hosts) { 1378 const APIPermissionSet& apis = params.apis;
1379 const ManifestPermissionSet& manifest_permissions =
1380 params.manifest_permissions;
1381 const URLPatternSet& explicit_hosts = params.explicit_hosts;
1382 const URLPatternSet& scriptable_hosts = params.scriptable_hosts;
1383
1379 const Extension* extension = extensions_.GetByID(extension_id); 1384 const Extension* extension = extensions_.GetByID(extension_id);
1380 if (!extension) 1385 if (!extension)
1381 return; 1386 return;
1382 1387
1383 scoped_refptr<const PermissionSet> delta = 1388 scoped_refptr<const PermissionSet> delta =
1384 new PermissionSet(apis, explicit_hosts, scriptable_hosts); 1389 new PermissionSet(apis, manifest_permissions,
1390 explicit_hosts, scriptable_hosts);
1385 scoped_refptr<const PermissionSet> old_active = 1391 scoped_refptr<const PermissionSet> old_active =
1386 extension->GetActivePermissions(); 1392 extension->GetActivePermissions();
1387 UpdatedExtensionPermissionsInfo::Reason reason = 1393 UpdatedExtensionPermissionsInfo::Reason reason =
1388 static_cast<UpdatedExtensionPermissionsInfo::Reason>(reason_id); 1394 static_cast<UpdatedExtensionPermissionsInfo::Reason>(reason_id);
1389 1395
1390 const PermissionSet* new_active = NULL; 1396 const PermissionSet* new_active = NULL;
1391 switch (reason) { 1397 switch (reason) {
1392 case UpdatedExtensionPermissionsInfo::ADDED: 1398 case UpdatedExtensionPermissionsInfo::ADDED:
1393 new_active = PermissionSet::CreateUnion(old_active.get(), delta.get()); 1399 new_active = PermissionSet::CreateUnion(old_active.get(), delta.get());
1394 break; 1400 break;
(...skipping 22 matching lines...) Expand all
1417 if (view && view->GetPageId() != page_id) 1423 if (view && view->GetPageId() != page_id)
1418 return; 1424 return;
1419 1425
1420 const Extension* extension = extensions_.GetByID(extension_id); 1426 const Extension* extension = extensions_.GetByID(extension_id);
1421 if (!extension) 1427 if (!extension)
1422 return; 1428 return;
1423 1429
1424 PermissionsData::UpdateTabSpecificPermissions( 1430 PermissionsData::UpdateTabSpecificPermissions(
1425 extension, 1431 extension,
1426 tab_id, 1432 tab_id,
1427 new PermissionSet(APIPermissionSet(), origin_set, URLPatternSet())); 1433 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(),
1434 origin_set, URLPatternSet()));
1428 } 1435 }
1429 1436
1430 void Dispatcher::OnClearTabSpecificPermissions( 1437 void Dispatcher::OnClearTabSpecificPermissions(
1431 int tab_id, 1438 int tab_id,
1432 const std::vector<std::string>& extension_ids) { 1439 const std::vector<std::string>& extension_ids) {
1433 for (std::vector<std::string>::const_iterator it = extension_ids.begin(); 1440 for (std::vector<std::string>::const_iterator it = extension_ids.begin();
1434 it != extension_ids.end(); ++it) { 1441 it != extension_ids.end(); ++it) {
1435 const Extension* extension = extensions_.GetByID(*it); 1442 const Extension* extension = extensions_.GetByID(*it);
1436 if (extension) 1443 if (extension)
1437 PermissionsData::ClearTabSpecificPermissions(extension, tab_id); 1444 PermissionsData::ClearTabSpecificPermissions(extension, tab_id);
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
1623 RenderView* background_view = 1630 RenderView* background_view =
1624 ExtensionHelper::GetBackgroundPage(extension_id); 1631 ExtensionHelper::GetBackgroundPage(extension_id);
1625 if (background_view) { 1632 if (background_view) {
1626 background_view->Send(new ExtensionHostMsg_EventAck( 1633 background_view->Send(new ExtensionHostMsg_EventAck(
1627 background_view->GetRoutingID())); 1634 background_view->GetRoutingID()));
1628 } 1635 }
1629 } 1636 }
1630 } 1637 }
1631 1638
1632 } // namespace extensions 1639 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698