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

Side by Side Diff: chrome/browser/history/history_backend.cc

Issue 6693021: fav icon -> favicon. Pass 5: fav_icon -> favicon (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/history/history.cc ('k') | chrome/browser/history/history_backend_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/history/history_backend.h" 5 #include "chrome/browser/history/history_backend.h"
6 6
7 #include <list> 7 #include <list>
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 1623 matching lines...) Expand 10 before | Expand all | Expand 10 after
1634 if (!db_.get() || !thumbnail_db_.get()) 1634 if (!db_.get() || !thumbnail_db_.get())
1635 return; 1635 return;
1636 1636
1637 Time now = Time::Now(); 1637 Time now = Time::Now();
1638 1638
1639 // Track all URLs that had their favicons set or updated. 1639 // Track all URLs that had their favicons set or updated.
1640 std::set<GURL> favicons_changed; 1640 std::set<GURL> favicons_changed;
1641 1641
1642 for (size_t i = 0; i < favicon_usage.size(); i++) { 1642 for (size_t i = 0; i < favicon_usage.size(); i++) {
1643 FavIconID favicon_id = thumbnail_db_->GetFavIconIDForFavIconURL( 1643 FavIconID favicon_id = thumbnail_db_->GetFavIconIDForFavIconURL(
1644 favicon_usage[i].favicon_url, history::FAV_ICON, NULL); 1644 favicon_usage[i].favicon_url, history::FAVICON, NULL);
1645 if (!favicon_id) { 1645 if (!favicon_id) {
1646 // This favicon doesn't exist yet, so we create it using the given data. 1646 // This favicon doesn't exist yet, so we create it using the given data.
1647 favicon_id = thumbnail_db_->AddFavIcon(favicon_usage[i].favicon_url, 1647 favicon_id = thumbnail_db_->AddFavIcon(favicon_usage[i].favicon_url,
1648 history::FAV_ICON); 1648 history::FAVICON);
1649 if (!favicon_id) 1649 if (!favicon_id)
1650 continue; // Unable to add the favicon. 1650 continue; // Unable to add the favicon.
1651 thumbnail_db_->SetFavicon(favicon_id, 1651 thumbnail_db_->SetFavicon(favicon_id,
1652 new RefCountedBytes(favicon_usage[i].png_data), now); 1652 new RefCountedBytes(favicon_usage[i].png_data), now);
1653 } 1653 }
1654 1654
1655 // Save the mapping from all the URLs to the favicon. 1655 // Save the mapping from all the URLs to the favicon.
1656 BookmarkService* bookmark_service = GetBookmarkService(); 1656 BookmarkService* bookmark_service = GetBookmarkService();
1657 for (std::set<GURL>::const_iterator url = favicon_usage[i].urls.begin(); 1657 for (std::set<GURL>::const_iterator url = favicon_usage[i].urls.begin();
1658 url != favicon_usage[i].urls.end(); ++url) { 1658 url != favicon_usage[i].urls.end(); ++url) {
1659 URLRow url_row; 1659 URLRow url_row;
1660 if (!db_->GetRowForURL(*url, &url_row)) { 1660 if (!db_->GetRowForURL(*url, &url_row)) {
1661 // If the URL is present as a bookmark, add the url in history to 1661 // If the URL is present as a bookmark, add the url in history to
1662 // save the favicon mapping. This will match with what history db does 1662 // save the favicon mapping. This will match with what history db does
1663 // for regular bookmarked URLs with favicons - when history db is 1663 // for regular bookmarked URLs with favicons - when history db is
1664 // cleaned, we keep an entry in the db with 0 visits as long as that 1664 // cleaned, we keep an entry in the db with 0 visits as long as that
1665 // url is bookmarked. 1665 // url is bookmarked.
1666 if (bookmark_service && bookmark_service_->IsBookmarked(*url)) { 1666 if (bookmark_service && bookmark_service_->IsBookmarked(*url)) {
1667 URLRow url_info(*url); 1667 URLRow url_info(*url);
1668 url_info.set_visit_count(0); 1668 url_info.set_visit_count(0);
1669 url_info.set_typed_count(0); 1669 url_info.set_typed_count(0);
1670 url_info.set_last_visit(base::Time()); 1670 url_info.set_last_visit(base::Time());
1671 url_info.set_hidden(false); 1671 url_info.set_hidden(false);
1672 db_->AddURL(url_info); 1672 db_->AddURL(url_info);
1673 thumbnail_db_->AddIconMapping(*url, favicon_id); 1673 thumbnail_db_->AddIconMapping(*url, favicon_id);
1674 favicons_changed.insert(*url); 1674 favicons_changed.insert(*url);
1675 } 1675 }
1676 } else { 1676 } else {
1677 if (!thumbnail_db_->GetIconMappingForPageURL(*url, FAV_ICON, NULL)) { 1677 if (!thumbnail_db_->GetIconMappingForPageURL(*url, FAVICON, NULL)) {
1678 // URL is present in history, update the favicon *only* if it is not 1678 // URL is present in history, update the favicon *only* if it is not
1679 // set already. 1679 // set already.
1680 thumbnail_db_->AddIconMapping(*url, favicon_id); 1680 thumbnail_db_->AddIconMapping(*url, favicon_id);
1681 favicons_changed.insert(*url); 1681 favicons_changed.insert(*url);
1682 } 1682 }
1683 } 1683 }
1684 } 1684 }
1685 } 1685 }
1686 1686
1687 if (!favicons_changed.empty()) { 1687 if (!favicons_changed.empty()) {
1688 // Send the notification about the changed favicon URLs. 1688 // Send the notification about the changed favicon URLs.
1689 FavIconChangeDetails* changed_details = new FavIconChangeDetails; 1689 FavIconChangeDetails* changed_details = new FavIconChangeDetails;
1690 changed_details->urls.swap(favicons_changed); 1690 changed_details->urls.swap(favicons_changed);
1691 BroadcastNotifications(NotificationType::FAVICON_CHANGED, changed_details); 1691 BroadcastNotifications(NotificationType::FAVICON_CHANGED, changed_details);
1692 } 1692 }
1693 } 1693 }
1694 1694
1695 void HistoryBackend::UpdateFavIconMappingAndFetchImpl( 1695 void HistoryBackend::UpdateFavIconMappingAndFetchImpl(
1696 const GURL* page_url, 1696 const GURL* page_url,
1697 const GURL& icon_url, 1697 const GURL& icon_url,
1698 scoped_refptr<GetFavIconRequest> request, 1698 scoped_refptr<GetFavIconRequest> request,
1699 int icon_types) { 1699 int icon_types) {
1700 // Check only a single type was given when the page_url was specified. 1700 // Check only a single type was given when the page_url was specified.
1701 DCHECK(!page_url || (page_url && (icon_types == FAV_ICON || 1701 DCHECK(!page_url || (page_url && (icon_types == FAVICON ||
1702 icon_types == TOUCH_ICON || icon_types == TOUCH_PRECOMPOSED_ICON))); 1702 icon_types == TOUCH_ICON || icon_types == TOUCH_PRECOMPOSED_ICON)));
1703 1703
1704 if (request->canceled()) 1704 if (request->canceled())
1705 return; 1705 return;
1706 1706
1707 bool know_favicon = false; 1707 bool know_favicon = false;
1708 bool expired = true; 1708 bool expired = true;
1709 scoped_refptr<RefCountedBytes> data; 1709 scoped_refptr<RefCountedBytes> data;
1710 1710
1711 if (thumbnail_db_.get()) { 1711 if (thumbnail_db_.get()) {
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after
2255 return true; 2255 return true;
2256 } 2256 }
2257 2257
2258 BookmarkService* HistoryBackend::GetBookmarkService() { 2258 BookmarkService* HistoryBackend::GetBookmarkService() {
2259 if (bookmark_service_) 2259 if (bookmark_service_)
2260 bookmark_service_->BlockTillLoaded(); 2260 bookmark_service_->BlockTillLoaded();
2261 return bookmark_service_; 2261 return bookmark_service_;
2262 } 2262 }
2263 2263
2264 } // namespace history 2264 } // namespace history
OLDNEW
« no previous file with comments | « chrome/browser/history/history.cc ('k') | chrome/browser/history/history_backend_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698