Index: chrome/browser/intents/web_intents_registry.h |
diff --git a/chrome/browser/intents/web_intents_registry.h b/chrome/browser/intents/web_intents_registry.h |
index 581693d30d943318aecb569dcffd793118435cc7..218be42742ec8a33bbea2bdc4cf5ab8c1c5f0de9 100644 |
--- a/chrome/browser/intents/web_intents_registry.h |
+++ b/chrome/browser/intents/web_intents_registry.h |
@@ -21,9 +21,7 @@ class Extension; |
// Handles storing and retrieving of web intents services in the web database. |
// The registry provides filtering logic to retrieve specific types of services. |
-class WebIntentsRegistry |
- : public WebDataServiceConsumer, |
- public ProfileKeyedService { |
+class WebIntentsRegistry : public ProfileKeyedService { |
public: |
typedef std::vector<webkit_glue::WebIntentServiceData> IntentServiceList; |
@@ -110,21 +108,20 @@ class WebIntentsRegistry |
void CollapseIntents(IntentServiceList* services); |
private: |
- const extensions::Extension* ExtensionForURL(const std::string& url); |
+ const extensions::Extension* ExtensionForURL(const std::string& url); |
- struct IntentsQuery; |
+ struct IntentsQuery; |
+ typedef std::vector<IntentsQuery*> QueryVector; |
- // Maps web data requests to intents queries. |
- // Allows OnWebDataServiceRequestDone to forward to appropriate consumer. |
- typedef base::hash_map<WebDataService::Handle, IntentsQuery*> QueryMap; |
- |
- // WebDataServiceConsumer implementation. |
- virtual void OnWebDataServiceRequestDone( |
+ // Handles services loaded |
+ void OnWebIntentsResultReceived( |
+ IntentsQuery* query, |
WebDataService::Handle h, |
- const WDTypedResult* result) OVERRIDE; |
+ const WDTypedResult* result); |
- // Delegate for defaults requests from OnWebDataServiceRequestDone. |
- virtual void OnWebDataServiceDefaultsRequestDone( |
+ // Handles default services loaded |
+ void OnWebIntentsDefaultsResultReceived( |
+ IntentsQuery* query, |
WebDataService::Handle h, |
const WDTypedResult* result); |
@@ -132,8 +129,15 @@ class WebIntentsRegistry |
void DoGetIntentServicesForExtensionFilter(scoped_ptr<IntentsQuery> query, |
const std::string& extension_id); |
+ // Adds a query to the list of pending queries. |
+ void TrackQuery(IntentsQuery* query); |
+ |
+ // Takes ownership of a query. This removes a query from the list |
+ // of pending queries. |
+ bool ClaimQuery(IntentsQuery* query); |
Greg Billock
2012/07/27 00:41:29
How about UntrackQuery?
|
+ |
// Map for all in-flight web data requests/intent queries. |
- QueryMap queries_; |
+ QueryVector pending_queries_; |
groby-ooo-7-16
2012/07/27 00:11:26
Why no map?
Steve McKay
2012/07/27 00:54:46
The map only existed to associate wds handles with
|
// Local reference to Web Data Service. |
scoped_refptr<WebDataService> wds_; |