| 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/json/json_file_value_serializer.h" | 6 #include "base/json/json_file_value_serializer.h" |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "chrome/common/chrome_paths.h" | 10 #include "chrome/common/chrome_paths.h" |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 | 248 |
| 249 const APIPermissionInfo* permission_info = | 249 const APIPermissionInfo* permission_info = |
| 250 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); | 250 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); |
| 251 permission = permission_info->CreateAPIPermission(); | 251 permission = permission_info->CreateAPIPermission(); |
| 252 { | 252 { |
| 253 scoped_ptr<base::ListValue> value(new base::ListValue()); | 253 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 254 value->Append( | 254 value->Append( |
| 255 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 255 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
| 256 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 256 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
| 257 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 257 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
| 258 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 258 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
| 259 } | 259 } |
| 260 | 260 |
| 261 // Union with an empty set. | 261 // Union with an empty set. |
| 262 apis1.insert(APIPermission::kTab); | 262 apis1.insert(APIPermission::kTab); |
| 263 apis1.insert(APIPermission::kBackground); | 263 apis1.insert(APIPermission::kBackground); |
| 264 apis1.insert(permission->Clone()); | 264 apis1.insert(permission->Clone()); |
| 265 expected_apis.insert(APIPermission::kTab); | 265 expected_apis.insert(APIPermission::kTab); |
| 266 expected_apis.insert(APIPermission::kBackground); | 266 expected_apis.insert(APIPermission::kBackground); |
| 267 expected_apis.insert(permission); | 267 expected_apis.insert(permission); |
| 268 | 268 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 293 apis2.insert(APIPermission::kProxy); | 293 apis2.insert(APIPermission::kProxy); |
| 294 apis2.insert(APIPermission::kClipboardWrite); | 294 apis2.insert(APIPermission::kClipboardWrite); |
| 295 apis2.insert(APIPermission::kPlugin); | 295 apis2.insert(APIPermission::kPlugin); |
| 296 | 296 |
| 297 permission = permission_info->CreateAPIPermission(); | 297 permission = permission_info->CreateAPIPermission(); |
| 298 { | 298 { |
| 299 scoped_ptr<base::ListValue> value(new base::ListValue()); | 299 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 300 value->Append( | 300 value->Append( |
| 301 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 301 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
| 302 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); | 302 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); |
| 303 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 303 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
| 304 } | 304 } |
| 305 apis2.insert(permission); | 305 apis2.insert(permission); |
| 306 | 306 |
| 307 expected_apis.insert(APIPermission::kTab); | 307 expected_apis.insert(APIPermission::kTab); |
| 308 expected_apis.insert(APIPermission::kProxy); | 308 expected_apis.insert(APIPermission::kProxy); |
| 309 expected_apis.insert(APIPermission::kClipboardWrite); | 309 expected_apis.insert(APIPermission::kClipboardWrite); |
| 310 expected_apis.insert(APIPermission::kPlugin); | 310 expected_apis.insert(APIPermission::kPlugin); |
| 311 | 311 |
| 312 permission = permission_info->CreateAPIPermission(); | 312 permission = permission_info->CreateAPIPermission(); |
| 313 { | 313 { |
| 314 scoped_ptr<base::ListValue> value(new base::ListValue()); | 314 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 315 value->Append( | 315 value->Append( |
| 316 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 316 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
| 317 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 317 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
| 318 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 318 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
| 319 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); | 319 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); |
| 320 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 320 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
| 321 } | 321 } |
| 322 // Insert a new permission socket permisssion which will replace the old one. | 322 // Insert a new permission socket permisssion which will replace the old one. |
| 323 expected_apis.insert(permission); | 323 expected_apis.insert(permission); |
| 324 | 324 |
| 325 AddPattern(&explicit_hosts2, "http://*.example.com/*"); | 325 AddPattern(&explicit_hosts2, "http://*.example.com/*"); |
| 326 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); | 326 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); |
| 327 AddPattern(&expected_explicit_hosts, "http://*.example.com/*"); | 327 AddPattern(&expected_explicit_hosts, "http://*.example.com/*"); |
| 328 AddPattern(&expected_scriptable_hosts, "http://*.google.com/*"); | 328 AddPattern(&expected_scriptable_hosts, "http://*.google.com/*"); |
| 329 | 329 |
| 330 URLPatternSet::CreateUnion( | 330 URLPatternSet::CreateUnion( |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 // Intersection with an empty set. | 377 // Intersection with an empty set. |
| 378 apis1.insert(APIPermission::kTab); | 378 apis1.insert(APIPermission::kTab); |
| 379 apis1.insert(APIPermission::kBackground); | 379 apis1.insert(APIPermission::kBackground); |
| 380 permission = permission_info->CreateAPIPermission(); | 380 permission = permission_info->CreateAPIPermission(); |
| 381 { | 381 { |
| 382 scoped_ptr<base::ListValue> value(new base::ListValue()); | 382 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 383 value->Append( | 383 value->Append( |
| 384 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 384 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
| 385 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 385 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
| 386 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 386 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
| 387 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 387 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
| 388 } | 388 } |
| 389 apis1.insert(permission); | 389 apis1.insert(permission); |
| 390 | 390 |
| 391 AddPattern(&explicit_hosts1, "http://*.google.com/*"); | 391 AddPattern(&explicit_hosts1, "http://*.google.com/*"); |
| 392 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); | 392 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); |
| 393 | 393 |
| 394 set1 = new PermissionSet(apis1, manifest_permissions, | 394 set1 = new PermissionSet(apis1, manifest_permissions, |
| 395 explicit_hosts1, scriptable_hosts1); | 395 explicit_hosts1, scriptable_hosts1); |
| 396 set2 = new PermissionSet(apis2, manifest_permissions, | 396 set2 = new PermissionSet(apis2, manifest_permissions, |
| 397 explicit_hosts2, scriptable_hosts2); | 397 explicit_hosts2, scriptable_hosts2); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 414 apis2.insert(APIPermission::kTab); | 414 apis2.insert(APIPermission::kTab); |
| 415 apis2.insert(APIPermission::kProxy); | 415 apis2.insert(APIPermission::kProxy); |
| 416 apis2.insert(APIPermission::kClipboardWrite); | 416 apis2.insert(APIPermission::kClipboardWrite); |
| 417 apis2.insert(APIPermission::kPlugin); | 417 apis2.insert(APIPermission::kPlugin); |
| 418 permission = permission_info->CreateAPIPermission(); | 418 permission = permission_info->CreateAPIPermission(); |
| 419 { | 419 { |
| 420 scoped_ptr<base::ListValue> value(new base::ListValue()); | 420 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 421 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 421 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
| 422 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 422 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
| 423 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); | 423 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); |
| 424 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 424 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
| 425 } | 425 } |
| 426 apis2.insert(permission); | 426 apis2.insert(permission); |
| 427 | 427 |
| 428 expected_apis.insert(APIPermission::kTab); | 428 expected_apis.insert(APIPermission::kTab); |
| 429 permission = permission_info->CreateAPIPermission(); | 429 permission = permission_info->CreateAPIPermission(); |
| 430 { | 430 { |
| 431 scoped_ptr<base::ListValue> value(new base::ListValue()); | 431 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 432 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 432 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
| 433 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 433 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
| 434 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 434 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
| 435 } | 435 } |
| 436 expected_apis.insert(permission); | 436 expected_apis.insert(permission); |
| 437 | 437 |
| 438 AddPattern(&explicit_hosts2, "http://*.example.com/*"); | 438 AddPattern(&explicit_hosts2, "http://*.example.com/*"); |
| 439 AddPattern(&explicit_hosts2, "http://*.google.com/*"); | 439 AddPattern(&explicit_hosts2, "http://*.google.com/*"); |
| 440 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); | 440 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); |
| 441 AddPattern(&expected_explicit_hosts, "http://*.google.com/*"); | 441 AddPattern(&expected_explicit_hosts, "http://*.google.com/*"); |
| 442 | 442 |
| 443 effective_hosts.ClearPatterns(); | 443 effective_hosts.ClearPatterns(); |
| 444 AddPattern(&effective_hosts, "http://*.google.com/*"); | 444 AddPattern(&effective_hosts, "http://*.google.com/*"); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 490 // Difference with an empty set. | 490 // Difference with an empty set. |
| 491 apis1.insert(APIPermission::kTab); | 491 apis1.insert(APIPermission::kTab); |
| 492 apis1.insert(APIPermission::kBackground); | 492 apis1.insert(APIPermission::kBackground); |
| 493 permission = permission_info->CreateAPIPermission(); | 493 permission = permission_info->CreateAPIPermission(); |
| 494 { | 494 { |
| 495 scoped_ptr<base::ListValue> value(new base::ListValue()); | 495 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 496 value->Append( | 496 value->Append( |
| 497 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 497 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
| 498 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 498 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
| 499 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 499 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
| 500 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 500 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
| 501 } | 501 } |
| 502 apis1.insert(permission); | 502 apis1.insert(permission); |
| 503 | 503 |
| 504 AddPattern(&explicit_hosts1, "http://*.google.com/*"); | 504 AddPattern(&explicit_hosts1, "http://*.google.com/*"); |
| 505 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); | 505 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); |
| 506 | 506 |
| 507 set1 = new PermissionSet(apis1, manifest_permissions, | 507 set1 = new PermissionSet(apis1, manifest_permissions, |
| 508 explicit_hosts1, scriptable_hosts1); | 508 explicit_hosts1, scriptable_hosts1); |
| 509 set2 = new PermissionSet(apis2, manifest_permissions, | 509 set2 = new PermissionSet(apis2, manifest_permissions, |
| 510 explicit_hosts2, scriptable_hosts2); | 510 explicit_hosts2, scriptable_hosts2); |
| 511 new_set = PermissionSet::CreateDifference(set1.get(), set2.get()); | 511 new_set = PermissionSet::CreateDifference(set1.get(), set2.get()); |
| 512 EXPECT_EQ(*set1.get(), *new_set.get()); | 512 EXPECT_EQ(*set1.get(), *new_set.get()); |
| 513 | 513 |
| 514 // Now use a real second set. | 514 // Now use a real second set. |
| 515 apis2.insert(APIPermission::kTab); | 515 apis2.insert(APIPermission::kTab); |
| 516 apis2.insert(APIPermission::kProxy); | 516 apis2.insert(APIPermission::kProxy); |
| 517 apis2.insert(APIPermission::kClipboardWrite); | 517 apis2.insert(APIPermission::kClipboardWrite); |
| 518 apis2.insert(APIPermission::kPlugin); | 518 apis2.insert(APIPermission::kPlugin); |
| 519 permission = permission_info->CreateAPIPermission(); | 519 permission = permission_info->CreateAPIPermission(); |
| 520 { | 520 { |
| 521 scoped_ptr<base::ListValue> value(new base::ListValue()); | 521 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 522 value->Append( | 522 value->Append( |
| 523 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 523 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
| 524 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); | 524 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); |
| 525 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 525 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
| 526 } | 526 } |
| 527 apis2.insert(permission); | 527 apis2.insert(permission); |
| 528 | 528 |
| 529 expected_apis.insert(APIPermission::kBackground); | 529 expected_apis.insert(APIPermission::kBackground); |
| 530 permission = permission_info->CreateAPIPermission(); | 530 permission = permission_info->CreateAPIPermission(); |
| 531 { | 531 { |
| 532 scoped_ptr<base::ListValue> value(new base::ListValue()); | 532 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 533 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 533 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
| 534 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 534 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
| 535 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 535 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
| 536 } | 536 } |
| 537 expected_apis.insert(permission); | 537 expected_apis.insert(permission); |
| 538 | 538 |
| 539 AddPattern(&explicit_hosts2, "http://*.example.com/*"); | 539 AddPattern(&explicit_hosts2, "http://*.example.com/*"); |
| 540 AddPattern(&explicit_hosts2, "http://*.google.com/*"); | 540 AddPattern(&explicit_hosts2, "http://*.google.com/*"); |
| 541 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); | 541 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); |
| 542 AddPattern(&expected_scriptable_hosts, "http://www.reddit.com/*"); | 542 AddPattern(&expected_scriptable_hosts, "http://www.reddit.com/*"); |
| 543 | 543 |
| 544 effective_hosts.ClearPatterns(); | 544 effective_hosts.ClearPatterns(); |
| 545 AddPattern(&effective_hosts, "http://www.reddit.com/*"); | 545 AddPattern(&effective_hosts, "http://www.reddit.com/*"); |
| (...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1466 scoped_refptr<const PermissionSet> permissions_dwr( | 1466 scoped_refptr<const PermissionSet> permissions_dwr( |
| 1467 extension_dwr->GetActivePermissions()); | 1467 extension_dwr->GetActivePermissions()); |
| 1468 | 1468 |
| 1469 EXPECT_FALSE(PermissionMessageProvider::Get()-> | 1469 EXPECT_FALSE(PermissionMessageProvider::Get()-> |
| 1470 IsPrivilegeIncrease(permissions.get(), | 1470 IsPrivilegeIncrease(permissions.get(), |
| 1471 permissions_dwr.get(), | 1471 permissions_dwr.get(), |
| 1472 extension->GetType())); | 1472 extension->GetType())); |
| 1473 } | 1473 } |
| 1474 | 1474 |
| 1475 } // namespace extensions | 1475 } // namespace extensions |
| OLD | NEW |