| 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 if (!permission->FromValue(value.get())) { | 258 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); |
| 259 NOTREACHED(); | |
| 260 } | |
| 261 } | 259 } |
| 262 | 260 |
| 263 // Union with an empty set. | 261 // Union with an empty set. |
| 264 apis1.insert(APIPermission::kTab); | 262 apis1.insert(APIPermission::kTab); |
| 265 apis1.insert(APIPermission::kBackground); | 263 apis1.insert(APIPermission::kBackground); |
| 266 apis1.insert(permission->Clone()); | 264 apis1.insert(permission->Clone()); |
| 267 expected_apis.insert(APIPermission::kTab); | 265 expected_apis.insert(APIPermission::kTab); |
| 268 expected_apis.insert(APIPermission::kBackground); | 266 expected_apis.insert(APIPermission::kBackground); |
| 269 expected_apis.insert(permission); | 267 expected_apis.insert(permission); |
| 270 | 268 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 295 apis2.insert(APIPermission::kProxy); | 293 apis2.insert(APIPermission::kProxy); |
| 296 apis2.insert(APIPermission::kClipboardWrite); | 294 apis2.insert(APIPermission::kClipboardWrite); |
| 297 apis2.insert(APIPermission::kPlugin); | 295 apis2.insert(APIPermission::kPlugin); |
| 298 | 296 |
| 299 permission = permission_info->CreateAPIPermission(); | 297 permission = permission_info->CreateAPIPermission(); |
| 300 { | 298 { |
| 301 scoped_ptr<base::ListValue> value(new base::ListValue()); | 299 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 302 value->Append( | 300 value->Append( |
| 303 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 301 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
| 304 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); | 302 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); |
| 305 if (!permission->FromValue(value.get())) { | 303 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); |
| 306 NOTREACHED(); | |
| 307 } | |
| 308 } | 304 } |
| 309 apis2.insert(permission); | 305 apis2.insert(permission); |
| 310 | 306 |
| 311 expected_apis.insert(APIPermission::kTab); | 307 expected_apis.insert(APIPermission::kTab); |
| 312 expected_apis.insert(APIPermission::kProxy); | 308 expected_apis.insert(APIPermission::kProxy); |
| 313 expected_apis.insert(APIPermission::kClipboardWrite); | 309 expected_apis.insert(APIPermission::kClipboardWrite); |
| 314 expected_apis.insert(APIPermission::kPlugin); | 310 expected_apis.insert(APIPermission::kPlugin); |
| 315 | 311 |
| 316 permission = permission_info->CreateAPIPermission(); | 312 permission = permission_info->CreateAPIPermission(); |
| 317 { | 313 { |
| 318 scoped_ptr<base::ListValue> value(new base::ListValue()); | 314 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 319 value->Append( | 315 value->Append( |
| 320 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 316 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
| 321 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 317 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
| 322 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 318 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
| 323 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); | 319 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); |
| 324 if (!permission->FromValue(value.get())) { | 320 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); |
| 325 NOTREACHED(); | |
| 326 } | |
| 327 } | 321 } |
| 328 // 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. |
| 329 expected_apis.insert(permission); | 323 expected_apis.insert(permission); |
| 330 | 324 |
| 331 AddPattern(&explicit_hosts2, "http://*.example.com/*"); | 325 AddPattern(&explicit_hosts2, "http://*.example.com/*"); |
| 332 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); | 326 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); |
| 333 AddPattern(&expected_explicit_hosts, "http://*.example.com/*"); | 327 AddPattern(&expected_explicit_hosts, "http://*.example.com/*"); |
| 334 AddPattern(&expected_scriptable_hosts, "http://*.google.com/*"); | 328 AddPattern(&expected_scriptable_hosts, "http://*.google.com/*"); |
| 335 | 329 |
| 336 URLPatternSet::CreateUnion( | 330 URLPatternSet::CreateUnion( |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 // Intersection with an empty set. | 377 // Intersection with an empty set. |
| 384 apis1.insert(APIPermission::kTab); | 378 apis1.insert(APIPermission::kTab); |
| 385 apis1.insert(APIPermission::kBackground); | 379 apis1.insert(APIPermission::kBackground); |
| 386 permission = permission_info->CreateAPIPermission(); | 380 permission = permission_info->CreateAPIPermission(); |
| 387 { | 381 { |
| 388 scoped_ptr<base::ListValue> value(new base::ListValue()); | 382 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 389 value->Append( | 383 value->Append( |
| 390 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 384 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
| 391 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 385 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
| 392 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 386 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
| 393 if (!permission->FromValue(value.get())) { | 387 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); |
| 394 NOTREACHED(); | |
| 395 } | |
| 396 } | 388 } |
| 397 apis1.insert(permission); | 389 apis1.insert(permission); |
| 398 | 390 |
| 399 AddPattern(&explicit_hosts1, "http://*.google.com/*"); | 391 AddPattern(&explicit_hosts1, "http://*.google.com/*"); |
| 400 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); | 392 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); |
| 401 | 393 |
| 402 set1 = new PermissionSet(apis1, manifest_permissions, | 394 set1 = new PermissionSet(apis1, manifest_permissions, |
| 403 explicit_hosts1, scriptable_hosts1); | 395 explicit_hosts1, scriptable_hosts1); |
| 404 set2 = new PermissionSet(apis2, manifest_permissions, | 396 set2 = new PermissionSet(apis2, manifest_permissions, |
| 405 explicit_hosts2, scriptable_hosts2); | 397 explicit_hosts2, scriptable_hosts2); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 422 apis2.insert(APIPermission::kTab); | 414 apis2.insert(APIPermission::kTab); |
| 423 apis2.insert(APIPermission::kProxy); | 415 apis2.insert(APIPermission::kProxy); |
| 424 apis2.insert(APIPermission::kClipboardWrite); | 416 apis2.insert(APIPermission::kClipboardWrite); |
| 425 apis2.insert(APIPermission::kPlugin); | 417 apis2.insert(APIPermission::kPlugin); |
| 426 permission = permission_info->CreateAPIPermission(); | 418 permission = permission_info->CreateAPIPermission(); |
| 427 { | 419 { |
| 428 scoped_ptr<base::ListValue> value(new base::ListValue()); | 420 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 429 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 421 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
| 430 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 422 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
| 431 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); | 423 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); |
| 432 if (!permission->FromValue(value.get())) { | 424 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); |
| 433 NOTREACHED(); | |
| 434 } | |
| 435 } | 425 } |
| 436 apis2.insert(permission); | 426 apis2.insert(permission); |
| 437 | 427 |
| 438 expected_apis.insert(APIPermission::kTab); | 428 expected_apis.insert(APIPermission::kTab); |
| 439 permission = permission_info->CreateAPIPermission(); | 429 permission = permission_info->CreateAPIPermission(); |
| 440 { | 430 { |
| 441 scoped_ptr<base::ListValue> value(new base::ListValue()); | 431 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 442 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 432 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
| 443 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 433 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
| 444 if (!permission->FromValue(value.get())) { | 434 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); |
| 445 NOTREACHED(); | |
| 446 } | |
| 447 } | 435 } |
| 448 expected_apis.insert(permission); | 436 expected_apis.insert(permission); |
| 449 | 437 |
| 450 AddPattern(&explicit_hosts2, "http://*.example.com/*"); | 438 AddPattern(&explicit_hosts2, "http://*.example.com/*"); |
| 451 AddPattern(&explicit_hosts2, "http://*.google.com/*"); | 439 AddPattern(&explicit_hosts2, "http://*.google.com/*"); |
| 452 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); | 440 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); |
| 453 AddPattern(&expected_explicit_hosts, "http://*.google.com/*"); | 441 AddPattern(&expected_explicit_hosts, "http://*.google.com/*"); |
| 454 | 442 |
| 455 effective_hosts.ClearPatterns(); | 443 effective_hosts.ClearPatterns(); |
| 456 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... |
| 502 // Difference with an empty set. | 490 // Difference with an empty set. |
| 503 apis1.insert(APIPermission::kTab); | 491 apis1.insert(APIPermission::kTab); |
| 504 apis1.insert(APIPermission::kBackground); | 492 apis1.insert(APIPermission::kBackground); |
| 505 permission = permission_info->CreateAPIPermission(); | 493 permission = permission_info->CreateAPIPermission(); |
| 506 { | 494 { |
| 507 scoped_ptr<base::ListValue> value(new base::ListValue()); | 495 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 508 value->Append( | 496 value->Append( |
| 509 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 497 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
| 510 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 498 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
| 511 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 499 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
| 512 if (!permission->FromValue(value.get())) { | 500 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); |
| 513 NOTREACHED(); | |
| 514 } | |
| 515 } | 501 } |
| 516 apis1.insert(permission); | 502 apis1.insert(permission); |
| 517 | 503 |
| 518 AddPattern(&explicit_hosts1, "http://*.google.com/*"); | 504 AddPattern(&explicit_hosts1, "http://*.google.com/*"); |
| 519 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); | 505 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); |
| 520 | 506 |
| 521 set1 = new PermissionSet(apis1, manifest_permissions, | 507 set1 = new PermissionSet(apis1, manifest_permissions, |
| 522 explicit_hosts1, scriptable_hosts1); | 508 explicit_hosts1, scriptable_hosts1); |
| 523 set2 = new PermissionSet(apis2, manifest_permissions, | 509 set2 = new PermissionSet(apis2, manifest_permissions, |
| 524 explicit_hosts2, scriptable_hosts2); | 510 explicit_hosts2, scriptable_hosts2); |
| 525 new_set = PermissionSet::CreateDifference(set1.get(), set2.get()); | 511 new_set = PermissionSet::CreateDifference(set1.get(), set2.get()); |
| 526 EXPECT_EQ(*set1.get(), *new_set.get()); | 512 EXPECT_EQ(*set1.get(), *new_set.get()); |
| 527 | 513 |
| 528 // Now use a real second set. | 514 // Now use a real second set. |
| 529 apis2.insert(APIPermission::kTab); | 515 apis2.insert(APIPermission::kTab); |
| 530 apis2.insert(APIPermission::kProxy); | 516 apis2.insert(APIPermission::kProxy); |
| 531 apis2.insert(APIPermission::kClipboardWrite); | 517 apis2.insert(APIPermission::kClipboardWrite); |
| 532 apis2.insert(APIPermission::kPlugin); | 518 apis2.insert(APIPermission::kPlugin); |
| 533 permission = permission_info->CreateAPIPermission(); | 519 permission = permission_info->CreateAPIPermission(); |
| 534 { | 520 { |
| 535 scoped_ptr<base::ListValue> value(new base::ListValue()); | 521 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 536 value->Append( | 522 value->Append( |
| 537 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 523 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
| 538 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); | 524 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); |
| 539 if (!permission->FromValue(value.get())) { | 525 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); |
| 540 NOTREACHED(); | |
| 541 } | |
| 542 } | 526 } |
| 543 apis2.insert(permission); | 527 apis2.insert(permission); |
| 544 | 528 |
| 545 expected_apis.insert(APIPermission::kBackground); | 529 expected_apis.insert(APIPermission::kBackground); |
| 546 permission = permission_info->CreateAPIPermission(); | 530 permission = permission_info->CreateAPIPermission(); |
| 547 { | 531 { |
| 548 scoped_ptr<base::ListValue> value(new base::ListValue()); | 532 scoped_ptr<base::ListValue> value(new base::ListValue()); |
| 549 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 533 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
| 550 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 534 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
| 551 if (!permission->FromValue(value.get())) { | 535 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); |
| 552 NOTREACHED(); | |
| 553 } | |
| 554 } | 536 } |
| 555 expected_apis.insert(permission); | 537 expected_apis.insert(permission); |
| 556 | 538 |
| 557 AddPattern(&explicit_hosts2, "http://*.example.com/*"); | 539 AddPattern(&explicit_hosts2, "http://*.example.com/*"); |
| 558 AddPattern(&explicit_hosts2, "http://*.google.com/*"); | 540 AddPattern(&explicit_hosts2, "http://*.google.com/*"); |
| 559 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); | 541 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); |
| 560 AddPattern(&expected_scriptable_hosts, "http://www.reddit.com/*"); | 542 AddPattern(&expected_scriptable_hosts, "http://www.reddit.com/*"); |
| 561 | 543 |
| 562 effective_hosts.ClearPatterns(); | 544 effective_hosts.ClearPatterns(); |
| 563 AddPattern(&effective_hosts, "http://www.reddit.com/*"); | 545 AddPattern(&effective_hosts, "http://www.reddit.com/*"); |
| (...skipping 919 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1483 scoped_refptr<const PermissionSet> permissions_dwr( | 1465 scoped_refptr<const PermissionSet> permissions_dwr( |
| 1484 extension_dwr->GetActivePermissions()); | 1466 extension_dwr->GetActivePermissions()); |
| 1485 | 1467 |
| 1486 EXPECT_FALSE(PermissionMessageProvider::Get()-> | 1468 EXPECT_FALSE(PermissionMessageProvider::Get()-> |
| 1487 IsPrivilegeIncrease(permissions.get(), | 1469 IsPrivilegeIncrease(permissions.get(), |
| 1488 permissions_dwr.get(), | 1470 permissions_dwr.get(), |
| 1489 extension->GetType())); | 1471 extension->GetType())); |
| 1490 } | 1472 } |
| 1491 | 1473 |
| 1492 } // namespace extensions | 1474 } // namespace extensions |
| OLD | NEW |