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

Side by Side Diff: chrome/browser/instant/instant_controller.cc

Issue 10963018: Rework arguments of HistoryService::AddPage() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Windows compile Created 8 years, 2 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/history/top_sites_unittest.cc ('k') | chrome/browser/instant/instant_loader.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/instant/instant_controller.h" 5 #include "chrome/browser/instant/instant_controller.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/i18n/case_conversion.h" 8 #include "base/i18n/case_conversion.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/time.h"
10 #include "base/utf_string_conversions.h" 11 #include "base/utf_string_conversions.h"
11 #include "chrome/browser/autocomplete/autocomplete_provider.h" 12 #include "chrome/browser/autocomplete/autocomplete_provider.h"
12 #include "chrome/browser/favicon/favicon_service_factory.h" 13 #include "chrome/browser/favicon/favicon_service_factory.h"
13 #include "chrome/browser/history/history.h" 14 #include "chrome/browser/history/history.h"
14 #include "chrome/browser/history/history_service_factory.h" 15 #include "chrome/browser/history/history_service_factory.h"
15 #include "chrome/browser/history/history_tab_helper.h" 16 #include "chrome/browser/history/history_tab_helper.h"
16 #include "chrome/browser/instant/instant_controller_delegate.h" 17 #include "chrome/browser/instant/instant_controller_delegate.h"
17 #include "chrome/browser/instant/instant_loader.h" 18 #include "chrome/browser/instant/instant_loader.h"
18 #include "chrome/browser/platform_util.h" 19 #include "chrome/browser/platform_util.h"
19 #include "chrome/browser/prefs/pref_service.h" 20 #include "chrome/browser/prefs/pref_service.h"
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 340
340 return preview; 341 return preview;
341 } 342 }
342 343
343 TabContents* InstantController::ReleasePreviewContents(InstantCommitType type) { 344 TabContents* InstantController::ReleasePreviewContents(InstantCommitType type) {
344 TabContents* preview = loader_->ReleasePreviewContents(type, last_full_text_); 345 TabContents* preview = loader_->ReleasePreviewContents(type, last_full_text_);
345 346
346 // If the preview page has navigated since the last Update(), we need to add 347 // If the preview page has navigated since the last Update(), we need to add
347 // the navigation to history ourselves. Else, the page will navigate after 348 // the navigation to history ourselves. Else, the page will navigate after
348 // commit, and it will be added to history in the usual manner. 349 // commit, and it will be added to history in the usual manner.
349 scoped_refptr<history::HistoryAddPageArgs> last_navigation = 350 const history::HistoryAddPageArgs& last_navigation =
350 loader_->last_navigation(); 351 loader_->last_navigation();
351 if (last_navigation != NULL) { 352 if (!last_navigation.url.is_empty()) {
352 content::NavigationEntry* entry = 353 content::NavigationEntry* entry =
353 preview->web_contents()->GetController().GetActiveEntry(); 354 preview->web_contents()->GetController().GetActiveEntry();
354 DCHECK_EQ(last_navigation->url, entry->GetURL()); 355 DCHECK_EQ(last_navigation.url, entry->GetURL());
355 356
356 // Add the page to history. 357 // Add the page to history.
357 preview->history_tab_helper()->UpdateHistoryForNavigation(last_navigation); 358 preview->history_tab_helper()->UpdateHistoryForNavigation(last_navigation);
358 359
359 // Update the page title. 360 // Update the page title.
360 preview->history_tab_helper()->UpdateHistoryPageTitle(*entry); 361 preview->history_tab_helper()->UpdateHistoryPageTitle(*entry);
361 362
362 // Update the favicon. 363 // Update the favicon.
363 FaviconService* favicon_service = FaviconServiceFactory::GetForProfile( 364 FaviconService* favicon_service = FaviconServiceFactory::GetForProfile(
364 preview->profile(), Profile::EXPLICIT_ACCESS); 365 preview->profile(), Profile::EXPLICIT_ACCESS);
365 if (favicon_service && entry->GetFavicon().valid && 366 if (favicon_service && entry->GetFavicon().valid &&
366 entry->GetFavicon().image.IsEmpty()) { 367 entry->GetFavicon().image.IsEmpty()) {
367 favicon_service->SetFavicons(entry->GetURL(), entry->GetFavicon().url, 368 favicon_service->SetFavicons(entry->GetURL(), entry->GetFavicon().url,
368 history::FAVICON, entry->GetFavicon().image); 369 history::FAVICON, entry->GetFavicon().image);
369 } 370 }
370 } 371 }
371 372
372 // Add a fake history entry with a non-Instant search URL, so that search 373 // Add a fake history entry with a non-Instant search URL, so that search
373 // terms extraction (for autocomplete history matches) works. 374 // terms extraction (for autocomplete history matches) works.
374 HistoryService* history = HistoryServiceFactory::GetForProfile( 375 HistoryService* history = HistoryServiceFactory::GetForProfile(
375 preview->profile(), Profile::EXPLICIT_ACCESS); 376 preview->profile(), Profile::EXPLICIT_ACCESS);
376 if (history) { 377 if (history) {
377 history->AddPage(url_for_history_, NULL, 0, GURL(), last_transition_type_, 378 history->AddPage(url_for_history_, base::Time::Now(), NULL, 0, GURL(),
378 history::RedirectList(), history::SOURCE_BROWSED, false); 379 history::RedirectList(), last_transition_type_,
380 history::SOURCE_BROWSED, false);
379 } 381 }
380 382
381 AddPreviewUsageForHistogram(mode_, PREVIEW_COMMITTED); 383 AddPreviewUsageForHistogram(mode_, PREVIEW_COMMITTED);
382 384
383 // We may have gotten here from CommitInstant(), which means the loader may 385 // We may have gotten here from CommitInstant(), which means the loader may
384 // still be on the stack. So, schedule a destruction for later. 386 // still be on the stack. So, schedule a destruction for later.
385 MessageLoop::current()->DeleteSoon(FROM_HERE, loader_.release()); 387 MessageLoop::current()->DeleteSoon(FROM_HERE, loader_.release());
386 388
387 // This call is here to hide the preview and reset view state. It won't 389 // This call is here to hide the preview and reset view state. It won't
388 // actually delete |loader_| because it was just released to DeleteSoon(). 390 // actually delete |loader_| because it was just released to DeleteSoon().
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
784 DCHECK(url_obj.is_valid()); 786 DCHECK(url_obj.is_valid());
785 *instant_url = url_obj.spec(); 787 *instant_url = url_obj.spec();
786 } 788 }
787 } 789 }
788 } 790 }
789 791
790 bool InstantController::IsOutOfDate() const { 792 bool InstantController::IsOutOfDate() const {
791 return !last_active_tab_ || 793 return !last_active_tab_ ||
792 last_active_tab_ != delegate_->GetActiveTabContents(); 794 last_active_tab_ != delegate_->GetActiveTabContents();
793 } 795 }
OLDNEW
« no previous file with comments | « chrome/browser/history/top_sites_unittest.cc ('k') | chrome/browser/instant/instant_loader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698