diff options
Diffstat (limited to 'WebKit/mac/WebView')
-rw-r--r-- | WebKit/mac/WebView/WebFrameView.mm | 4 | ||||
-rw-r--r-- | WebKit/mac/WebView/WebHTMLRepresentationInternal.h | 33 | ||||
-rw-r--r-- | WebKit/mac/WebView/WebHTMLViewPrivate.h | 4 | ||||
-rw-r--r-- | WebKit/mac/WebView/WebPreferenceKeysPrivate.h | 1 | ||||
-rw-r--r-- | WebKit/mac/WebView/WebPreferences.mm | 11 | ||||
-rw-r--r-- | WebKit/mac/WebView/WebPreferencesPrivate.h | 3 | ||||
-rw-r--r-- | WebKit/mac/WebView/WebScriptDebugDelegate.mm | 2 | ||||
-rw-r--r-- | WebKit/mac/WebView/WebVideoFullscreenController.mm | 6 | ||||
-rw-r--r-- | WebKit/mac/WebView/WebVideoFullscreenHUDWindowController.mm | 1 | ||||
-rw-r--r-- | WebKit/mac/WebView/WebView.mm | 67 | ||||
-rw-r--r-- | WebKit/mac/WebView/WebViewData.h | 2 | ||||
-rw-r--r-- | WebKit/mac/WebView/WebViewPrivate.h | 4 |
12 files changed, 59 insertions, 79 deletions
diff --git a/WebKit/mac/WebView/WebFrameView.mm b/WebKit/mac/WebView/WebFrameView.mm index e76e3ca..0db12c0 100644 --- a/WebKit/mac/WebView/WebFrameView.mm +++ b/WebKit/mac/WebView/WebFrameView.mm @@ -55,7 +55,7 @@ #import "WebViewInternal.h" #import "WebViewPrivate.h" #import <Foundation/NSURLRequest.h> -#import <WebCore/BackForwardList.h> +#import <WebCore/BackForwardListImpl.h> #import <WebCore/DragController.h> #import <WebCore/EventHandler.h> #import <WebCore/Frame.h> @@ -708,7 +708,7 @@ static inline void addTypesFromClass(NSMutableDictionary *allTypes, Class objCCl int index, count; BOOL callSuper = YES; Frame* coreFrame = [self _web_frame]; - BOOL maintainsBackForwardList = coreFrame && coreFrame->page()->backForwardList()->enabled() ? YES : NO; + BOOL maintainsBackForwardList = coreFrame && static_cast<BackForwardListImpl*>(coreFrame->page()->backForwardList())->enabled() ? YES : NO; count = [characters length]; for (index = 0; index < count; ++index) { diff --git a/WebKit/mac/WebView/WebHTMLRepresentationInternal.h b/WebKit/mac/WebView/WebHTMLRepresentationInternal.h deleted file mode 100644 index d42b400..0000000 --- a/WebKit/mac/WebView/WebHTMLRepresentationInternal.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2008 Apple Computer, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import <WebKit/WebHTMLRepresentationPrivate.h> - -@interface WebHTMLRepresentation (WebInternal) -+ (NSArray *)supportedNonImageMIMETypes; -@end diff --git a/WebKit/mac/WebView/WebHTMLViewPrivate.h b/WebKit/mac/WebView/WebHTMLViewPrivate.h index 1218efc..c62713f 100644 --- a/WebKit/mac/WebView/WebHTMLViewPrivate.h +++ b/WebKit/mac/WebView/WebHTMLViewPrivate.h @@ -46,10 +46,6 @@ @protocol WebHTMLHighlighter - (NSRect)highlightRectForLine:(NSRect)lineRect representedNode:(DOMNode *)node; - (void)paintHighlightForBox:(NSRect)boxRect onLine:(NSRect)lineRect behindText:(BOOL)text entireLine:(BOOL)line representedNode:(DOMNode *)node; - -// the following methods are deprecated and will be removed once Mail switches to the new methods <rdar://problem/5050528> -- (NSRect)highlightRectForLine:(NSRect)lineRect; -- (void)paintHighlightForBox:(NSRect)boxRect onLine:(NSRect)lineRect behindText:(BOOL)text entireLine:(BOOL)line; @end extern const float _WebHTMLViewPrintingMinimumShrinkFactor; diff --git a/WebKit/mac/WebView/WebPreferenceKeysPrivate.h b/WebKit/mac/WebView/WebPreferenceKeysPrivate.h index cd9ed8f..5c6b530 100644 --- a/WebKit/mac/WebView/WebPreferenceKeysPrivate.h +++ b/WebKit/mac/WebView/WebPreferenceKeysPrivate.h @@ -93,7 +93,6 @@ #define WebKitShowRepaintCounterPreferenceKey @"WebKitShowRepaintCounter" #define WebKitWebGLEnabledPreferenceKey @"WebKitWebGLEnabled" #define WebKitAccelerated2dCanvasEnabledPreferenceKey @"WebKitAccelerated2dCanvasEnabled" -#define WebKitUsesProxiedOpenPanelPreferenceKey @"WebKitUsesProxiedOpenPanel" #define WebKitPluginAllowedRunTimePreferenceKey @"WebKitPluginAllowedRunTime" #define WebKitFrameFlatteningEnabledPreferenceKey @"WebKitFrameFlatteningEnabled" #define WebKitSpatialNavigationEnabledPreferenceKey @"WebKitSpatialNavigationEnabled" diff --git a/WebKit/mac/WebView/WebPreferences.mm b/WebKit/mac/WebView/WebPreferences.mm index ccfb632..ed06188 100644 --- a/WebKit/mac/WebView/WebPreferences.mm +++ b/WebKit/mac/WebView/WebPreferences.mm @@ -362,7 +362,6 @@ static WebCacheModel cacheModelForMainBundle(void) [NSNumber numberWithBool:NO], WebKitShowRepaintCounterPreferenceKey, [NSNumber numberWithBool:NO], WebKitWebGLEnabledPreferenceKey, [NSNumber numberWithBool:NO], WebKitAccelerated2dCanvasEnabledPreferenceKey, - [NSNumber numberWithBool:NO], WebKitUsesProxiedOpenPanelPreferenceKey, [NSNumber numberWithUnsignedInt:4], WebKitPluginAllowedRunTimePreferenceKey, [NSNumber numberWithBool:NO], WebKitFrameFlatteningEnabledPreferenceKey, [NSNumber numberWithBool:NO], WebKitSpatialNavigationEnabledPreferenceKey, @@ -1284,16 +1283,6 @@ static NSString *classIBCreatorID = nil; [self _setBoolValue:enabled forKey:WebKitAccelerated2dCanvasEnabledPreferenceKey]; } -- (BOOL)usesProxiedOpenPanel -{ - return [self _boolValueForKey:WebKitUsesProxiedOpenPanelPreferenceKey]; -} - -- (void)setUsesProxiedOpenPanel:(BOOL)enabled -{ - [self _setBoolValue:enabled forKey:WebKitUsesProxiedOpenPanelPreferenceKey]; -} - - (unsigned)pluginAllowedRunTime { return [self _integerValueForKey:WebKitPluginAllowedRunTimePreferenceKey]; diff --git a/WebKit/mac/WebView/WebPreferencesPrivate.h b/WebKit/mac/WebView/WebPreferencesPrivate.h index 47e6d71..2ec08e8 100644 --- a/WebKit/mac/WebView/WebPreferencesPrivate.h +++ b/WebKit/mac/WebView/WebPreferencesPrivate.h @@ -193,9 +193,6 @@ extern NSString *WebPreferencesRemovedNotification; - (BOOL)paginateDuringLayoutEnabled; - (void)setPaginateDuringLayoutEnabled:(BOOL)flag; -- (BOOL)usesProxiedOpenPanel; -- (void)setUsesProxiedOpenPanel:(BOOL)enabled; - - (BOOL)memoryInfoEnabled; - (void)setMemoryInfoEnabled:(BOOL)enabled; diff --git a/WebKit/mac/WebView/WebScriptDebugDelegate.mm b/WebKit/mac/WebView/WebScriptDebugDelegate.mm index 9ffd36e..63a91a9 100644 --- a/WebKit/mac/WebView/WebScriptDebugDelegate.mm +++ b/WebKit/mac/WebView/WebScriptDebugDelegate.mm @@ -236,7 +236,7 @@ NSString * const WebScriptErrorLineNumberKey = @"WebScriptErrorLineNumber"; // WebScriptCallFrame. Instead, we need to set the dynamic global object // and evaluate the JS in the global object's global call frame. JSGlobalObject* globalObject = _private->debugger->globalObject(); - if (self == _private->debugger->globalCallFrame() && !globalObject->globalData()->dynamicGlobalObject) { + if (self == _private->debugger->globalCallFrame() && !globalObject->globalData().dynamicGlobalObject) { JSGlobalObject* globalObject = _private->debugger->globalObject(); DynamicGlobalObjectScope globalObjectScope(globalObject->globalExec(), globalObject); diff --git a/WebKit/mac/WebView/WebVideoFullscreenController.mm b/WebKit/mac/WebView/WebVideoFullscreenController.mm index 1efb93f..2687b14 100644 --- a/WebKit/mac/WebView/WebVideoFullscreenController.mm +++ b/WebKit/mac/WebView/WebVideoFullscreenController.mm @@ -246,7 +246,6 @@ static NSWindow *createBackgroundFullscreenWindow(NSRect frame, int level) [window setOpaque:YES]; [window setBackgroundColor:[NSColor blackColor]]; [window setLevel:level]; - [window setHidesOnDeactivate:YES]; [window setReleasedWhenClosed:NO]; return window; } @@ -414,11 +413,11 @@ static NSWindow *createBackgroundFullscreenWindow(NSRect frame, int level) if (rate && !_isEndingFullscreen) { [self _disableIdleSystemSleep]; [self _disableIdleDisplaySleep]; - [self _disableTickleTimer]; + [self _enableTickleTimer]; } else { [self _enableIdleSystemSleep]; [self _enableIdleDisplaySleep]; - [self _enableTickleTimer]; + [self _disableTickleTimer]; } #endif } @@ -475,7 +474,6 @@ static NSWindow *createBackgroundFullscreenWindow(NSRect frame, int level) return nil; [self setOpaque:NO]; [self setBackgroundColor:[NSColor clearColor]]; - [self setHidesOnDeactivate:YES]; [self setIgnoresMouseEvents:NO]; [self setAcceptsMouseMovedEvents:YES]; return self; diff --git a/WebKit/mac/WebView/WebVideoFullscreenHUDWindowController.mm b/WebKit/mac/WebView/WebVideoFullscreenHUDWindowController.mm index 1aa501e..6907311 100644 --- a/WebKit/mac/WebView/WebVideoFullscreenHUDWindowController.mm +++ b/WebKit/mac/WebView/WebVideoFullscreenHUDWindowController.mm @@ -91,7 +91,6 @@ static inline CGFloat webkit_CGFloor(CGFloat value) [self setAcceptsMouseMovedEvents:YES]; [self setIgnoresMouseEvents:NO]; [self setMovableByWindowBackground:YES]; - [self setHidesOnDeactivate:YES]; return self; } diff --git a/WebKit/mac/WebView/WebView.mm b/WebKit/mac/WebView/WebView.mm index 9b267ef..7456898 100644 --- a/WebKit/mac/WebView/WebView.mm +++ b/WebKit/mac/WebView/WebView.mm @@ -110,7 +110,7 @@ #import <JavaScriptCore/JSValueRef.h> #import <WebCore/AbstractDatabase.h> #import <WebCore/ApplicationCacheStorage.h> -#import <WebCore/BackForwardList.h> +#import <WebCore/BackForwardListImpl.h> #import <WebCore/Cache.h> #import <WebCore/ColorMac.h> #import <WebCore/CSSComputedStyleDeclaration.h> @@ -144,6 +144,7 @@ #import <WebCore/PageGroup.h> #import <WebCore/PlatformMouseEvent.h> #import <WebCore/ProgressTracker.h> +#import <WebCore/RenderView.h> #import <WebCore/RenderWidget.h> #import <WebCore/ResourceHandle.h> #import <WebCore/RuntimeApplicationChecks.h> @@ -403,6 +404,7 @@ NSString *WebElementLinkLabelKey = @"WebElementLinkLabel"; NSString *WebElementLinkTargetFrameKey = @"WebElementTargetFrame"; NSString *WebElementLinkTitleKey = @"WebElementLinkTitle"; NSString *WebElementLinkURLKey = @"WebElementLinkURL"; +NSString *WebElementMediaURLKey = @"WebElementMediaURL"; NSString *WebElementSpellingToolTipKey = @"WebElementSpellingToolTip"; NSString *WebElementTitleKey = @"WebElementTitle"; NSString *WebElementLinkIsLiveKey = @"WebElementLinkIsLive"; @@ -1397,6 +1399,12 @@ static bool fastDocumentTeardownEnabled() || [[self preferences] usePreHTML5ParserQuirks]; } +- (BOOL)_needsUnrestrictedGetMatchedCSSRules +{ + static bool needsUnrestrictedGetMatchedCSSRules = !WebKitLinkedOnOrAfter(WEBKIT_FIRST_VERSION_WITH_GET_MATCHED_CSS_RULES_RESTRICTIONS) && applicationIsSafari(); + return needsUnrestrictedGetMatchedCSSRules; +} + - (void)_preferencesChangedNotification:(NSNotification *)notification { WebPreferences *preferences = (WebPreferences *)[notification object]; @@ -1495,6 +1503,7 @@ static bool fastDocumentTeardownEnabled() settings->setMemoryInfoEnabled([preferences memoryInfoEnabled]); settings->setHyperlinkAuditingEnabled([preferences hyperlinkAuditingEnabled]); settings->setUsePreHTML5ParserQuirks([self _needsPreHTML5ParserQuirks]); + settings->setCrossOriginCheckInGetMatchedCSSRulesDisabled([self _needsUnrestrictedGetMatchedCSSRules]); // Application Cache Preferences are stored on the global cache storage manager, not in Settings. [WebApplicationCache setDefaultOriginQuota:[preferences applicationCacheDefaultOriginQuota]]; @@ -2617,6 +2626,24 @@ static PassOwnPtr<Vector<String> > toStringVector(NSArray* patterns) SchemeRegistry::registerURLSchemeAsSecure(scheme); } +- (void)_scaleWebView:(float)scale +{ + Frame* coreFrame = [self _mainCoreFrame]; + if (!coreFrame) + return; + + coreFrame->scalePage(scale); +} + +- (float)_viewScaleFactor +{ + Frame* coreFrame = [self _mainCoreFrame]; + if (!coreFrame) + return 1; + + return coreFrame->pageScaleFactor(); +} + @end @implementation _WebSafeForwarder @@ -2979,7 +3006,7 @@ static bool needsWebViewInitThreadWorkaround() LOG(Encoding, "FrameName = %@, GroupName = %@, useBackForwardList = %d\n", frameName, groupName, (int)useBackForwardList); [result _commonInitializationWithFrameName:frameName groupName:groupName usesDocumentViews:YES]; - [result page]->backForwardList()->setEnabled(useBackForwardList); + static_cast<BackForwardListImpl*>([result page]->backForwardList())->setEnabled(useBackForwardList); result->_private->allowsUndo = allowsUndo; if (preferences) [result setPreferences:preferences]; @@ -3003,7 +3030,7 @@ static bool needsWebViewInitThreadWorkaround() // Restore the subviews we set aside. _subviews = originalSubviews; - BOOL useBackForwardList = _private->page && _private->page->backForwardList()->enabled(); + BOOL useBackForwardList = _private->page && static_cast<BackForwardListImpl*>(_private->page->backForwardList())->enabled(); if ([encoder allowsKeyedCoding]) { [encoder encodeObject:[[self mainFrame] name] forKey:@"FrameName"]; [encoder encodeObject:[self groupName] forKey:@"GroupName"]; @@ -3314,16 +3341,17 @@ static bool needsWebViewInitThreadWorkaround() { if (!_private->page) return nil; - if (!_private->page->backForwardList()->enabled()) + BackForwardListImpl* list = static_cast<BackForwardListImpl*>(_private->page->backForwardList()); + if (!list->enabled()) return nil; - return kit(_private->page->backForwardList()); + return kit(list); } - (void)setMaintainsBackForwardList:(BOOL)flag { if (!_private->page) return; - _private->page->backForwardList()->setEnabled(flag); + static_cast<BackForwardListImpl*>(_private->page->backForwardList())->setEnabled(flag); } - (BOOL)goBack @@ -5280,6 +5308,11 @@ static WebFrameView *containingFrameView(NSView *view) @implementation WebView (WebFileInternal) +static inline uint64_t roundUpToPowerOf2(uint64_t num) +{ + return powf(2.0, ceilf(log2f(num))); +} + + (void)_setCacheModel:(WebCacheModel)cacheModel { if (s_didSetCacheModel && cacheModel == s_cacheModel) @@ -5289,9 +5322,7 @@ static WebFrameView *containingFrameView(NSView *view) if (!nsurlCacheDirectory) nsurlCacheDirectory = NSHomeDirectory(); - // As a fudge factor, use 1000 instead of 1024, in case the reported byte - // count doesn't align exactly to a megabyte boundary. - uint64_t memSize = WebMemorySize() / 1024 / 1000; + static uint64_t memSize = roundUpToPowerOf2(WebMemorySize() / 1024 / 1024); unsigned long long diskFreeSize = WebVolumeFreeSize(nsurlCacheDirectory) / 1024 / 1000; NSURLCache *nsurlCache = [NSURLCache sharedURLCache]; @@ -5311,10 +5342,10 @@ static WebFrameView *containingFrameView(NSView *view) pageCacheCapacity = 0; // Object cache capacities (in bytes) - if (memSize >= 2048) + if (memSize >= 4096) + cacheTotalCapacity = 128 * 1024 * 1024; + else if (memSize >= 2048) cacheTotalCapacity = 96 * 1024 * 1024; - else if (memSize >= 1536) - cacheTotalCapacity = 64 * 1024 * 1024; else if (memSize >= 1024) cacheTotalCapacity = 32 * 1024 * 1024; else if (memSize >= 512) @@ -5343,10 +5374,10 @@ static WebFrameView *containingFrameView(NSView *view) pageCacheCapacity = 0; // Object cache capacities (in bytes) - if (memSize >= 2048) + if (memSize >= 4096) + cacheTotalCapacity = 128 * 1024 * 1024; + else if (memSize >= 2048) cacheTotalCapacity = 96 * 1024 * 1024; - else if (memSize >= 1536) - cacheTotalCapacity = 64 * 1024 * 1024; else if (memSize >= 1024) cacheTotalCapacity = 32 * 1024 * 1024; else if (memSize >= 512) @@ -5395,10 +5426,10 @@ static WebFrameView *containingFrameView(NSView *view) // (Testing indicates that value / MB depends heavily on content and // browsing pattern. Even growth above 128MB can have substantial // value / MB for some content / browsing patterns.) - if (memSize >= 2048) + if (memSize >= 4096) + cacheTotalCapacity = 192 * 1024 * 1024; + else if (memSize >= 2048) cacheTotalCapacity = 128 * 1024 * 1024; - else if (memSize >= 1536) - cacheTotalCapacity = 96 * 1024 * 1024; else if (memSize >= 1024) cacheTotalCapacity = 64 * 1024 * 1024; else if (memSize >= 512) diff --git a/WebKit/mac/WebView/WebViewData.h b/WebKit/mac/WebView/WebViewData.h index 639c3e0..8b834ca 100644 --- a/WebKit/mac/WebView/WebViewData.h +++ b/WebKit/mac/WebView/WebViewData.h @@ -138,7 +138,7 @@ extern int pluginDatabaseClientCount; BOOL shouldUpdateWhileOffscreen; - // When this flag is set, we will not make any subviews underneath this WebView. This means no WebFrameViews and no WebHTMLViews. + // When this flag is unset, we will not make any subviews underneath this WebView. This means no WebFrameViews and no WebHTMLViews. BOOL usesDocumentViews; BOOL includesFlattenedCompositingLayersWhenDrawingToBitmap; diff --git a/WebKit/mac/WebView/WebViewPrivate.h b/WebKit/mac/WebView/WebViewPrivate.h index 749eeb3..b951689 100644 --- a/WebKit/mac/WebView/WebViewPrivate.h +++ b/WebKit/mac/WebView/WebViewPrivate.h @@ -67,6 +67,7 @@ extern NSString *_WebMainFrameDocumentKey; extern NSString *WebElementTitleKey; // NSString of the title of the element (used by Safari) extern NSString *WebElementSpellingToolTipKey; // NSString of a tooltip representing misspelling or bad grammar (used internally) extern NSString *WebElementIsContentEditableKey; // NSNumber indicating whether the inner non-shared node is content editable (used internally) +extern NSString *WebElementMediaURLKey; // NSURL of the media element // other WebElementDictionary keys extern NSString *WebElementLinkIsLiveKey; // NSNumber of BOOL indictating whether the link is live or not @@ -541,6 +542,9 @@ Could be worth adding to the API. + (void)_setDomainRelaxationForbidden:(BOOL)forbidden forURLScheme:(NSString *)scheme; + (void)_registerURLSchemeAsSecure:(NSString *)scheme; +- (void)_scaleWebView:(float)scale; +- (float)_viewScaleFactor; + @end @interface WebView (WebViewPrintingPrivate) |