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 #ifndef CHROME_BROWSER_HISTORY_HISTORY_BACKEND_H_ | 5 #ifndef CHROME_BROWSER_HISTORY_HISTORY_BACKEND_H_ |
6 #define CHROME_BROWSER_HISTORY_HISTORY_BACKEND_H_ | 6 #define CHROME_BROWSER_HISTORY_HISTORY_BACKEND_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
11 #include "base/file_path.h" | 11 #include "base/file_path.h" |
12 #include "base/gtest_prod_util.h" | 12 #include "base/gtest_prod_util.h" |
13 #include "base/memory/mru_cache.h" | 13 #include "base/memory/mru_cache.h" |
14 #include "base/memory/scoped_ptr.h" | 14 #include "base/memory/scoped_ptr.h" |
15 #include "chrome/browser/cancelable_request.h" | 15 #include "chrome/browser/cancelable_request.h" |
16 #include "chrome/browser/history/archived_database.h" | 16 #include "chrome/browser/history/archived_database.h" |
17 #include "chrome/browser/history/expire_history_backend.h" | 17 #include "chrome/browser/history/expire_history_backend.h" |
18 #include "chrome/browser/history/history_database.h" | 18 #include "chrome/browser/history/history_database.h" |
19 #include "chrome/browser/history/history_marshaling.h" | 19 #include "chrome/browser/history/history_marshaling.h" |
20 #include "chrome/browser/history/history_types.h" | 20 #include "chrome/browser/history/history_types.h" |
21 #include "chrome/browser/history/text_database_manager.h" | 21 #include "chrome/browser/history/text_database_manager.h" |
22 #include "chrome/browser/history/thumbnail_database.h" | 22 #include "chrome/browser/history/thumbnail_database.h" |
23 #include "chrome/browser/history/visit_tracker.h" | 23 #include "chrome/browser/history/visit_tracker.h" |
24 #include "chrome/browser/search_engines/template_url_id.h" | 24 #include "chrome/browser/search_engines/template_url_id.h" |
25 #include "sql/init_status.h" | 25 #include "sql/init_status.h" |
| 26 #include "ui/base/layout.h" |
26 | 27 |
27 class BookmarkService; | 28 class BookmarkService; |
28 class TestingProfile; | 29 class TestingProfile; |
29 struct ThumbnailScore; | 30 struct ThumbnailScore; |
30 | 31 |
31 namespace content { | 32 namespace content { |
32 struct DownloadPersistentStoreInfo; | 33 struct DownloadPersistentStoreInfo; |
33 } | 34 } |
34 | 35 |
35 namespace history { | 36 namespace history { |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 // | 242 // |
242 // Exposed for testing reasons. | 243 // Exposed for testing reasons. |
243 void GetPageThumbnailDirectly( | 244 void GetPageThumbnailDirectly( |
244 const GURL& page_url, | 245 const GURL& page_url, |
245 scoped_refptr<base::RefCountedBytes>* data); | 246 scoped_refptr<base::RefCountedBytes>* data); |
246 | 247 |
247 void MigrateThumbnailsDatabase(); | 248 void MigrateThumbnailsDatabase(); |
248 | 249 |
249 // Favicon ------------------------------------------------------------------- | 250 // Favicon ------------------------------------------------------------------- |
250 | 251 |
251 void GetFavicon(scoped_refptr<GetFaviconRequest> request, | 252 void GetFavicons(scoped_refptr<GetFaviconRequest> request, |
252 const GURL& icon_url, | 253 const std::vector<GURL>& icon_urls, |
253 int icon_types); | 254 int icon_types, |
| 255 int desired_size_in_dip, |
| 256 const std::vector<ui::ScaleFactor>& desired_scale_factors); |
254 | 257 |
255 void GetFaviconForURL(scoped_refptr<GetFaviconRequest> request, | 258 void GetFaviconsForURL( |
256 const GURL& page_url, | 259 scoped_refptr<GetFaviconRequest> request, |
257 int icon_types); | 260 const GURL& page_url, |
| 261 int icon_types, |
| 262 int desired_size_in_dip, |
| 263 const std::vector<ui::ScaleFactor>& desired_scale_factors); |
258 | 264 |
259 void GetFaviconForID(scoped_refptr<GetFaviconRequest> request, FaviconID id); | 265 void GetFaviconForID( |
| 266 scoped_refptr<GetFaviconRequest> request, |
| 267 FaviconID favicon_id, |
| 268 int desired_size_in_dip, |
| 269 ui::ScaleFactor desired_scale_factor); |
260 | 270 |
261 void SetFavicon(const GURL& page_url, | 271 void UpdateFaviconMappingsAndFetch( |
262 const GURL& icon_url, | 272 scoped_refptr<GetFaviconRequest> request, |
263 scoped_refptr<base::RefCountedMemory> data, | 273 const GURL& page_url, |
264 IconType icon_type); | 274 const std::vector<GURL>& icon_urls, |
| 275 int icon_types, |
| 276 int desired_size_in_dip, |
| 277 const std::vector<ui::ScaleFactor>& desired_scale_factors); |
265 | 278 |
266 void UpdateFaviconMappingAndFetch(scoped_refptr<GetFaviconRequest> request, | 279 void SetFavicons( |
267 const GURL& page_url, | 280 const GURL& page_url, |
268 const GURL& icon_url, | 281 IconType icon_type, |
269 IconType icon_type); | 282 const std::vector<FaviconBitmapData>& favicon_bitmap_data, |
| 283 const IconURLSizesMap& icon_url_sizes); |
270 | 284 |
271 void SetFaviconOutOfDateForPage(const GURL& page_url); | 285 void SetFaviconsOutOfDateForPage(const GURL& page_url); |
272 | 286 |
273 void CloneFavicon(const GURL& old_page_url, const GURL& new_page_url); | 287 void CloneFavicons(const GURL& old_page_url, const GURL& new_page_url); |
274 | 288 |
275 void SetImportedFavicons( | 289 void SetImportedFavicons( |
276 const std::vector<ImportedFaviconUsage>& favicon_usage); | 290 const std::vector<ImportedFaviconUsage>& favicon_usage); |
277 | 291 |
278 // Downloads ----------------------------------------------------------------- | 292 // Downloads ----------------------------------------------------------------- |
279 | 293 |
280 void GetNextDownloadId(scoped_refptr<DownloadNextIdRequest> request); | 294 void GetNextDownloadId(scoped_refptr<DownloadNextIdRequest> request); |
281 void QueryDownloads(scoped_refptr<DownloadQueryRequest> request); | 295 void QueryDownloads(scoped_refptr<DownloadQueryRequest> request); |
282 void CleanUpInProgressEntries(); | 296 void CleanUpInProgressEntries(); |
283 void UpdateDownload(const content::DownloadPersistentStoreInfo& data); | 297 void UpdateDownload(const content::DownloadPersistentStoreInfo& data); |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 friend class HistoryTest; // So the unit tests can poke our innards. | 466 friend class HistoryTest; // So the unit tests can poke our innards. |
453 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, DeleteAll); | 467 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, DeleteAll); |
454 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, DeleteAllThenAddData); | 468 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, DeleteAllThenAddData); |
455 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, ImportedFaviconsTest); | 469 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, ImportedFaviconsTest); |
456 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, URLsNoLongerBookmarked); | 470 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, URLsNoLongerBookmarked); |
457 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, StripUsernamePasswordTest); | 471 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, StripUsernamePasswordTest); |
458 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, DeleteThumbnailsDatabaseTest); | 472 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, DeleteThumbnailsDatabaseTest); |
459 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, AddPageVisitSource); | 473 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, AddPageVisitSource); |
460 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, AddPageArgsSource); | 474 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, AddPageArgsSource); |
461 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, AddVisitsSource); | 475 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, AddVisitsSource); |
| 476 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetMostRecentVisits); |
462 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, RemoveVisitsSource); | 477 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, RemoveVisitsSource); |
463 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, RemoveVisitsTransitions); | 478 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, RemoveVisitsTransitions); |
464 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, MigrationVisitSource); | 479 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, MigrationVisitSource); |
465 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, MigrationIconMapping); | 480 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, MigrationIconMapping); |
466 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, SetFaviconMapping); | 481 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, |
467 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, AddOrUpdateIconMapping); | 482 SetFaviconMappingsForPageAndRedirects); |
468 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, SetSameFaviconURLForTwoPages); | 483 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, |
469 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetMostRecentVisits); | 484 SetFaviconMappingsForPageDuplicates); |
470 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconForURL); | 485 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, SetFavicons); |
| 486 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, |
| 487 SetFaviconsSameFaviconURLForTwoPages); |
| 488 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, SetFaviconsDeleteBitmaps); |
| 489 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, SetFaviconsReplaceBitmapData); |
| 490 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, |
| 491 UpdateFaviconMappingsAndFetchMultipleIconTypes); |
| 492 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconsFromDBEmpty); |
| 493 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, |
| 494 GetFaviconsFromDBNoFaviconBitmaps); |
| 495 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, |
| 496 GetFaviconsFromDBSelectClosestMatch); |
| 497 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconsFromDBSingleIconURL); |
| 498 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconsFromDBIconType); |
| 499 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconsFromDBExpired); |
471 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, | 500 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, |
472 CloneFaviconIsRestrictedToSameDomain); | 501 CloneFaviconIsRestrictedToSameDomain); |
473 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, QueryFilteredURLs); | 502 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, QueryFilteredURLs); |
474 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, UpdateVisitDuration); | 503 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, UpdateVisitDuration); |
475 | 504 |
476 friend class ::TestingProfile; | 505 friend class ::TestingProfile; |
477 | 506 |
478 // Computes the name of the specified database on disk. | 507 // Computes the name of the specified database on disk. |
479 FilePath GetThumbnailFileName() const; | 508 FilePath GetThumbnailFileName() const; |
480 | 509 |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
572 // Update the segment information. This is called internally when a page is | 601 // Update the segment information. This is called internally when a page is |
573 // added. Return the segment id of the segment that has been updated. | 602 // added. Return the segment id of the segment that has been updated. |
574 SegmentID UpdateSegments(const GURL& url, | 603 SegmentID UpdateSegments(const GURL& url, |
575 VisitID from_visit, | 604 VisitID from_visit, |
576 VisitID visit_id, | 605 VisitID visit_id, |
577 content::PageTransition transition_type, | 606 content::PageTransition transition_type, |
578 const base::Time ts); | 607 const base::Time ts); |
579 | 608 |
580 // Favicons ------------------------------------------------------------------ | 609 // Favicons ------------------------------------------------------------------ |
581 | 610 |
582 // Used by both UpdateFaviconMappingAndFetch and GetFavicon. | 611 // Used by both UpdateFaviconMappingsAndFetch and GetFavicons. |
583 // If page_url is non-null and SetFavicon has previously been invoked for | 612 // If |page_url| is non-null, the icon urls for |page_url| (and all |
584 // icon_url the favicon url for page_url (and all redirects) is set to | 613 // redirects) are set to the subset of |icon_urls| for which icons are |
585 // icon_url. | 614 // already stored in the database. |
586 // Only a single type can be given in icon_type when page_url is specified. | 615 // If |page_url| is non-null, |icon_types| can be multiple icon types |
587 void UpdateFaviconMappingAndFetchImpl( | 616 // only if |icon_types| == TOUCH_ICON | TOUCH_PRECOMPOSED_ICON. |
| 617 // If multiple icon types are specified, |page_url| will be mapped to the |
| 618 // icon URLs of the largest type available in the database. |
| 619 void UpdateFaviconMappingsAndFetchImpl( |
| 620 scoped_refptr<GetFaviconRequest> request, |
588 const GURL* page_url, | 621 const GURL* page_url, |
589 const GURL& icon_url, | 622 const std::vector<GURL>& icon_urls, |
590 scoped_refptr<GetFaviconRequest> request, | 623 int icon_types, |
591 int icon_type); | 624 int desired_size_in_dip, |
| 625 const std::vector<ui::ScaleFactor>& desired_scale_factors); |
592 | 626 |
593 // Sets the favicon url id for page_url to id. This will also broadcast | 627 // Set the favicon bitmaps for |icon_id|. |
594 // notifications as necessary. | 628 // For each entry in |favicon_bitmap_data|, if a favicon bitmap already |
595 void SetFaviconMapping(const GURL& page_url, | 629 // exists at the entry's pixel size, replace the favicon bitmap's data with |
596 FaviconID id, | 630 // the entry's bitmap data. Otherwise add a new favicon bitmap. |
597 IconType icon_type); | 631 void SetFaviconBitmaps( |
| 632 FaviconID icon_id, |
| 633 const std::vector<FaviconBitmapData>& favicon_bitmap_data); |
598 | 634 |
599 // Updates the FaviconID associated with the url of a page. If there is an | 635 // Returns true if |favicon_bitmap_data| and |icon_url_sizes| passed to |
600 // existing mapping between |page_url| and |id| this does nothing and returns | 636 // SetFavicons() are valid. |
601 // false. If the mapping needs to be added or updated, true is returned. If | 637 // Criteria: |
602 // there is an existing mapping but it does not map to |id|, then the |id| of | 638 // 1) |icon_url_sizes| contains no more than |
603 // the replaced FaviconID is set in |replaced_icon_id|. | 639 // kMaxFaviconsPerPage icon URLs. |
604 bool AddOrUpdateIconMapping(const GURL& page_url, | 640 // kMaxFaviconBitmapsPerIconURL favicon sizes for each icon URL. |
605 FaviconID id, | 641 // 2) The icon URLs and favicon sizes of |favicon_bitmap_data| are a subset |
606 IconType icon_type, | 642 // of |icon_url_sizes|. |
607 FaviconID* replaced_icon_id); | 643 // 3) The favicon sizes for entries in |icon_url_sizes| which have associated |
| 644 // data in |favicon_bitmap_data| is not history::GetDefaultFaviconSizes(). |
| 645 // 4) FaviconBitmapData::bitmap_data contains non NULL bitmap data. |
| 646 bool ValidateSetFaviconsParams( |
| 647 const std::vector<FaviconBitmapData>& favicon_bitmap_data, |
| 648 const IconURLSizesMap& icon_url_sizes) const; |
| 649 |
| 650 // Sets the sizes that the thumbnail database knows that the favicon at |
| 651 // |icon_id| is available from the web. See history_types.h for a more |
| 652 // detailed description of FaviconSizes. |
| 653 // Deletes any favicon bitmaps currently mapped to |icon_id| whose pixel |
| 654 // sizes are not contained in |favicon_sizes|. |
| 655 void SetFaviconSizes(FaviconID icon_id, const FaviconSizes& favicon_sizes); |
| 656 |
| 657 // Returns true if there are favicons for |page_url| and one of the types in |
| 658 // |icon_types|. |
| 659 // |favicon_bitmap_results| is set to the favicon bitmaps which most closely |
| 660 // match |desired_size_in_dip| and |desired_scale_factors|. If |
| 661 // |desired_size_in_dip| is 0, the largest favicon bitmap with one of the icon |
| 662 // types in |icon_types| is returned. If |icon_types| contains multiple icon |
| 663 // types and there are several matched icon types in the database, results |
| 664 // will only be returned for a single icon type in the priority of |
| 665 // TOUCH_PRECOMPOSED_ICON, TOUCH_ICON, and FAVICON. See the comment for |
| 666 // GetFaviconResultsForBestMatch() for more details on how |
| 667 // |favicon_bitmap_results| is constructed. |
| 668 // |icon_url_sizes| is set to a mapping of all the icon URLs which are mapped |
| 669 // to |page_url| to the sizes of the favicon bitmaps available at each icon |
| 670 // URL on the web. |
| 671 bool GetFaviconsFromDB( |
| 672 const GURL& page_url, |
| 673 int icon_types, |
| 674 const int desired_size_in_dip, |
| 675 const std::vector<ui::ScaleFactor>& desired_scale_factors, |
| 676 std::vector<FaviconBitmapResult>* favicon_bitmap_results, |
| 677 IconURLSizesMap* icon_url_sizes); |
| 678 |
| 679 // Returns the favicon bitmaps which most closely match |desired_size_in_dip| |
| 680 // and |desired_scale_factors| in |favicon_bitmap_results|. If |
| 681 // |desired_size_in_dip| is 0, only the largest favicon bitmap is returned. |
| 682 // Goodness is computed via SelectFaviconBitmapIDs(). It is computed on a |
| 683 // per favicon id basis, thus all |favicon_bitmap_results| are guaranteed to |
| 684 // be for the same FaviconID. |favicon_bitmap_results| will have at most one |
| 685 // entry for each desired scale factor. There will be less entries if the same |
| 686 // favicon bitmap is the best result for multiple scale factors. |
| 687 // Returns true if there were no errors. |
| 688 bool GetFaviconBitmapResultsForBestMatch( |
| 689 const std::vector<FaviconID>& candidate_favicon_ids, |
| 690 int desired_size_in_dip, |
| 691 const std::vector<ui::ScaleFactor>& desired_scale_factors, |
| 692 std::vector<FaviconBitmapResult>* favicon_bitmap_results); |
| 693 |
| 694 // Build mapping of the icon URLs for |favicon_ids| to the sizes of the |
| 695 // favicon bitmaps available at each icon URL on the web. Favicon bitmaps |
| 696 // might not be cached in the thumbnail database for any of the sizes in the |
| 697 // returned map. See history_types.h for a more detailed description of |
| 698 // IconURLSizesMap. |
| 699 // Returns true if map was successfully built. |
| 700 bool BuildIconURLSizesMap(const std::vector<FaviconID>& favicon_ids, |
| 701 IconURLSizesMap* icon_url_sizes); |
| 702 |
| 703 // Maps the favicon ids in |icon_ids| to |page_url| (and all redirects) |
| 704 // for |icon_type|. This will also broadcast notifications as necessary. |
| 705 void SetFaviconMappingsForPageAndRedirects( |
| 706 const GURL& page_url, |
| 707 IconType icon_type, |
| 708 const std::vector<FaviconID>& icon_ids); |
| 709 |
| 710 // Maps the favicon ids in |icon_ids| to |page_url| for |icon_type|. |
| 711 // Returns true if the function changed some of |page_url|'s mappings. |
| 712 bool SetFaviconMappingsForPage(const GURL& page_url, |
| 713 IconType icon_type, |
| 714 const std::vector<FaviconID>& icon_ids); |
608 | 715 |
609 // Generic stuff ------------------------------------------------------------- | 716 // Generic stuff ------------------------------------------------------------- |
610 | 717 |
611 // Processes the next scheduled HistoryDBTask, scheduling this method | 718 // Processes the next scheduled HistoryDBTask, scheduling this method |
612 // to be invoked again if there are more tasks that need to run. | 719 // to be invoked again if there are more tasks that need to run. |
613 void ProcessDBTaskImpl(); | 720 void ProcessDBTaskImpl(); |
614 | 721 |
615 // Release all tasks in history_db_tasks_ and clears it. | 722 // Release all tasks in history_db_tasks_ and clears it. |
616 void ReleaseDBTasks(); | 723 void ReleaseDBTasks(); |
617 | 724 |
(...skipping 23 matching lines...) Expand all Loading... |
641 // set of URLs in the URL table (these should correspond to the bookmarked | 748 // set of URLs in the URL table (these should correspond to the bookmarked |
642 // URLs). | 749 // URLs). |
643 // | 750 // |
644 // The IDs of the URLs may change. | 751 // The IDs of the URLs may change. |
645 bool ClearAllMainHistory(const URLRows& kept_urls); | 752 bool ClearAllMainHistory(const URLRows& kept_urls); |
646 | 753 |
647 // Returns the BookmarkService, blocking until it is loaded. This may return | 754 // Returns the BookmarkService, blocking until it is loaded. This may return |
648 // NULL during testing. | 755 // NULL during testing. |
649 BookmarkService* GetBookmarkService(); | 756 BookmarkService* GetBookmarkService(); |
650 | 757 |
651 // If there is a favicon for |page_url| and one of the types in |icon_types|, | |
652 // |favicon| is set appropriately and true is returned. | |
653 bool GetFaviconFromDB( | |
654 const GURL& page_url, | |
655 int icon_types, | |
656 std::vector<FaviconBitmapResult>* favicon_bitmap_results); | |
657 | |
658 // Get favicon by the given |favicon_id|, the |favicon| is set appropriately | |
659 // and true if returned on success, otherwise false is returned. | |
660 bool GetFaviconFromDB( | |
661 FaviconID favicon_id, | |
662 std::vector<FaviconBitmapResult>* favicon_bitmap_results); | |
663 | |
664 // Notify any observers of an addition to the visit database. | 758 // Notify any observers of an addition to the visit database. |
665 void NotifyVisitObservers(const VisitRow& visit); | 759 void NotifyVisitObservers(const VisitRow& visit); |
666 | 760 |
667 // Data ---------------------------------------------------------------------- | 761 // Data ---------------------------------------------------------------------- |
668 | 762 |
669 // Delegate. See the class definition above for more information. This will | 763 // Delegate. See the class definition above for more information. This will |
670 // be NULL before Init is called and after Cleanup, but is guaranteed | 764 // be NULL before Init is called and after Cleanup, but is guaranteed |
671 // non-NULL in between. | 765 // non-NULL in between. |
672 scoped_ptr<Delegate> delegate_; | 766 scoped_ptr<Delegate> delegate_; |
673 | 767 |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
759 // Used to provide the Android ContentProvider APIs. | 853 // Used to provide the Android ContentProvider APIs. |
760 scoped_ptr<AndroidProviderBackend> android_provider_backend_; | 854 scoped_ptr<AndroidProviderBackend> android_provider_backend_; |
761 #endif | 855 #endif |
762 | 856 |
763 DISALLOW_COPY_AND_ASSIGN(HistoryBackend); | 857 DISALLOW_COPY_AND_ASSIGN(HistoryBackend); |
764 }; | 858 }; |
765 | 859 |
766 } // namespace history | 860 } // namespace history |
767 | 861 |
768 #endif // CHROME_BROWSER_HISTORY_HISTORY_BACKEND_H_ | 862 #endif // CHROME_BROWSER_HISTORY_HISTORY_BACKEND_H_ |
OLD | NEW |