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 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_WEBUI_APP_LIST_START_PAGE_HANDLER_H_ 6#define CHROME_BROWSER_UI_WEBUI_APP_LIST_START_PAGE_HANDLER_H_ 7 8#include "base/basictypes.h" 9#include "base/compiler_specific.h" 10#include "chrome/browser/ui/app_list/recommended_apps_observer.h" 11#include "content/public/browser/web_ui_message_handler.h" 12 13namespace base { 14class ListValue; 15} 16 17namespace app_list { 18 19class RecommendedApps; 20 21// Handler for the app launcher start page. 22class StartPageHandler : public content::WebUIMessageHandler, 23 public RecommendedAppsObserver { 24 public: 25 StartPageHandler(); 26 virtual ~StartPageHandler(); 27 28 private: 29 // content::WebUIMessageHandler overrides: 30 virtual void RegisterMessages() OVERRIDE; 31 32 // RecommendedAppsObserver overrdies: 33 virtual void OnRecommendedAppsChanged() OVERRIDE; 34 35 // Creates a ListValue for the recommended apps and sends it to js side. 36 void SendRecommendedApps(); 37 38 // JS callbacks. 39 void HandleInitialize(const base::ListValue* args); 40 void HandleLaunchApp(const base::ListValue* args); 41 void HandleSpeechResult(const base::ListValue* args); 42 void HandleSpeechSoundLevel(const base::ListValue* args); 43 void HandleSpeechRecognition(const base::ListValue* args); 44 45 RecommendedApps* recommended_apps_; // Not owned. 46 47 DISALLOW_COPY_AND_ASSIGN(StartPageHandler); 48}; 49 50} // namespace app_list 51 52#endif // CHROME_BROWSER_UI_WEBUI_APP_LIST_START_PAGE_HANDLER_H_ 53