| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/automation/testing_automation_provider.h" | 5 #include "chrome/browser/automation/testing_automation_provider.h" | 
| 6 | 6 | 
| 7 #include "app/message_box_flags.h" | 7 #include "app/message_box_flags.h" | 
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" | 
| 9 #include "base/json/json_reader.h" | 9 #include "base/json/json_reader.h" | 
| 10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" | 
| 11 #include "base/json/string_escape.h" | 11 #include "base/json/string_escape.h" | 
| (...skipping 2668 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2680     Browser* browser, | 2680     Browser* browser, | 
| 2681     DictionaryValue* args, | 2681     DictionaryValue* args, | 
| 2682     IPC::Message* reply_message) { | 2682     IPC::Message* reply_message) { | 
| 2683   TemplateURLModel* url_model(profile_->GetTemplateURLModel()); | 2683   TemplateURLModel* url_model(profile_->GetTemplateURLModel()); | 
| 2684   scoped_ptr<DictionaryValue> return_value(new DictionaryValue); | 2684   scoped_ptr<DictionaryValue> return_value(new DictionaryValue); | 
| 2685   ListValue* search_engines = new ListValue; | 2685   ListValue* search_engines = new ListValue; | 
| 2686   std::vector<const TemplateURL*> template_urls = url_model->GetTemplateURLs(); | 2686   std::vector<const TemplateURL*> template_urls = url_model->GetTemplateURLs(); | 
| 2687   for (std::vector<const TemplateURL*>::const_iterator it = | 2687   for (std::vector<const TemplateURL*>::const_iterator it = | 
| 2688        template_urls.begin(); it != template_urls.end(); ++it) { | 2688        template_urls.begin(); it != template_urls.end(); ++it) { | 
| 2689     DictionaryValue* search_engine = new DictionaryValue; | 2689     DictionaryValue* search_engine = new DictionaryValue; | 
| 2690     search_engine->SetString("short_name", UTF16ToUTF8((*it)->short_name())); | 2690     search_engine->SetString("short_name", WideToUTF8((*it)->short_name())); | 
| 2691     search_engine->SetString("description", UTF16ToUTF8((*it)->description())); | 2691     search_engine->SetString("description", WideToUTF8((*it)->description())); | 
| 2692     search_engine->SetString("keyword", UTF16ToUTF8((*it)->keyword())); | 2692     search_engine->SetString("keyword", WideToUTF8((*it)->keyword())); | 
| 2693     search_engine->SetBoolean("in_default_list", (*it)->ShowInDefaultList()); | 2693     search_engine->SetBoolean("in_default_list", (*it)->ShowInDefaultList()); | 
| 2694     search_engine->SetBoolean("is_default", | 2694     search_engine->SetBoolean("is_default", | 
| 2695         (*it) == url_model->GetDefaultSearchProvider()); | 2695         (*it) == url_model->GetDefaultSearchProvider()); | 
| 2696     search_engine->SetBoolean("is_valid", (*it)->url()->IsValid()); | 2696     search_engine->SetBoolean("is_valid", (*it)->url()->IsValid()); | 
| 2697     search_engine->SetBoolean("supports_replacement", | 2697     search_engine->SetBoolean("supports_replacement", | 
| 2698                               (*it)->url()->SupportsReplacement()); | 2698                               (*it)->url()->SupportsReplacement()); | 
| 2699     search_engine->SetString("url", (*it)->url()->url()); | 2699     search_engine->SetString("url", (*it)->url()->url()); | 
| 2700     search_engine->SetString("host", (*it)->url()->GetHost()); | 2700     search_engine->SetString("host", (*it)->url()->GetHost()); | 
| 2701     search_engine->SetString("path", (*it)->url()->GetPath()); | 2701     search_engine->SetString("path", (*it)->url()->GetPath()); | 
| 2702     search_engine->SetString("display_url", | 2702     search_engine->SetString("display_url", | 
| 2703                              UTF16ToUTF8((*it)->url()->DisplayURL())); | 2703                              WideToUTF8((*it)->url()->DisplayURL())); | 
| 2704     search_engines->Append(search_engine); | 2704     search_engines->Append(search_engine); | 
| 2705   } | 2705   } | 
| 2706   return_value->Set("search_engines", search_engines); | 2706   return_value->Set("search_engines", search_engines); | 
| 2707   AutomationJSONReply(this, reply_message).SendSuccess(return_value.get()); | 2707   AutomationJSONReply(this, reply_message).SendSuccess(return_value.get()); | 
| 2708 } | 2708 } | 
| 2709 | 2709 | 
| 2710 // Refer to pyauto.py for sample JSON input. | 2710 // Refer to pyauto.py for sample JSON input. | 
| 2711 void TestingAutomationProvider::AddOrEditSearchEngine( | 2711 void TestingAutomationProvider::AddOrEditSearchEngine( | 
| 2712     Browser* browser, | 2712     Browser* browser, | 
| 2713     DictionaryValue* args, | 2713     DictionaryValue* args, | 
| 2714     IPC::Message* reply_message) { | 2714     IPC::Message* reply_message) { | 
| 2715   TemplateURLModel* url_model(profile_->GetTemplateURLModel()); | 2715   TemplateURLModel* url_model(profile_->GetTemplateURLModel()); | 
| 2716   const TemplateURL* template_url; | 2716   const TemplateURL* template_url; | 
| 2717   string16 new_title; | 2717   string16 new_title; | 
| 2718   string16 new_keyword; | 2718   string16 new_keyword; | 
| 2719   std::string new_url; | 2719   std::string new_url; | 
| 2720   std::string keyword; | 2720   std::string keyword; | 
| 2721   if (!args->GetString("new_title", &new_title) || | 2721   if (!args->GetString("new_title", &new_title) || | 
| 2722       !args->GetString("new_keyword", &new_keyword) || | 2722       !args->GetString("new_keyword", &new_keyword) || | 
| 2723       !args->GetString("new_url", &new_url)) { | 2723       !args->GetString("new_url", &new_url)) { | 
| 2724     AutomationJSONReply(this, reply_message).SendError( | 2724     AutomationJSONReply(this, reply_message).SendError( | 
| 2725         "One or more inputs invalid"); | 2725         "One or more inputs invalid"); | 
| 2726     return; | 2726     return; | 
| 2727   } | 2727   } | 
| 2728   std::string new_ref_url = TemplateURLRef::DisplayURLToURLRef( | 2728   std::string new_ref_url = TemplateURLRef::DisplayURLToURLRef( | 
| 2729       UTF8ToUTF16(new_url)); | 2729       UTF8ToWide(new_url)); | 
| 2730   scoped_ptr<KeywordEditorController> controller( | 2730   scoped_ptr<KeywordEditorController> controller( | 
| 2731       new KeywordEditorController(profile_)); | 2731       new KeywordEditorController(profile_)); | 
| 2732   if (args->GetString("keyword", &keyword)) { | 2732   if (args->GetString("keyword", &keyword)) { | 
| 2733     template_url = url_model->GetTemplateURLForKeyword(UTF8ToUTF16(keyword)); | 2733     template_url = url_model->GetTemplateURLForKeyword(UTF8ToWide(keyword)); | 
| 2734     if (template_url == NULL) { | 2734     if (template_url == NULL) { | 
| 2735       AutomationJSONReply(this, reply_message).SendError( | 2735       AutomationJSONReply(this, reply_message).SendError( | 
| 2736           StringPrintf("No match for keyword: %s", keyword.c_str())); | 2736           StringPrintf("No match for keyword: %s", keyword.c_str())); | 
| 2737       return; | 2737       return; | 
| 2738     } | 2738     } | 
| 2739     url_model->AddObserver(new AutomationProviderSearchEngineObserver( | 2739     url_model->AddObserver(new AutomationProviderSearchEngineObserver( | 
| 2740         this, reply_message)); | 2740         this, reply_message)); | 
| 2741     controller->ModifyTemplateURL(template_url, new_title, new_keyword, | 2741     controller->ModifyTemplateURL(template_url, new_title, new_keyword, | 
| 2742                                   new_ref_url); | 2742                                   new_ref_url); | 
| 2743   } else { | 2743   } else { | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
| 2756   TemplateURLModel* url_model(profile_->GetTemplateURLModel()); | 2756   TemplateURLModel* url_model(profile_->GetTemplateURLModel()); | 
| 2757   std::string keyword; | 2757   std::string keyword; | 
| 2758   std::string action; | 2758   std::string action; | 
| 2759   if (!args->GetString("keyword", &keyword) || | 2759   if (!args->GetString("keyword", &keyword) || | 
| 2760       !args->GetString("action", &action)) { | 2760       !args->GetString("action", &action)) { | 
| 2761     AutomationJSONReply(this, reply_message).SendError( | 2761     AutomationJSONReply(this, reply_message).SendError( | 
| 2762         "One or more inputs invalid"); | 2762         "One or more inputs invalid"); | 
| 2763     return; | 2763     return; | 
| 2764   } | 2764   } | 
| 2765   const TemplateURL* template_url( | 2765   const TemplateURL* template_url( | 
| 2766       url_model->GetTemplateURLForKeyword(UTF8ToUTF16(keyword))); | 2766       url_model->GetTemplateURLForKeyword(UTF8ToWide(keyword))); | 
| 2767   if (template_url == NULL) { | 2767   if (template_url == NULL) { | 
| 2768     AutomationJSONReply(this, reply_message).SendError( | 2768     AutomationJSONReply(this, reply_message).SendError( | 
| 2769         StringPrintf("No match for keyword: %s", keyword.c_str())); | 2769         StringPrintf("No match for keyword: %s", keyword.c_str())); | 
| 2770     return; | 2770     return; | 
| 2771   } | 2771   } | 
| 2772   if (action == "delete") { | 2772   if (action == "delete") { | 
| 2773     url_model->AddObserver(new AutomationProviderSearchEngineObserver( | 2773     url_model->AddObserver(new AutomationProviderSearchEngineObserver( | 
| 2774       this, reply_message)); | 2774       this, reply_message)); | 
| 2775     url_model->Remove(template_url); | 2775     url_model->Remove(template_url); | 
| 2776   } else if (action == "default") { | 2776   } else if (action == "default") { | 
| (...skipping 1740 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4517     // If you change this, update Observer for NotificationType::SESSION_END | 4517     // If you change this, update Observer for NotificationType::SESSION_END | 
| 4518     // below. | 4518     // below. | 
| 4519     MessageLoop::current()->PostTask(FROM_HERE, | 4519     MessageLoop::current()->PostTask(FROM_HERE, | 
| 4520         NewRunnableMethod(this, &TestingAutomationProvider::OnRemoveProvider)); | 4520         NewRunnableMethod(this, &TestingAutomationProvider::OnRemoveProvider)); | 
| 4521   } | 4521   } | 
| 4522 } | 4522 } | 
| 4523 | 4523 | 
| 4524 void TestingAutomationProvider::OnRemoveProvider() { | 4524 void TestingAutomationProvider::OnRemoveProvider() { | 
| 4525   AutomationProviderList::GetInstance()->RemoveProvider(this); | 4525   AutomationProviderList::GetInstance()->RemoveProvider(this); | 
| 4526 } | 4526 } | 
| OLD | NEW | 
|---|