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

Unified Diff: chrome/browser/history/android/urls_sql_handler.cc

Issue 813503003: Move files from chrome/browser/history to components/history (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@favicon-owners
Patch Set: Add missing #include of base/macros.h Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/history/android/urls_sql_handler.cc
diff --git a/chrome/browser/history/android/urls_sql_handler.cc b/chrome/browser/history/android/urls_sql_handler.cc
deleted file mode 100644
index ee10f8aa9b4256d919663a230eb327eb05b1ae8d..0000000000000000000000000000000000000000
--- a/chrome/browser/history/android/urls_sql_handler.cc
+++ /dev/null
@@ -1,154 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/history/android/urls_sql_handler.h"
-
-#include "base/logging.h"
-#include "components/history/core/browser/url_database.h"
-
-using base::Time;
-
-namespace history {
-
-namespace {
-
-const HistoryAndBookmarkRow::ColumnID kInterestingColumns[] = {
- HistoryAndBookmarkRow::URL, HistoryAndBookmarkRow::VISIT_COUNT,
- HistoryAndBookmarkRow::TITLE, HistoryAndBookmarkRow::LAST_VISIT_TIME };
-
-} // namespace
-
-UrlsSQLHandler::UrlsSQLHandler(URLDatabase* url_db)
- : SQLHandler(kInterestingColumns, arraysize(kInterestingColumns)),
- url_db_(url_db) {
-}
-
-UrlsSQLHandler:: ~UrlsSQLHandler() {
-}
-
-bool UrlsSQLHandler::Insert(HistoryAndBookmarkRow* row) {
- URLRow url_row(row->url());
-
- URLID id = url_db_->GetRowForURL(row->url(), &url_row);
- if (id) {
- LOG(ERROR) << "AndroidProviderBackend::Insert Urls; url exists.";
- return false; // We already has this row.
- }
-
- if (row->is_value_set_explicitly(HistoryAndBookmarkRow::TITLE))
- url_row.set_title(row->title());
-
- if (row->is_value_set_explicitly(HistoryAndBookmarkRow::LAST_VISIT_TIME))
- url_row.set_last_visit(row->last_visit_time());
-
- if (row->is_value_set_explicitly(HistoryAndBookmarkRow::VISIT_COUNT))
- url_row.set_visit_count(row->visit_count());
-
- // Adjust the last_visit_time if it not set.
- if (!row->is_value_set_explicitly(HistoryAndBookmarkRow::LAST_VISIT_TIME)) {
- if (row->is_value_set_explicitly(HistoryAndBookmarkRow::CREATED))
- url_row.set_last_visit(row->created());
- else if (row->is_value_set_explicitly(HistoryAndBookmarkRow::VISIT_COUNT))
- url_row.set_last_visit(Time::Now());
- }
-
- // Adjust the visit_count if it not set.
- if (!row->is_value_set_explicitly(HistoryAndBookmarkRow::VISIT_COUNT)) {
- int visit_count = 0;
- if (row->is_value_set_explicitly(HistoryAndBookmarkRow::CREATED) &&
- row->is_value_set_explicitly(HistoryAndBookmarkRow::LAST_VISIT_TIME) &&
- row->last_visit_time() == row->created()) {
- visit_count = 1;
- } else {
- if (row->is_value_set_explicitly(HistoryAndBookmarkRow::CREATED))
- visit_count++;
- if (row->is_value_set_explicitly(HistoryAndBookmarkRow::LAST_VISIT_TIME))
- visit_count++;
- }
- url_row.set_visit_count(visit_count);
- }
-
- URLID new_id = url_db_->AddURL(url_row);
-
- // The subsequent inserts need this information.
- row->set_url_id(new_id);
- return new_id;
-}
-
-// Only the title, the visit time and the vist count can be updated, since the
-// visit count and the visit time are related. If they are not both specified,
-// The not specified one will be adjusted according the speficied one. The rule
-// is:
-// a. If the visit time changed and the visit count is not specified, the visit
-// count will be increased by one.
-// b. If the visit count increased and the visit time is not specified, the last
-// visit time is set to Now.
-// c. If the visit count is 0, it means clear the history, the last visit time
-// will be set to 0.
-// d. The new visit time should great than or equal to the current one,
-// otherwise update failed.
-// e. The title is free to update.
-//
-bool UrlsSQLHandler::Update(const HistoryAndBookmarkRow& row,
- const TableIDRows& ids_set) {
- // Directly updating the URL is not allowed, we should insert the new URL
- // and remove the older one.
- DCHECK(!row.is_value_set_explicitly(HistoryAndBookmarkRow::URL));
-
- for (TableIDRows::const_iterator ids = ids_set.begin();
- ids != ids_set.end(); ++ids) {
- URLRow url_row;
- if (!url_db_->GetURLRow(ids->url_id, &url_row))
- return false;
-
- URLRow update_row = url_row;
-
- if (row.is_value_set_explicitly(HistoryAndBookmarkRow::TITLE))
- update_row.set_title(row.title());
-
- if (row.is_value_set_explicitly(HistoryAndBookmarkRow::VISIT_COUNT))
- update_row.set_visit_count(row.visit_count());
-
- if (row.is_value_set_explicitly(HistoryAndBookmarkRow::LAST_VISIT_TIME)) {
- // The new last_visit_time can't be less than current one.
- if (row.last_visit_time() < url_row.last_visit())
- return false;
- update_row.set_last_visit(row.last_visit_time());
- }
-
- // Adjust the visit_count if it not set.
- if (!row.is_value_set_explicitly(HistoryAndBookmarkRow::VISIT_COUNT) &&
- row.is_value_set_explicitly(HistoryAndBookmarkRow::LAST_VISIT_TIME) &&
- (row.last_visit_time() != url_row.last_visit()))
- // If last visit time is changed, visit count needs increase by 1,
- // as a row will be added in visit database
- update_row.set_visit_count(url_row.visit_count() + 1);
-
- // Adjust the last_vsit_time if it not set.
- if (!row.is_value_set_explicitly(HistoryAndBookmarkRow::LAST_VISIT_TIME)) {
- if (row.is_value_set_explicitly(HistoryAndBookmarkRow::VISIT_COUNT) &&
- row.visit_count() == 0) {
- // User want to clear history
- update_row.set_last_visit(Time());
- } else if (row.visit_count() > url_row.visit_count()) {
- update_row.set_last_visit(Time::Now());
- }
- }
-
- if (!url_db_->UpdateURLRow(ids->url_id, update_row))
- return false;
- }
- return true;
-}
-
-bool UrlsSQLHandler::Delete(const TableIDRows& ids_set) {
- for (TableIDRows::const_iterator ids = ids_set.begin();
- ids != ids_set.end(); ++ids) {
- if (!url_db_->DeleteURLRow(ids->url_id))
- return false;
- }
- return true;
-}
-
-} // namespace history
« no previous file with comments | « chrome/browser/history/android/urls_sql_handler.h ('k') | chrome/browser/history/android/urls_sql_handler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698