Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef CHROME_BROWSER_PRERENDER_PRERENDER_HANDLE_H_ | |
| 6 #define CHROME_BROWSER_PRERENDER_PRERENDER_HANDLE_H_ | |
| 7 | |
| 8 #include "base/memory/ref_counted.h" | |
| 9 #include "base/memory/weak_ptr.h" | |
| 10 #include "chrome/browser/prerender/prerender_final_status.h" | |
| 11 | |
| 12 namespace prerender { | |
| 13 | |
| 14 class PrerenderContents; | |
| 15 | |
| 16 // An opaque handle to a prerender. | |
| 17 class PrerenderHandleInterface : | |
|
gavinp
2012/06/17 17:41:15
I've now renamed this to PrerenderInterface, and p
dominich
2012/06/18 15:32:44
I /really/ don't understand why you need an interf
gavinp
2012/06/18 16:40:48
Hrm.
1. A prerender can be canceled by any one of
mmenke
2012/06/18 18:32:03
Seems like there are a lot of ways to implement th
| |
| 18 public base::RefCounted<PrerenderHandleInterface>, | |
| 19 public base::SupportsWeakPtr<PrerenderHandleInterface> { | |
| 20 public: | |
| 21 virtual bool DidFinishLoading() const = 0; | |
| 22 | |
| 23 // Is this prerender created, but not yet launched, as in a link prerender | |
| 24 // launched from a page that is itself prerendering? | |
| 25 virtual bool IsPending() const = 0; | |
| 26 | |
| 27 protected: | |
| 28 PrerenderHandleInterface(); | |
| 29 virtual ~PrerenderHandleInterface() = 0; | |
| 30 | |
| 31 private: | |
| 32 friend class base::RefCounted<PrerenderHandleInterface>; | |
| 33 friend class PrerenderContents; // May call Destroy. | |
| 34 | |
| 35 // Called from PrerenderContents, notifies this handle that this prerender | |
| 36 // either is no longer running, or never will run if it is not yet started. | |
| 37 // TODO(gavinp): Implement WeakScopedRefPtr, and use it to make this method | |
| 38 // redundant. | |
| 39 virtual void Destroy() = 0; | |
| 40 }; | |
| 41 | |
| 42 typedef scoped_refptr<PrerenderHandleInterface> PrerenderHandle; | |
| 43 typedef base::WeakPtr<PrerenderHandleInterface> WeakPrerenderHandle; | |
|
mmenke
2012/06/18 18:32:03
This just makes things hard to follow, and is actu
| |
| 44 | |
| 45 } // namespace prerender | |
| 46 | |
| 47 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_HANDLE_H_ | |
| OLD | NEW |