OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/search_engines/keyword_table.h" | 5 #include "components/search_engines/keyword_table.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 | 10 |
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
448 bool delete_entry = turl.GetType() == TemplateURL::OMNIBOX_API_EXTENSION; | 448 bool delete_entry = turl.GetType() == TemplateURL::OMNIBOX_API_EXTENSION; |
449 if (!delete_entry && generate_keyword) { | 449 if (!delete_entry && generate_keyword) { |
450 // Explicitly generate keywords for all rows with the autogenerate bit set | 450 // Explicitly generate keywords for all rows with the autogenerate bit set |
451 // or where the keyword is empty. | 451 // or where the keyword is empty. |
452 SearchTermsData terms_data; | 452 SearchTermsData terms_data; |
453 GURL url(turl.GenerateSearchURL(terms_data)); | 453 GURL url(turl.GenerateSearchURL(terms_data)); |
454 if (!url.is_valid()) { | 454 if (!url.is_valid()) { |
455 delete_entry = true; | 455 delete_entry = true; |
456 } else { | 456 } else { |
457 // Ensure autogenerated keywords are unique. | 457 // Ensure autogenerated keywords are unique. |
458 keyword = TemplateURL::GenerateKeyword( | 458 keyword = TemplateURL::GenerateKeyword(url); |
459 url, terms_data.GetAcceptLanguages()); | |
460 while (keywords.count(keyword)) | 459 while (keywords.count(keyword)) |
461 keyword.append(base::ASCIIToUTF16("_")); | 460 keyword.append(base::ASCIIToUTF16("_")); |
462 sql::Statement u(db_->GetUniqueStatement( | 461 sql::Statement u(db_->GetUniqueStatement( |
463 "UPDATE keywords_temp SET keyword=? WHERE id=?")); | 462 "UPDATE keywords_temp SET keyword=? WHERE id=?")); |
464 u.BindString16(0, keyword); | 463 u.BindString16(0, keyword); |
465 u.BindInt64(1, s.ColumnInt64(0)); | 464 u.BindInt64(1, s.ColumnInt64(0)); |
466 if (!u.Run()) | 465 if (!u.Run()) |
467 return false; | 466 return false; |
468 } | 467 } |
469 } | 468 } |
470 if (delete_entry) { | 469 if (delete_entry) { |
471 sql::Statement u(db_->GetUniqueStatement( | 470 sql::Statement u(db_->GetUniqueStatement( |
472 "DELETE FROM keywords_temp WHERE id=?")); | 471 "DELETE FROM keywords_temp WHERE id=?")); |
473 u.BindInt64(0, s.ColumnInt64(0)); | 472 u.BindInt64(0, s.ColumnInt64(0)); |
474 if (!u.Run()) | 473 if (!u.Run()) |
475 return false; | 474 return false; |
476 } else { | 475 } else { |
477 keywords.insert(keyword); | 476 keywords.insert(keyword); |
478 } | 477 } |
479 } | 478 } |
480 | 479 |
481 // Replace the old table with the new one. | 480 // Replace the old table with the new one. |
482 sql = "DROP TABLE " + name; | 481 sql = "DROP TABLE " + name; |
483 if (!db_->Execute(sql.c_str())) | 482 if (!db_->Execute(sql.c_str())) |
484 return false; | 483 return false; |
485 sql = "ALTER TABLE keywords_temp RENAME TO " + name; | 484 sql = "ALTER TABLE keywords_temp RENAME TO " + name; |
486 return db_->Execute(sql.c_str()); | 485 return db_->Execute(sql.c_str()); |
487 } | 486 } |
OLD | NEW |