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

Side by Side Diff: chrome/browser/ui/app_list/start_page_service.h

Issue 871193006: Add a static Google Doodle to the experimental app list start page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_xiyuan_start_page
Patch Set: address_comments Created 5 years, 10 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
OLDNEW
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 #ifndef CHROME_BROWSER_UI_APP_LIST_START_PAGE_SERVICE_H_ 5 #ifndef CHROME_BROWSER_UI_APP_LIST_START_PAGE_SERVICE_H_
6 #define CHROME_BROWSER_UI_APP_LIST_START_PAGE_SERVICE_H_ 6 #define CHROME_BROWSER_UI_APP_LIST_START_PAGE_SERVICE_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/basictypes.h" 12 #include "base/basictypes.h"
13 #include "base/callback.h" 13 #include "base/callback.h"
14 #include "base/memory/ref_counted.h" 14 #include "base/memory/ref_counted.h"
15 #include "base/memory/scoped_ptr.h" 15 #include "base/memory/scoped_ptr.h"
16 #include "base/memory/weak_ptr.h" 16 #include "base/memory/weak_ptr.h"
17 #include "base/observer_list.h" 17 #include "base/observer_list.h"
18 #include "base/strings/string16.h" 18 #include "base/strings/string16.h"
19 #include "base/time/default_clock.h" 19 #include "base/time/default_clock.h"
20 #include "chrome/browser/ui/app_list/speech_recognizer_delegate.h" 20 #include "chrome/browser/ui/app_list/speech_recognizer_delegate.h"
21 #include "components/keyed_service/core/keyed_service.h" 21 #include "components/keyed_service/core/keyed_service.h"
22 #include "content/public/browser/web_contents.h" 22 #include "content/public/browser/web_contents.h"
23 #include "content/public/browser/web_contents_observer.h" 23 #include "content/public/browser/web_contents_observer.h"
24 #include "net/url_request/url_fetcher_delegate.h"
24 #include "ui/app_list/speech_ui_model_observer.h" 25 #include "ui/app_list/speech_ui_model_observer.h"
25 26
26 namespace content { 27 namespace content {
27 struct FrameNavigateParams; 28 struct FrameNavigateParams;
28 struct LoadCommittedDetails; 29 struct LoadCommittedDetails;
29 struct SpeechRecognitionSessionPreamble; 30 struct SpeechRecognitionSessionPreamble;
30 } 31 }
31 32
32 namespace extensions { 33 namespace extensions {
33 class Extension; 34 class Extension;
34 } 35 }
35 36
37 namespace net {
38 class URLFetcher;
39 }
40
36 class Profile; 41 class Profile;
37 42
38 namespace app_list { 43 namespace app_list {
39 44
40 class SpeechAuthHelper; 45 class SpeechAuthHelper;
41 class SpeechRecognizer; 46 class SpeechRecognizer;
42 class StartPageObserver; 47 class StartPageObserver;
43 48
44 // StartPageService collects data to be displayed in app list's start page 49 // StartPageService collects data to be displayed in app list's start page
45 // and hosts the start page contents. 50 // and hosts the start page contents.
46 class StartPageService : public KeyedService, 51 class StartPageService : public KeyedService,
47 public content::WebContentsObserver, 52 public content::WebContentsObserver,
53 public net::URLFetcherDelegate,
48 public SpeechRecognizerDelegate { 54 public SpeechRecognizerDelegate {
49 public: 55 public:
50 typedef std::vector<scoped_refptr<const extensions::Extension> > 56 typedef std::vector<scoped_refptr<const extensions::Extension> >
51 ExtensionList; 57 ExtensionList;
52 // Gets the instance for the given profile. 58 // Gets the instance for the given profile.
53 static StartPageService* Get(Profile* profile); 59 static StartPageService* Get(Profile* profile);
54 60
55 void AddObserver(StartPageObserver* observer); 61 void AddObserver(StartPageObserver* observer);
56 void RemoveObserver(StartPageObserver* observer); 62 void RemoveObserver(StartPageObserver* observer);
57 63
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 class AudioStatus; 111 class AudioStatus;
106 #endif 112 #endif
107 113
108 // This class observes network change events and disables/enables voice search 114 // This class observes network change events and disables/enables voice search
109 // based on network connectivity. 115 // based on network connectivity.
110 class NetworkChangeObserver; 116 class NetworkChangeObserver;
111 117
112 void LoadContents(); 118 void LoadContents();
113 void UnloadContents(); 119 void UnloadContents();
114 120
121 // Fetch the Google Doodle JSON data and update the app list start page.
122 void FetchDoodleJson();
123
124 // net::URLFetcherDelegate overrides:
125 void OnURLFetchComplete(const net::URLFetcher* source) override;
126
115 // KeyedService overrides: 127 // KeyedService overrides:
116 void Shutdown() override; 128 void Shutdown() override;
117 129
118 // contents::WebContentsObserver overrides; 130 // contents::WebContentsObserver overrides;
119 void DidNavigateMainFrame( 131 void DidNavigateMainFrame(
120 const content::LoadCommittedDetails& details, 132 const content::LoadCommittedDetails& details,
121 const content::FrameNavigateParams& params) override; 133 const content::FrameNavigateParams& params) override;
122 134
123 // Change the known microphone availability. |available| should be true if 135 // Change the known microphone availability. |available| should be true if
124 // the microphone exists and is available for use. 136 // the microphone exists and is available for use.
(...skipping 20 matching lines...) Expand all
145 scoped_ptr<SpeechRecognizer> speech_recognizer_; 157 scoped_ptr<SpeechRecognizer> speech_recognizer_;
146 scoped_ptr<SpeechAuthHelper> speech_auth_helper_; 158 scoped_ptr<SpeechAuthHelper> speech_auth_helper_;
147 159
148 bool network_available_; 160 bool network_available_;
149 bool microphone_available_; 161 bool microphone_available_;
150 #if defined(OS_CHROMEOS) 162 #if defined(OS_CHROMEOS)
151 scoped_ptr<AudioStatus> audio_status_; 163 scoped_ptr<AudioStatus> audio_status_;
152 #endif 164 #endif
153 scoped_ptr<NetworkChangeObserver> network_change_observer_; 165 scoped_ptr<NetworkChangeObserver> network_change_observer_;
154 166
167 scoped_ptr<net::URLFetcher> doodle_fetcher_;
168
155 base::WeakPtrFactory<StartPageService> weak_factory_; 169 base::WeakPtrFactory<StartPageService> weak_factory_;
156 170
157 DISALLOW_COPY_AND_ASSIGN(StartPageService); 171 DISALLOW_COPY_AND_ASSIGN(StartPageService);
158 }; 172 };
159 173
160 } // namespace app_list 174 } // namespace app_list
161 175
162 #endif // CHROME_BROWSER_UI_APP_LIST_START_PAGE_SERVICE_H_ 176 #endif // CHROME_BROWSER_UI_APP_LIST_START_PAGE_SERVICE_H_
OLDNEW
« no previous file with comments | « chrome/browser/resources/app_list/start_page.js ('k') | chrome/browser/ui/app_list/start_page_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698