OLD | NEW |
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 <memory> | 5 #include <memory> |
6 #include <set> | 6 #include <set> |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 InitializeResourceData( | 284 InitializeResourceData( |
285 google.add_resources(), "http://www.google.com/image.png", | 285 google.add_resources(), "http://www.google.com/image.png", |
286 content::RESOURCE_TYPE_IMAGE, 6, 4, 1, 4.2, net::MEDIUM, false, false); | 286 content::RESOURCE_TYPE_IMAGE, 6, 4, 1, 4.2, net::MEDIUM, false, false); |
287 InitializeResourceData(google.add_resources(), "http://www.google.com/a.xml", | 287 InitializeResourceData(google.add_resources(), "http://www.google.com/a.xml", |
288 content::RESOURCE_TYPE_LAST_TYPE, 1, 0, 0, 6.1, | 288 content::RESOURCE_TYPE_LAST_TYPE, 1, 0, 0, 6.1, |
289 net::MEDIUM, false, false); | 289 net::MEDIUM, false, false); |
290 InitializeResourceData( | 290 InitializeResourceData( |
291 google.add_resources(), "http://www.resources.google.com/script.js", | 291 google.add_resources(), "http://www.resources.google.com/script.js", |
292 content::RESOURCE_TYPE_SCRIPT, 12, 0, 0, 8.5, net::MEDIUM, true, true); | 292 content::RESOURCE_TYPE_SCRIPT, 12, 0, 0, 8.5, net::MEDIUM, true, true); |
293 | 293 |
| 294 tables_->UpdateResourceData(google, PREFETCH_KEY_TYPE_URL); |
| 295 |
294 PrefetchData yahoo = CreatePrefetchData("www.yahoo.com", 7); | 296 PrefetchData yahoo = CreatePrefetchData("www.yahoo.com", 7); |
295 InitializeResourceData( | 297 InitializeResourceData( |
296 yahoo.add_resources(), "http://www.yahoo.com/image.png", | 298 yahoo.add_resources(), "http://www.yahoo.com/image.png", |
297 content::RESOURCE_TYPE_IMAGE, 120, 1, 1, 10.0, net::MEDIUM, true, false); | 299 content::RESOURCE_TYPE_IMAGE, 120, 1, 1, 10.0, net::MEDIUM, true, false); |
298 | 300 |
| 301 tables_->UpdateResourceData(yahoo, PREFETCH_KEY_TYPE_HOST); |
| 302 |
299 RedirectData facebook = CreateRedirectData("http://fb.com/google", 20); | 303 RedirectData facebook = CreateRedirectData("http://fb.com/google", 20); |
300 InitializeRedirectStat(facebook.add_redirect_endpoints(), | 304 InitializeRedirectStat(facebook.add_redirect_endpoints(), |
301 "https://facebook.fr/google", 4, 2, 1); | 305 "https://facebook.fr/google", 4, 2, 1); |
302 | 306 |
| 307 tables_->UpdateRedirectData(facebook, PREFETCH_KEY_TYPE_URL); |
| 308 |
303 RedirectData microsoft = CreateRedirectData("microsoft.com", 21); | 309 RedirectData microsoft = CreateRedirectData("microsoft.com", 21); |
304 InitializeRedirectStat(microsoft.add_redirect_endpoints(), "m.microsoft.com", | 310 InitializeRedirectStat(microsoft.add_redirect_endpoints(), "m.microsoft.com", |
305 5, 7, 1); | 311 5, 7, 1); |
306 InitializeRedirectStat(microsoft.add_redirect_endpoints(), "microsoft.org", 7, | 312 InitializeRedirectStat(microsoft.add_redirect_endpoints(), "microsoft.org", 7, |
307 2, 0); | 313 2, 0); |
308 | 314 |
309 tables_->UpdateData(google, yahoo, facebook, microsoft); | 315 tables_->UpdateRedirectData(microsoft, PREFETCH_KEY_TYPE_HOST); |
310 | 316 |
311 precache::PrecacheManifest theverge; | 317 precache::PrecacheManifest theverge; |
312 InitializePrecacheResource(theverge.add_resource(), | 318 InitializePrecacheResource(theverge.add_resource(), |
313 "https://www.theverge.com/main.js", 0.7); | 319 "https://www.theverge.com/main.js", 0.7); |
314 | 320 |
315 tables_->UpdateManifestData("theverge.com", theverge); | 321 tables_->UpdateManifestData("theverge.com", theverge); |
316 | 322 |
317 OriginData twitter = CreateOriginData("twitter.com"); | 323 OriginData twitter = CreateOriginData("twitter.com"); |
318 InitializeOriginStat(twitter.add_origins(), "https://dogs.twitter.com", 10, 1, | 324 InitializeOriginStat(twitter.add_origins(), "https://dogs.twitter.com", 10, 1, |
319 0, 12., false, true); | 325 0, 12., false, true); |
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
582 } | 588 } |
583 | 589 |
584 void ResourcePrefetchPredictorTablesTest::AddKey(OriginDataMap* m, | 590 void ResourcePrefetchPredictorTablesTest::AddKey(OriginDataMap* m, |
585 const std::string& key) const { | 591 const std::string& key) const { |
586 auto it = test_origin_data_.find(key); | 592 auto it = test_origin_data_.find(key); |
587 ASSERT_TRUE(it != test_origin_data_.end()); | 593 ASSERT_TRUE(it != test_origin_data_.end()); |
588 m->insert(*it); | 594 m->insert(*it); |
589 } | 595 } |
590 | 596 |
591 void ResourcePrefetchPredictorTablesTest::InitializeSampleData() { | 597 void ResourcePrefetchPredictorTablesTest::InitializeSampleData() { |
592 PrefetchData empty_resource_data; | |
593 RedirectData empty_redirect_data; | |
594 | |
595 { // Url data. | 598 { // Url data. |
596 PrefetchData google = CreatePrefetchData("http://www.google.com", 1); | 599 PrefetchData google = CreatePrefetchData("http://www.google.com", 1); |
597 InitializeResourceData(google.add_resources(), | 600 InitializeResourceData(google.add_resources(), |
598 "http://www.google.com/style.css", | 601 "http://www.google.com/style.css", |
599 content::RESOURCE_TYPE_STYLESHEET, 5, 2, 1, 1.1, | 602 content::RESOURCE_TYPE_STYLESHEET, 5, 2, 1, 1.1, |
600 net::MEDIUM, false, false); | 603 net::MEDIUM, false, false); |
601 InitializeResourceData( | 604 InitializeResourceData( |
602 google.add_resources(), "http://www.google.com/script.js", | 605 google.add_resources(), "http://www.google.com/script.js", |
603 content::RESOURCE_TYPE_SCRIPT, 4, 0, 1, 2.1, net::MEDIUM, false, false); | 606 content::RESOURCE_TYPE_SCRIPT, 4, 0, 1, 2.1, net::MEDIUM, false, false); |
604 InitializeResourceData( | 607 InitializeResourceData( |
(...skipping 20 matching lines...) Expand all Loading... |
625 InitializeResourceData(yahoo.add_resources(), | 628 InitializeResourceData(yahoo.add_resources(), |
626 "http://www.google.com/image.png", | 629 "http://www.google.com/image.png", |
627 content::RESOURCE_TYPE_IMAGE, 20, 1, 0, 10.0, | 630 content::RESOURCE_TYPE_IMAGE, 20, 1, 0, 10.0, |
628 net::MEDIUM, false, false); | 631 net::MEDIUM, false, false); |
629 | 632 |
630 test_url_data_.clear(); | 633 test_url_data_.clear(); |
631 test_url_data_.insert(std::make_pair(google.primary_key(), google)); | 634 test_url_data_.insert(std::make_pair(google.primary_key(), google)); |
632 test_url_data_.insert(std::make_pair(reddit.primary_key(), reddit)); | 635 test_url_data_.insert(std::make_pair(reddit.primary_key(), reddit)); |
633 test_url_data_.insert(std::make_pair(yahoo.primary_key(), yahoo)); | 636 test_url_data_.insert(std::make_pair(yahoo.primary_key(), yahoo)); |
634 | 637 |
635 tables_->UpdateData(google, empty_resource_data, empty_redirect_data, | 638 tables_->UpdateResourceData(google, PREFETCH_KEY_TYPE_URL); |
636 empty_redirect_data); | 639 tables_->UpdateResourceData(reddit, PREFETCH_KEY_TYPE_URL); |
637 tables_->UpdateData(reddit, empty_resource_data, empty_redirect_data, | 640 tables_->UpdateResourceData(yahoo, PREFETCH_KEY_TYPE_URL); |
638 empty_redirect_data); | |
639 tables_->UpdateData(yahoo, empty_resource_data, empty_redirect_data, | |
640 empty_redirect_data); | |
641 } | 641 } |
642 | 642 |
643 { // Host data. | 643 { // Host data. |
644 PrefetchData facebook = CreatePrefetchData("www.facebook.com", 4); | 644 PrefetchData facebook = CreatePrefetchData("www.facebook.com", 4); |
645 InitializeResourceData(facebook.add_resources(), | 645 InitializeResourceData(facebook.add_resources(), |
646 "http://www.facebook.com/style.css", | 646 "http://www.facebook.com/style.css", |
647 content::RESOURCE_TYPE_STYLESHEET, 5, 2, 1, 1.1, | 647 content::RESOURCE_TYPE_STYLESHEET, 5, 2, 1, 1.1, |
648 net::MEDIUM, false, false); | 648 net::MEDIUM, false, false); |
649 InitializeResourceData( | 649 InitializeResourceData( |
650 facebook.add_resources(), "http://www.facebook.com/script.js", | 650 facebook.add_resources(), "http://www.facebook.com/script.js", |
(...skipping 13 matching lines...) Expand all Loading... |
664 PrefetchData yahoo = CreatePrefetchData("www.yahoo.com", 5); | 664 PrefetchData yahoo = CreatePrefetchData("www.yahoo.com", 5); |
665 InitializeResourceData(yahoo.add_resources(), | 665 InitializeResourceData(yahoo.add_resources(), |
666 "http://www.google.com/image.png", | 666 "http://www.google.com/image.png", |
667 content::RESOURCE_TYPE_IMAGE, 20, 1, 0, 10.0, | 667 content::RESOURCE_TYPE_IMAGE, 20, 1, 0, 10.0, |
668 net::MEDIUM, false, false); | 668 net::MEDIUM, false, false); |
669 | 669 |
670 test_host_data_.clear(); | 670 test_host_data_.clear(); |
671 test_host_data_.insert(std::make_pair(facebook.primary_key(), facebook)); | 671 test_host_data_.insert(std::make_pair(facebook.primary_key(), facebook)); |
672 test_host_data_.insert(std::make_pair(yahoo.primary_key(), yahoo)); | 672 test_host_data_.insert(std::make_pair(yahoo.primary_key(), yahoo)); |
673 | 673 |
674 tables_->UpdateData(empty_resource_data, facebook, empty_redirect_data, | 674 tables_->UpdateResourceData(facebook, PREFETCH_KEY_TYPE_HOST); |
675 empty_redirect_data); | 675 tables_->UpdateResourceData(yahoo, PREFETCH_KEY_TYPE_HOST); |
676 tables_->UpdateData(empty_resource_data, yahoo, empty_redirect_data, | |
677 empty_redirect_data); | |
678 } | 676 } |
679 | 677 |
680 { // Url redirect data. | 678 { // Url redirect data. |
681 RedirectData facebook = CreateRedirectData("http://fb.com/google", 6); | 679 RedirectData facebook = CreateRedirectData("http://fb.com/google", 6); |
682 InitializeRedirectStat(facebook.add_redirect_endpoints(), | 680 InitializeRedirectStat(facebook.add_redirect_endpoints(), |
683 "https://facebook.com/google", 5, 1, 0); | 681 "https://facebook.com/google", 5, 1, 0); |
684 InitializeRedirectStat(facebook.add_redirect_endpoints(), | 682 InitializeRedirectStat(facebook.add_redirect_endpoints(), |
685 "https://facebook.com/login", 3, 5, 1); | 683 "https://facebook.com/login", 3, 5, 1); |
686 | 684 |
687 RedirectData nytimes = CreateRedirectData("http://nyt.com", 7); | 685 RedirectData nytimes = CreateRedirectData("http://nyt.com", 7); |
688 InitializeRedirectStat(nytimes.add_redirect_endpoints(), | 686 InitializeRedirectStat(nytimes.add_redirect_endpoints(), |
689 "https://nytimes.com", 2, 0, 0); | 687 "https://nytimes.com", 2, 0, 0); |
690 | 688 |
691 RedirectData google = CreateRedirectData("http://google.com", 8); | 689 RedirectData google = CreateRedirectData("http://google.com", 8); |
692 InitializeRedirectStat(google.add_redirect_endpoints(), | 690 InitializeRedirectStat(google.add_redirect_endpoints(), |
693 "https://google.com", 3, 0, 0); | 691 "https://google.com", 3, 0, 0); |
694 | 692 |
695 test_url_redirect_data_.clear(); | 693 test_url_redirect_data_.clear(); |
696 test_url_redirect_data_.insert( | 694 test_url_redirect_data_.insert( |
697 std::make_pair(facebook.primary_key(), facebook)); | 695 std::make_pair(facebook.primary_key(), facebook)); |
698 test_url_redirect_data_.insert( | 696 test_url_redirect_data_.insert( |
699 std::make_pair(nytimes.primary_key(), nytimes)); | 697 std::make_pair(nytimes.primary_key(), nytimes)); |
700 test_url_redirect_data_.insert( | 698 test_url_redirect_data_.insert( |
701 std::make_pair(google.primary_key(), google)); | 699 std::make_pair(google.primary_key(), google)); |
702 | 700 |
703 tables_->UpdateData(empty_resource_data, empty_resource_data, facebook, | 701 tables_->UpdateRedirectData(facebook, PREFETCH_KEY_TYPE_URL); |
704 empty_redirect_data); | 702 tables_->UpdateRedirectData(nytimes, PREFETCH_KEY_TYPE_URL); |
705 tables_->UpdateData(empty_resource_data, empty_resource_data, nytimes, | 703 tables_->UpdateRedirectData(google, PREFETCH_KEY_TYPE_URL); |
706 empty_redirect_data); | |
707 tables_->UpdateData(empty_resource_data, empty_resource_data, google, | |
708 empty_redirect_data); | |
709 } | 704 } |
710 | 705 |
711 { // Host redirect data. | 706 { // Host redirect data. |
712 RedirectData bbc = CreateRedirectData("bbc.com", 9); | 707 RedirectData bbc = CreateRedirectData("bbc.com", 9); |
713 InitializeRedirectStat(bbc.add_redirect_endpoints(), "www.bbc.com", 8, 4, | 708 InitializeRedirectStat(bbc.add_redirect_endpoints(), "www.bbc.com", 8, 4, |
714 1); | 709 1); |
715 InitializeRedirectStat(bbc.add_redirect_endpoints(), "m.bbc.com", 5, 8, 0); | 710 InitializeRedirectStat(bbc.add_redirect_endpoints(), "m.bbc.com", 5, 8, 0); |
716 InitializeRedirectStat(bbc.add_redirect_endpoints(), "bbc.co.uk", 1, 3, 0); | 711 InitializeRedirectStat(bbc.add_redirect_endpoints(), "bbc.co.uk", 1, 3, 0); |
717 | 712 |
718 RedirectData microsoft = CreateRedirectData("microsoft.com", 10); | 713 RedirectData microsoft = CreateRedirectData("microsoft.com", 10); |
719 InitializeRedirectStat(microsoft.add_redirect_endpoints(), | 714 InitializeRedirectStat(microsoft.add_redirect_endpoints(), |
720 "www.microsoft.com", 10, 0, 0); | 715 "www.microsoft.com", 10, 0, 0); |
721 | 716 |
722 test_host_redirect_data_.clear(); | 717 test_host_redirect_data_.clear(); |
723 test_host_redirect_data_.insert(std::make_pair(bbc.primary_key(), bbc)); | 718 test_host_redirect_data_.insert(std::make_pair(bbc.primary_key(), bbc)); |
724 test_host_redirect_data_.insert( | 719 test_host_redirect_data_.insert( |
725 std::make_pair(microsoft.primary_key(), microsoft)); | 720 std::make_pair(microsoft.primary_key(), microsoft)); |
726 tables_->UpdateData(empty_resource_data, empty_resource_data, | 721 |
727 empty_redirect_data, bbc); | 722 tables_->UpdateRedirectData(bbc, PREFETCH_KEY_TYPE_HOST); |
728 tables_->UpdateData(empty_resource_data, empty_resource_data, | 723 tables_->UpdateRedirectData(microsoft, PREFETCH_KEY_TYPE_HOST); |
729 empty_redirect_data, microsoft); | |
730 } | 724 } |
731 | 725 |
732 { // Manifest data. | 726 { // Manifest data. |
733 precache::PrecacheManifest wikipedia; | 727 precache::PrecacheManifest wikipedia; |
734 InitializePrecacheResource(wikipedia.add_resource(), | 728 InitializePrecacheResource(wikipedia.add_resource(), |
735 "https://en.wikipedia.org/script.js", 0.7); | 729 "https://en.wikipedia.org/script.js", 0.7); |
736 InitializePrecacheResource(wikipedia.add_resource(), | 730 InitializePrecacheResource(wikipedia.add_resource(), |
737 "https://en.wikipedia.org/image.png", 0.3); | 731 "https://en.wikipedia.org/image.png", 0.3); |
738 | 732 |
739 precache::PrecacheManifest youtube; | 733 precache::PrecacheManifest youtube; |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
932 | 926 |
933 TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteSingleDataPoint) { | 927 TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteSingleDataPoint) { |
934 TestDeleteSingleDataPoint(); | 928 TestDeleteSingleDataPoint(); |
935 } | 929 } |
936 | 930 |
937 TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteAllData) { | 931 TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteAllData) { |
938 TestDeleteAllData(); | 932 TestDeleteAllData(); |
939 } | 933 } |
940 | 934 |
941 } // namespace predictors | 935 } // namespace predictors |
OLD | NEW |