| Index: content/browser/frame_host/navigation_entry_screenshot_manager.h
|
| diff --git a/content/browser/frame_host/navigation_entry_screenshot_manager.h b/content/browser/frame_host/navigation_entry_screenshot_manager.h
|
| index 072d6fd4a7fe19a1111acdb6b2e5c6c470f92285..4ec87815919111515b9c48bad39e2a619ba32f5b 100644
|
| --- a/content/browser/frame_host/navigation_entry_screenshot_manager.h
|
| +++ b/content/browser/frame_host/navigation_entry_screenshot_manager.h
|
| @@ -6,9 +6,12 @@
|
| #define CONTENT_BROWSER_FRAME_HOST_NAVIGATION_ENTRY_SCREENSHOT_MANAGER_H_
|
|
|
| #include "base/compiler_specific.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "base/memory/scoped_vector.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/time/time.h"
|
| #include "content/common/content_export.h"
|
| +#include "content/public/browser/web_contents_observer.h"
|
|
|
| class SkBitmap;
|
|
|
| @@ -18,12 +21,14 @@ class NavigationControllerImpl;
|
| class NavigationEntryImpl;
|
| class RenderViewHost;
|
| class ScreenshotData;
|
| +class SiteInstanceKeepAlive;
|
|
|
| // NavigationEntryScreenshotManager takes care of taking image-captures for the
|
| // current navigation entry of a NavigationControllerImpl, and managing these
|
| // captured images. These image-captures are used for history navigation using
|
| // overscroll gestures.
|
| -class CONTENT_EXPORT NavigationEntryScreenshotManager {
|
| +class CONTENT_EXPORT NavigationEntryScreenshotManager
|
| + : public WebContentsObserver {
|
| public:
|
| explicit NavigationEntryScreenshotManager(
|
| NavigationControllerImpl* controller);
|
| @@ -50,6 +55,7 @@ class CONTENT_EXPORT NavigationEntryScreenshotManager {
|
| // The callback invoked when taking the screenshot of the page is complete.
|
| // This sets the screenshot on the navigation entry.
|
| void OnScreenshotTaken(int unique_id,
|
| + SiteInstanceKeepAlive* keep_alive,
|
| bool success,
|
| const SkBitmap& bitmap);
|
|
|
| @@ -71,9 +77,16 @@ class CONTENT_EXPORT NavigationEntryScreenshotManager {
|
| // consumption is within a certain limit.
|
| void PurgeScreenshotsIfNecessary();
|
|
|
| + // WebContentsObserver:
|
| + virtual void WebContentsDestroyed(WebContents* contents) OVERRIDE;
|
| +
|
| // The navigation controller that owns this screenshot-manager.
|
| NavigationControllerImpl* owner_;
|
|
|
| + // Keeps track of (and owns) all the SiteInstanceKeepAlive objects created for
|
| + // screenshot requests.
|
| + ScopedVector<SiteInstanceKeepAlive> keep_alives_;
|
| +
|
| // Taking a screenshot and encoding them can be async. So use a weakptr for
|
| // the callback to make sure that the screenshot/encoding completion callback
|
| // does not trigger on a destroyed NavigationEntryScreenshotManager.
|
|
|