diff options
Diffstat (limited to 'WebKit/mac')
32 files changed, 440 insertions, 205 deletions
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog index 8f1ea42..e7abf3d 100644 --- a/WebKit/mac/ChangeLog +++ b/WebKit/mac/ChangeLog @@ -1,3 +1,312 @@ +2010-10-29 Darin Adler <darin@apple.com> + + Reviewed by Sam Weinig. + + Change BackForwardList clients to use BackForwardListImpl to prepare for further refactoring + https://bugs.webkit.org/show_bug.cgi?id=48574 + + * History/WebBackForwardList.mm: + Use BackForwardListImpl. + +2010-10-29 Alexey Proskuryakov <ap@apple.com> + + Rubber-stamped by Sam Weinig. + + Comment for usesDocumentViews explains it backwards. This flag is true in ToT, and we do + create views for subframes. + + * WebView/WebViewData.h: Double negation is better than a lie. + +2010-10-27 Jer Noble <jer.noble@apple.com> + + Reviewed by Darin Adler. + + Full screen video in Safari (still) exits full-screen if you switch to another + app on a multi-display system. + https://bugs.webkit.org/show_bug.cgi?id=47364 + <rdar://problem/8382299> + + The FullScreen window does not technically close when it deactivates, but the + two NSWindows that make up the FullScreen feature should not hide when deactivated. + + * WebView/WebVideoFullscreenController.mm: + (createBackgroundFullscreenWindow): Do not set hidesOnDeactivate. + (-[WebVideoFullscreenWindow initWithContentRect:styleMask:backing:defer:]): Ditto. + * WebView/WebVideoFullscreenHUDWindowController.mm: + (-[WebVideoFullscreenHUDWindow initWithContentRect:styleMask:backing:defer:]): Ditto. + +2010-10-29 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=48576 + Let WebKit2 client know when a frame is a frameset + + Added a blank implementation of the new FrameLoaderClient method. + + * WebCoreSupport/WebFrameLoaderClient.h: + * WebCoreSupport/WebFrameLoaderClient.mm: + (WebFrameLoaderClient::dispatchDidBecomeFrameset): + +2010-10-29 Csaba Osztrogonác <ossy@webkit.org> + + Reviewed by Adam Roben and David Kilzer. + + Fix and cleanup of build systems + https://bugs.webkit.org/show_bug.cgi?id=48342 + + * Configurations/FeatureDefines.xcconfig: Remove unnecessary ENABLE_SANDBOX. + +2010-10-28 Dan Bernstein <mitz@apple.com> + + Reviewed by Mark Rowe. + + LLVM compiler build fix + + * Misc/WebDownload.mm: + (-[WebDownload initWithRequest:delegate:]): Changed the delegate type from id to + id<NSURLDownloadDelegate> to match the method signature in NSURLDownload. + +2010-10-28 Ivan Krstić <ike@apple.com> + + Reviewed by Mark Rowe. + + Remove unused experimental proxied panel interface. + <rdar://problem/7237059> + + * Plugins/Hosted/NetscapePluginHostManager.h: + * Plugins/Hosted/NetscapePluginHostManager.mm: + (WebKit::NetscapePluginHostManager::hostForPlugin): + (WebKit::NetscapePluginHostManager::spawnPluginHost): + (WebKit::NetscapePluginHostManager::instantiatePlugin): + * Plugins/Hosted/NetscapePluginHostProxy.mm: + * Plugins/Hosted/WebKitPluginClient.defs: + * Plugins/Hosted/WebKitPluginHost.defs: + * WebCoreSupport/WebSystemInterface.mm: + (InitWebCoreSystemInterface): + * WebView/WebPreferenceKeysPrivate.h: + * WebView/WebPreferences.mm: + (+[WebPreferences initialize]): + * WebView/WebPreferencesPrivate.h: + +2010-10-27 Pratik Solanki <psolanki@apple.com> + + Reviewed by Darin Adler. + + Improve memSize calculation in [WebView _setCacheModel] + https://bugs.webkit.org/show_bug.cgi?id=48484 + + * WebView/WebView.mm: + (roundUpToPowerOf2): Added. Utility function to calculate the nearest power of 2. + (+[WebView _setCacheModel:]): Update memSize calculation to set it to the next + bigger power of 2. Also update WebCore cache settings. + +2010-10-26 Darin Adler <darin@apple.com> + + Reviewed by Sam Weinig. + + WebKitTestRunner needs to support layoutTestController.dumpBackForwardList + https://bugs.webkit.org/show_bug.cgi?id=42322 + rdar://problem/8193631 + + WebKitTestRunner needs to support layoutTestController.clearBackForwardList + https://bugs.webkit.org/show_bug.cgi?id=42333 + rdar://problem/8193643 + + * History/WebBackForwardList.mm: + (core): Return BackForwardListImpl. + (kit): Take BackForwardListImpl. + (-[WebBackForwardList initWithBackForwardList:]): Use BackForwardListImpl. + (-[WebBackForwardList dealloc]): Ditto. + (-[WebBackForwardList finalize]): Ditto. + (-[WebBackForwardList description]): Ditto. + (-[WebBackForwardList setPageCacheSize:]): Ditto. + (-[WebBackForwardList pageCacheSize]): Ditto. + * History/WebBackForwardListInternal.h: Ditto. + * WebView/WebFrameView.mm: + (-[WebFrameView keyDown:]): Ditto. + * WebView/WebView.mm: + (-[WebView initWithCoder:]): Ditto. + (-[WebView encodeWithCoder:]): Ditto. + (-[WebView backForwardList]): Ditto. + (-[WebView setMaintainsBackForwardList:]): Ditto. + +2010-10-27 Chris Rogers <crogers@google.com> + + Reviewed by Chris Marrin. + + Add ENABLE_WEB_AUDIO feature enable flag (initially disabled) to build-webkit + https://bugs.webkit.org/show_bug.cgi?id=48279 + + * Configurations/FeatureDefines.xcconfig: + +2010-10-27 Beth Dakin <bdakin@apple.com> + + Reviewed by Darin Adler. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=48385 Add WebKit + SPI to scale a WebView + -and corresponding- + <rdar://problem/8107667> + + This patch adds SPI to Mac WebKit that scales the page by the given + scale factor. + + * WebView/WebView.mm: + (-[WebView _scaleWebView:]): + (-[WebView _viewScaleFactor]): + * WebView/WebViewPrivate.h: + +2010-10-27 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler. + + REGRESSION (r70335): Incorrect article layout in Safari Reader + https://bugs.webkit.org/show_bug.cgi?id=48436 + + * Misc/WebKitVersionChecks.h: Added WEBKIT_FIRST_VERSION_WITH_GET_MATCHED_CSS_RULES_RESTRICTIONS. + * WebView/WebView.mm: + (-[WebView _needsUnrestrictedGetMatchedCSSRules]): Added. Returns YES for Safari linked against + versions of WebKit that did not have the cross-origin restrictions in getMatchedCSSRules(). + (-[WebView _preferencesChangedNotification:]): Call Settings::setCrossOriginCheckInGetMatchedCSSRulesDisabled() + based on the above. + +2010-10-18 Jer Noble <jer.noble@apple.com> + + Reviewed by Eric Carlson. + + Safari fullscreen media element tickles when it should not. + + https://bugs.webkit.org/show_bug.cgi?id=47861 + + * WebView/WebVideoFullscreenController.mm: + (-[WebVideoFullscreenController updatePowerAssertions]): + +2010-10-26 Jenn Braithwaite <jennb@chromium.org> + + Reviewed by Dmitry Titov. + + Resource tracking failure when trying to move a frame between documents + https://bugs.webkit.org/show_bug.cgi?id=44713 + + * WebCoreSupport/WebFrameLoaderClient.h: + * WebCoreSupport/WebFrameLoaderClient.mm: + (WebFrameLoaderClient::didTransferChildFrameToNewDocument): + Empty method. + (WebFrameLoaderClient::transferLoadingResourceFromPage): + Update resource tracking for a resource load that has been transferred + to a new page. + +2010-10-25 Oliver Hunt <oliver@apple.com> + + Reviewed by Gavin Barraclough. + + Remove exec and globalData arguments from jsNumber + https://bugs.webkit.org/show_bug.cgi?id=48270 + + Mechanical removal of exec parameter to jsNumber + + * Plugins/Hosted/NetscapePluginInstanceProxy.mm: + (WebKit::NetscapePluginInstanceProxy::demarshalValueFromArray): + * Plugins/Hosted/ProxyInstance.mm: + (WebKit::ProxyInstance::numberValue): + +2010-10-24 Dan Bernstein <mitz@apple.com> + + Reviewed by Anders Carlsson. + + Expose HitTestResult::absoluteMediaURL() via WebKit API + https://bugs.webkit.org/show_bug.cgi?id=48219 + + * Misc/WebElementDictionary.mm: + (+[WebElementDictionary initializeLookupTable]): Map WebElementMediaURLKey to + _absoluteMediaURL. + (-[WebElementDictionary _absoluteMediaURL]): Added. Returns absoluteMediaURL(). + * WebKit.exp: Export WebElementMediaURLKey. + * WebView/WebView.mm: Define WebElementMediaURLKey. + * WebView/WebViewPrivate.h: Declare WebElementMediaURLKey. + +2010-10-24 Dan Bernstein <mitz@apple.com> + + Reviewed by Simon Fraser. + + Removed deprecated methods from the WebHTMLHighlighter private protocol. + + * WebCoreSupport/WebChromeClient.mm: + (WebChromeClient::customHighlightRect): Call -highlightRectForLine:representedNode: + unconditionally. + (WebChromeClient::paintCustomHighlight): Call + -paintHighlightForBox:onLine:behindText:entireLine:representedNode: unconditionally. + * WebView/WebHTMLViewPrivate.h: + +2010-10-23 Xan Lopez <xlopez@igalia.com> + + Reviewed by Sam Weinig. + + Unify globalData APIs + https://bugs.webkit.org/show_bug.cgi?id=47969 + + * Plugins/Hosted/NetscapePluginInstanceProxy.mm: + (WebKit::NetscapePluginInstanceProxy::evaluate): + (WebKit::NetscapePluginInstanceProxy::invoke): + (WebKit::NetscapePluginInstanceProxy::invokeDefault): + (WebKit::NetscapePluginInstanceProxy::construct): + * WebView/WebScriptDebugDelegate.mm: + (-[WebScriptCallFrame evaluateWebScript:]): + +2010-10-23 David Kilzer <ddkilzer@apple.com> + + <http://webkit.org/b/48186> Remove unneeded WebHTMLRepresentationInternal.h header + + Reviewed by Sam Weinig. + + The only method defined in WebHTMLRepresentationInternal.h is + also defined in WebHTMLRepresentation.h, so use that instead. + + * WebView/WebHTMLRepresentationInternal.h: Removed. + +2010-10-23 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Anders Carlsson. + + https://bugs.webkit.org/show_bug.cgi?id=48083 + <rdar://problem/8489082> Need WebKit2 API for private browsing (48083) + + * WebCoreSupport/WebSystemInterface.mm: (InitWebCoreSystemInterface): Initialize the new method. + +2010-10-22 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + WebKit2 needs to pass the current event modifier flags when requesting a new window + https://bugs.webkit.org/show_bug.cgi?id=48140 + + * WebCoreSupport/WebChromeClient.h: + * WebCoreSupport/WebChromeClient.mm: + (WebChromeClient::createWindow): + * WebCoreSupport/WebFrameLoaderClient.h: + * WebCoreSupport/WebFrameLoaderClient.mm: + (WebFrameLoaderClient::dispatchCreatePage): + Add NavigationAction parameter. + +2010-10-21 Andy Estes <aestes@apple.com> + + Reviewed by Eric Carlson. + + WebKit shouldn't load a plug-in based on file extension if a MIME type + is specified. + https://bugs.webkit.org/show_bug.cgi?id=48046 + + If a MIME type is specified in an object or embed element, and that MIME + type isn't supported by an installed plug-in, WebKit shouldn't attempt + to find a plug-in based on the file extension of the url attribute. + Doing so can lead to cases where a plug-in is loaded that can't handle + resources of the MIME type specified by the author. + + * WebCoreSupport/WebFrameLoaderClient.mm: + (WebFrameLoaderClient::createPlugin): Only check for a pluginPackage by + extension if MIME type is the empty string. + 2010-10-20 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. diff --git a/WebKit/mac/Configurations/FeatureDefines.xcconfig b/WebKit/mac/Configurations/FeatureDefines.xcconfig index 8732c18..d08fadf 100644 --- a/WebKit/mac/Configurations/FeatureDefines.xcconfig +++ b/WebKit/mac/Configurations/FeatureDefines.xcconfig @@ -94,9 +94,6 @@ ENABLE_PROGRESS_TAG = ENABLE_PROGRESS_TAG; ENABLE_RUBY = $(ENABLE_RUBY_$(REAL_PLATFORM_NAME)); ENABLE_RUBY_macosx = ENABLE_RUBY; -ENABLE_SANDBOX = $(ENABLE_SANDBOX_$(REAL_PLATFORM_NAME)); -ENABLE_SANDBOX_macosx = ENABLE_SANDBOX; - ENABLE_SHARED_WORKERS = $(ENABLE_SHARED_WORKERS_$(REAL_PLATFORM_NAME)); ENABLE_SHARED_WORKERS_macosx = ENABLE_SHARED_WORKERS; @@ -112,6 +109,8 @@ ENABLE_SVG_FOREIGN_OBJECT = ENABLE_SVG_FOREIGN_OBJECT; ENABLE_SVG_USE = ENABLE_SVG_USE; ENABLE_VIDEO = ENABLE_VIDEO; +ENABLE_WEB_AUDIO = ; + ENABLE_WEB_SOCKETS = $(ENABLE_WEB_SOCKETS_$(REAL_PLATFORM_NAME)); ENABLE_WEB_SOCKETS_macosx = ENABLE_WEB_SOCKETS; @@ -125,4 +124,4 @@ ENABLE_XHTMLMP = ; ENABLE_XPATH = ENABLE_XPATH; ENABLE_XSLT = ENABLE_XSLT; -FEATURE_DEFINES = $(ENABLE_LINK_PREFETCH) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_SYSTEM) $(ENABLE_FULLSCREEN_API) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT); +FEATURE_DEFINES = $(ENABLE_LINK_PREFETCH) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_SYSTEM) $(ENABLE_FULLSCREEN_API) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT); diff --git a/WebKit/mac/History/WebBackForwardList.mm b/WebKit/mac/History/WebBackForwardList.mm index 617ee0e..e794c2f 100644 --- a/WebKit/mac/History/WebBackForwardList.mm +++ b/WebKit/mac/History/WebBackForwardList.mm @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005, 2007 Apple Inc. All rights reserved. + * Copyright (C) 2005, 2007 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -53,8 +53,10 @@ using namespace WebCore; -typedef HashMap<BackForwardList*, WebBackForwardList*> BackForwardListMap; +typedef HashMap<BackForwardListImpl*, WebBackForwardList*> BackForwardListMap; +// FIXME: Instead of this we could just create a class derived from BackForwardListImpl +// with a pointer to a WebBackForwardList in it. static BackForwardListMap& backForwardLists() { DEFINE_STATIC_LOCAL(BackForwardListMap, staticBackForwardLists, ()); @@ -63,15 +65,15 @@ static BackForwardListMap& backForwardLists() @implementation WebBackForwardList (WebBackForwardListInternal) -BackForwardList* core(WebBackForwardList *webBackForwardList) +BackForwardListImpl* core(WebBackForwardList *webBackForwardList) { if (!webBackForwardList) return 0; - return reinterpret_cast<BackForwardList*>(webBackForwardList->_private); + return reinterpret_cast<BackForwardListImpl*>(webBackForwardList->_private); } -WebBackForwardList *kit(BackForwardList* backForwardList) +WebBackForwardList *kit(BackForwardListImpl* backForwardList) { if (!backForwardList) return nil; @@ -82,7 +84,7 @@ WebBackForwardList *kit(BackForwardList* backForwardList) return [[[WebBackForwardList alloc] initWithBackForwardList:backForwardList] autorelease]; } -- (id)initWithBackForwardList:(PassRefPtr<BackForwardList>)backForwardList +- (id)initWithBackForwardList:(PassRefPtr<BackForwardListImpl>)backForwardList { WebCoreThreadViolationCheckRoundOne(); self = [super init]; @@ -117,7 +119,7 @@ WebBackForwardList *kit(BackForwardList* backForwardList) if (WebCoreObjCScheduleDeallocateOnMainThread([WebBackForwardList class], self)) return; - BackForwardList* backForwardList = core(self); + BackForwardListImpl* backForwardList = core(self); ASSERT(backForwardList); if (backForwardList) { ASSERT(backForwardList->closed()); @@ -131,7 +133,7 @@ WebBackForwardList *kit(BackForwardList* backForwardList) - (void)finalize { WebCoreThreadViolationCheckRoundOne(); - BackForwardList* backForwardList = core(self); + BackForwardListImpl* backForwardList = core(self); ASSERT(backForwardList); if (backForwardList) { ASSERT(backForwardList->closed()); @@ -265,7 +267,7 @@ static bool bumperCarBackForwardHackNeeded() [result appendString:@"\n--------------------------------------------\n"]; [result appendString:@"WebBackForwardList:\n"]; - BackForwardList* backForwardList = core(self); + BackForwardListImpl* backForwardList = core(self); HistoryItemVector& entries = backForwardList->entries(); unsigned size = entries.size(); @@ -293,14 +295,12 @@ static bool bumperCarBackForwardHackNeeded() - (void)setPageCacheSize:(NSUInteger)size { - ASSERT(core(self)->isBackForwardListImpl()); - [kit(static_cast<BackForwardListImpl*>(core(self))->page()) setUsesPageCache:size != 0]; + [kit(core(self)->page()) setUsesPageCache:size != 0]; } - (NSUInteger)pageCacheSize { - ASSERT(core(self)->isBackForwardListImpl()); - return [kit(static_cast<BackForwardListImpl*>(core(self))->page()) usesPageCache] ? pageCache()->capacity() : 0; + return [kit(core(self)->page()) usesPageCache] ? pageCache()->capacity() : 0; } - (int)backListCount diff --git a/WebKit/mac/History/WebBackForwardListInternal.h b/WebKit/mac/History/WebBackForwardListInternal.h index 3448647..1afb833 100644 --- a/WebKit/mac/History/WebBackForwardListInternal.h +++ b/WebKit/mac/History/WebBackForwardListInternal.h @@ -30,12 +30,12 @@ #import <wtf/PassRefPtr.h> namespace WebCore { - class BackForwardList; + class BackForwardListImpl; } -WebCore::BackForwardList* core(WebBackForwardList *); -WebBackForwardList *kit(WebCore::BackForwardList*); +WebCore::BackForwardListImpl* core(WebBackForwardList *); +WebBackForwardList *kit(WebCore::BackForwardListImpl*); @interface WebBackForwardList (WebBackForwardListInternal) -- (id)initWithBackForwardList:(PassRefPtr<WebCore::BackForwardList>)backForwardList; +- (id)initWithBackForwardList:(PassRefPtr<WebCore::BackForwardListImpl>)backForwardList; @end diff --git a/WebKit/mac/Misc/WebDownload.mm b/WebKit/mac/Misc/WebDownload.mm index 82c1259..a4d919a 100644 --- a/WebKit/mac/Misc/WebDownload.mm +++ b/WebKit/mac/Misc/WebDownload.mm @@ -219,7 +219,7 @@ using namespace WebCore; [super dealloc]; } -- (id)initWithRequest:(NSURLRequest *)request delegate:(id)delegate +- (id)initWithRequest:(NSURLRequest *)request delegate:(id<NSURLDownloadDelegate>)delegate { [self _setRealDelegate:delegate]; return [super initWithRequest:request delegate:_webInternal]; diff --git a/WebKit/mac/Misc/WebElementDictionary.mm b/WebKit/mac/Misc/WebElementDictionary.mm index 6b2eb3d..71c4cc7 100644 --- a/WebKit/mac/Misc/WebElementDictionary.mm +++ b/WebKit/mac/Misc/WebElementDictionary.mm @@ -85,6 +85,7 @@ static void cacheValueForKey(const void *key, const void *value, void *self) addLookupKey(WebElementImageRectKey, @selector(_imageRect)); addLookupKey(WebElementImageURLKey, @selector(_absoluteImageURL)); addLookupKey(WebElementIsSelectedKey, @selector(_isSelected)); + addLookupKey(WebElementMediaURLKey, @selector(_absoluteMediaURL)); addLookupKey(WebElementSpellingToolTipKey, @selector(_spellingToolTip)); addLookupKey(WebElementTitleKey, @selector(_title)); addLookupKey(WebElementLinkURLKey, @selector(_absoluteLinkURL)); @@ -216,6 +217,11 @@ static NSString* NSStringOrNil(String coreString) return _result->absoluteImageURL(); } +- (NSURL *)_absoluteMediaURL +{ + return _result->absoluteMediaURL(); +} + - (NSNumber *)_isSelected { return [NSNumber numberWithBool:_result->isSelected()]; diff --git a/WebKit/mac/Misc/WebKitVersionChecks.h b/WebKit/mac/Misc/WebKitVersionChecks.h index 4bf2c83..9d59665 100644 --- a/WebKit/mac/Misc/WebKitVersionChecks.h +++ b/WebKit/mac/Misc/WebKitVersionChecks.h @@ -55,6 +55,7 @@ #define WEBKIT_FIRST_VERSION_WITHOUT_CONTENT_SNIFFING_FOR_FILE_URLS 0x02120A00 // 530.10.0 #define WEBKIT_FIRST_VERSION_WITHOUT_LINK_ELEMENT_TEXT_CSS_QUIRK 0x02130200 // 531.2.0 #define WEBKIT_FIRST_VERSION_WITH_HTML5_PARSER 0x02160900 // 534.9.0 +#define WEBKIT_FIRST_VERSION_WITH_GET_MATCHED_CSS_RULES_RESTRICTIONS 0x02160B00 // 534.11.0 #ifdef __cplusplus extern "C" { diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h b/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h index 2645c55..4e59456 100644 --- a/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h +++ b/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h @@ -53,12 +53,12 @@ public: void didCreateWindow(); private: - NetscapePluginHostProxy* hostForPlugin(const WTF::String& pluginPath, cpu_type_t pluginArchitecture, const WTF::String& bundleIdentifier, bool useProxiedOpenPanel); + NetscapePluginHostProxy* hostForPlugin(const WTF::String& pluginPath, cpu_type_t pluginArchitecture, const WTF::String& bundleIdentifier); NetscapePluginHostManager(); ~NetscapePluginHostManager(); - bool spawnPluginHost(const WTF::String& pluginPath, cpu_type_t pluginArchitecture, mach_port_t clientPort, mach_port_t& pluginHostPort, ProcessSerialNumber& pluginHostPSN, bool useProxiedOpenPanel); + bool spawnPluginHost(const WTF::String& pluginPath, cpu_type_t pluginArchitecture, mach_port_t clientPort, mach_port_t& pluginHostPort, ProcessSerialNumber& pluginHostPSN); bool initializeVendorPort(); diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm b/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm index 322e0e8..d8cd081 100644 --- a/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm +++ b/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm @@ -31,10 +31,7 @@ #import "NetscapePluginInstanceProxy.h" #import "WebLocalizableStrings.h" #import "WebKitSystemInterface.h" -#import "WebHostedNetscapePluginView.h" #import "WebNetscapePluginPackage.h" -#import "WebPreferencesPrivate.h" -#import "WebView.h" #import <mach/mach_port.h> #import <servers/bootstrap.h> #import <spawn.h> @@ -70,7 +67,7 @@ NetscapePluginHostManager::~NetscapePluginHostManager() { } -NetscapePluginHostProxy* NetscapePluginHostManager::hostForPlugin(const WTF::String& pluginPath, cpu_type_t pluginArchitecture, const String& bundleIdentifier, bool useProxiedOpenPanel) +NetscapePluginHostProxy* NetscapePluginHostManager::hostForPlugin(const WTF::String& pluginPath, cpu_type_t pluginArchitecture, const String& bundleIdentifier) { pair<PluginHostMap::iterator, bool> result = m_pluginHosts.add(pluginPath, 0); @@ -86,7 +83,7 @@ NetscapePluginHostProxy* NetscapePluginHostManager::hostForPlugin(const WTF::Str mach_port_t pluginHostPort; ProcessSerialNumber pluginHostPSN; - if (!spawnPluginHost(pluginPath, pluginArchitecture, clientPort, pluginHostPort, pluginHostPSN, useProxiedOpenPanel)) { + if (!spawnPluginHost(pluginPath, pluginArchitecture, clientPort, pluginHostPort, pluginHostPSN)) { mach_port_destroy(mach_task_self(), clientPort); m_pluginHosts.remove(result.first); return 0; @@ -103,7 +100,7 @@ NetscapePluginHostProxy* NetscapePluginHostManager::hostForPlugin(const WTF::Str return hostProxy; } -bool NetscapePluginHostManager::spawnPluginHost(const String& pluginPath, cpu_type_t pluginArchitecture, mach_port_t clientPort, mach_port_t& pluginHostPort, ProcessSerialNumber& pluginHostPSN, bool useProxiedOpenPanel) +bool NetscapePluginHostManager::spawnPluginHost(const String& pluginPath, cpu_type_t pluginArchitecture, mach_port_t clientPort, mach_port_t& pluginHostPort, ProcessSerialNumber& pluginHostPSN) { if (m_pluginVendorPort == MACH_PORT_NULL) { if (!initializeVendorPort()) @@ -123,7 +120,6 @@ bool NetscapePluginHostManager::spawnPluginHost(const String& pluginPath, cpu_ty pluginHostAppExecutablePath, @"pluginHostPath", [NSNumber numberWithInt:pluginArchitecture], @"cpuType", localization.get(), @"localization", - [NSNumber numberWithBool:useProxiedOpenPanel], @"useProxiedOpenPanel", nil]; NSData *data = [NSPropertyListSerialization dataFromPropertyList:launchProperties format:NSPropertyListBinaryFormat_v1_0 errorDescription:0]; @@ -217,8 +213,7 @@ void NetscapePluginHostManager::pluginHostDied(NetscapePluginHostProxy* pluginHo PassRefPtr<NetscapePluginInstanceProxy> NetscapePluginHostManager::instantiatePlugin(const String& pluginPath, cpu_type_t pluginArchitecture, const String& bundleIdentifier, WebHostedNetscapePluginView *pluginView, NSString *mimeType, NSArray *attributeKeys, NSArray *attributeValues, NSString *userAgent, NSURL *sourceURL, bool fullFrame, bool isPrivateBrowsingEnabled, bool isAcceleratedCompositingEnabled) { - WebPreferences *preferences = [[pluginView webView] preferences]; - NetscapePluginHostProxy* hostProxy = hostForPlugin(pluginPath, pluginArchitecture, bundleIdentifier, [preferences usesProxiedOpenPanel]); + NetscapePluginHostProxy* hostProxy = hostForPlugin(pluginPath, pluginArchitecture, bundleIdentifier); if (!hostProxy) return 0; @@ -257,7 +252,7 @@ PassRefPtr<NetscapePluginInstanceProxy> NetscapePluginHostManager::instantiatePl pluginHostDied(hostProxy); // Try to spawn it again. - hostProxy = hostForPlugin(pluginPath, pluginArchitecture, bundleIdentifier, [preferences usesProxiedOpenPanel]); + hostProxy = hostForPlugin(pluginPath, pluginArchitecture, bundleIdentifier); // Create a new instance. instance = NetscapePluginInstanceProxy::create(hostProxy, pluginView, fullFrame); diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm b/WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm index 207f062..067b8bb 100644 --- a/WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm +++ b/WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm @@ -1120,61 +1120,6 @@ kern_return_t WKPCResolveURL(mach_port_t clientPort, uint32_t pluginID, data_t u return KERN_SUCCESS; } -#if !defined(BUILDING_ON_SNOW_LEOPARD) -kern_return_t WKPCRunSyncOpenPanel(mach_port_t clientPort, data_t panelData, mach_msg_type_number_t panelDataLength) -{ - DataDeallocator panelDataDeallocator(panelData, panelDataLength); - - NetscapePluginHostProxy* hostProxy = pluginProxyMap().get(clientPort); - if (!hostProxy) - return KERN_FAILURE; - - NSOpenPanel *sheet = [NSOpenPanel openPanel]; - NSDictionary *panelState = [NSPropertyListSerialization propertyListFromData:[NSData dataWithBytes:panelData length:panelDataLength] - mutabilityOption:NSPropertyListImmutable - format:NULL - errorDescription:nil]; - - [sheet setCanChooseFiles:[[panelState objectForKey:@"canChooseFiles"] boolValue]]; - [sheet setCanChooseDirectories:[[panelState objectForKey:@"canChooseDirectories"] boolValue]]; - [sheet setResolvesAliases:[[panelState objectForKey:@"resolvesAliases"] boolValue]]; - [sheet setAllowsMultipleSelection:[[panelState objectForKey:@"allowsMultipleSelection"] boolValue]]; - [sheet setCanCreateDirectories:[[panelState objectForKey:@"canCreateDirectories"] boolValue]]; - [sheet setShowsHiddenFiles:[[panelState objectForKey:@"showsHiddenFiles"] boolValue]]; - [sheet setExtensionHidden:[[panelState objectForKey:@"isExtensionHidden"] boolValue]]; - [sheet setCanSelectHiddenExtension:[[panelState objectForKey:@"canSelectHiddenExtension"] boolValue]]; - [sheet setAllowsOtherFileTypes:[[panelState objectForKey:@"allowsOtherFileTypes"] boolValue]]; - [sheet setTreatsFilePackagesAsDirectories:[[panelState objectForKey:@"treatsFilePackagesAsDirectories"] boolValue]]; - [sheet setPrompt:[panelState objectForKey:@"prompt"]]; - [sheet setNameFieldLabel:[panelState objectForKey:@"nameFieldLabel"]]; - [sheet setMessage:[panelState objectForKey:@"message"]]; - [sheet setAllowedFileTypes:[panelState objectForKey:@"allowedFileTypes"]]; - [sheet setRequiredFileType:[panelState objectForKey:@"requiredFileType"]]; - [sheet setTitle:[panelState objectForKey:@"title"]]; - [sheet runModal]; - - NetscapePluginHostProxy* newHostProxy = pluginProxyMap().get(clientPort); - if (newHostProxy != hostProxy) - return KERN_FAILURE; - - NSDictionary *ret = [NSDictionary dictionaryWithObjectsAndKeys: - [sheet filenames], @"filenames", - WKNoteOpenPanelFiles([sheet filenames]), @"extensions", - nil]; - - RetainPtr<NSData*> data = [NSPropertyListSerialization dataFromPropertyList:ret format:NSPropertyListBinaryFormat_v1_0 errorDescription:0]; - ASSERT(data); - - _WKPHSyncOpenPanelReply(hostProxy->port(), const_cast<char *>(static_cast<const char*>([data.get() bytes])), [data.get() length]); - return KERN_SUCCESS; -} -#else -kern_return_t WKPCRunSyncOpenPanel(mach_port_t clientPort, data_t panelData, mach_msg_type_number_t panelDataLength) -{ - return KERN_FAILURE; -} -#endif // !defined(BUILDING_ON_SNOW_LEOPARD) - kern_return_t WKPCSetException(mach_port_t clientPort, data_t message, mach_msg_type_number_t messageCnt) { DataDeallocator deallocator(message, messageCnt); diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm index 0b9036a..a2d4a96 100644 --- a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm +++ b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm @@ -872,9 +872,9 @@ bool NetscapePluginInstanceProxy::evaluate(uint32_t objectID, const String& scri bool oldAllowPopups = frame->script()->allowPopupsFromPlugin(); frame->script()->setAllowPopupsFromPlugin(allowPopups); - globalObject->globalData()->timeoutChecker.start(); + globalObject->globalData().timeoutChecker.start(); Completion completion = JSC::evaluate(exec, globalObject->globalScopeChain(), makeSource(script)); - globalObject->globalData()->timeoutChecker.stop(); + globalObject->globalData().timeoutChecker.stop(); ComplType type = completion.complType(); frame->script()->setAllowPopupsFromPlugin(oldAllowPopups); @@ -921,9 +921,9 @@ bool NetscapePluginInstanceProxy::invoke(uint32_t objectID, const Identifier& me demarshalValues(exec, argumentsData, argumentsLength, argList); ProtectedPtr<JSGlobalObject> globalObject = frame->script()->globalObject(pluginWorld()); - globalObject->globalData()->timeoutChecker.start(); + globalObject->globalData().timeoutChecker.start(); JSValue value = call(exec, function, callType, callData, object, argList); - globalObject->globalData()->timeoutChecker.stop(); + globalObject->globalData().timeoutChecker.stop(); marshalValue(exec, value, resultData, resultLength); exec->clearException(); @@ -956,9 +956,9 @@ bool NetscapePluginInstanceProxy::invokeDefault(uint32_t objectID, data_t argume demarshalValues(exec, argumentsData, argumentsLength, argList); ProtectedPtr<JSGlobalObject> globalObject = frame->script()->globalObject(pluginWorld()); - globalObject->globalData()->timeoutChecker.start(); + globalObject->globalData().timeoutChecker.start(); JSValue value = call(exec, object, callType, callData, object, argList); - globalObject->globalData()->timeoutChecker.stop(); + globalObject->globalData().timeoutChecker.stop(); marshalValue(exec, value, resultData, resultLength); exec->clearException(); @@ -992,9 +992,9 @@ bool NetscapePluginInstanceProxy::construct(uint32_t objectID, data_t argumentsD demarshalValues(exec, argumentsData, argumentsLength, argList); ProtectedPtr<JSGlobalObject> globalObject = frame->script()->globalObject(pluginWorld()); - globalObject->globalData()->timeoutChecker.start(); + globalObject->globalData().timeoutChecker.start(); JSValue value = JSC::construct(exec, object, constructType, constructData, argList); - globalObject->globalData()->timeoutChecker.stop(); + globalObject->globalData().timeoutChecker.stop(); marshalValue(exec, value, resultData, resultLength); exec->clearException(); @@ -1334,7 +1334,7 @@ bool NetscapePluginInstanceProxy::demarshalValueFromArray(ExecState* exec, NSArr result = jsBoolean([[array objectAtIndex:index++] boolValue]); return true; case DoubleValueType: - result = jsNumber(exec, [[array objectAtIndex:index++] doubleValue]); + result = jsNumber([[array objectAtIndex:index++] doubleValue]); return true; case StringValueType: { NSString *string = [array objectAtIndex:index++]; diff --git a/WebKit/mac/Plugins/Hosted/ProxyInstance.mm b/WebKit/mac/Plugins/Hosted/ProxyInstance.mm index 11ade8c..927a008 100644 --- a/WebKit/mac/Plugins/Hosted/ProxyInstance.mm +++ b/WebKit/mac/Plugins/Hosted/ProxyInstance.mm @@ -273,10 +273,10 @@ JSValue ProxyInstance::stringValue(ExecState* exec) const return jsEmptyString(exec); } -JSValue ProxyInstance::numberValue(ExecState* exec) const +JSValue ProxyInstance::numberValue(ExecState*) const { // FIXME: Implement something sensible. - return jsNumber(exec, 0); + return jsNumber(0); } JSValue ProxyInstance::booleanValue() const diff --git a/WebKit/mac/Plugins/Hosted/WebKitPluginClient.defs b/WebKit/mac/Plugins/Hosted/WebKitPluginClient.defs index 4129ca1..15fc5fa 100644 --- a/WebKit/mac/Plugins/Hosted/WebKitPluginClient.defs +++ b/WebKit/mac/Plugins/Hosted/WebKitPluginClient.defs @@ -231,9 +231,6 @@ simpleroutine PCBooleanAndDataReply(clientPort :mach_port_t; returnValue :boolean_t; result :data_t); -simpleroutine PCRunSyncOpenPanel(clientPort :mach_port_t; - panelData :data_t); - simpleroutine PCSetFullscreenWindowIsShowing(clientPort :mach_port_t; isShowing :boolean_t); diff --git a/WebKit/mac/Plugins/Hosted/WebKitPluginHost.defs b/WebKit/mac/Plugins/Hosted/WebKitPluginHost.defs index 5d9df45..fa808ac 100644 --- a/WebKit/mac/Plugins/Hosted/WebKitPluginHost.defs +++ b/WebKit/mac/Plugins/Hosted/WebKitPluginHost.defs @@ -240,9 +240,6 @@ simpleroutine PHPluginInstancePrivateBrowsingModeDidChange(pluginHostPort :mach_ pluginID :uint32_t; privateBrowsingEnabled :boolean_t); -simpleroutine PHSyncOpenPanelReply(pluginHostPort :mach_port_t; - filenames :data_t); - simpleroutine PHPluginInstanceSnapshot(pluginHostPort :mach_port_t; pluginID :uint32_t; requestID :uint32_t; diff --git a/WebKit/mac/WebCoreSupport/WebChromeClient.h b/WebKit/mac/WebCoreSupport/WebChromeClient.h index 5f3b727..209c2b9 100644 --- a/WebKit/mac/WebCoreSupport/WebChromeClient.h +++ b/WebKit/mac/WebCoreSupport/WebChromeClient.h @@ -55,7 +55,7 @@ public: virtual void focusedNodeChanged(WebCore::Node*); - virtual WebCore::Page* createWindow(WebCore::Frame*, const WebCore::FrameLoadRequest&, const WebCore::WindowFeatures&); + virtual WebCore::Page* createWindow(WebCore::Frame*, const WebCore::FrameLoadRequest&, const WebCore::WindowFeatures&, const WebCore::NavigationAction&); virtual void show(); virtual bool canRunModal(); diff --git a/WebKit/mac/WebCoreSupport/WebChromeClient.mm b/WebKit/mac/WebCoreSupport/WebChromeClient.mm index 68e17be..3610896 100644 --- a/WebKit/mac/WebCoreSupport/WebChromeClient.mm +++ b/WebKit/mac/WebCoreSupport/WebChromeClient.mm @@ -60,6 +60,7 @@ #import <WebCore/HitTestResult.h> #import <WebCore/Icon.h> #import <WebCore/IntRect.h> +#import <WebCore/NavigationAction.h> #import <WebCore/Page.h> #import <WebCore/PlatformScreen.h> #import <WebCore/PlatformString.h> @@ -199,7 +200,7 @@ void WebChromeClient::focusedNodeChanged(Node*) { } -Page* WebChromeClient::createWindow(Frame* frame, const FrameLoadRequest& request, const WindowFeatures& features) +Page* WebChromeClient::createWindow(Frame* frame, const FrameLoadRequest& request, const WindowFeatures& features, const NavigationAction&) { NSURLRequest *URLRequest = nil; if (!request.isEmpty()) @@ -640,9 +641,7 @@ FloatRect WebChromeClient::customHighlightRect(Node* node, const AtomicString& t WebHTMLView *webHTMLView = (WebHTMLView *)documentView; id<WebHTMLHighlighter> highlighter = [webHTMLView _highlighterForType:type]; - if ([(NSObject *)highlighter respondsToSelector:@selector(highlightRectForLine:representedNode:)]) - return [highlighter highlightRectForLine:lineRect representedNode:kit(node)]; - return [highlighter highlightRectForLine:lineRect]; + return [highlighter highlightRectForLine:lineRect representedNode:kit(node)]; END_BLOCK_OBJC_EXCEPTIONS; @@ -660,10 +659,7 @@ void WebChromeClient::paintCustomHighlight(Node* node, const AtomicString& type, WebHTMLView *webHTMLView = (WebHTMLView *)documentView; id<WebHTMLHighlighter> highlighter = [webHTMLView _highlighterForType:type]; - if ([(NSObject *)highlighter respondsToSelector:@selector(paintHighlightForBox:onLine:behindText:entireLine:representedNode:)]) - [highlighter paintHighlightForBox:boxRect onLine:lineRect behindText:behindText entireLine:entireLine representedNode:kit(node)]; - else - [highlighter paintHighlightForBox:boxRect onLine:lineRect behindText:behindText entireLine:entireLine]; + [highlighter paintHighlightForBox:boxRect onLine:lineRect behindText:behindText entireLine:entireLine representedNode:kit(node)]; END_BLOCK_OBJC_EXCEPTIONS; } diff --git a/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h b/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h index 0baa55c..2b3b2cc 100644 --- a/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h +++ b/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h @@ -111,7 +111,7 @@ private: virtual void dispatchDidFirstLayout(); virtual void dispatchDidFirstVisuallyNonEmptyLayout(); - virtual WebCore::Frame* dispatchCreatePage(); + virtual WebCore::Frame* dispatchCreatePage(const WebCore::NavigationAction&); virtual void dispatchShow(); virtual void dispatchDecidePolicyForMIMEType(WebCore::FramePolicyFunction, @@ -175,6 +175,8 @@ private: virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*); virtual void transitionToCommittedForNewPage(); + virtual void dispatchDidBecomeFrameset(bool); + virtual bool canHandleRequest(const WebCore::ResourceRequest&) const; virtual bool canShowMIMEType(const WTF::String& MIMEType) const; virtual bool canShowMIMETypeAsHTML(const WTF::String& MIMEType) const; @@ -194,6 +196,7 @@ private: virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WTF::String& name, WebCore::HTMLFrameOwnerElement*, const WTF::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight); virtual void didTransferChildFrameToNewDocument(WebCore::Page* oldPage); + virtual void transferLoadingResourceFromPage(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&, WebCore::Page* oldPage); virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<WTF::String>&, const Vector<WTF::String>&, const WTF::String&, bool); virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget); diff --git a/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm b/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm index c3fd457..3053b49 100644 --- a/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm +++ b/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm @@ -697,7 +697,7 @@ void WebFrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout() CallFrameLoadDelegate(implementations->didFirstVisuallyNonEmptyLayoutInFrameFunc, webView, @selector(webView:didFirstVisuallyNonEmptyLayoutInFrame:), m_webFrame.get()); } -Frame* WebFrameLoaderClient::dispatchCreatePage() +Frame* WebFrameLoaderClient::dispatchCreatePage(const NavigationAction&) { WebView *currentWebView = getWebView(m_webFrame.get()); NSDictionary *features = [[NSDictionary alloc] init]; @@ -1253,6 +1253,10 @@ void WebFrameLoaderClient::transitionToCommittedForNewPage() } } +void WebFrameLoaderClient::dispatchDidBecomeFrameset(bool) +{ +} + RetainPtr<WebFramePolicyListener> WebFrameLoaderClient::setUpPolicyListener(FramePolicyFunction function) { // FIXME: <rdar://5634381> We need to support multiple active policy listeners. @@ -1385,11 +1389,16 @@ PassRefPtr<Frame> WebFrameLoaderClient::createFrame(const KURL& url, const Strin void WebFrameLoaderClient::didTransferChildFrameToNewDocument(Page* oldPage) { - if (oldPage == core(m_webFrame.get())->page()) - return; +} + +void WebFrameLoaderClient::transferLoadingResourceFromPage(unsigned long identifier, DocumentLoader* loader, const ResourceRequest& request, Page* oldPage) +{ + ASSERT(oldPage != core(m_webFrame.get())->page()); + ASSERT(![getWebView(m_webFrame.get()) _objectForIdentifier:identifier]); + + assignIdentifierToInitialRequest(identifier, loader, request); - // Update resource tracking now that frame is in a different page. - // TODO(jennb): update resource tracking [bug 44713] + [kit(oldPage) _removeObjectForIdentifier:identifier]; } ObjectContentType WebFrameLoaderClient::objectContentType(const KURL& url, const String& mimeType) @@ -1629,7 +1638,7 @@ PassRefPtr<Widget> WebFrameLoaderClient::createPlugin(const IntSize& size, HTMLP } NSString *extension = [[pluginURL path] pathExtension]; - if (!pluginPackage && [extension length] != 0) { + if (!pluginPackage && [extension length] && ![MIMEType length]) { pluginPackage = [webView _pluginForExtension:extension]; if (pluginPackage) { NSString *newMIMEType = [pluginPackage MIMETypeForExtension:extension]; diff --git a/WebKit/mac/WebCoreSupport/WebSystemInterface.mm b/WebKit/mac/WebCoreSupport/WebSystemInterface.mm index 03cb33f..df3ea4d 100644 --- a/WebKit/mac/WebCoreSupport/WebSystemInterface.mm +++ b/WebKit/mac/WebCoreSupport/WebSystemInterface.mm @@ -73,6 +73,7 @@ void InitWebCoreSystemInterface(void) INIT(SetCGFontRenderingMode); INIT(SetCONNECTProxyAuthorizationForStream); INIT(SetCONNECTProxyForStream); + INIT(SetCookieStoragePrivateBrowsingEnabled); INIT(SetDragImage); INIT(SetNSURLConnectionDefersCallbacks); INIT(SetNSURLRequestShouldContentSniff); @@ -113,10 +114,6 @@ void InitWebCoreSystemInterface(void) INIT(SupportsMultipartXMixedReplace); #endif -#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) - INIT(NoteOpenPanelFiles); -#endif - #if defined(BUILDING_ON_TIGER) || defined(BUILDING_ON_LEOPARD) || defined(BUILDING_ON_SNOW_LEOPARD) INIT(GetHyphenationLocationBeforeIndex); #endif diff --git a/WebKit/mac/WebKit.exp b/WebKit/mac/WebKit.exp index 463ab00..7c20307 100644 --- a/WebKit/mac/WebKit.exp +++ b/WebKit/mac/WebKit.exp @@ -65,6 +65,7 @@ _WebElementImageKey _WebElementImageRectKey _WebElementImageURLKey _WebElementIsSelectedKey +_WebElementMediaURLKey _WebElementLinkIsLiveKey _WebElementLinkLabelKey _WebElementLinkTargetFrameKey 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) |