| Index: components/history/core/browser/url_row.h
|
| diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
|
| index c333c31a44a7ed519d9768e8c2aea8b28502b25f..64f00dabec0c099db8ef1794bbdb5b0fe103f560 100644
|
| --- a/components/history/core/browser/url_row.h
|
| +++ b/components/history/core/browser/url_row.h
|
| @@ -18,16 +18,6 @@ typedef int64_t URLID;
|
|
|
| // Holds all information globally associated with one URL (one row in the
|
| // URL table).
|
| -//
|
| -// This keeps track of dirty bits, which are currently unused:
|
| -//
|
| -// TODO(brettw) the dirty bits are broken in a number of respects. First, the
|
| -// database will want to update them on a const object, so they need to be
|
| -// mutable.
|
| -//
|
| -// Second, there is a problem copying. If you make a copy of this structure
|
| -// (as we allow since we put this into vectors in various places) then the
|
| -// dirty bits will not be in sync for these copies.
|
| class URLRow {
|
| public:
|
| URLRow();
|
| @@ -39,6 +29,7 @@ class URLRow {
|
| URLRow(const GURL& url, URLID id);
|
|
|
| URLRow(const URLRow& other);
|
| + URLRow(URLRow&&) noexcept;
|
|
|
| virtual ~URLRow();
|
| URLRow& operator=(const URLRow& other);
|
| @@ -51,6 +42,7 @@ class URLRow {
|
| // row.
|
| void set_id(URLID id) { id_ = id; }
|
|
|
| + void set_url(const GURL& url) { url_ = url; }
|
| const GURL& url() const { return url_; }
|
|
|
| const base::string16& title() const {
|
| @@ -121,19 +113,10 @@ class URLRow {
|
| void Swap(URLRow* other);
|
|
|
| private:
|
| - // This class writes directly into this structure and clears our dirty bits
|
| - // when reading out of the DB.
|
| - friend class URLDatabase;
|
| - friend class HistoryBackend;
|
| -
|
| - // Initializes all values that need initialization to their defaults.
|
| - // This excludes objects which autoinitialize such as strings.
|
| - void Initialize();
|
| -
|
| // The row ID of this URL from the history database. This is immutable except
|
| // when retrieving the row from the database or when determining if the URL
|
| // referenced by the URLRow already exists in the database.
|
| - URLID id_;
|
| + URLID id_ = 0;
|
|
|
| // The URL of this row. Immutable except for the database which sets it
|
| // when it pulls them out. If clients want to change it, they must use
|
| @@ -143,10 +126,10 @@ class URLRow {
|
| base::string16 title_;
|
|
|
| // Total number of times this URL has been visited.
|
| - int visit_count_;
|
| + int visit_count_ = 0;
|
|
|
| // Number of times this URL has been manually entered in the URL bar.
|
| - int typed_count_;
|
| + int typed_count_ = 0;
|
|
|
| // The date of the last visit of this URL, which saves us from having to
|
| // loop up in the visit table for things like autocomplete and expiration.
|
| @@ -154,7 +137,7 @@ class URLRow {
|
|
|
| // Indicates this entry should now be shown in typical UI or queries, this
|
| // is usually for subframes.
|
| - bool hidden_;
|
| + bool hidden_ = false;
|
|
|
| // We support the implicit copy constuctor and operator=.
|
| };
|
| @@ -165,14 +148,13 @@ class URLResult : public URLRow {
|
| public:
|
| URLResult();
|
| URLResult(const GURL& url, base::Time visit_time);
|
| - // Constructor that create a URLResult from the specified URL and title match
|
| - // positions from title_matches.
|
| - URLResult(const GURL& url,
|
| - const query_parser::Snippet::MatchPositions& title_matches);
|
| - explicit URLResult(const URLRow& url_row);
|
| + URLResult(const URLRow& url_row);
|
| URLResult(const URLResult& other);
|
| + URLResult(URLResult&&) noexcept;
|
| ~URLResult() override;
|
|
|
| + URLResult& operator=(const URLResult&);
|
| +
|
| base::Time visit_time() const { return visit_time_; }
|
| void set_visit_time(base::Time visit_time) { visit_time_ = visit_time; }
|
|
|
| @@ -205,7 +187,7 @@ class URLResult : public URLRow {
|
| query_parser::Snippet::MatchPositions title_match_positions_;
|
|
|
| // Whether a managed user was blocked when attempting to visit this URL.
|
| - bool blocked_visit_;
|
| + bool blocked_visit_ = false;
|
|
|
| // We support the implicit copy constructor and operator=.
|
| };
|
|
|