Chromium Code Reviews| Index: chrome/renderer/searchbox/searchbox.cc |
| diff --git a/chrome/renderer/searchbox/searchbox.cc b/chrome/renderer/searchbox/searchbox.cc |
| index 287fad330eab28167e5ae9c318ab51eb2bf513d9..2c712380f7eb85f58832b845295e92da3800d81f 100644 |
| --- a/chrome/renderer/searchbox/searchbox.cc |
| +++ b/chrome/renderer/searchbox/searchbox.cc |
| @@ -24,6 +24,39 @@ namespace { |
| // Size of the results cache. |
| const size_t kMaxInstantAutocompleteResultItemCacheSize = 100; |
| +bool DidThemeInfoChange(const ThemeBackgroundInfo& theme_info, |
| + const ThemeBackgroundInfo& old_theme_info) { |
| + return old_theme_info.color_r != theme_info.color_r || |
| + old_theme_info.color_g != theme_info.color_g || |
| + old_theme_info.color_b != theme_info.color_b || |
| + old_theme_info.color_a != theme_info.color_a || |
| + old_theme_info.theme_id != theme_info.theme_id || |
| + old_theme_info.image_horizontal_alignment != |
| + theme_info.image_horizontal_alignment || |
| + old_theme_info.image_vertical_alignment != |
| + theme_info.image_vertical_alignment || |
| + old_theme_info.image_tiling != theme_info.image_tiling || |
| + old_theme_info.image_height != theme_info.image_height || |
| + old_theme_info.has_attribution != theme_info.has_attribution; |
| +} |
| + |
| +bool DidMostVisitedItemsChange( |
|
samarth
2013/05/04 00:41:54
Sorry for the back and forth, but one more change:
Anuj
2013/05/04 01:00:01
Done.
|
| + const std::vector<InstantMostVisitedItemIDPair>& items, |
| + const std::vector<InstantMostVisitedItemIDPair>& old_items) { |
| + bool most_visited_changed = old_items.size() != items.size(); |
| + if (!most_visited_changed) { |
| + for (size_t i = 0; i < items.size(); i++) { |
| + InstantMostVisitedItem old_item = old_items[i].second; |
| + InstantMostVisitedItem new_item = items[i].second; |
| + if (new_item.url != old_item.url || new_item.title != old_item.title) { |
| + most_visited_changed = true; |
| + break; |
| + } |
| + } |
| + } |
| + return most_visited_changed; |
| +} |
| + |
| } // namespace |
| SearchBox::SearchBox(content::RenderView* render_view) |
| @@ -329,6 +362,8 @@ void SearchBox::OnSetDisplayInstantResults(bool display_instant_results) { |
| } |
| void SearchBox::OnThemeChanged(const ThemeBackgroundInfo& theme_info) { |
| + if (!DidThemeInfoChange(theme_info, theme_info_)) |
| + return; |
| theme_info_ = theme_info; |
| if (render_view()->GetWebView() && render_view()->GetWebView()->mainFrame()) { |
| extensions_v8::SearchBoxExtension::DispatchThemeChange( |
| @@ -377,6 +412,11 @@ void SearchBox::SetQuery(const string16& query, bool verbatim) { |
| void SearchBox::OnMostVisitedChanged( |
| const std::vector<InstantMostVisitedItemIDPair>& items) { |
| + std::vector<InstantMostVisitedItemIDPair> old_items; |
| + most_visited_items_cache_.GetCurrentItems(&old_items); |
| + if (!DidMostVisitedItemsChange(items, old_items)) |
| + return; |
| + |
| most_visited_items_cache_.AddItemsWithRestrictedID(items); |
| if (render_view()->GetWebView() && render_view()->GetWebView()->mainFrame()) { |