Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "base/logging.h" | 5 #include "base/logging.h" |
| 6 #include "base/stringprintf.h" | 6 #include "base/stringprintf.h" |
| 7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
| 8 #include "chrome/browser/extensions/activity_log/dom_actions.h" | 8 #include "chrome/browser/extensions/activity_log/dom_actions.h" |
| 9 #include "chrome/browser/history/url_database.h" | 9 #include "chrome/browser/history/url_database.h" |
| 10 #include "content/public/browser/browser_thread.h" | 10 #include "content/public/browser/browser_thread.h" |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 99 } | 99 } |
| 100 // Now initialize the table. | 100 // Now initialize the table. |
| 101 bool initialized = InitializeTableInternal(db, | 101 bool initialized = InitializeTableInternal(db, |
| 102 kTableName, | 102 kTableName, |
| 103 kTableContentFields, | 103 kTableContentFields, |
| 104 kTableFieldTypes, | 104 kTableFieldTypes, |
| 105 arraysize(kTableContentFields)); | 105 arraysize(kTableContentFields)); |
| 106 return initialized; | 106 return initialized; |
| 107 } | 107 } |
| 108 | 108 |
| 109 void DOMAction::Record(sql::Connection* db) { | 109 bool DOMAction::Record(sql::Connection* db) { |
| 110 std::string sql_str = "INSERT INTO " + std::string(kTableName) + | 110 std::string sql_str = "INSERT INTO " + std::string(kTableName) + |
| 111 " (extension_id, time, url_action_type, url, url_title, api_call, args," | 111 " (extension_id, time, url_action_type, url, url_title, api_call, args," |
| 112 " extra) VALUES (?,?,?,?,?,?,?,?)"; | 112 " extra) VALUES (?,?,?,?,?,?,?,?)"; |
| 113 sql::Statement statement(db->GetCachedStatement( | 113 sql::Statement statement(db->GetCachedStatement( |
| 114 sql::StatementID(SQL_FROM_HERE), sql_str.c_str())); | 114 sql::StatementID(SQL_FROM_HERE), sql_str.c_str())); |
| 115 statement.BindString(0, extension_id()); | 115 statement.BindString(0, extension_id()); |
| 116 statement.BindInt64(1, time().ToInternalValue()); | 116 statement.BindInt64(1, time().ToInternalValue()); |
| 117 statement.BindInt(2, static_cast<int>(verb_)); | 117 statement.BindInt(2, static_cast<int>(verb_)); |
| 118 statement.BindString(3, history::URLDatabase::GURLToDatabaseURL(url_)); | 118 statement.BindString(3, history::URLDatabase::GURLToDatabaseURL(url_)); |
| 119 statement.BindString16(4, url_title_); | 119 statement.BindString16(4, url_title_); |
| 120 statement.BindString(5, api_call_); | 120 statement.BindString(5, api_call_); |
| 121 statement.BindString(6, args_); | 121 statement.BindString(6, args_); |
| 122 statement.BindString(7, extra_); | 122 statement.BindString(7, extra_); |
| 123 if (!statement.Run()) | 123 if (!statement.Run()) { |
| 124 LOG(ERROR) << "Activity log database I/O failed: " << sql_str; | 124 LOG(ERROR) << "Activity log database I/O failed: " << sql_str; |
| 125 statement.Clear(); | |
|
Matt Perry
2013/06/07 20:58:01
The Statement destructor resets and frees its reso
| |
| 126 return false; | |
| 127 } | |
| 128 return true; | |
| 125 } | 129 } |
| 126 | 130 |
| 127 std::string DOMAction::PrintForDebug() { | 131 std::string DOMAction::PrintForDebug() { |
| 128 if (verb_ == DomActionType::INSERTED) | 132 if (verb_ == DomActionType::INSERTED) |
| 129 return "Injected scripts (" + args_ + ") onto " | 133 return "Injected scripts (" + args_ + ") onto " |
| 130 + std::string(url_.spec()); | 134 + std::string(url_.spec()); |
| 131 else | 135 else |
| 132 return "DOM API CALL: " + api_call_ + ", ARGS: " + args_ + ", VERB: " | 136 return "DOM API CALL: " + api_call_ + ", ARGS: " + args_ + ", VERB: " |
| 133 + VerbAsString(); | 137 + VerbAsString(); |
| 134 } | 138 } |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 149 return "webrequest"; | 153 return "webrequest"; |
| 150 case DomActionType::MODIFIED: // legacy | 154 case DomActionType::MODIFIED: // legacy |
| 151 return "modified"; | 155 return "modified"; |
| 152 default: | 156 default: |
| 153 NOTREACHED(); | 157 NOTREACHED(); |
| 154 return NULL; | 158 return NULL; |
| 155 } | 159 } |
| 156 } | 160 } |
| 157 | 161 |
| 158 } // namespace extensions | 162 } // namespace extensions |
| OLD | NEW |