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

Side by Side Diff: content/browser/service_worker/service_worker_database_unittest.cc

Issue 1411953002: Store foreign fetch scopes in database with other SW information. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@foreign-fetch-interface
Patch Set: Created 5 years, 2 months 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/browser/service_worker/service_worker_database.h" 5 #include "content/browser/service_worker/service_worker_database.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/files/file_util.h" 9 #include "base/files/file_util.h"
10 #include "base/files/scoped_temp_dir.h" 10 #include "base/files/scoped_temp_dir.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 const RegistrationData& actual) { 56 const RegistrationData& actual) {
57 EXPECT_EQ(expected.registration_id, actual.registration_id); 57 EXPECT_EQ(expected.registration_id, actual.registration_id);
58 EXPECT_EQ(expected.scope, actual.scope); 58 EXPECT_EQ(expected.scope, actual.scope);
59 EXPECT_EQ(expected.script, actual.script); 59 EXPECT_EQ(expected.script, actual.script);
60 EXPECT_EQ(expected.version_id, actual.version_id); 60 EXPECT_EQ(expected.version_id, actual.version_id);
61 EXPECT_EQ(expected.is_active, actual.is_active); 61 EXPECT_EQ(expected.is_active, actual.is_active);
62 EXPECT_EQ(expected.has_fetch_handler, actual.has_fetch_handler); 62 EXPECT_EQ(expected.has_fetch_handler, actual.has_fetch_handler);
63 EXPECT_EQ(expected.last_update_check, actual.last_update_check); 63 EXPECT_EQ(expected.last_update_check, actual.last_update_check);
64 EXPECT_EQ(expected.resources_total_size_bytes, 64 EXPECT_EQ(expected.resources_total_size_bytes,
65 actual.resources_total_size_bytes); 65 actual.resources_total_size_bytes);
66 EXPECT_EQ(expected.foreign_fetch_scopes, actual.foreign_fetch_scopes);
66 } 67 }
67 68
68 void VerifyResourceRecords(const std::vector<Resource>& expected, 69 void VerifyResourceRecords(const std::vector<Resource>& expected,
69 const std::vector<Resource>& actual) { 70 const std::vector<Resource>& actual) {
70 ASSERT_EQ(expected.size(), actual.size()); 71 ASSERT_EQ(expected.size(), actual.size());
71 for (size_t i = 0; i < expected.size(); ++i) { 72 for (size_t i = 0; i < expected.size(); ++i) {
72 EXPECT_EQ(expected[i].resource_id, actual[i].resource_id); 73 EXPECT_EQ(expected[i].resource_id, actual[i].resource_id);
73 EXPECT_EQ(expected[i].url, actual[i].url); 74 EXPECT_EQ(expected[i].url, actual[i].url);
74 EXPECT_EQ(expected[i].size_bytes, actual[i].size_bytes); 75 EXPECT_EQ(expected[i].size_bytes, actual[i].size_bytes);
75 } 76 }
(...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 TEST(ServiceWorkerDatabaseTest, Registration_Basic) { 653 TEST(ServiceWorkerDatabaseTest, Registration_Basic) {
653 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); 654 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory());
654 655
655 GURL origin("http://example.com"); 656 GURL origin("http://example.com");
656 RegistrationData data; 657 RegistrationData data;
657 data.registration_id = 100; 658 data.registration_id = 100;
658 data.scope = URL(origin, "/foo"); 659 data.scope = URL(origin, "/foo");
659 data.script = URL(origin, "/script.js"); 660 data.script = URL(origin, "/script.js");
660 data.version_id = 200; 661 data.version_id = 200;
661 data.resources_total_size_bytes = 10939 + 200; 662 data.resources_total_size_bytes = 10939 + 200;
663 data.foreign_fetch_scopes.push_back(URL(origin, "/foo/bar"));
662 664
663 std::vector<Resource> resources; 665 std::vector<Resource> resources;
664 resources.push_back(CreateResource(1, URL(origin, "/resource1"), 10939)); 666 resources.push_back(CreateResource(1, URL(origin, "/resource1"), 10939));
665 resources.push_back(CreateResource(2, URL(origin, "/resource2"), 200)); 667 resources.push_back(CreateResource(2, URL(origin, "/resource2"), 200));
666 668
667 // Write a resource to the uncommitted list to make sure that writing 669 // Write a resource to the uncommitted list to make sure that writing
668 // registration removes resource ids associated with the registration from 670 // registration removes resource ids associated with the registration from
669 // the uncommitted list. 671 // the uncommitted list.
670 std::set<int64> uncommitted_ids; 672 std::set<int64> uncommitted_ids;
671 uncommitted_ids.insert(resources[0].resource_id); 673 uncommitted_ids.insert(resources[0].resource_id);
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
788 TEST(ServiceWorkerDatabaseTest, Registration_Overwrite) { 790 TEST(ServiceWorkerDatabaseTest, Registration_Overwrite) {
789 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory()); 791 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory());
790 792
791 GURL origin("http://example.com"); 793 GURL origin("http://example.com");
792 RegistrationData data; 794 RegistrationData data;
793 data.registration_id = 100; 795 data.registration_id = 100;
794 data.scope = URL(origin, "/foo"); 796 data.scope = URL(origin, "/foo");
795 data.script = URL(origin, "/script.js"); 797 data.script = URL(origin, "/script.js");
796 data.version_id = 200; 798 data.version_id = 200;
797 data.resources_total_size_bytes = 10 + 11; 799 data.resources_total_size_bytes = 10 + 11;
800 data.foreign_fetch_scopes.push_back(URL(origin, "/foo"));
798 801
799 std::vector<Resource> resources1; 802 std::vector<Resource> resources1;
800 resources1.push_back(CreateResource(1, URL(origin, "/resource1"), 10)); 803 resources1.push_back(CreateResource(1, URL(origin, "/resource1"), 10));
801 resources1.push_back(CreateResource(2, URL(origin, "/resource2"), 11)); 804 resources1.push_back(CreateResource(2, URL(origin, "/resource2"), 11));
802 805
803 ServiceWorkerDatabase::RegistrationData deleted_version; 806 ServiceWorkerDatabase::RegistrationData deleted_version;
804 deleted_version.version_id = 222; // Dummy inital value 807 deleted_version.version_id = 222; // Dummy inital value
805 std::vector<int64> newly_purgeable_resources; 808 std::vector<int64> newly_purgeable_resources;
806 809
807 EXPECT_EQ( 810 EXPECT_EQ(
808 ServiceWorkerDatabase::STATUS_OK, 811 ServiceWorkerDatabase::STATUS_OK,
809 database->WriteRegistration( 812 database->WriteRegistration(
810 data, resources1, &deleted_version, &newly_purgeable_resources)); 813 data, resources1, &deleted_version, &newly_purgeable_resources));
811 EXPECT_EQ(kInvalidServiceWorkerVersionId, deleted_version.version_id); 814 EXPECT_EQ(kInvalidServiceWorkerVersionId, deleted_version.version_id);
812 EXPECT_TRUE(newly_purgeable_resources.empty()); 815 EXPECT_TRUE(newly_purgeable_resources.empty());
813 816
814 // Make sure that the registration and resource records are stored. 817 // Make sure that the registration and resource records are stored.
815 RegistrationData data_out; 818 RegistrationData data_out;
816 std::vector<Resource> resources_out; 819 std::vector<Resource> resources_out;
817 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration( 820 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->ReadRegistration(
818 data.registration_id, origin, &data_out, &resources_out)); 821 data.registration_id, origin, &data_out, &resources_out));
819 VerifyRegistrationData(data, data_out); 822 VerifyRegistrationData(data, data_out);
820 VerifyResourceRecords(resources1, resources_out); 823 VerifyResourceRecords(resources1, resources_out);
821 824
822 // Update the registration. 825 // Update the registration.
823 RegistrationData updated_data = data; 826 RegistrationData updated_data = data;
824 updated_data.version_id = data.version_id + 1; 827 updated_data.version_id = data.version_id + 1;
825 updated_data.resources_total_size_bytes = 12 + 13; 828 updated_data.resources_total_size_bytes = 12 + 13;
829 updated_data.foreign_fetch_scopes.clear();
826 std::vector<Resource> resources2; 830 std::vector<Resource> resources2;
827 resources2.push_back(CreateResource(3, URL(origin, "/resource3"), 12)); 831 resources2.push_back(CreateResource(3, URL(origin, "/resource3"), 12));
828 resources2.push_back(CreateResource(4, URL(origin, "/resource4"), 13)); 832 resources2.push_back(CreateResource(4, URL(origin, "/resource4"), 13));
829 833
830 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 834 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
831 database->WriteRegistration(updated_data, 835 database->WriteRegistration(updated_data,
832 resources2, 836 resources2,
833 &deleted_version, 837 &deleted_version,
834 &newly_purgeable_resources)); 838 &newly_purgeable_resources));
835 EXPECT_EQ(data.version_id, deleted_version.version_id); 839 EXPECT_EQ(data.version_id, deleted_version.version_id);
(...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after
1458 GURL origin1("http://example.com"); 1462 GURL origin1("http://example.com");
1459 GURL origin2("http://example.org"); 1463 GURL origin2("http://example.org");
1460 1464
1461 // |origin1| has two registrations (registration1 and registration2). 1465 // |origin1| has two registrations (registration1 and registration2).
1462 RegistrationData data1; 1466 RegistrationData data1;
1463 data1.registration_id = 10; 1467 data1.registration_id = 10;
1464 data1.scope = URL(origin1, "/foo"); 1468 data1.scope = URL(origin1, "/foo");
1465 data1.script = URL(origin1, "/script1.js"); 1469 data1.script = URL(origin1, "/script1.js");
1466 data1.version_id = 100; 1470 data1.version_id = 100;
1467 data1.resources_total_size_bytes = 2013 + 512; 1471 data1.resources_total_size_bytes = 2013 + 512;
1472 data1.foreign_fetch_scopes.push_back(URL(origin1, "/foo/ff"));
1468 1473
1469 std::vector<Resource> resources1; 1474 std::vector<Resource> resources1;
1470 resources1.push_back(CreateResource(1, URL(origin1, "/resource1"), 2013)); 1475 resources1.push_back(CreateResource(1, URL(origin1, "/resource1"), 2013));
1471 resources1.push_back(CreateResource(2, URL(origin1, "/resource2"), 512)); 1476 resources1.push_back(CreateResource(2, URL(origin1, "/resource2"), 512));
1472 ASSERT_EQ( 1477 ASSERT_EQ(
1473 ServiceWorkerDatabase::STATUS_OK, 1478 ServiceWorkerDatabase::STATUS_OK,
1474 database->WriteRegistration( 1479 database->WriteRegistration(
1475 data1, resources1, &deleted_version, &newly_purgeable_resources)); 1480 data1, resources1, &deleted_version, &newly_purgeable_resources));
1476 ASSERT_EQ( 1481 ASSERT_EQ(
1477 ServiceWorkerDatabase::STATUS_OK, 1482 ServiceWorkerDatabase::STATUS_OK,
(...skipping 27 matching lines...) Expand all
1505 database->WriteUserData( 1510 database->WriteUserData(
1506 data2.registration_id, origin1, "key4", "data4")); 1511 data2.registration_id, origin1, "key4", "data4"));
1507 1512
1508 // |origin2| has one registration (registration3). 1513 // |origin2| has one registration (registration3).
1509 RegistrationData data3; 1514 RegistrationData data3;
1510 data3.registration_id = 12; 1515 data3.registration_id = 12;
1511 data3.scope = URL(origin2, "/hoge"); 1516 data3.scope = URL(origin2, "/hoge");
1512 data3.script = URL(origin2, "/script3.js"); 1517 data3.script = URL(origin2, "/script3.js");
1513 data3.version_id = 102; 1518 data3.version_id = 102;
1514 data3.resources_total_size_bytes = 6 + 7; 1519 data3.resources_total_size_bytes = 6 + 7;
1520 data3.foreign_fetch_scopes.push_back(URL(origin2, "/hoge/ff"));
1515 1521
1516 std::vector<Resource> resources3; 1522 std::vector<Resource> resources3;
1517 resources3.push_back(CreateResource(5, URL(origin2, "/resource5"), 6)); 1523 resources3.push_back(CreateResource(5, URL(origin2, "/resource5"), 6));
1518 resources3.push_back(CreateResource(6, URL(origin2, "/resource6"), 7)); 1524 resources3.push_back(CreateResource(6, URL(origin2, "/resource6"), 7));
1519 ASSERT_EQ( 1525 ASSERT_EQ(
1520 ServiceWorkerDatabase::STATUS_OK, 1526 ServiceWorkerDatabase::STATUS_OK,
1521 database->WriteRegistration( 1527 database->WriteRegistration(
1522 data3, resources3, &deleted_version, &newly_purgeable_resources)); 1528 data3, resources3, &deleted_version, &newly_purgeable_resources));
1523 ASSERT_EQ( 1529 ASSERT_EQ(
1524 ServiceWorkerDatabase::STATUS_OK, 1530 ServiceWorkerDatabase::STATUS_OK,
(...skipping 10 matching lines...) Expand all
1535 database->DeleteAllDataForOrigins(origins_to_delete, 1541 database->DeleteAllDataForOrigins(origins_to_delete,
1536 &newly_purgeable_resources)); 1542 &newly_purgeable_resources));
1537 1543
1538 // |origin1| should be removed from the unique origin list. 1544 // |origin1| should be removed from the unique origin list.
1539 std::set<GURL> unique_origins; 1545 std::set<GURL> unique_origins;
1540 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, 1546 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1541 database->GetOriginsWithRegistrations(&unique_origins)); 1547 database->GetOriginsWithRegistrations(&unique_origins));
1542 EXPECT_EQ(1u, unique_origins.size()); 1548 EXPECT_EQ(1u, unique_origins.size());
1543 EXPECT_TRUE(ContainsKey(unique_origins, origin2)); 1549 EXPECT_TRUE(ContainsKey(unique_origins, origin2));
1544 1550
1551 // |origin1| should be removed from the foreign fetch origin list.
1552 unique_origins.clear();
1553 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1554 database->GetOriginsWithForeignFetchRegistrations(&unique_origins));
1555 EXPECT_EQ(1u, unique_origins.size());
1556 EXPECT_TRUE(ContainsKey(unique_origins, origin2));
1557
1545 // The registrations for |origin1| should be removed. 1558 // The registrations for |origin1| should be removed.
1546 std::vector<RegistrationData> registrations; 1559 std::vector<RegistrationData> registrations;
1547 EXPECT_EQ( 1560 EXPECT_EQ(
1548 ServiceWorkerDatabase::STATUS_OK, 1561 ServiceWorkerDatabase::STATUS_OK,
1549 database->GetRegistrationsForOrigin(origin1, &registrations, nullptr)); 1562 database->GetRegistrationsForOrigin(origin1, &registrations, nullptr));
1550 EXPECT_TRUE(registrations.empty()); 1563 EXPECT_TRUE(registrations.empty());
1551 GURL origin_out; 1564 GURL origin_out;
1552 EXPECT_EQ( 1565 EXPECT_EQ(
1553 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND, 1566 ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND,
1554 database->ReadRegistrationOrigin(data1.registration_id, &origin_out)); 1567 database->ReadRegistrationOrigin(data1.registration_id, &origin_out));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1607 scoped_ptr<ServiceWorkerDatabase> database( 1620 scoped_ptr<ServiceWorkerDatabase> database(
1608 CreateDatabase(database_dir.path())); 1621 CreateDatabase(database_dir.path()));
1609 1622
1610 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true)); 1623 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->LazyOpen(true));
1611 ASSERT_TRUE(base::DirectoryExists(database_dir.path())); 1624 ASSERT_TRUE(base::DirectoryExists(database_dir.path()));
1612 1625
1613 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->DestroyDatabase()); 1626 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK, database->DestroyDatabase());
1614 ASSERT_FALSE(base::DirectoryExists(database_dir.path())); 1627 ASSERT_FALSE(base::DirectoryExists(database_dir.path()));
1615 } 1628 }
1616 1629
1630 TEST(ServiceWorkerDatabaseTest, GetOriginsWithForeignFetchRegistrations) {
1631 scoped_ptr<ServiceWorkerDatabase> database(CreateDatabaseInMemory());
1632
1633 std::set<GURL> origins;
1634 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1635 database->GetOriginsWithForeignFetchRegistrations(&origins));
1636 EXPECT_TRUE(origins.empty());
1637
1638 ServiceWorkerDatabase::RegistrationData deleted_version;
1639 std::vector<int64> newly_purgeable_resources;
1640
1641 GURL origin1("http://example.com");
1642 RegistrationData data1;
1643 data1.registration_id = 123;
1644 data1.scope = URL(origin1, "/foo");
1645 data1.script = URL(origin1, "/script1.js");
1646 data1.version_id = 456;
1647 data1.resources_total_size_bytes = 100;
1648 data1.foreign_fetch_scopes.push_back(URL(origin1, "/foo/bar"));
1649 std::vector<Resource> resources1;
1650 resources1.push_back(CreateResource(1, data1.script, 100));
1651 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
1652 database->WriteRegistration(data1, resources1, &deleted_version,
1653 &newly_purgeable_resources));
1654
1655 GURL origin2("https://www.example.com");
1656 RegistrationData data2;
1657 data2.registration_id = 234;
1658 data2.scope = URL(origin2, "/bar");
1659 data2.script = URL(origin2, "/script2.js");
1660 data2.version_id = 567;
1661 data2.resources_total_size_bytes = 200;
1662 std::vector<Resource> resources2;
1663 resources2.push_back(CreateResource(2, data2.script, 200));
1664 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
1665 database->WriteRegistration(data2, resources2, &deleted_version,
1666 &newly_purgeable_resources));
1667
1668 GURL origin3("https://example.org");
1669 RegistrationData data3;
1670 data3.registration_id = 345;
1671 data3.scope = URL(origin3, "/hoge");
1672 data3.script = URL(origin3, "/script3.js");
1673 data3.version_id = 678;
1674 data3.resources_total_size_bytes = 300;
1675 data3.foreign_fetch_scopes.push_back(URL(origin1, "/hoge/foo"));
1676 std::vector<Resource> resources3;
1677 resources3.push_back(CreateResource(3, data3.script, 300));
1678 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
1679 database->WriteRegistration(data3, resources3, &deleted_version,
1680 &newly_purgeable_resources));
1681
1682 // |origin3| has three registrations.
1683 RegistrationData data4;
1684 data4.registration_id = 456;
1685 data4.scope = URL(origin3, "/fuga");
1686 data4.script = URL(origin3, "/script4.js");
1687 data4.version_id = 789;
1688 data4.resources_total_size_bytes = 400;
1689 data4.foreign_fetch_scopes.push_back(URL(origin1, "/fuga/bar"));
1690 std::vector<Resource> resources4;
1691 resources4.push_back(CreateResource(4, data4.script, 400));
1692 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
1693 database->WriteRegistration(data4, resources4, &deleted_version,
1694 &newly_purgeable_resources));
1695
1696 RegistrationData data5;
1697 data5.registration_id = 567;
1698 data5.scope = URL(origin3, "/bla");
1699 data5.script = URL(origin3, "/script5.js");
1700 data5.version_id = 890;
1701 data5.resources_total_size_bytes = 500;
1702 std::vector<Resource> resources5;
1703 resources5.push_back(CreateResource(5, data5.script, 500));
1704 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
1705 database->WriteRegistration(data5, resources5, &deleted_version,
1706 &newly_purgeable_resources));
1707
1708 origins.clear();
1709 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1710 database->GetOriginsWithForeignFetchRegistrations(&origins));
1711 EXPECT_EQ(2U, origins.size());
1712 EXPECT_TRUE(ContainsKey(origins, origin1));
1713 EXPECT_TRUE(ContainsKey(origins, origin3));
1714
1715 // |origin3| has another registration, so should not remove it from the
1716 // foreign fetch origin list.
1717 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
1718 database->DeleteRegistration(data4.registration_id, origin3,
1719 &deleted_version,
1720 &newly_purgeable_resources));
1721 EXPECT_EQ(data4.registration_id, deleted_version.registration_id);
1722
1723 origins.clear();
1724 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1725 database->GetOriginsWithForeignFetchRegistrations(&origins));
1726 EXPECT_EQ(2U, origins.size());
1727 EXPECT_TRUE(ContainsKey(origins, origin1));
1728 EXPECT_TRUE(ContainsKey(origins, origin3));
1729
1730 // |origin3| should be removed from the foreign fetch origin list, since its
1731 // only remaining registration doesn't have foreign fetch scopes.
1732 ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
1733 database->DeleteRegistration(data3.registration_id, origin3,
1734 &deleted_version,
1735 &newly_purgeable_resources));
1736 EXPECT_EQ(data3.registration_id, deleted_version.registration_id);
1737
1738 origins.clear();
1739 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1740 database->GetOriginsWithForeignFetchRegistrations(&origins));
1741 EXPECT_EQ(1U, origins.size());
1742 EXPECT_TRUE(ContainsKey(origins, origin1));
1743
1744 // |origin1| should be removed from the foreign fetch origin list, since we
1745 // replace its registration with one without scopes.
1746 RegistrationData updated_data1 = data1;
1747 updated_data1.version_id++;
1748 updated_data1.resources_total_size_bytes = 12 + 13;
1749 updated_data1.foreign_fetch_scopes.clear();
1750 std::vector<Resource> updated_resources1;
1751 updated_resources1.push_back(
1752 CreateResource(13, URL(origin1, "/resource3"), 12));
1753 updated_resources1.push_back(
1754 CreateResource(14, URL(origin1, "/resource4"), 13));
1755 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1756 database->WriteRegistration(updated_data1, updated_resources1,
1757 &deleted_version,
1758 &newly_purgeable_resources));
1759
1760 origins.clear();
1761 EXPECT_EQ(ServiceWorkerDatabase::STATUS_OK,
1762 database->GetOriginsWithForeignFetchRegistrations(&origins));
1763 EXPECT_EQ(0U, origins.size());
1764 }
1765
1617 } // namespace content 1766 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698