1/*
2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1.  Redistributions of source code must retain the above copyright
9 *     notice, this list of conditions and the following disclaimer.
10 * 2.  Redistributions in binary form must reproduce the above copyright
11 *     notice, this list of conditions and the following disclaimer in the
12 *     documentation and/or other materials provided with the distribution.
13 * 3.  Neither the name of Apple Inc. ("Apple") nor the names of
14 *     its contributors may be used to endorse or promote products derived
15 *     from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#import <WebKitLegacy/WebHistoryItem.h>
30
31#if TARGET_OS_IPHONE
32#import <Foundation/NSCalendarDate.h>
33
34extern NSString *WebViewportInitialScaleKey;
35extern NSString *WebViewportMinimumScaleKey;
36extern NSString *WebViewportMaximumScaleKey;
37extern NSString *WebViewportUserScalableKey;
38extern NSString *WebViewportWidthKey;
39extern NSString *WebViewportHeightKey;
40extern NSString *WebViewportMinimalUIKey;
41#endif
42
43@interface WebHistoryItem (WebPrivate)
44
45#if !TARGET_OS_IPHONE
46+ (void)_releaseAllPendingPageCaches;
47#endif
48
49- (id)initWithURL:(NSURL *)URL title:(NSString *)title;
50
51- (NSURL *)URL;
52- (BOOL)lastVisitWasFailure;
53
54- (NSString *)RSSFeedReferrer;
55- (void)setRSSFeedReferrer:(NSString *)referrer;
56
57- (NSArray *)_redirectURLs;
58
59- (WebHistoryItem *)targetItem;
60- (NSString *)target;
61- (BOOL)isTargetItem;
62- (NSArray *)children;
63- (NSDictionary *)dictionaryRepresentation;
64#if TARGET_OS_IPHONE
65- (NSDictionary *)dictionaryRepresentationIncludingChildren:(BOOL)includesChildren;
66#endif
67
68// Transient properties may be of any ObjC type.  They are intended to be used to store state per back/forward list entry.
69// The properties will not be persisted; when the history item is removed, the properties will be lost.
70- (id)_transientPropertyForKey:(NSString *)key;
71- (void)_setTransientProperty:(id)property forKey:(NSString *)key;
72
73#if TARGET_OS_IPHONE
74- (void)_setScale:(float)scale isInitial:(BOOL)aFlag;
75- (float)_scale;
76- (BOOL)_scaleIsInitial;
77- (NSDictionary *)_viewportArguments;
78- (void)_setViewportArguments:(NSDictionary *)arguments;
79- (CGPoint)_scrollPoint;
80- (void)_setScrollPoint:(CGPoint)scrollPoint;
81
82- (uint32_t)_bookmarkID;
83- (void)_setBookmarkID:(uint32_t)bookmarkID;
84- (NSString *)_sharedLinkUniqueIdentifier;
85- (void)_setSharedLinkUniqueIdentifier:(NSString *)identifier;
86#endif
87
88- (BOOL)_isInPageCache;
89- (BOOL)_hasCachedPageExpired;
90
91@end
92