| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 <sstream> | 5 #include <sstream> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/metrics/histogram_base.h" | 8 #include "base/metrics/histogram_base.h" |
| 9 #include "base/metrics/histogram_samples.h" | 9 #include "base/metrics/histogram_samples.h" |
| 10 #include "base/metrics/statistics_recorder.h" | 10 #include "base/metrics/statistics_recorder.h" |
| (...skipping 1518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1529 EXPECT_TRUE(active_tab->GetController().CanGoBack()); | 1529 EXPECT_TRUE(active_tab->GetController().CanGoBack()); |
| 1530 active_tab->GetController().GoBack(); | 1530 active_tab->GetController().GoBack(); |
| 1531 back_observer.Wait(); | 1531 back_observer.Wait(); |
| 1532 | 1532 |
| 1533 // Verify that onmostvisitedchange event is dispatched when we navigate from | 1533 // Verify that onmostvisitedchange event is dispatched when we navigate from |
| 1534 // SRP to NTP. | 1534 // SRP to NTP. |
| 1535 active_tab = browser()->tab_strip_model()->GetActiveWebContents(); | 1535 active_tab = browser()->tab_strip_model()->GetActiveWebContents(); |
| 1536 EXPECT_TRUE(UpdateSearchState(active_tab)); | 1536 EXPECT_TRUE(UpdateSearchState(active_tab)); |
| 1537 EXPECT_EQ(1, on_most_visited_change_calls_); | 1537 EXPECT_EQ(1, on_most_visited_change_calls_); |
| 1538 } | 1538 } |
| 1539 | |
| 1540 // Flaky: crbug.com/267096 | |
| 1541 IN_PROC_BROWSER_TEST_F(InstantExtendedTest, | |
| 1542 DISABLED_OnDefaultSearchProviderChanged) { | |
| 1543 InstantService* instant_service = | |
| 1544 InstantServiceFactory::GetForProfile(browser()->profile()); | |
| 1545 ASSERT_NE(static_cast<InstantService*>(NULL), instant_service); | |
| 1546 | |
| 1547 // Setup Instant. | |
| 1548 ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); | |
| 1549 FocusOmniboxAndWaitForInstantNTPSupport(); | |
| 1550 EXPECT_EQ(1, instant_service->GetInstantProcessCount()); | |
| 1551 | |
| 1552 // Navigating to the NTP should use the Instant render process. | |
| 1553 content::WindowedNotificationObserver new_tab_observer( | |
| 1554 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | |
| 1555 content::NotificationService::AllSources()); | |
| 1556 ui_test_utils::NavigateToURLWithDisposition( | |
| 1557 browser(), | |
| 1558 GURL(chrome::kChromeUINewTabURL), | |
| 1559 CURRENT_TAB, | |
| 1560 ui_test_utils::BROWSER_TEST_NONE); | |
| 1561 new_tab_observer.Wait(); | |
| 1562 | |
| 1563 content::WebContents* ntp_contents = | |
| 1564 browser()->tab_strip_model()->GetActiveWebContents(); | |
| 1565 EXPECT_TRUE(chrome::IsInstantNTP(ntp_contents)); | |
| 1566 EXPECT_TRUE(instant_service->IsInstantProcess( | |
| 1567 ntp_contents->GetRenderProcessHost()->GetID())); | |
| 1568 GURL ntp_url = ntp_contents->GetURL(); | |
| 1569 | |
| 1570 AddBlankTabAndShow(browser()); | |
| 1571 content::WebContents* active_tab = | |
| 1572 browser()->tab_strip_model()->GetActiveWebContents(); | |
| 1573 EXPECT_FALSE(chrome::IsInstantNTP(active_tab)); | |
| 1574 EXPECT_FALSE(instant_service->IsInstantProcess( | |
| 1575 active_tab->GetRenderProcessHost()->GetID())); | |
| 1576 | |
| 1577 TemplateURLData data; | |
| 1578 data.short_name = ASCIIToUTF16("t"); | |
| 1579 data.SetURL("http://defaultturl/q={searchTerms}"); | |
| 1580 data.suggestions_url = "http://defaultturl2/q={searchTerms}"; | |
| 1581 data.instant_url = "http://does/not/exist"; | |
| 1582 data.alternate_urls.push_back(data.instant_url + "#q={searchTerms}"); | |
| 1583 data.search_terms_replacement_key = "strk"; | |
| 1584 | |
| 1585 TemplateURL* template_url = new TemplateURL(browser()->profile(), data); | |
| 1586 TemplateURLService* service = | |
| 1587 TemplateURLServiceFactory::GetForProfile(browser()->profile()); | |
| 1588 ui_test_utils::WaitForTemplateURLServiceToLoad(service); | |
| 1589 service->Add(template_url); // Takes ownership of |template_url|. | |
| 1590 | |
| 1591 // Change the default search provider. | |
| 1592 content::WindowedNotificationObserver observer( | |
| 1593 content::NOTIFICATION_LOAD_STOP, | |
| 1594 content::Source<content::NavigationController>( | |
| 1595 &ntp_contents->GetController())); | |
| 1596 service->SetDefaultSearchProvider(template_url); | |
| 1597 observer.Wait(); | |
| 1598 | |
| 1599 // |ntp_contents| should not use the Instant render process. | |
| 1600 EXPECT_FALSE(chrome::IsInstantNTP(ntp_contents)); | |
| 1601 EXPECT_FALSE(instant_service->IsInstantProcess( | |
| 1602 ntp_contents->GetRenderProcessHost()->GetID())); | |
| 1603 // Make sure the URL remains the same. | |
| 1604 EXPECT_EQ(ntp_url, ntp_contents->GetURL()); | |
| 1605 } | |
| 1606 | |
| 1607 IN_PROC_BROWSER_TEST_F(InstantExtendedTest, | |
| 1608 ReloadLocalNTPOnSearchProviderChange) { | |
| 1609 // Setup Instant. | |
| 1610 ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); | |
| 1611 FocusOmniboxAndWaitForInstantNTPSupport(); | |
| 1612 | |
| 1613 // Navigate to Local NTP. | |
| 1614 content::WindowedNotificationObserver new_tab_observer( | |
| 1615 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | |
| 1616 content::NotificationService::AllSources()); | |
| 1617 ui_test_utils::NavigateToURLWithDisposition( | |
| 1618 browser(), | |
| 1619 GURL(chrome::kChromeSearchLocalNtpUrl), | |
| 1620 CURRENT_TAB, | |
| 1621 ui_test_utils::BROWSER_TEST_NONE); | |
| 1622 new_tab_observer.Wait(); | |
| 1623 | |
| 1624 content::WebContents* ntp_contents = | |
| 1625 browser()->tab_strip_model()->GetActiveWebContents(); | |
| 1626 GURL ntp_url = ntp_contents->GetURL(); | |
| 1627 | |
| 1628 TemplateURLData data; | |
| 1629 data.short_name = ASCIIToUTF16("t"); | |
| 1630 data.SetURL("http://defaultturl/q={searchTerms}"); | |
| 1631 data.suggestions_url = "http://defaultturl2/q={searchTerms}"; | |
| 1632 data.instant_url = "http://does/not/exist"; | |
| 1633 data.alternate_urls.push_back(data.instant_url + "#q={searchTerms}"); | |
| 1634 data.search_terms_replacement_key = "strk"; | |
| 1635 | |
| 1636 TemplateURL* template_url = new TemplateURL(browser()->profile(), data); | |
| 1637 TemplateURLService* service = | |
| 1638 TemplateURLServiceFactory::GetForProfile(browser()->profile()); | |
| 1639 ui_test_utils::WaitForTemplateURLServiceToLoad(service); | |
| 1640 service->Add(template_url); // Takes ownership of |template_url|. | |
| 1641 | |
| 1642 // Change the default search provider. This will reload the local NTP and the | |
| 1643 // page URL will remain the same. | |
| 1644 content::WindowedNotificationObserver observer( | |
| 1645 content::NOTIFICATION_LOAD_STOP, | |
| 1646 content::Source<content::NavigationController>( | |
| 1647 &ntp_contents->GetController())); | |
| 1648 service->SetDefaultSearchProvider(template_url); | |
| 1649 observer.Wait(); | |
| 1650 | |
| 1651 // Make sure the URL remains the same. | |
| 1652 EXPECT_EQ(ntp_url, ntp_contents->GetURL()); | |
| 1653 } | |
| OLD | NEW |