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

Side by Side Diff: chrome/browser/ui/intents/web_intent_picker_controller.h

Issue 11137024: Factoring out of FaviconLoader (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_INTENTS_WEB_INTENT_PICKER_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_UI_INTENTS_WEB_INTENT_PICKER_CONTROLLER_H_
6 #define CHROME_BROWSER_UI_INTENTS_WEB_INTENT_PICKER_CONTROLLER_H_ 6 #define CHROME_BROWSER_UI_INTENTS_WEB_INTENT_PICKER_CONTROLLER_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/memory/ref_counted.h" 11 #include "base/memory/ref_counted.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/memory/weak_ptr.h" 13 #include "base/memory/weak_ptr.h"
14 #include "base/string16.h" 14 #include "base/string16.h"
15 #include "chrome/browser/extensions/webstore_installer.h" 15 #include "chrome/browser/extensions/webstore_installer.h"
16 #include "chrome/browser/favicon/favicon_service.h"
17 #include "chrome/browser/intents/cws_intents_registry.h" 16 #include "chrome/browser/intents/cws_intents_registry.h"
18 #include "chrome/browser/intents/web_intents_registry.h" 17 #include "chrome/browser/intents/web_intents_registry.h"
19 #include "chrome/browser/intents/web_intents_reporting.h" 18 #include "chrome/browser/intents/web_intents_reporting.h"
20 #include "chrome/browser/ui/intents/web_intent_picker_delegate.h" 19 #include "chrome/browser/ui/intents/web_intent_picker_delegate.h"
21 #include "content/public/browser/download_id.h" 20 #include "content/public/browser/download_id.h"
22 #include "content/public/browser/web_contents_user_data.h" 21 #include "content/public/browser/web_contents_user_data.h"
23 #include "webkit/glue/web_intent_data.h" 22 #include "webkit/glue/web_intent_data.h"
24 #include "webkit/glue/web_intent_reply_data.h" 23 #include "webkit/glue/web_intent_reply_data.h"
25 #include "webkit/glue/web_intent_service_data.h" 24 #include "webkit/glue/web_intent_service_data.h"
26 25
27 class Browser; 26 class Browser;
28 struct DefaultWebIntentService; 27 struct DefaultWebIntentService;
29 class GURL; 28 class GURL;
30 class Profile; 29 class Profile;
31 class WebIntentPicker; 30 class WebIntentPicker;
32 class WebIntentPickerModel; 31 class WebIntentPickerModel;
33 32
34 namespace content { 33 namespace content {
35 class WebContents; 34 class WebContents;
36 class WebIntentsDispatcher; 35 class WebIntentsDispatcher;
37 } 36 }
38 37
39 namespace web_intents { 38 namespace web_intents {
40 class NativeServiceFactory; 39 class NativeServiceFactory;
40 class IconLoader;
41 } 41 }
42 42
43 namespace webkit_glue { 43 namespace webkit_glue {
44 struct WebIntentServiceData; 44 struct WebIntentServiceData;
45 } 45 }
46 46
47 // Controls the creation of the WebIntentPicker UI and forwards the user's 47 // Controls the creation of the WebIntentPicker UI and forwards the user's
48 // intent handler choice back to the WebContents object. 48 // intent handler choice back to the WebContents object.
49 class WebIntentPickerController 49 class WebIntentPickerController
50 : public WebIntentPickerDelegate, 50 : public WebIntentPickerDelegate,
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 // default choices allow it to be skipped. 200 // default choices allow it to be skipped.
201 void RegistryCallsCompleted(); 201 void RegistryCallsCompleted();
202 202
203 // Called when WebIntentServiceData is ready for checking extensions 203 // Called when WebIntentServiceData is ready for checking extensions
204 // when dispatching explicit intents. Gets |services| 204 // when dispatching explicit intents. Gets |services|
205 // from the WebIntentsRegistry to check for known urls/extensions and find 205 // from the WebIntentsRegistry to check for known urls/extensions and find
206 // disposition data. 206 // disposition data.
207 void OnWebIntentServicesAvailableForExplicitIntent( 207 void OnWebIntentServicesAvailableForExplicitIntent(
208 const std::vector<webkit_glue::WebIntentServiceData>& services); 208 const std::vector<webkit_glue::WebIntentServiceData>& services);
209 209
210 // Called when a favicon is returned from the FaviconService.
211 void OnFaviconDataAvailable(
212 FaviconService::Handle handle,
213 const history::FaviconImageResult& image_result);
214
215 // Called when IntentExtensionInfo is returned from the CWSIntentsRegistry. 210 // Called when IntentExtensionInfo is returned from the CWSIntentsRegistry.
216 void OnCWSIntentServicesAvailable( 211 void OnCWSIntentServicesAvailable(
217 const CWSIntentsRegistry::IntentExtensionList& extensions); 212 const CWSIntentsRegistry::IntentExtensionList& extensions);
218 213
219 // Called when a suggested extension's icon is fetched. 214 // Called when a suggested extension's icon is fetched.
220 void OnExtensionIconURLFetchComplete(const std::string& extension_id, 215 void OnExtensionIconURLFetchComplete(const std::string& extension_id,
221 const net::URLFetcher* source); 216 const net::URLFetcher* source);
222 217
223 // Called whenever intent data (both from registry and CWS) arrives. 218 // Called whenever intent data (both from registry and CWS) arrives.
224 void OnIntentDataArrived(); 219 void OnIntentDataArrived();
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 content::WebIntentsDispatcher* intents_dispatcher_; 329 content::WebIntentsDispatcher* intents_dispatcher_;
335 330
336 // Saves whether the use-another-service button has been 331 // Saves whether the use-another-service button has been
337 // animated on the location bar. 332 // animated on the location bar.
338 bool location_bar_button_indicated_; 333 bool location_bar_button_indicated_;
339 334
340 // Weak pointer to the tab servicing the intent. Remembered in order to 335 // Weak pointer to the tab servicing the intent. Remembered in order to
341 // close it when a reply is sent. 336 // close it when a reply is sent.
342 content::WebContents* service_tab_; 337 content::WebContents* service_tab_;
343 338
344 // Request consumer used when asynchronously loading favicons. 339 // Object managing the details of icon loading.
James Hawkins 2012/10/17 03:38:39 Object that manages the details...
345 CancelableRequestConsumerTSimple<size_t> favicon_consumer_; 340 scoped_ptr<web_intents::IconLoader> icon_loader_;
346 341
347 // Factory for weak pointers used in callbacks for async calls to load the 342 // Factory for weak pointers used in callbacks for async calls to load the
348 // picker model. 343 // picker model.
349 base::WeakPtrFactory<WebIntentPickerController> weak_ptr_factory_; 344 base::WeakPtrFactory<WebIntentPickerController> weak_ptr_factory_;
350 345
351 // Timer factory for minimum display time of "waiting" dialog. 346 // Timer factory for minimum display time of "waiting" dialog.
352 base::WeakPtrFactory<WebIntentPickerController> timer_factory_; 347 base::WeakPtrFactory<WebIntentPickerController> timer_factory_;
353 348
354 // Weak pointers for the dispatcher OnSendReturnMessage will not be 349 // Weak pointers for the dispatcher OnSendReturnMessage will not be
355 // cancelled on picker close. 350 // cancelled on picker close.
356 base::WeakPtrFactory<WebIntentPickerController> dispatcher_factory_; 351 base::WeakPtrFactory<WebIntentPickerController> dispatcher_factory_;
357 352
358 // Bucket identifier for UMA reporting. Saved off in a field 353 // Bucket identifier for UMA reporting. Saved off in a field
359 // to avoid repeated calculation of the bucket across 354 // to avoid repeated calculation of the bucket across
360 // multiple UMA calls. Should be recalculated each time 355 // multiple UMA calls. Should be recalculated each time
361 // |intents_dispatcher_| is set. 356 // |intents_dispatcher_| is set.
362 web_intents::UMABucket uma_bucket_; 357 web_intents::UMABucket uma_bucket_;
363 358
364 // Factory used to obtain instance of native services. 359 // Factory used to obtain instance of native services.
365 scoped_ptr<web_intents::NativeServiceFactory> native_services_; 360 scoped_ptr<web_intents::NativeServiceFactory> native_services_;
366 361
367 // The ID of a pending extension download. 362 // The ID of a pending extension download.
368 content::DownloadId download_id_; 363 content::DownloadId download_id_;
369 364
370 DISALLOW_COPY_AND_ASSIGN(WebIntentPickerController); 365 DISALLOW_COPY_AND_ASSIGN(WebIntentPickerController);
371 }; 366 };
372 367
373 #endif // CHROME_BROWSER_UI_INTENTS_WEB_INTENT_PICKER_CONTROLLER_H_ 368 #endif // CHROME_BROWSER_UI_INTENTS_WEB_INTENT_PICKER_CONTROLLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698