| 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/path_service.h" | 5 #include "base/path_service.h" |
| 6 #include "base/strings/stringprintf.h" | 6 #include "base/strings/stringprintf.h" |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "chrome/browser/background/background_contents_service.h" | 8 #include "chrome/browser/background/background_contents_service.h" |
| 9 #include "chrome/browser/background/background_contents_service_factory.h" | 9 #include "chrome/browser/background/background_contents_service_factory.h" |
| 10 #include "chrome/browser/background/background_mode_manager.h" | 10 #include "chrome/browser/background/background_mode_manager.h" |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 std::string app_manifest = base::StringPrintf( | 219 std::string app_manifest = base::StringPrintf( |
| 220 "{" | 220 "{" |
| 221 " \"name\": \"App\"," | 221 " \"name\": \"App\"," |
| 222 " \"version\": \"0.1\"," | 222 " \"version\": \"0.1\"," |
| 223 " \"manifest_version\": 2," | 223 " \"manifest_version\": 2," |
| 224 " \"app\": {" | 224 " \"app\": {" |
| 225 " \"urls\": [" | 225 " \"urls\": [" |
| 226 " \"http://a.com/\"" | 226 " \"http://a.com/\"" |
| 227 " ]," | 227 " ]," |
| 228 " \"launch\": {" | 228 " \"launch\": {" |
| 229 " \"web_url\": \"http://a.com:%d/\"" | 229 " \"web_url\": \"http://a.com:%u/\"" |
| 230 " }" | 230 " }" |
| 231 " }," | 231 " }," |
| 232 " \"permissions\": [\"background\"]" | 232 " \"permissions\": [\"background\"]" |
| 233 "}", | 233 "}", |
| 234 embedded_test_server()->port()); | 234 embedded_test_server()->port()); |
| 235 | 235 |
| 236 base::FilePath app_dir; | 236 base::FilePath app_dir; |
| 237 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); | 237 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); |
| 238 ASSERT_TRUE(LoadExtension(app_dir)); | 238 ASSERT_TRUE(LoadExtension(app_dir)); |
| 239 // Background mode should not be active until a background page is created. | 239 // Background mode should not be active until a background page is created. |
| (...skipping 12 matching lines...) Expand all Loading... |
| 252 std::string app_manifest = base::StringPrintf( | 252 std::string app_manifest = base::StringPrintf( |
| 253 "{" | 253 "{" |
| 254 " \"name\": \"App\"," | 254 " \"name\": \"App\"," |
| 255 " \"version\": \"0.1\"," | 255 " \"version\": \"0.1\"," |
| 256 " \"manifest_version\": 2," | 256 " \"manifest_version\": 2," |
| 257 " \"app\": {" | 257 " \"app\": {" |
| 258 " \"urls\": [" | 258 " \"urls\": [" |
| 259 " \"http://a.com/\"" | 259 " \"http://a.com/\"" |
| 260 " ]," | 260 " ]," |
| 261 " \"launch\": {" | 261 " \"launch\": {" |
| 262 " \"web_url\": \"http://a.com:%d/\"" | 262 " \"web_url\": \"http://a.com:%u/\"" |
| 263 " }" | 263 " }" |
| 264 " }" | 264 " }" |
| 265 "}", | 265 "}", |
| 266 embedded_test_server()->port()); | 266 embedded_test_server()->port()); |
| 267 | 267 |
| 268 base::FilePath app_dir; | 268 base::FilePath app_dir; |
| 269 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); | 269 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); |
| 270 ASSERT_TRUE(LoadExtension(app_dir)); | 270 ASSERT_TRUE(LoadExtension(app_dir)); |
| 271 ASSERT_TRUE(RunExtensionTest("app_background_page/lacks_permission")) | 271 ASSERT_TRUE(RunExtensionTest("app_background_page/lacks_permission")) |
| 272 << message_; | 272 << message_; |
| 273 ASSERT_TRUE(WaitForBackgroundMode(false)); | 273 ASSERT_TRUE(WaitForBackgroundMode(false)); |
| 274 } | 274 } |
| 275 | 275 |
| 276 IN_PROC_BROWSER_TEST_F(AppBackgroundPageApiTest, ManifestBackgroundPage) { | 276 IN_PROC_BROWSER_TEST_F(AppBackgroundPageApiTest, ManifestBackgroundPage) { |
| 277 host_resolver()->AddRule("a.com", "127.0.0.1"); | 277 host_resolver()->AddRule("a.com", "127.0.0.1"); |
| 278 ASSERT_TRUE(StartEmbeddedTestServer()); | 278 ASSERT_TRUE(StartEmbeddedTestServer()); |
| 279 | 279 |
| 280 std::string app_manifest = base::StringPrintf( | 280 std::string app_manifest = base::StringPrintf( |
| 281 "{" | 281 "{" |
| 282 " \"name\": \"App\"," | 282 " \"name\": \"App\"," |
| 283 " \"version\": \"0.1\"," | 283 " \"version\": \"0.1\"," |
| 284 " \"manifest_version\": 2," | 284 " \"manifest_version\": 2," |
| 285 " \"app\": {" | 285 " \"app\": {" |
| 286 " \"urls\": [" | 286 " \"urls\": [" |
| 287 " \"http://a.com/\"" | 287 " \"http://a.com/\"" |
| 288 " ]," | 288 " ]," |
| 289 " \"launch\": {" | 289 " \"launch\": {" |
| 290 " \"web_url\": \"http://a.com:%d/\"" | 290 " \"web_url\": \"http://a.com:%u/\"" |
| 291 " }" | 291 " }" |
| 292 " }," | 292 " }," |
| 293 " \"permissions\": [\"background\"]," | 293 " \"permissions\": [\"background\"]," |
| 294 " \"background\": {" | 294 " \"background\": {" |
| 295 " \"page\": \"http://a.com:%d/test.html\"" | 295 " \"page\": \"http://a.com:%u/test.html\"" |
| 296 " }" | 296 " }" |
| 297 "}", | 297 "}", |
| 298 embedded_test_server()->port(), | 298 embedded_test_server()->port(), |
| 299 embedded_test_server()->port()); | 299 embedded_test_server()->port()); |
| 300 | 300 |
| 301 base::FilePath app_dir; | 301 base::FilePath app_dir; |
| 302 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); | 302 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); |
| 303 // Background mode should not be active now because no background app was | 303 // Background mode should not be active now because no background app was |
| 304 // loaded. | 304 // loaded. |
| 305 ASSERT_TRUE(LoadExtension(app_dir)); | 305 ASSERT_TRUE(LoadExtension(app_dir)); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 333 std::string app_manifest = base::StringPrintf( | 333 std::string app_manifest = base::StringPrintf( |
| 334 "{" | 334 "{" |
| 335 " \"name\": \"App\"," | 335 " \"name\": \"App\"," |
| 336 " \"version\": \"0.1\"," | 336 " \"version\": \"0.1\"," |
| 337 " \"manifest_version\": 2," | 337 " \"manifest_version\": 2," |
| 338 " \"app\": {" | 338 " \"app\": {" |
| 339 " \"urls\": [" | 339 " \"urls\": [" |
| 340 " \"http://a.com/\"" | 340 " \"http://a.com/\"" |
| 341 " ]," | 341 " ]," |
| 342 " \"launch\": {" | 342 " \"launch\": {" |
| 343 " \"web_url\": \"http://a.com:%d/test.html\"" | 343 " \"web_url\": \"http://a.com:%u/test.html\"" |
| 344 " }" | 344 " }" |
| 345 " }," | 345 " }," |
| 346 " \"permissions\": [\"background\"]," | 346 " \"permissions\": [\"background\"]," |
| 347 " \"background\": {" | 347 " \"background\": {" |
| 348 " \"allow_js_access\": false" | 348 " \"allow_js_access\": false" |
| 349 " }" | 349 " }" |
| 350 "}", | 350 "}", |
| 351 embedded_test_server()->port()); | 351 embedded_test_server()->port()); |
| 352 | 352 |
| 353 base::FilePath app_dir; | 353 base::FilePath app_dir; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 377 std::string app_manifest = base::StringPrintf( | 377 std::string app_manifest = base::StringPrintf( |
| 378 "{" | 378 "{" |
| 379 " \"name\": \"App\"," | 379 " \"name\": \"App\"," |
| 380 " \"version\": \"0.1\"," | 380 " \"version\": \"0.1\"," |
| 381 " \"manifest_version\": 2," | 381 " \"manifest_version\": 2," |
| 382 " \"app\": {" | 382 " \"app\": {" |
| 383 " \"urls\": [" | 383 " \"urls\": [" |
| 384 " \"http://a.com/\"" | 384 " \"http://a.com/\"" |
| 385 " ]," | 385 " ]," |
| 386 " \"launch\": {" | 386 " \"launch\": {" |
| 387 " \"web_url\": \"http://a.com:%d/\"" | 387 " \"web_url\": \"http://a.com:%u/\"" |
| 388 " }" | 388 " }" |
| 389 " }," | 389 " }," |
| 390 " \"permissions\": [\"background\"]," | 390 " \"permissions\": [\"background\"]," |
| 391 " \"background\": {" | 391 " \"background\": {" |
| 392 " \"page\": \"http://a.com:%d/bg.html\"," | 392 " \"page\": \"http://a.com:%u/bg.html\"," |
| 393 " \"allow_js_access\": false" | 393 " \"allow_js_access\": false" |
| 394 " }" | 394 " }" |
| 395 "}", | 395 "}", |
| 396 embedded_test_server()->port(), | 396 embedded_test_server()->port(), |
| 397 embedded_test_server()->port()); | 397 embedded_test_server()->port()); |
| 398 | 398 |
| 399 base::FilePath app_dir; | 399 base::FilePath app_dir; |
| 400 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); | 400 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); |
| 401 ASSERT_TRUE(LoadExtension(app_dir)); | 401 ASSERT_TRUE(LoadExtension(app_dir)); |
| 402 | 402 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 417 std::string app_manifest = base::StringPrintf( | 417 std::string app_manifest = base::StringPrintf( |
| 418 "{" | 418 "{" |
| 419 " \"name\": \"App\"," | 419 " \"name\": \"App\"," |
| 420 " \"version\": \"0.1\"," | 420 " \"version\": \"0.1\"," |
| 421 " \"manifest_version\": 2," | 421 " \"manifest_version\": 2," |
| 422 " \"app\": {" | 422 " \"app\": {" |
| 423 " \"urls\": [" | 423 " \"urls\": [" |
| 424 " \"http://a.com/\"" | 424 " \"http://a.com/\"" |
| 425 " ]," | 425 " ]," |
| 426 " \"launch\": {" | 426 " \"launch\": {" |
| 427 " \"web_url\": \"http://a.com:%d/\"" | 427 " \"web_url\": \"http://a.com:%u/\"" |
| 428 " }" | 428 " }" |
| 429 " }," | 429 " }," |
| 430 " \"permissions\": [\"background\"]" | 430 " \"permissions\": [\"background\"]" |
| 431 "}", | 431 "}", |
| 432 embedded_test_server()->port()); | 432 embedded_test_server()->port()); |
| 433 | 433 |
| 434 base::FilePath app_dir; | 434 base::FilePath app_dir; |
| 435 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); | 435 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); |
| 436 ASSERT_TRUE(LoadExtension(app_dir)); | 436 ASSERT_TRUE(LoadExtension(app_dir)); |
| 437 const Extension* extension = GetSingleLoadedExtension(); | 437 const Extension* extension = GetSingleLoadedExtension(); |
| 438 ASSERT_TRUE(RunExtensionTest("app_background_page/two_pages")) << message_; | 438 ASSERT_TRUE(RunExtensionTest("app_background_page/two_pages")) << message_; |
| 439 UnloadExtension(extension->id()); | 439 UnloadExtension(extension->id()); |
| 440 } | 440 } |
| 441 | 441 |
| 442 IN_PROC_BROWSER_TEST_F(AppBackgroundPageApiTest, OpenTwoPagesWithManifest) { | 442 IN_PROC_BROWSER_TEST_F(AppBackgroundPageApiTest, OpenTwoPagesWithManifest) { |
| 443 host_resolver()->AddRule("a.com", "127.0.0.1"); | 443 host_resolver()->AddRule("a.com", "127.0.0.1"); |
| 444 ASSERT_TRUE(StartEmbeddedTestServer()); | 444 ASSERT_TRUE(StartEmbeddedTestServer()); |
| 445 | 445 |
| 446 std::string app_manifest = base::StringPrintf( | 446 std::string app_manifest = base::StringPrintf( |
| 447 "{" | 447 "{" |
| 448 " \"name\": \"App\"," | 448 " \"name\": \"App\"," |
| 449 " \"version\": \"0.1\"," | 449 " \"version\": \"0.1\"," |
| 450 " \"manifest_version\": 2," | 450 " \"manifest_version\": 2," |
| 451 " \"app\": {" | 451 " \"app\": {" |
| 452 " \"urls\": [" | 452 " \"urls\": [" |
| 453 " \"http://a.com/\"" | 453 " \"http://a.com/\"" |
| 454 " ]," | 454 " ]," |
| 455 " \"launch\": {" | 455 " \"launch\": {" |
| 456 " \"web_url\": \"http://a.com:%d/\"" | 456 " \"web_url\": \"http://a.com:%u/\"" |
| 457 " }" | 457 " }" |
| 458 " }," | 458 " }," |
| 459 " \"background\": {" | 459 " \"background\": {" |
| 460 " \"page\": \"http://a.com:%d/bg.html\"" | 460 " \"page\": \"http://a.com:%u/bg.html\"" |
| 461 " }," | 461 " }," |
| 462 " \"permissions\": [\"background\"]" | 462 " \"permissions\": [\"background\"]" |
| 463 "}", | 463 "}", |
| 464 embedded_test_server()->port(), | 464 embedded_test_server()->port(), |
| 465 embedded_test_server()->port()); | 465 embedded_test_server()->port()); |
| 466 | 466 |
| 467 base::FilePath app_dir; | 467 base::FilePath app_dir; |
| 468 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); | 468 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); |
| 469 ASSERT_TRUE(LoadExtension(app_dir)); | 469 ASSERT_TRUE(LoadExtension(app_dir)); |
| 470 const Extension* extension = GetSingleLoadedExtension(); | 470 const Extension* extension = GetSingleLoadedExtension(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 481 std::string app_manifest = base::StringPrintf( | 481 std::string app_manifest = base::StringPrintf( |
| 482 "{" | 482 "{" |
| 483 " \"name\": \"App\"," | 483 " \"name\": \"App\"," |
| 484 " \"version\": \"0.1\"," | 484 " \"version\": \"0.1\"," |
| 485 " \"manifest_version\": 2," | 485 " \"manifest_version\": 2," |
| 486 " \"app\": {" | 486 " \"app\": {" |
| 487 " \"urls\": [" | 487 " \"urls\": [" |
| 488 " \"http://a.com/\"" | 488 " \"http://a.com/\"" |
| 489 " ]," | 489 " ]," |
| 490 " \"launch\": {" | 490 " \"launch\": {" |
| 491 " \"web_url\": \"http://a.com:%d/\"" | 491 " \"web_url\": \"http://a.com:%u/\"" |
| 492 " }" | 492 " }" |
| 493 " }," | 493 " }," |
| 494 " \"background\": { \"page\": \"http://a.com:%d/extensions/api_test/" | 494 " \"background\": { \"page\": \"http://a.com:%u/extensions/api_test/" |
| 495 "app_background_page/bg_open/bg_open_bg.html\" }," | 495 "app_background_page/bg_open/bg_open_bg.html\" }," |
| 496 " \"permissions\": [\"background\"]" | 496 " \"permissions\": [\"background\"]" |
| 497 "}", | 497 "}", |
| 498 embedded_test_server()->port(), | 498 embedded_test_server()->port(), |
| 499 embedded_test_server()->port()); | 499 embedded_test_server()->port()); |
| 500 | 500 |
| 501 base::FilePath app_dir; | 501 base::FilePath app_dir; |
| 502 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); | 502 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); |
| 503 ASSERT_TRUE(LoadExtension(app_dir)); | 503 ASSERT_TRUE(LoadExtension(app_dir)); |
| 504 ASSERT_TRUE(RunExtensionTest("app_background_page/bg_open")) << message_; | 504 ASSERT_TRUE(RunExtensionTest("app_background_page/bg_open")) << message_; |
| 505 } | 505 } |
| 506 | 506 |
| 507 IN_PROC_BROWSER_TEST_F(AppBackgroundPageApiTest, DISABLED_OpenThenClose) { | 507 IN_PROC_BROWSER_TEST_F(AppBackgroundPageApiTest, DISABLED_OpenThenClose) { |
| 508 host_resolver()->AddRule("a.com", "127.0.0.1"); | 508 host_resolver()->AddRule("a.com", "127.0.0.1"); |
| 509 ASSERT_TRUE(StartEmbeddedTestServer()); | 509 ASSERT_TRUE(StartEmbeddedTestServer()); |
| 510 | 510 |
| 511 std::string app_manifest = base::StringPrintf( | 511 std::string app_manifest = base::StringPrintf( |
| 512 "{" | 512 "{" |
| 513 " \"name\": \"App\"," | 513 " \"name\": \"App\"," |
| 514 " \"version\": \"0.1\"," | 514 " \"version\": \"0.1\"," |
| 515 " \"manifest_version\": 2," | 515 " \"manifest_version\": 2," |
| 516 " \"app\": {" | 516 " \"app\": {" |
| 517 " \"urls\": [" | 517 " \"urls\": [" |
| 518 " \"http://a.com/\"" | 518 " \"http://a.com/\"" |
| 519 " ]," | 519 " ]," |
| 520 " \"launch\": {" | 520 " \"launch\": {" |
| 521 " \"web_url\": \"http://a.com:%d/\"" | 521 " \"web_url\": \"http://a.com:%u/\"" |
| 522 " }" | 522 " }" |
| 523 " }," | 523 " }," |
| 524 " \"permissions\": [\"background\"]" | 524 " \"permissions\": [\"background\"]" |
| 525 "}", | 525 "}", |
| 526 embedded_test_server()->port()); | 526 embedded_test_server()->port()); |
| 527 | 527 |
| 528 base::FilePath app_dir; | 528 base::FilePath app_dir; |
| 529 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); | 529 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); |
| 530 ASSERT_TRUE(LoadExtension(app_dir)); | 530 ASSERT_TRUE(LoadExtension(app_dir)); |
| 531 // There isn't a background page loaded initially. | 531 // There isn't a background page loaded initially. |
| (...skipping 25 matching lines...) Expand all Loading... |
| 557 std::string app_manifest = base::StringPrintf( | 557 std::string app_manifest = base::StringPrintf( |
| 558 "{" | 558 "{" |
| 559 " \"name\": \"App\"," | 559 " \"name\": \"App\"," |
| 560 " \"version\": \"0.1\"," | 560 " \"version\": \"0.1\"," |
| 561 " \"manifest_version\": 2," | 561 " \"manifest_version\": 2," |
| 562 " \"app\": {" | 562 " \"app\": {" |
| 563 " \"urls\": [" | 563 " \"urls\": [" |
| 564 " \"http://a.com/\"" | 564 " \"http://a.com/\"" |
| 565 " ]," | 565 " ]," |
| 566 " \"launch\": {" | 566 " \"launch\": {" |
| 567 " \"web_url\": \"http://a.com:%d/\"" | 567 " \"web_url\": \"http://a.com:%u/\"" |
| 568 " }" | 568 " }" |
| 569 " }," | 569 " }," |
| 570 " \"permissions\": [\"background\"]," | 570 " \"permissions\": [\"background\"]," |
| 571 " \"background\": {" | 571 " \"background\": {" |
| 572 " \"page\": \"http://a.com:%d/test.html\"" | 572 " \"page\": \"http://a.com:%u/test.html\"" |
| 573 " }" | 573 " }" |
| 574 "}", | 574 "}", |
| 575 embedded_test_server()->port(), | 575 embedded_test_server()->port(), |
| 576 embedded_test_server()->port()); | 576 embedded_test_server()->port()); |
| 577 | 577 |
| 578 base::FilePath app_dir; | 578 base::FilePath app_dir; |
| 579 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); | 579 ASSERT_TRUE(CreateApp(app_manifest, &app_dir)); |
| 580 // Background mode should not be active now because no background app was | 580 // Background mode should not be active now because no background app was |
| 581 // loaded. | 581 // loaded. |
| 582 ASSERT_TRUE(LoadExtension(app_dir)); | 582 ASSERT_TRUE(LoadExtension(app_dir)); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 642 extensions::ProcessManager::Get(browser()->profile()); | 642 extensions::ProcessManager::Get(browser()->profile()); |
| 643 ImpulseCallbackCounter idle_impulse_counter(manager, extension()->id()); | 643 ImpulseCallbackCounter idle_impulse_counter(manager, extension()->id()); |
| 644 EXPECT_TRUE(nacl_modules_loaded.WaitUntilSatisfied()); | 644 EXPECT_TRUE(nacl_modules_loaded.WaitUntilSatisfied()); |
| 645 | 645 |
| 646 manager->SetKeepaliveImpulseDecrementCallbackForTesting( | 646 manager->SetKeepaliveImpulseDecrementCallbackForTesting( |
| 647 idle_impulse_counter.SetGoalAndGetCallback(1)); | 647 idle_impulse_counter.SetGoalAndGetCallback(1)); |
| 648 nacl_modules_loaded.Reply("be idle"); | 648 nacl_modules_loaded.Reply("be idle"); |
| 649 idle_impulse_counter.Wait(); | 649 idle_impulse_counter.Wait(); |
| 650 #endif | 650 #endif |
| 651 } | 651 } |
| OLD | NEW |