forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
snapshot_manager.h
58 lines (47 loc) · 2.65 KB
/
snapshot_manager.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// Copyright 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_CHROME_BROWSER_SNAPSHOTS_SNAPSHOT_MANAGER_H_
#define IOS_CHROME_BROWSER_SNAPSHOTS_SNAPSHOT_MANAGER_H_
#import <UIKit/UIKit.h>
#include "ios/web/public/web_view_type.h"
// Snapshot manager for contents of a tab. A snapshot is a full-screen image
// of the contents of the page at the current scroll offset and zoom level,
// used to stand in for the web view if it has been purged from memory or when
// quickly switching tabs. Uses |SnapshotCache| to cache (and persist)
// snapshots.
//
// The snapshots are identified by a "session id" which is unique per tab. This
// allows quick identification and replacement as a tab changes pages.
@interface SnapshotManager : NSObject
// Takes a snapshot for the supplied view (which should correspond to the given
// type of web view). Returns an autoreleased image cropped and scaled
// appropriately.
// The image is not yet cached.
// The image can also contain overlays (if |overlays| is not nil and not empty).
- (UIImage*)generateSnapshotForView:(UIView*)view
withRect:(CGRect)rect
overlays:(NSArray*)overlays;
// TODO(shreyasv): Consider passing the sessionID into SnapshotManager from Tab
// in the init method and simplifying the following methods.
// Retrieve a cached snapshot for the |sessionID| and return it via the callback
// if it exists. The callback is garanteed to be called synchronously if the
// image is in memory. It will be called asynchronously if the image is on disk
// or with nil if the image is not present at all.
- (void)retrieveImageForSessionID:(NSString*)sessionID
callback:(void (^)(UIImage*))callback;
// Request the session's grey snapshot. If the image is already loaded in
// memory, this will immediately call back on |callback|. Otherwise, the grey
// image will be loaded off disk or created by converting an existing color
// snapshot to grey.
- (void)retrieveGreyImageForSessionID:(NSString*)sessionID
callback:(void (^)(UIImage*))callback;
// Stores the supplied thumbnail for the specified |sessionID|.
- (void)setImage:(UIImage*)img withSessionID:(NSString*)sessionID;
// Removes the cached thumbnail for the specified |sessionID|.
- (void)removeImageWithSessionID:(NSString*)sessionID;
// Request the grey image from the in-memory cache only.
- (void)greyImageForSessionID:(NSString*)sessionID
callback:(void (^)(UIImage*))callback;
@end
#endif // IOS_CHROME_BROWSER_SNAPSHOTS_SNAPSHOT_MANAGER_H_