| 
									
										
										
										
											2014-10-31 11:17:05 -07:00
										 |  |  | // Copyright (c) 2013 GitHub, Inc.
 | 
					
						
							| 
									
										
										
										
											2014-04-25 17:49:37 +08:00
										 |  |  | // Use of this source code is governed by the MIT license that can be
 | 
					
						
							| 
									
										
										
										
											2013-05-03 10:53:54 +08:00
										 |  |  | // found in the LICENSE file.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-16 08:58:59 +08:00
										 |  |  | #ifndef ATOM_BROWSER_BROWSER_OBSERVER_H_
 | 
					
						
							|  |  |  | #define ATOM_BROWSER_BROWSER_OBSERVER_H_
 | 
					
						
							| 
									
										
										
										
											2013-05-03 10:53:54 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-30 16:03:10 +08:00
										 |  |  | #include <string>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-23 15:25:13 +05:30
										 |  |  | #include "atom/browser/login_handler.h"
 | 
					
						
							|  |  |  | #include "base/memory/scoped_refptr.h"
 | 
					
						
							| 
									
										
										
										
											2018-10-25 17:43:50 +11:00
										 |  |  | #include "base/observer_list_types.h"
 | 
					
						
							| 
									
										
										
										
											2016-05-05 12:26:23 +09:00
										 |  |  | #include "build/build_config.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-05 16:26:44 +09:00
										 |  |  | namespace base { | 
					
						
							|  |  |  | class DictionaryValue; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 10:53:54 +08:00
										 |  |  | namespace atom { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-25 17:43:50 +11:00
										 |  |  | class BrowserObserver : public base::CheckedObserver { | 
					
						
							| 
									
										
										
										
											2013-05-03 10:53:54 +08:00
										 |  |  |  public: | 
					
						
							| 
									
										
										
										
											2015-02-25 19:33:42 -08:00
										 |  |  |   // The browser is about to close all windows.
 | 
					
						
							|  |  |  |   virtual void OnBeforeQuit(bool* prevent_default) {} | 
					
						
							| 
									
										
										
										
											2015-02-25 21:57:25 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 10:53:54 +08:00
										 |  |  |   // The browser has closed all windows and will quit.
 | 
					
						
							|  |  |  |   virtual void OnWillQuit(bool* prevent_default) {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // The browser has closed all windows. If the browser is quiting, then this
 | 
					
						
							|  |  |  |   // method will not be called, instead it will call OnWillQuit.
 | 
					
						
							|  |  |  |   virtual void OnWindowAllClosed() {} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-25 21:47:54 +08:00
										 |  |  |   // The browser is quitting.
 | 
					
						
							|  |  |  |   virtual void OnQuit() {} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-30 16:03:10 +08:00
										 |  |  |   // The browser has opened a file by double clicking in Finder or dragging the
 | 
					
						
							| 
									
										
										
										
											2016-06-18 15:26:26 +02:00
										 |  |  |   // file to the Dock icon. (macOS only)
 | 
					
						
							| 
									
										
										
										
											2018-04-17 21:44:10 -04:00
										 |  |  |   virtual void OnOpenFile(bool* prevent_default, const std::string& file_path) { | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2013-05-30 16:03:10 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-07-10 16:10:38 +08:00
										 |  |  |   // Browser is used to open a url.
 | 
					
						
							|  |  |  |   virtual void OnOpenURL(const std::string& url) {} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-14 18:34:27 -07:00
										 |  |  |   // The browser is activated with visible/invisible windows (usually by
 | 
					
						
							|  |  |  |   // clicking on the dock icon).
 | 
					
						
							| 
									
										
										
										
											2015-09-14 19:05:53 -07:00
										 |  |  |   virtual void OnActivate(bool has_visible_windows) {} | 
					
						
							| 
									
										
										
										
											2015-09-14 19:28:13 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-30 19:12:14 +08:00
										 |  |  |   // The browser has finished loading.
 | 
					
						
							| 
									
										
										
										
											2013-06-03 15:31:46 +08:00
										 |  |  |   virtual void OnWillFinishLaunching() {} | 
					
						
							| 
									
										
										
										
											2016-08-31 17:17:44 -07:00
										 |  |  |   virtual void OnFinishLaunching(const base::DictionaryValue& launch_info) {} | 
					
						
							| 
									
										
										
										
											2013-05-30 19:12:14 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-28 19:34:01 +08:00
										 |  |  |   // The browser requests HTTP login.
 | 
					
						
							| 
									
										
										
										
											2018-08-23 15:25:13 +05:30
										 |  |  |   virtual void OnLogin(scoped_refptr<LoginHandler> login_handler, | 
					
						
							| 
									
										
										
										
											2016-06-08 19:22:21 +05:30
										 |  |  |                        const base::DictionaryValue& request_details) {} | 
					
						
							| 
									
										
										
										
											2015-10-28 19:34:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-11 14:32:14 -07:00
										 |  |  |   // The browser's accessibility suppport has changed.
 | 
					
						
							| 
									
										
										
										
											2016-07-11 14:46:28 -07:00
										 |  |  |   virtual void OnAccessibilitySupportChanged() {} | 
					
						
							| 
									
										
										
										
											2016-07-11 14:04:56 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-16 05:33:12 +10:00
										 |  |  |   // The app message loop is ready
 | 
					
						
							|  |  |  |   virtual void OnPreMainMessageLoopRun() {} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-05 12:26:23 +09:00
										 |  |  | #if defined(OS_MACOSX)
 | 
					
						
							| 
									
										
										
										
											2017-06-26 16:14:44 -03:00
										 |  |  |   // The browser wants to report that an user activity will resume. (macOS only)
 | 
					
						
							| 
									
										
										
										
											2018-04-17 21:44:10 -04:00
										 |  |  |   virtual void OnWillContinueUserActivity(bool* prevent_default, | 
					
						
							|  |  |  |                                           const std::string& type) {} | 
					
						
							| 
									
										
										
										
											2017-06-26 16:14:44 -03:00
										 |  |  |   // The browser wants to report an user activity resuming error. (macOS only)
 | 
					
						
							| 
									
										
										
										
											2018-04-17 21:44:10 -04:00
										 |  |  |   virtual void OnDidFailToContinueUserActivity(const std::string& type, | 
					
						
							|  |  |  |                                                const std::string& error) {} | 
					
						
							| 
									
										
										
										
											2016-06-18 15:26:26 +02:00
										 |  |  |   // The browser wants to resume a user activity via handoff. (macOS only)
 | 
					
						
							| 
									
										
										
										
											2018-04-17 21:44:10 -04:00
										 |  |  |   virtual void OnContinueUserActivity(bool* prevent_default, | 
					
						
							|  |  |  |                                       const std::string& type, | 
					
						
							|  |  |  |                                       const base::DictionaryValue& user_info) {} | 
					
						
							| 
									
										
										
										
											2017-06-26 16:14:44 -03:00
										 |  |  |   // The browser wants to notify that an user activity was resumed. (macOS only)
 | 
					
						
							|  |  |  |   virtual void OnUserActivityWasContinued( | 
					
						
							|  |  |  |       const std::string& type, | 
					
						
							|  |  |  |       const base::DictionaryValue& user_info) {} | 
					
						
							|  |  |  |   // The browser wants to update an user activity payload. (macOS only)
 | 
					
						
							|  |  |  |   virtual void OnUpdateUserActivityState( | 
					
						
							| 
									
										
										
										
											2017-08-09 12:09:47 -03:00
										 |  |  |       bool* prevent_default, | 
					
						
							| 
									
										
										
										
											2017-06-26 16:14:44 -03:00
										 |  |  |       const std::string& type, | 
					
						
							|  |  |  |       const base::DictionaryValue& user_info) {} | 
					
						
							| 
									
										
										
										
											2017-06-11 01:19:01 -07:00
										 |  |  |   // User clicked the native macOS new tab button. (macOS only)
 | 
					
						
							|  |  |  |   virtual void OnNewWindowForTab() {} | 
					
						
							| 
									
										
										
										
											2016-05-05 12:26:23 +09:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2016-04-29 17:36:04 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 10:53:54 +08:00
										 |  |  |  protected: | 
					
						
							| 
									
										
										
										
											2018-10-25 17:43:50 +11:00
										 |  |  |   ~BrowserObserver() override {} | 
					
						
							| 
									
										
										
										
											2013-05-03 10:53:54 +08:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }  // namespace atom
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-16 08:58:59 +08:00
										 |  |  | #endif  // ATOM_BROWSER_BROWSER_OBSERVER_H_
 |