| OLD | NEW |
| 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 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 "build/build_config.h" | 5 #include "build/build_config.h" |
| 6 | 6 |
| 7 #include "chrome/browser/dom_ui/new_tab_ui.h" | 7 #include "chrome/browser/dom_ui/new_tab_ui.h" |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 list_member->GetType() == Value::TYPE_STRING) { | 469 list_member->GetType() == Value::TYPE_STRING) { |
| 470 std::string event_name; | 470 std::string event_name; |
| 471 if (list_member->GetAsString(&event_name)) { | 471 if (list_member->GetAsString(&event_name)) { |
| 472 dom_ui_->tab_contents()->LogNewTabTime(event_name); | 472 dom_ui_->tab_contents()->LogNewTabTime(event_name); |
| 473 } | 473 } |
| 474 } | 474 } |
| 475 } | 475 } |
| 476 } | 476 } |
| 477 | 477 |
| 478 /////////////////////////////////////////////////////////////////////////////// | 478 /////////////////////////////////////////////////////////////////////////////// |
| 479 // NewTabPageSetHomepageHandler | 479 // NewTabPageSetHomePageHandler |
| 480 | 480 |
| 481 // Sets the new tab page as homepage when user clicks on "make this my homepage" | 481 // Sets the new tab page as home page when user clicks on "make this my home |
| 482 // link. | 482 // page" link. |
| 483 class NewTabPageSetHomepageHandler : public DOMMessageHandler { | 483 class NewTabPageSetHomePageHandler : public DOMMessageHandler { |
| 484 public: | 484 public: |
| 485 NewTabPageSetHomepageHandler() {} | 485 NewTabPageSetHomePageHandler() {} |
| 486 virtual ~NewTabPageSetHomepageHandler() {} | 486 virtual ~NewTabPageSetHomePageHandler() {} |
| 487 | 487 |
| 488 // DOMMessageHandler implementation. | 488 // DOMMessageHandler implementation. |
| 489 virtual void RegisterMessages(); | 489 virtual void RegisterMessages(); |
| 490 | 490 |
| 491 // Callback for "SetHomepageLinkClicked". | 491 // Callback for "setHomePage". |
| 492 void HandleSetHomepageLinkClicked(const Value* value); | 492 void HandleSetHomePage(const Value* value); |
| 493 | 493 |
| 494 private: | 494 private: |
| 495 | 495 |
| 496 DISALLOW_COPY_AND_ASSIGN(NewTabPageSetHomepageHandler); | 496 DISALLOW_COPY_AND_ASSIGN(NewTabPageSetHomePageHandler); |
| 497 }; | 497 }; |
| 498 | 498 |
| 499 void NewTabPageSetHomepageHandler::RegisterMessages() { | 499 void NewTabPageSetHomePageHandler::RegisterMessages() { |
| 500 dom_ui_->RegisterMessageCallback("SetHomepageLinkClicked", NewCallback( | 500 dom_ui_->RegisterMessageCallback("setHomePage", NewCallback( |
| 501 this, &NewTabPageSetHomepageHandler::HandleSetHomepageLinkClicked)); | 501 this, &NewTabPageSetHomePageHandler::HandleSetHomePage)); |
| 502 } | 502 } |
| 503 | 503 |
| 504 void NewTabPageSetHomepageHandler::HandleSetHomepageLinkClicked( | 504 void NewTabPageSetHomePageHandler::HandleSetHomePage( |
| 505 const Value* value) { | 505 const Value* value) { |
| 506 dom_ui_->GetProfile()->GetPrefs()->SetBoolean(prefs::kHomePageIsNewTabPage, | 506 dom_ui_->GetProfile()->GetPrefs()->SetBoolean(prefs::kHomePageIsNewTabPage, |
| 507 true); | 507 true); |
| 508 // TODO(rahulk): Show some kind of notification that new tab page has been | |
| 509 // set as homepage. This tip only shows up for a brief moment and disappears | |
| 510 // when new tab page gets refreshed. | |
| 511 ListValue list_value; | 508 ListValue list_value; |
| 512 DictionaryValue* tip_dict = new DictionaryValue(); | 509 list_value.Append(new StringValue( |
| 513 tip_dict->SetString(L"tip_html_text", L"Welcome to your home page!"); | 510 l10n_util::GetString(IDS_NEW_TAB_HOME_PAGE_SET_NOTIFICATION))); |
| 514 list_value.Append(tip_dict); | 511 list_value.Append(new StringValue( |
| 515 dom_ui_->CallJavascriptFunction(L"tips", list_value); | 512 l10n_util::GetString(IDS_NEW_TAB_HOME_PAGE_HIDE_NOTIFICATION))); |
| 513 dom_ui_->CallJavascriptFunction(L"onHomePageSet", list_value); |
| 516 } | 514 } |
| 517 | 515 |
| 518 } // namespace | 516 } // namespace |
| 519 | 517 |
| 520 /////////////////////////////////////////////////////////////////////////////// | 518 /////////////////////////////////////////////////////////////////////////////// |
| 521 // NewTabUI | 519 // NewTabUI |
| 522 | 520 |
| 523 NewTabUI::NewTabUI(TabContents* contents) | 521 NewTabUI::NewTabUI(TabContents* contents) |
| 524 : DOMUI(contents), | 522 : DOMUI(contents), |
| 525 motd_message_id_(0), | 523 motd_message_id_(0), |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 565 AddMessageHandler((new MetricsHandler())->Attach(this)); | 563 AddMessageHandler((new MetricsHandler())->Attach(this)); |
| 566 if (WebResourcesEnabled()) | 564 if (WebResourcesEnabled()) |
| 567 AddMessageHandler((new TipsHandler())->Attach(this)); | 565 AddMessageHandler((new TipsHandler())->Attach(this)); |
| 568 | 566 |
| 569 #if !defined(OS_POSIX) | 567 #if !defined(OS_POSIX) |
| 570 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableSync)) { | 568 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableSync)) { |
| 571 AddMessageHandler((new NewTabPageSyncHandler())->Attach(this)); | 569 AddMessageHandler((new NewTabPageSyncHandler())->Attach(this)); |
| 572 } | 570 } |
| 573 #endif | 571 #endif |
| 574 | 572 |
| 575 AddMessageHandler((new NewTabPageSetHomepageHandler())->Attach(this)); | 573 AddMessageHandler((new NewTabPageSetHomePageHandler())->Attach(this)); |
| 576 | 574 |
| 577 NewTabHTMLSource* html_source = new NewTabHTMLSource(GetProfile()); | 575 NewTabHTMLSource* html_source = new NewTabHTMLSource(GetProfile()); |
| 578 bool posted = ChromeThread::PostTask( | 576 bool posted = ChromeThread::PostTask( |
| 579 ChromeThread::IO, FROM_HERE, | 577 ChromeThread::IO, FROM_HERE, |
| 580 NewRunnableMethod( | 578 NewRunnableMethod( |
| 581 Singleton<ChromeURLDataManager>::get(), | 579 Singleton<ChromeURLDataManager>::get(), |
| 582 &ChromeURLDataManager::AddDataSource, | 580 &ChromeURLDataManager::AddDataSource, |
| 583 html_source)); | 581 html_source)); |
| 584 if (!posted) { | 582 if (!posted) { |
| 585 html_source->AddRef(); | 583 html_source->AddRef(); |
| (...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 952 full_html_.append(json_html); | 950 full_html_.append(json_html); |
| 953 size_t after_offset = pos + template_data_placeholder.size(); | 951 size_t after_offset = pos + template_data_placeholder.size(); |
| 954 full_html_.append(new_tab_html.data() + after_offset, | 952 full_html_.append(new_tab_html.data() + after_offset, |
| 955 new_tab_html.size() - after_offset); | 953 new_tab_html.size() - after_offset); |
| 956 } else { | 954 } else { |
| 957 NOTREACHED(); | 955 NOTREACHED(); |
| 958 full_html_.assign(new_tab_html.data(), new_tab_html.size()); | 956 full_html_.assign(new_tab_html.data(), new_tab_html.size()); |
| 959 } | 957 } |
| 960 jstemplate_builder::AppendI18nTemplateProcessHtml(&full_html_); | 958 jstemplate_builder::AppendI18nTemplateProcessHtml(&full_html_); |
| 961 } | 959 } |
| OLD | NEW |