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

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

Issue 2681203002: Add Browser::SkipCallBeforeUnload so that the browser windows can be closed regardless of beforeunl… (Closed)
Patch Set: rebase from master Created 3 years, 9 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 (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_BROWSER_H_ 5 #ifndef CHROME_BROWSER_UI_BROWSER_H_
6 #define CHROME_BROWSER_UI_BROWSER_H_ 6 #define CHROME_BROWSER_UI_BROWSER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 bool include_app_name, 317 bool include_app_name,
318 content::WebContents* contents) const; 318 content::WebContents* contents) const;
319 319
320 // Prepares a title string for display (removes embedded newlines, etc). 320 // Prepares a title string for display (removes embedded newlines, etc).
321 static void FormatTitleForDisplay(base::string16* title); 321 static void FormatTitleForDisplay(base::string16* title);
322 322
323 // OnBeforeUnload handling ////////////////////////////////////////////////// 323 // OnBeforeUnload handling //////////////////////////////////////////////////
324 324
325 // Gives beforeunload handlers the chance to cancel the close. Returns whether 325 // Gives beforeunload handlers the chance to cancel the close. Returns whether
326 // to proceed with the close. If called while the process begun by 326 // to proceed with the close. If called while the process begun by
327 // CallBeforeUnloadHandlers is in progress, returns false without taking 327 // TryToCloseWindow is in progress, returns false without taking action.
328 // action.
329 bool ShouldCloseWindow(); 328 bool ShouldCloseWindow();
330 329
331 // Begins the process of confirming whether the associated browser can be 330 // Begins the process of confirming whether the associated browser can be
332 // closed. If there are no tabs with beforeunload handlers it will immediately 331 // closed. If there are no tabs with beforeunload handlers it will immediately
333 // return false. Otherwise, it starts prompting the user, returns true and 332 // return false. If |skip_beforeunload| is true, all beforeunload
334 // will call |on_close_confirmed| with the result of the user's decision. 333 // handlers will be skipped and window closing will be confirmed without
334 // showing the prompt, the function will return false as well.
335 // Otherwise, it starts prompting the user, returns true and will call
336 // |on_close_confirmed| with the result of the user's decision.
335 // After calling this function, if the window will not be closed, call 337 // After calling this function, if the window will not be closed, call
336 // ResetBeforeUnloadHandlers() to reset all beforeunload handlers; calling 338 // ResetBeforeUnloadHandlers() to reset all beforeunload handlers; calling
337 // this function multiple times without an intervening call to 339 // this function multiple times without an intervening call to
338 // ResetBeforeUnloadHandlers() will run only the beforeunload handlers 340 // ResetTryToCloseWindow() will run only the beforeunload handlers
339 // registered since the previous call. 341 // registered since the previous call.
340 bool CallBeforeUnloadHandlers( 342 // Note that if the browser window has been used before, user should always
341 const base::Callback<void(bool)>& on_close_confirmed); 343 // has a chance to save his or her work before closing window without trigger
Charlie Reis 2017/03/14 00:06:30 nit: s/has/have/ nit: before the window is closed
zmin 2017/03/14 17:46:47 Done.
344 // beforeunload event.
345 bool TryToCloseWindow(bool skip_beforeunload,
346 const base::Callback<void(bool)>& on_close_confirmed);
342 347
343 // Clears the results of any beforeunload confirmation dialogs triggered by a 348 // Clears the results of any beforeunload confirmation dialogs triggered by a
344 // CallBeforeUnloadHandlers call. 349 // TryToCloseWindow call.
345 void ResetBeforeUnloadHandlers(); 350 void ResetTryToCloseWindow();
346 351
347 // Figure out if there are tabs that have beforeunload handlers. 352 // Figure out if there are tabs that have beforeunload handlers.
348 // It starts beforeunload/unload processing as a side-effect. 353 // It starts beforeunload/unload processing as a side-effect.
349 bool TabsNeedBeforeUnloadFired(); 354 bool TabsNeedBeforeUnloadFired();
350 355
351 // Returns true if all tabs' beforeunload/unload events have fired. 356 // Returns true if all tabs' beforeunload/unload events have fired.
352 bool HasCompletedUnloadProcessing() const; 357 bool HasCompletedUnloadProcessing() const;
353 358
354 bool IsAttemptingToCloseBrowser() const; 359 bool IsAttemptingToCloseBrowser() const;
355 360
(...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after
1030 // The following factory is used for chrome update coalescing. 1035 // The following factory is used for chrome update coalescing.
1031 base::WeakPtrFactory<Browser> chrome_updater_factory_; 1036 base::WeakPtrFactory<Browser> chrome_updater_factory_;
1032 1037
1033 // The following factory is used to close the frame at a later time. 1038 // The following factory is used to close the frame at a later time.
1034 base::WeakPtrFactory<Browser> weak_factory_; 1039 base::WeakPtrFactory<Browser> weak_factory_;
1035 1040
1036 DISALLOW_COPY_AND_ASSIGN(Browser); 1041 DISALLOW_COPY_AND_ASSIGN(Browser);
1037 }; 1042 };
1038 1043
1039 #endif // CHROME_BROWSER_UI_BROWSER_H_ 1044 #endif // CHROME_BROWSER_UI_BROWSER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698