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

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

Issue 10796116: [Web Intents] Basic location bar UI for window disposition picker affordance. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Refactor content settings to PageTool base class. Add stubs for mac/win. Created 8 years, 5 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"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 50
51 // Sets the intent data and return pathway handler object for which 51 // Sets the intent data and return pathway handler object for which
52 // this picker was created. The picker takes ownership of 52 // this picker was created. The picker takes ownership of
53 // |intents_dispatcher|. |intents_dispatcher| must not be NULL. 53 // |intents_dispatcher|. |intents_dispatcher| must not be NULL.
54 void SetIntentsDispatcher(content::WebIntentsDispatcher* intents_dispatcher); 54 void SetIntentsDispatcher(content::WebIntentsDispatcher* intents_dispatcher);
55 55
56 // Shows the web intent picker given the intent |action| and MIME-type |type|. 56 // Shows the web intent picker given the intent |action| and MIME-type |type|.
57 void ShowDialog(const string16& action, 57 void ShowDialog(const string16& action,
58 const string16& type); 58 const string16& type);
59 59
60 // Called by the location bar to see whether the web intents picker affordance
61 // should be shown. TODO(gbillock): refactor this into a
62 // LocationBarPageToolModel.
63 bool ShowLocationBarPickerTool();
64
60 protected: 65 protected:
61 // content::NotificationObserver implementation. 66 // content::NotificationObserver implementation.
62 virtual void Observe(int type, 67 virtual void Observe(int type,
63 const content::NotificationSource& source, 68 const content::NotificationSource& source,
64 const content::NotificationDetails& details) OVERRIDE; 69 const content::NotificationDetails& details) OVERRIDE;
65 70
66 // WebIntentPickerDelegate implementation. 71 // WebIntentPickerDelegate implementation.
67 virtual void OnServiceChosen(const GURL& url, 72 virtual void OnServiceChosen(const GURL& url,
68 Disposition disposition) OVERRIDE; 73 Disposition disposition) OVERRIDE;
69 virtual void OnInlineDispositionWebContentsCreated( 74 virtual void OnInlineDispositionWebContentsCreated(
(...skipping 21 matching lines...) Expand all
91 void OnSendReturnMessage(webkit_glue::WebIntentReplyType reply_type); 96 void OnSendReturnMessage(webkit_glue::WebIntentReplyType reply_type);
92 97
93 // Exposed for tests only. 98 // Exposed for tests only.
94 void set_picker(WebIntentPicker* picker) { picker_ = picker; } 99 void set_picker(WebIntentPicker* picker) { picker_ = picker; }
95 100
96 // Exposed for tests only. 101 // Exposed for tests only.
97 void set_model_observer(WebIntentPickerModelObserver* observer) { 102 void set_model_observer(WebIntentPickerModelObserver* observer) {
98 picker_model_->set_observer(observer); 103 picker_model_->set_observer(observer);
99 } 104 }
100 105
106 // Notify the controller that it's TabContents is hosting a web intents
107 // service.
108 void set_window_disposition_target(bool target) {
109 window_disposition_target_ = target;
110 }
111
101 // Called by the WebIntentsRegistry, returning |services|, which is 112 // Called by the WebIntentsRegistry, returning |services|, which is
102 // a list of WebIntentServiceData matching the query. 113 // a list of WebIntentServiceData matching the query.
103 void OnWebIntentServicesAvailable( 114 void OnWebIntentServicesAvailable(
104 const std::vector<webkit_glue::WebIntentServiceData>& services); 115 const std::vector<webkit_glue::WebIntentServiceData>& services);
105 116
106 // Called when a default service is returned from the WebIntentsRegistry. 117 // Called when a default service is returned from the WebIntentsRegistry.
107 // (Still called with default_service.service_url empty if there are no 118 // (Still called with default_service.service_url empty if there are no
108 // defaults.) 119 // defaults.)
109 void OnWebIntentDefaultsAvailable( 120 void OnWebIntentDefaultsAvailable(
110 const DefaultWebIntentService& default_service); 121 const DefaultWebIntentService& default_service);
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 int pending_async_count_; 193 int pending_async_count_;
183 194
184 // A count of outstanding WebIntentsRegistry calls. 195 // A count of outstanding WebIntentsRegistry calls.
185 int pending_registry_calls_count_; 196 int pending_registry_calls_count_;
186 197
187 // Is true if the picker is currently visible. 198 // Is true if the picker is currently visible.
188 // This bool is not equivalent to picker != NULL in a unit test. In that 199 // This bool is not equivalent to picker != NULL in a unit test. In that
189 // case, a picker may be non-NULL before it is shown. 200 // case, a picker may be non-NULL before it is shown.
190 bool picker_shown_; 201 bool picker_shown_;
191 202
203 // Set to true if the TabContents with which this controller is associated is
204 // hosting a web intents window disposition service.
205 bool window_disposition_target_;
206
192 // Weak pointer to the routing object for the renderer which launched the 207 // Weak pointer to the routing object for the renderer which launched the
193 // intent. Contains the intent data and a way to signal back to the 208 // intent. Contains the intent data and a way to signal back to the
194 // client page. 209 // client page.
195 content::WebIntentsDispatcher* intents_dispatcher_; 210 content::WebIntentsDispatcher* intents_dispatcher_;
196 211
197 // Weak pointer to the tab servicing the intent. Remembered in order to 212 // Weak pointer to the tab servicing the intent. Remembered in order to
198 // close it when a reply is sent. 213 // close it when a reply is sent.
199 content::WebContents* service_tab_; 214 content::WebContents* service_tab_;
200 215
201 // Request consumer used when asynchronously loading favicons. 216 // Request consumer used when asynchronously loading favicons.
202 CancelableRequestConsumerTSimple<size_t> favicon_consumer_; 217 CancelableRequestConsumerTSimple<size_t> favicon_consumer_;
203 218
204 base::WeakPtrFactory<WebIntentPickerController> weak_ptr_factory_; 219 base::WeakPtrFactory<WebIntentPickerController> weak_ptr_factory_;
205 220
206 DISALLOW_COPY_AND_ASSIGN(WebIntentPickerController); 221 DISALLOW_COPY_AND_ASSIGN(WebIntentPickerController);
207 }; 222 };
208 223
209 #endif // CHROME_BROWSER_UI_INTENTS_WEB_INTENT_PICKER_CONTROLLER_H_ 224 #endif // CHROME_BROWSER_UI_INTENTS_WEB_INTENT_PICKER_CONTROLLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698