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

Side by Side Diff: chrome/browser/instant/instant_unload_handler.h

Issue 5610005: Makes instant run before unload listeners. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/chrome
Patch Set: Better comments Created 10 years 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
(Empty)
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_INSTANT_INSTANT_UNLOAD_HANDLER_H_
6 #define CHROME_BROWSER_INSTANT_INSTANT_UNLOAD_HANDLER_H_
7 #pragma once
8
9 #include "base/scoped_vector.h"
10
11 class Browser;
12 class TabContentsWrapper;
13
14 // InstantUnloadHandler makes sure the before unload handler is run when using
Charlie Reis 2010/12/08 01:26:12 Shouldn't this class handle unload handlers as wel
sky 2010/12/08 03:04:22 Done.
15 // instant. When the user navigates with instant the existing TabContentsWrapper
Charlie Reis 2010/12/08 01:26:12 What does "navigates" mean here? That the instant
sky 2010/12/08 03:04:22 Done.
sky 2010/12/08 03:04:22 Done.
16 // is passed to |Own|. If the tab has no before unload listener the tab is
17 // deleted, otherwise the before unload listener is executed. If the before
18 // unload listener shows a dialog the tab is added back to the tabstrip.
Charlie Reis 2010/12/08 01:26:12 ..., next to the new instant page?
19 class InstantUnloadHandler {
20 public:
21 explicit InstantUnloadHandler(Browser* browser);
22 ~InstantUnloadHandler();
23
24 // See class description for details on what this does.
25 void Own(TabContentsWrapper* tab_contents, int index);
Charlie Reis 2010/12/08 01:26:12 This name isn't really indicative of what's going
sky 2010/12/08 03:04:22 I'm open to another name, but AttemptTransition do
Charlie Reis 2010/12/08 05:50:11 I like it. Don't forget to update the class-level
26
27 private:
28 class TabContentsDelegateImpl;
29
30 // Invoked if the tab is to be shown. This happens if the before unload
31 // listener returns a string.
32 void Activate(TabContentsDelegateImpl* delegate);
33
34 // Destroys the tab. This is invoked if script tries to close the page.
Charlie Reis 2010/12/08 01:26:12 Are you referring to window.close() within the bef
sky 2010/12/08 03:04:22 All methods here refer to the previous page, the o
Charlie Reis 2010/12/08 05:50:11 Saying "old" in the comment helps already, or you
35 void Destroy(TabContentsDelegateImpl* delegate);
36
37 // TODO(sky): browser really needs to wait to close until there are no more
38 // tabs managed by InstantUnloadHandler.
Charlie Reis 2010/12/08 01:26:12 Are there memory problems waiting to happen becaus
sky 2010/12/08 03:04:22 Not that I'm aware of. Browser owns this object,
Charlie Reis 2010/12/08 05:50:11 Ah, yes, that will be important to resolve. Later
39 Browser* browser_;
40
41 ScopedVector<TabContentsDelegateImpl> delegates_;
42
43 DISALLOW_COPY_AND_ASSIGN(InstantUnloadHandler);
44 };
45
46 #endif // CHROME_BROWSER_INSTANT_INSTANT_UNLOAD_HANDLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698