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 // The history system runs on a background thread so that potentially slow | 5 // The history system runs on a background thread so that potentially slow |
6 // database operations don't delay the browser. This backend processing is | 6 // database operations don't delay the browser. This backend processing is |
7 // represented by HistoryBackend. The HistoryService's job is to dispatch to | 7 // represented by HistoryBackend. The HistoryService's job is to dispatch to |
8 // that thread. | 8 // that thread. |
9 // | 9 // |
10 // Main thread History thread | 10 // Main thread History thread |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 #include "third_party/skia/include/core/SkBitmap.h" | 67 #include "third_party/skia/include/core/SkBitmap.h" |
68 | 68 |
69 using base::Time; | 69 using base::Time; |
70 using history::HistoryBackend; | 70 using history::HistoryBackend; |
71 | 71 |
72 namespace { | 72 namespace { |
73 | 73 |
74 static const char* kHistoryThreadName = "Chrome_HistoryThread"; | 74 static const char* kHistoryThreadName = "Chrome_HistoryThread"; |
75 | 75 |
76 void RunWithFaviconResults( | 76 void RunWithFaviconResults( |
77 const FaviconService::FaviconResultsCallback& callback, | 77 const favicon_base::FaviconResultsCallback& callback, |
78 std::vector<favicon_base::FaviconBitmapResult>* bitmap_results) { | 78 std::vector<favicon_base::FaviconBitmapResult>* bitmap_results) { |
79 callback.Run(*bitmap_results); | 79 callback.Run(*bitmap_results); |
80 } | 80 } |
81 | 81 |
82 void RunWithFaviconResult(const FaviconService::FaviconRawCallback& callback, | 82 void RunWithFaviconResult(const favicon_base::FaviconRawCallback& callback, |
83 favicon_base::FaviconBitmapResult* bitmap_result) { | 83 favicon_base::FaviconBitmapResult* bitmap_result) { |
84 callback.Run(*bitmap_result); | 84 callback.Run(*bitmap_result); |
85 } | 85 } |
86 | 86 |
87 // Extract history::URLRows into GURLs for VisitedLinkMaster. | 87 // Extract history::URLRows into GURLs for VisitedLinkMaster. |
88 class URLIteratorFromURLRows | 88 class URLIteratorFromURLRows |
89 : public visitedlink::VisitedLinkMaster::URLIterator { | 89 : public visitedlink::VisitedLinkMaster::URLIterator { |
90 public: | 90 public: |
91 explicit URLIteratorFromURLRows(const history::URLRows& url_rows) | 91 explicit URLIteratorFromURLRows(const history::URLRows& url_rows) |
92 : itr_(url_rows.begin()), | 92 : itr_(url_rows.begin()), |
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
552 | 552 |
553 ScheduleAndForget(PRIORITY_NORMAL, | 553 ScheduleAndForget(PRIORITY_NORMAL, |
554 &HistoryBackend::AddPagesWithDetails, info, visit_source); | 554 &HistoryBackend::AddPagesWithDetails, info, visit_source); |
555 } | 555 } |
556 | 556 |
557 base::CancelableTaskTracker::TaskId HistoryService::GetFavicons( | 557 base::CancelableTaskTracker::TaskId HistoryService::GetFavicons( |
558 const std::vector<GURL>& icon_urls, | 558 const std::vector<GURL>& icon_urls, |
559 int icon_types, | 559 int icon_types, |
560 int desired_size_in_dip, | 560 int desired_size_in_dip, |
561 const std::vector<ui::ScaleFactor>& desired_scale_factors, | 561 const std::vector<ui::ScaleFactor>& desired_scale_factors, |
562 const FaviconService::FaviconResultsCallback& callback, | 562 const favicon_base::FaviconResultsCallback& callback, |
563 base::CancelableTaskTracker* tracker) { | 563 base::CancelableTaskTracker* tracker) { |
564 DCHECK(thread_checker_.CalledOnValidThread()); | 564 DCHECK(thread_checker_.CalledOnValidThread()); |
565 | 565 |
566 std::vector<favicon_base::FaviconBitmapResult>* results = | 566 std::vector<favicon_base::FaviconBitmapResult>* results = |
567 new std::vector<favicon_base::FaviconBitmapResult>(); | 567 new std::vector<favicon_base::FaviconBitmapResult>(); |
568 return tracker->PostTaskAndReply( | 568 return tracker->PostTaskAndReply( |
569 thread_->message_loop_proxy().get(), | 569 thread_->message_loop_proxy().get(), |
570 FROM_HERE, | 570 FROM_HERE, |
571 base::Bind(&HistoryBackend::GetFavicons, | 571 base::Bind(&HistoryBackend::GetFavicons, |
572 history_backend_.get(), | 572 history_backend_.get(), |
573 icon_urls, | 573 icon_urls, |
574 icon_types, | 574 icon_types, |
575 desired_size_in_dip, | 575 desired_size_in_dip, |
576 desired_scale_factors, | 576 desired_scale_factors, |
577 results), | 577 results), |
578 base::Bind(&RunWithFaviconResults, callback, base::Owned(results))); | 578 base::Bind(&RunWithFaviconResults, callback, base::Owned(results))); |
579 } | 579 } |
580 | 580 |
581 base::CancelableTaskTracker::TaskId HistoryService::GetFaviconsForURL( | 581 base::CancelableTaskTracker::TaskId HistoryService::GetFaviconsForURL( |
582 const GURL& page_url, | 582 const GURL& page_url, |
583 int icon_types, | 583 int icon_types, |
584 int desired_size_in_dip, | 584 int desired_size_in_dip, |
585 const std::vector<ui::ScaleFactor>& desired_scale_factors, | 585 const std::vector<ui::ScaleFactor>& desired_scale_factors, |
586 const FaviconService::FaviconResultsCallback& callback, | 586 const favicon_base::FaviconResultsCallback& callback, |
587 base::CancelableTaskTracker* tracker) { | 587 base::CancelableTaskTracker* tracker) { |
588 DCHECK(thread_checker_.CalledOnValidThread()); | 588 DCHECK(thread_checker_.CalledOnValidThread()); |
589 | 589 |
590 std::vector<favicon_base::FaviconBitmapResult>* results = | 590 std::vector<favicon_base::FaviconBitmapResult>* results = |
591 new std::vector<favicon_base::FaviconBitmapResult>(); | 591 new std::vector<favicon_base::FaviconBitmapResult>(); |
592 return tracker->PostTaskAndReply( | 592 return tracker->PostTaskAndReply( |
593 thread_->message_loop_proxy().get(), | 593 thread_->message_loop_proxy().get(), |
594 FROM_HERE, | 594 FROM_HERE, |
595 base::Bind(&HistoryBackend::GetFaviconsForURL, | 595 base::Bind(&HistoryBackend::GetFaviconsForURL, |
596 history_backend_.get(), | 596 history_backend_.get(), |
597 page_url, | 597 page_url, |
598 icon_types, | 598 icon_types, |
599 desired_size_in_dip, | 599 desired_size_in_dip, |
600 desired_scale_factors, | 600 desired_scale_factors, |
601 results), | 601 results), |
602 base::Bind(&RunWithFaviconResults, callback, base::Owned(results))); | 602 base::Bind(&RunWithFaviconResults, callback, base::Owned(results))); |
603 } | 603 } |
604 | 604 |
605 base::CancelableTaskTracker::TaskId HistoryService::GetLargestFaviconForURL( | 605 base::CancelableTaskTracker::TaskId HistoryService::GetLargestFaviconForURL( |
606 const GURL& page_url, | 606 const GURL& page_url, |
607 const std::vector<int>& icon_types, | 607 const std::vector<int>& icon_types, |
608 int minimum_size_in_pixels, | 608 int minimum_size_in_pixels, |
609 const FaviconService::FaviconRawCallback& callback, | 609 const favicon_base::FaviconRawCallback& callback, |
610 base::CancelableTaskTracker* tracker) { | 610 base::CancelableTaskTracker* tracker) { |
611 DCHECK(thread_checker_.CalledOnValidThread()); | 611 DCHECK(thread_checker_.CalledOnValidThread()); |
612 | 612 |
613 favicon_base::FaviconBitmapResult* result = | 613 favicon_base::FaviconBitmapResult* result = |
614 new favicon_base::FaviconBitmapResult(); | 614 new favicon_base::FaviconBitmapResult(); |
615 return tracker->PostTaskAndReply( | 615 return tracker->PostTaskAndReply( |
616 thread_->message_loop_proxy().get(), | 616 thread_->message_loop_proxy().get(), |
617 FROM_HERE, | 617 FROM_HERE, |
618 base::Bind(&HistoryBackend::GetLargestFaviconForURL, | 618 base::Bind(&HistoryBackend::GetLargestFaviconForURL, |
619 history_backend_.get(), | 619 history_backend_.get(), |
620 page_url, | 620 page_url, |
621 icon_types, | 621 icon_types, |
622 minimum_size_in_pixels, | 622 minimum_size_in_pixels, |
623 result), | 623 result), |
624 base::Bind(&RunWithFaviconResult, callback, base::Owned(result))); | 624 base::Bind(&RunWithFaviconResult, callback, base::Owned(result))); |
625 } | 625 } |
626 | 626 |
627 base::CancelableTaskTracker::TaskId HistoryService::GetFaviconForID( | 627 base::CancelableTaskTracker::TaskId HistoryService::GetFaviconForID( |
628 favicon_base::FaviconID favicon_id, | 628 favicon_base::FaviconID favicon_id, |
629 int desired_size_in_dip, | 629 int desired_size_in_dip, |
630 ui::ScaleFactor desired_scale_factor, | 630 ui::ScaleFactor desired_scale_factor, |
631 const FaviconService::FaviconResultsCallback& callback, | 631 const favicon_base::FaviconResultsCallback& callback, |
632 base::CancelableTaskTracker* tracker) { | 632 base::CancelableTaskTracker* tracker) { |
633 DCHECK(thread_checker_.CalledOnValidThread()); | 633 DCHECK(thread_checker_.CalledOnValidThread()); |
634 | 634 |
635 std::vector<favicon_base::FaviconBitmapResult>* results = | 635 std::vector<favicon_base::FaviconBitmapResult>* results = |
636 new std::vector<favicon_base::FaviconBitmapResult>(); | 636 new std::vector<favicon_base::FaviconBitmapResult>(); |
637 return tracker->PostTaskAndReply( | 637 return tracker->PostTaskAndReply( |
638 thread_->message_loop_proxy().get(), | 638 thread_->message_loop_proxy().get(), |
639 FROM_HERE, | 639 FROM_HERE, |
640 base::Bind(&HistoryBackend::GetFaviconForID, | 640 base::Bind(&HistoryBackend::GetFaviconForID, |
641 history_backend_.get(), | 641 history_backend_.get(), |
642 favicon_id, | 642 favicon_id, |
643 desired_size_in_dip, | 643 desired_size_in_dip, |
644 desired_scale_factor, | 644 desired_scale_factor, |
645 results), | 645 results), |
646 base::Bind(&RunWithFaviconResults, callback, base::Owned(results))); | 646 base::Bind(&RunWithFaviconResults, callback, base::Owned(results))); |
647 } | 647 } |
648 | 648 |
649 base::CancelableTaskTracker::TaskId | 649 base::CancelableTaskTracker::TaskId |
650 HistoryService::UpdateFaviconMappingsAndFetch( | 650 HistoryService::UpdateFaviconMappingsAndFetch( |
651 const GURL& page_url, | 651 const GURL& page_url, |
652 const std::vector<GURL>& icon_urls, | 652 const std::vector<GURL>& icon_urls, |
653 int icon_types, | 653 int icon_types, |
654 int desired_size_in_dip, | 654 int desired_size_in_dip, |
655 const std::vector<ui::ScaleFactor>& desired_scale_factors, | 655 const std::vector<ui::ScaleFactor>& desired_scale_factors, |
656 const FaviconService::FaviconResultsCallback& callback, | 656 const favicon_base::FaviconResultsCallback& callback, |
657 base::CancelableTaskTracker* tracker) { | 657 base::CancelableTaskTracker* tracker) { |
658 DCHECK(thread_checker_.CalledOnValidThread()); | 658 DCHECK(thread_checker_.CalledOnValidThread()); |
659 | 659 |
660 std::vector<favicon_base::FaviconBitmapResult>* results = | 660 std::vector<favicon_base::FaviconBitmapResult>* results = |
661 new std::vector<favicon_base::FaviconBitmapResult>(); | 661 new std::vector<favicon_base::FaviconBitmapResult>(); |
662 return tracker->PostTaskAndReply( | 662 return tracker->PostTaskAndReply( |
663 thread_->message_loop_proxy().get(), | 663 thread_->message_loop_proxy().get(), |
664 FROM_HERE, | 664 FROM_HERE, |
665 base::Bind(&HistoryBackend::UpdateFaviconMappingsAndFetch, | 665 base::Bind(&HistoryBackend::UpdateFaviconMappingsAndFetch, |
666 history_backend_.get(), | 666 history_backend_.get(), |
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1186 DCHECK(thread_checker_.CalledOnValidThread()); | 1186 DCHECK(thread_checker_.CalledOnValidThread()); |
1187 visit_database_observers_.RemoveObserver(observer); | 1187 visit_database_observers_.RemoveObserver(observer); |
1188 } | 1188 } |
1189 | 1189 |
1190 void HistoryService::NotifyVisitDBObserversOnAddVisit( | 1190 void HistoryService::NotifyVisitDBObserversOnAddVisit( |
1191 const history::BriefVisitInfo& info) { | 1191 const history::BriefVisitInfo& info) { |
1192 DCHECK(thread_checker_.CalledOnValidThread()); | 1192 DCHECK(thread_checker_.CalledOnValidThread()); |
1193 FOR_EACH_OBSERVER(history::VisitDatabaseObserver, visit_database_observers_, | 1193 FOR_EACH_OBSERVER(history::VisitDatabaseObserver, visit_database_observers_, |
1194 OnAddVisit(info)); | 1194 OnAddVisit(info)); |
1195 } | 1195 } |
OLD | NEW |