2010-06-01 Mark Rowe Merge r60504. 2010-06-01 Kevin Decker Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=40025 All Flash content crashes after installing CS5 Design Premium. * Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView supportsSnapshotting]): Do not support snapshotting Flash 10.1 if the version is less than 10.1.53.60. 2010-05-25 Mark Rowe Merge r60168. 2010-05-25 Brady Eidson Reviewed by Darin Adler. Database origins aren't populated at launch (missing db in prefs sheet, possible other symptoms) and https://bugs.webkit.org/show_bug.cgi?id=39486 * Storage/WebDatabaseManager.mm: (WebKitInitializeDatabasesIfNecessary): Call initializeTracker() instead of trying to set the path on an already created tracker that already has its origins populated. 2010-05-21 Mark Rowe Merge r59956. 2010-05-21 David Hyatt Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=39420 Make sure everyone who needs to is using visitedDependentColor rather than accessing styles directly. * Misc/WebNSAttributedStringExtras.mm: (+[NSAttributedString _web_attributedStringFromRange:]): * WebView/WebFrame.mm: (-[WebFrame _bodyBackgroundColor]): 2010-05-20 Mark Rowe Merge r59793. 2010-05-19 Anders Carlsson Reviewed by Kevin Decker and Simon Fraser. REGRESSION: Coordinate system for Core Animation NPAPI plug-ins is flipped with accelerated compositing turned on When needed, create a new CALayer and set it's geometry to be flipped. Add the plug-in layer as a sublayer and then return the newly created layer. * Plugins/Hosted/WebHostedNetscapePluginView.mm: (-[WebHostedNetscapePluginView createPlugin]): * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView createPlugin]): 2010-05-18 Mark Rowe Merge r59514. 2010-05-14 Stephanie Lewis Rubber-stamped by Mark Rowe. Update order files. * WebKit.order: 2010-05-17 Mark Rowe Disable SVG filters. * Configurations/FeatureDefines.xcconfig: 2010-05-17 Mark Rowe Disable Blob.slice. * Configurations/FeatureDefines.xcconfig: 2010-05-17 Mark Rowe Disable progress element. * Configurations/FeatureDefines.xcconfig: 2010-05-14 Mark Rowe Disable WebGL * Configurations/FeatureDefines.xcconfig: 2010-05-13 Mark Rowe Merge r59418. 2010-05-13 Timothy Hatcher Allow reporting exceptions that occur when using JavaScriptCore APIs to the Web Inspector. Reviewed by Sam Weinig. * WebView/WebView.mm: (+[WebView _reportException:inContext:]): Call WebCore::reportException after checking that the global object is a DOMWindow. * WebView/WebViewPrivate.h: Added _reportException:inContext:. 2010-05-13 Mark Rowe Merge r59391. 2010-05-13 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=39089 Domain names in Russian '.рф' domain are displayed as punycode Add a custom check for this domain. Currently, this is the only non-ASCII TLD, we'll investigate a more extensible solution when there are more, and we know what the typical restictions are. * Misc/WebNSURLExtras.mm: (allCharactersAllowedByTLDRules): (-[NSString _web_mapHostNameWithRange:encode:makeString:]): 2010-05-13 Mark Rowe Merge r59232. 2010-05-12 Jer Noble Reviewed by Darin Adler. Bug 38689: #34005 will break fullscreen video playback https://bugs.webkit.org/show_bug.cgi?id=38689 Use the new definition of PlatformMedia to check the actual type returned by MediaPlayer. * WebView/WebVideoFullscreenController.mm: (-[WebVideoFullscreenController windowDidLoad]): 2010-05-12 Mark Rowe Merge r59125. 2010-05-10 Timothy Hatcher Fix a crash when closing a WebView while the Web Inspector is open. Reviewed by Mark Rowe. * WebCoreSupport/WebInspectorClient.mm: (-[WebInspectorWindowController destroyInspectorView]): Null check Page since it can be null. * WebView/WebView.mm: (-[WebView _close]): Null out _private->page before deleting the page, so code called during destruction don't access a half deleted Page object. 2010-05-12 Mark Rowe Merge r59093. 2010-05-10 Anders Carlsson Unbreak the world. (Fix Mac builds). * Plugins/Hosted/WebKitPluginHostTypes.h: 2010-05-12 Mark Rowe Merge r59086. 2010-05-10 Anders Carlsson Reviewed by Simon Fraser. Change the order of the RendererType enum values, so that old versions of WebKitPluginHost will use accelerated compositing and not layer backed views. * Plugins/Hosted/WebKitPluginHostTypes.h: 2010-05-12 Mark Rowe Merge r58982. 2010-05-07 Anders Carlsson Reviewed by Sam Weinig and Simon Fraser. QT Plug-in in hardware-accelerated WebKit is missing the controller Replace the useSoftwareRenderer boolean with an enum that lets the plug-in host opt into using a layer backed NSView instead of inserting the layer into the WebCore layer hierarchy. * Plugins/Hosted/NetscapePluginHostManager.mm: (WebKit::NetscapePluginHostManager::instantiatePlugin): * Plugins/Hosted/NetscapePluginHostProxy.mm: (WKPCInstantiatePluginReply): * Plugins/Hosted/NetscapePluginInstanceProxy.h: (WebKit::NetscapePluginInstanceProxy::rendererType): (WebKit::NetscapePluginInstanceProxy::setRendererType): (WebKit::NetscapePluginInstanceProxy::InstantiatePluginReply::InstantiatePluginReply): * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::NetscapePluginInstanceProxy): Replace the useSoftwareRenderer boolean everywhere with the RendererType enum. * Plugins/Hosted/WebHostedNetscapePluginView.mm: (-[WebHostedNetscapePluginView createPlugin]): Only go into full compositing mode when the renderer type returned is UseAcceleratedCompositing. Otherwise, use a layer backed NSView. * Plugins/Hosted/WebKitPluginHostTypes.h: Add a RendererType enum. 2010-05-06 Anders Carlsson Reviewed by Darin Adler and Dan Bernstein.. REGRESSION (r51617): when plugins are disabled, plugins show up as garbage characters https://bugs.webkit.org/show_bug.cgi?id=38698 When the plug-in database is initialized, we will register all the MIME types it supports with the global WebView dictionary. When plug-ins are disabled for a single web view, the MIME types still need to be in the global mapping (because other web views might still have plug-ins enabled). Prior to r51617 we would always look at the plug-in database to determine that the MIME type belongs to a plug-in, but now we won't even touch the plug-in database when plug-ins are disabled. In order to fix this, a new set of registered MIME types that are known to be plug-ins is added. When +[WebView _viewClass:andRepresentationClass:forMIMEType:allowingPlugins:] is called and allowingPlugins is FALSE we check if the MIME type is a known plug-in MIME type and return false in that case. * Plugins/WebPluginDatabase.mm: (-[WebPluginDatabase refresh]): (-[WebPluginDatabase _removePlugin:]): * WebView/WebView.mm: (knownPluginMIMETypes): (+[WebView _registerPluginMIMEType:]): (+[WebView _unregisterPluginMIMEType:]): (+[WebView _viewClass:andRepresentationClass:forMIMEType:allowingPlugins:]): * WebView/WebViewInternal.h: 2010-05-06 Dan Bernstein Reviewed by Simon Fraser. REGRESSION (r58847): Composited iframe content obscures Safari's application chrome Fixed this other regression from r58847. The regression was caused by overriding -visibleRect to return the WebClipView’s full bounds. AppKit uses -visibleRect to determine the geometry of the surface for the child WebFrameView. The fix is to restrict the special behavior of -[WebClipView visibleRect] to when AppKit is consulting it for the purpose of invalidating areas while scrolling. * WebView/WebClipView.h: * WebView/WebClipView.mm: (-[WebClipView visibleRect]): If the WebClipView is not scrolling, always return [super visibleRect]. (-[WebClipView _immediateScrollToPoint:]): Override this internal NSClipView method to set a flag telling -visibleRect that the view is scrolling. * WebView/WebView.mm: (layerSyncRunLoopObserverCallBack): Ensure that screen updates, disabled by AppKit when it thinks an upcoming window flush will re-enable them, are enabled here in case the -setNeedsDisplayInRect: override has prevented the window from needing to be flushed. 2010-05-06 Steve Block Reviewed by Eric Seidel. MAC_JAVA_BRIDGE should be renamed JAVA_BRIDGE https://bugs.webkit.org/show_bug.cgi?id=38544 * WebCoreSupport/WebFrameLoaderClient.h: * WebCoreSupport/WebFrameLoaderClient.mm: 2010-05-05 Dan Bernstein Reviewed by Mark Rowe. Fixed a crash when closing Top Sites after r58847. * WebView/WebFrameView.mm: (-[WebFrameView webFrame]): Null-check _private. 2010-05-05 Dan Bernstein Rubber-stamped by Mark Rowe. Fixed test crashes after r58847. * WebView/WebHTMLView.mm: (setNeedsDisplayInRect): Null-check the frame. 2010-05-05 Dan Bernstein Reviewed by Simon Fraser. Iframes in composited layers don’t repaint correctly (affects Yahoo! Mail with Flash Player 10.1) https://bugs.webkit.org/show_bug.cgi?id=38427 * WebView/WebClipView.m: Renamed to WebClipView.mm. * WebView/WebClipView.mm: (-[WebClipView visibleRect]): Added this override, which for instances used for WebFrameViews in composited layers, returns the clip view’s entire bounds. This prevents drawing from being clipped to AppKit’s idea of what part of the view would be visible if it was drawn as part of the view hierarchy. Since it is drawn into a compositing layer, that’s irrelevant, and we should not be clipping. * WebView/WebHTMLView.mm: (setCursor): Style tweak. (setNeedsDisplayInRect): Added. Replaces the default implementation of -[NSView setNeedsDisplayInRect:], so that if the receiver is a descendant of a WebFrameView that draws into a composited layer, the invalidation is routed back through the WebCore FrameView, which propagates it to the layer. (+[WebHTMLViewPrivate initialize]): Swizzle the setNeedsDisplayInRect: override in. (-[WebHTMLView visibleRect]): Removed whitespace. * WebView/WebView.mm: (layerSyncRunLoopObserverCallBack): If we bailed out on syncing, due to pending layout, do an eager layout in preparation for the displaying of compositing layers. 2010-05-05 John Sullivan Output appears in Console when exiting Safari with multiple windows opened Reviewed by Mark Rowe. * WebView/WebView.mm: (+[WebView closeAllWebViews]): Make copy of allWebViewsSet to avoid mutating it while iterating through it. 2010-05-04 Simon Fraser Reviewed by Dan Bernstein. Improve check for drawing into the window that was added in r58623 https://bugs.webkit.org/show_bug.cgi?id=38562 Rather than assuming that any non-bitmap context is the window's context, compare the current graphics context with -[NSWindow graphicsContext] to determine that we're drawing into the window. * WebView/WebHTMLView.mm: (-[WebHTMLView drawRect:]): 2010-05-04 Ada Chan Reviewed by David Kilzer. https://bugs.webkit.org/show_bug.cgi?id=38555 Small code refactoring: move the logic to figure out the path to the databases directory to another method. * Storage/WebDatabaseManager.mm: (databasesDirectoryPath): (WebKitInitializeDatabasesIfNecessary): 2010-05-04 Beth Dakin Reviewed by Mike Thole. Fix for Crash occurs when exiting Safari We can avoid this crash if we call [self _removeFromAllWebViewsSet] even in the case when we are doing a fastDocumentTeardown. This is a much safer approach. * WebView/WebView.mm: (-[WebView _close]): 2010-05-03 Abhishek Arya Reviewed by Adam Barth. Add support for controlling clipboard access from javascript. Clipboard access from javascript is disabled by default. https://bugs.webkit.org/show_bug.cgi?id=27751 * WebView/WebPreferenceKeysPrivate.h: * WebView/WebPreferences.mm: (+[WebPreferences initialize]): (-[WebPreferences javaScriptCanAccessClipboard]): (-[WebPreferences setJavaScriptCanAccessClipboard:]): * WebView/WebPreferencesPrivate.h: * WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]): 2010-05-03 Jens Alfke Reviewed by Darin Fisher. [chromium] Add "willSendSubmitEvent" hook to WebFrameClient and FrameLoaderClient https://bugs.webkit.org/show_bug.cgi?id=38397 No tests (functionality is exposed only through native WebKit API.) * WebCoreSupport/WebFrameLoaderClient.h: (WebFrameLoaderClient::dispatchWillSendSubmitEvent): 2010-04-30 Simon Fraser Reviewed by Dan Bernstein. REGRESSION: Bad flicker when wheel-scrolling Google Maps, iPad gallery and other sites Sites that frequently toggle content in and out of compositing layers (like http://www.tumblr.com/boothed) can cause flickering because of unsychronized compositing layer and view-based updates. There were two underlying issues: 1. On SnowLeopard, AppKit can throttle window updates, thus breaking an assumption that NSView drawing will happen on the runloop cycle after a repaint. This provided a window for the layerSyncRunLoopObserver to fire and commit layer changes too early. Fix this by having the layerSyncRunLoopObserver in WebView check to see if a display is pending, and not commit layer changes in that case. We'll commit layer changes later when we finally draw. 2. The change in r49269 was wrong; it was attempting to fix an issue that was actually caused by -drawRects: coming in for page snapshots. The correct approach is to avoid hitting the synchronization and update disabling code in WebHTMLView for draws that are not to the screen. * WebView/WebHTMLView.mm: (-[WebHTMLView drawRect:]): * WebView/WebView.mm: (layerSyncRunLoopObserverCallBack): (-[WebView _scheduleCompositingLayerSync]): 2010-04-30 Anders Carlsson Part of the previous part (forgot to save). * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView stopTimers]): (-[WebNetscapePluginView startTimers]): (-[WebNetscapePluginView checkIfAllowedToLoadURL:frame:callbackFunc:context:]): (-[WebNetscapePluginView _containerCheckResult:contextInfo:]): (-[WebNetscapePluginView cancelCheckIfAllowedToLoadURL:]): (-[WebNetscapePluginView scheduleTimerWithInterval:repeat:timerFunc:]): (-[WebNetscapePluginView unscheduleTimer:]): (-[WebNetscapePluginView getVariable:forURL:value:length:]): (-[WebNetscapePluginView setVariable:forURL:value:length:]): 2010-04-30 Anders Carlsson Reviewed by Darin Adler. Use C99 integer types in more places. * Plugins/WebNetscapePluginView.mm: (getNPRect): 2010-04-30 Anders Carlsson Fix Tiger build. * Plugins/WebBaseNetscapePluginStream.h: * Plugins/WebBaseNetscapePluginStream.mm: (WebNetscapePluginStream::startStream): 2010-04-30 Anders Carlsson Another 32-bit build fix. * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]): 2010-04-30 Anders Carlsson Fix 32-bit build (again). * Plugins/WebNetscapeContainerCheckContextInfo.h: * Plugins/WebNetscapeContainerCheckContextInfo.mm: (-[WebNetscapeContainerCheckContextInfo initWithCheckRequestID:callbackFunc:context:]): (-[WebNetscapeContainerCheckContextInfo checkRequestID]): (-[WebNetscapeContainerCheckContextInfo callback]): * Plugins/WebNetscapePluginPackage.h: 2010-04-30 Anders Carlsson Fix 32-bit build. * Plugins/WebNetscapeContainerCheckContextInfo.h: * Plugins/WebNetscapeContainerCheckContextInfo.mm: (-[WebNetscapeContainerCheckContextInfo initWithCheckRequestID:callbackFunc:context:]): * Plugins/WebNetscapeContainerCheckPrivate.h: * Plugins/WebNetscapePluginPackage.mm: (functionPointerForTVector): * Plugins/WebNetscapePluginView.mm: (PluginTimer::PluginTimer): (-[WebNetscapePluginView checkIfAllowedToLoadURL:frame:callbackFunc:context:]): (-[WebNetscapePluginView scheduleTimerWithInterval:repeat:timerFunc:]): 2010-04-30 Anders Carlsson Reviewed by Timothy Hatcher. Next step towards fixing https://bugs.webkit.org/show_bug.cgi?id=20784 move npapi.h to C99 integer types Use the C99 types everywhere. The "old" types are still around but will be removed in a subsequent commit. * Plugins/WebBaseNetscapePluginStream.h: * Plugins/WebBaseNetscapePluginStream.mm: (WebNetscapePluginStream::deliverData): * Plugins/WebNetscapePluginView.h: * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]): (-[WebNetscapePluginView getAuthenticationInfoWithProtocol:host:port:scheme:realm:username:usernameLength:password:passwordLength:]): * Plugins/npapi.mm: (NPN_MemAlloc): (NPN_MemFlush): (NPN_PostURLNotify): (NPN_PostURL): (NPN_Write): (NPN_ScheduleTimer): (NPN_UnscheduleTimer): (NPN_GetValueForURL): (NPN_SetValueForURL): (NPN_GetAuthenticationInfo): (WKN_CheckIfAllowedToLoadURL): (WKN_CancelCheckIfAllowedToLoadURL): 2010-04-29 Anders Carlsson Reviewed by Dan Bernstein. First part of https://bugs.webkit.org/show_bug.cgi?id=20784 move npapi.h to C99 integer types. * MigrateHeaders.make: 2010-04-28 Mike Thole Reviewed by David Kilzer. Add canAuthenticateAgainstProtectionSpace() to frame loader so that a protection space can be inspected before attempting to authenticate against it https://bugs.webkit.org/show_bug.cgi?id=38271 * WebCoreSupport/WebFrameLoaderClient.h: * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::canAuthenticateAgainstProtectionSpace): Added. If the resource load delegate implements the callback, use its answer. If it does not, then only send authentication challenges for pre-10.6 protection spaces, which matches CFNetwork's default behavior. * WebView/WebDelegateImplementationCaching.h: * WebView/WebDelegateImplementationCaching.mm: (CallResourceLoadDelegateReturningBoolean): Added case for passing three objects. * WebView/WebResourceLoadDelegatePrivate.h: Added private SPI definition: webView:resource:canAuthenticateAgainstProtectionSpace:forDataSource: * WebView/WebView.mm: (-[WebView _cacheResourceLoadDelegateImplementations]): 2010-04-28 Simon Fraser Reviewed by Sam Weinig. ASSERT(isMainThread()) from Font::setShouldUseSmoothing() Ensure that the WebView +initialize method initializes threading, so that things are correctly initialized when the first call into the WebKit framework is via a WebView class method. * WebView/WebView.mm: (+[WebView initialize]): 2010-04-28 Darin Adler Reviewed by Adele Peterson. REGRESSION: Autoscroll does not work in Mail messages https://bugs.webkit.org/show_bug.cgi?id=38267 rdar://problem/7559799 The machinery to make autoscrolling work on Mac OS X when a WebView is embedded in another view had gotten broken in multiple ways. For some reason, a combination of bugs made it partly work until around r48064. This brings it back. * WebCoreSupport/WebChromeClient.mm: (WebChromeClient::scrollRectIntoView): When converting coordinates, use the document view rather than the WebView itself. This logic may not be correct for the case where usesDocumentViews is NO, but that is currently an experimental mode and can be fixed later. 2010-04-27 Shinichiro Hamaji Reviewed by Darin Adler and Eric Seidel. Add layoutTestController.setPrinting() https://bugs.webkit.org/show_bug.cgi?id=37203 * Misc/WebCoreStatistics.h: * Misc/WebCoreStatistics.mm: (-[WebFrame renderTreeAsExternalRepresentationForPrinting:]): 2010-04-25 Sam Weinig Reviewed by Maciej Stachowiak. Fix for https://bugs.webkit.org/show_bug.cgi?id=38097 Disentangle initializing the main thread from initializing threading Calls initializeMainThreadToProcessMainThread since there is no way to ensure that the initialize method will be called on the main thread. * Carbon/CarbonWindowAdapter.mm: (+[CarbonWindowAdapter initialize]): Add call to initializeMainThreadToProcessMainThread. * History/WebBackForwardList.mm: (+[WebBackForwardList initialize]): Ditto. * History/WebHistoryItem.mm: (+[WebHistoryItem initialize]): Ditto. * Misc/WebElementDictionary.mm: (+[WebElementDictionary initialize]): Ditto. * Misc/WebIconDatabase.mm: (+[WebIconDatabase initialize]): Ditto. * Plugins/Hosted/WebHostedNetscapePluginView.mm: (+[WebHostedNetscapePluginView initialize]): Ditto. * Plugins/WebBaseNetscapePluginView.mm: (+[WebBaseNetscapePluginView initialize]): Ditto. * Plugins/WebBasePluginPackage.mm: (+[WebBasePluginPackage initialize]): Ditto. * Plugins/WebNetscapePluginView.mm: (+[WebNetscapePluginView initialize]): Ditto. * WebCoreSupport/WebEditorClient.mm: (+[WebEditCommand initialize]): Ditto. * WebCoreSupport/WebFrameLoaderClient.mm: (+[WebFramePolicyListener initialize]): Ditto. * WebView/WebArchive.mm: (+[WebArchivePrivate initialize]): Ditto. * WebView/WebDataSource.mm: (+[WebDataSourcePrivate initialize]): Ditto. * WebView/WebHTMLView.mm: (+[WebHTMLViewPrivate initialize]): Ditto. (+[WebHTMLView initialize]): Ditto. * WebView/WebResource.mm: (+[WebResourcePrivate initialize]): Ditto. * WebView/WebTextIterator.mm: (+[WebTextIteratorPrivate initialize]): Ditto. * WebView/WebView.mm: * WebView/WebViewData.mm: Ditto. (+[WebViewPrivate initialize]): Ditto. 2010-04-24 Dan Bernstein Reviewed by Darin Adler. REGRESSION (r51617): WebView fails to load plug-in MIME types https://bugs.webkit.org/show_bug.cgi?id=38085 WebView was calling -_webView in a few places where it should have just used itself. It never makes sense for WebView to call -_webView on itself, and these calls look like they were copied from similar code in WebHTMLView, WebFrameView and WebDataSource, where -_webView has a different, useful meaning. * WebView/WebView.mm: (-[WebView drawSingleRect:]): Replaced [self _webView] with self. (-[WebView _viewClass:andRepresentationClass:forMIMEType:]): Replaced [[self _webView] preferences] with _private->preferences. (-[WebView _canShowMIMEType:]): Ditto. 2010-04-23 Simon Fraser Reviewed by Anders Carlsson. When printing Flash, send a drawRect event, rather than NPPrint When printing Flash plug-ins in 32-bit, send a drawRect event with a CGContextRef, rather than calling NPPrint with a GWorldPtr, since Flash prefers the CGContext path. * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView drawRect:]): 2010-04-22 David Kilzer +[WebTextIteratorPrivate initialize] is missing call to JSC::initializeThreading() Reviewed by Timothy Hatcher. Every other Objective-C class that calls WebCoreObjCFinalizeOnMainThread(self) in +initialize also calls JSC::initializeThreading(). The WebTextIteratorPrivate class was the only one missing this call. * WebView/WebTextIterator.mm: (+[WebTextIteratorPrivate initialize]): Added call to JSC::initializeThreading(). 2010-04-22 Alexey Proskuryakov Rubber-stamped by Mark Rowe. REGRESSION: iTunes unable to play trailers Undo the changes made for https://bugs.webkit.org/show_bug.cgi?id=35215 () for now. Clients rely on the old behavior, so a fix that changes it will need to account for those. * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::createPlugin): Pass pluginURL instead of baseURL again. 2010-04-22 Dave Moore Reviewed by Dimitri Glazkov. Added notification when the favicons for a page are changed from a script. The Document object will notify the frame loader, which will notify the client. Implementations of FrameLoaderClient will have to add one method; dispatchDidChangeIcons(). https://bugs.webkit.org/show_bug.cgi?id=33812 * WebCoreSupport/WebFrameLoaderClient.h: * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::dispatchDidChangeIcons): 2010-04-22 Adam Barth Unreviewed, rolling out r58069. http://trac.webkit.org/changeset/58069 https://bugs.webkit.org/show_bug.cgi?id=27751 Broke compile on Windows. * WebView/WebPreferenceKeysPrivate.h: * WebView/WebPreferences.mm: (+[WebPreferences initialize]): * WebView/WebPreferencesPrivate.h: * WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]): 2010-04-22 Abhishek Arya Reviewed by Adam Barth. Add support for controlling clipboard access from javascript. Clipboard access from javascript is disabled by default. https://bugs.webkit.org/show_bug.cgi?id=27751 * WebView/WebPreferenceKeysPrivate.h: * WebView/WebPreferences.mm: (+[WebPreferences initialize]): (-[WebPreferences javaScriptCanAccessClipboard]): (-[WebPreferences setJavaScriptCanAccessClipboard:]): * WebView/WebPreferencesPrivate.h: * WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]): 2010-04-21 Alexey Proskuryakov Reviewed by Shinichiro Hamaji. https://bugs.webkit.org/show_bug.cgi?id=37964 Fix a typo in comments - Korean encoding name is windows-949, not windows-939 * WebView/WebPreferences.mm: (+[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]): 2010-04-21 Mark Rowe Tiger build fix. * Plugins/WebPluginController.mm: Add an #import that is necessary on Tiger. 2010-04-21 Mark Rowe Reviewed by Eric Carlson. Many crashes in Safari inside Flip4Mac below -[NSAlert didEndAlert:returnCode:contextInfo:] Existing versions of the Flip4Mac WebKit plug-in have an object lifetime bug related to an NSAlert that is used to notify the user about updates to the plug-in. This bug can result in Safari crashing if the page containing the plug-in navigates while the alert is displayed (). The gist of the bug is thus: Flip4Mac sets an instance of the TSUpdateCheck class as the modal delegate of the NSAlert instance. This TSUpdateCheck instance itself has a delegate. The delegate is set to the WmvPlugin instance which is the NSView subclass that is exposed to WebKit as the plug-in view. Since this relationship is that of delegates the TSUpdateCheck does not retain the WmvPlugin. This leads to a bug if the WmvPlugin instance is destroyed before the TSUpdateCheck instance as the TSUpdateCheck instance will be left with a pointer to a stale object. This will happen if a page containing the Flip4Mac plug-in triggers a navigation while the update sheet is visible as the WmvPlugin instance is removed from the view hierarchy and there are no other references to keep the object alive. We work around this bug by patching the following two messages: 1) -[NSAlert beginSheetModalForWindow:modalDelegate:didEndSelector:contextInfo:] 2) -[TSUpdateCheck alertDidEnd:returnCode:contextInfo:] Our override of 1) detects whether it is Flip4Mac's update sheet triggering the alert by checking whether the modal delegate is an instance of TSUpdateCheck. If it is, it retains the modal delegate's delegate. Our override of 2) then autoreleases the delegate, balancing the retain we added in 1). These two overrides have the effect of ensuring that the WmvPlugin instance will always outlive the TSUpdateCheck instance, preventing the TSUpdateCheck instance from accessing a stale delegate pointer and crashing the application. * Plugins/WebPluginController.mm: (-[WebPluginController addPlugin:]): Check whether the plug-in being instantiated is the Flip4Mac plug-in and install our workaround if it is. (isKindOfClass): Helper function that checks whether the given object is an instance of the named class. (WebKit_TSUpdateCheck_alertDidEnd_returnCode_contextInfo_): Autorelease the delegate. (WebKit_NSAlert_beginSheetModalForWindow_modalDelegate_didEndSelector_contextInfo_): Retain the modal delegate's delegate if this NSAlert belongs to the Flip4Mac plug-in. (installFlip4MacPlugInWorkaroundIfNecessary): Swizzle the necessary methods. We swizzle the TSUpdateCheck methods first since it is possible that in some versions of Flip4Mac the TSUpdateCheck class may not exist or may not have the method we're interested in. In that case we want to bail out before patching any methods. 2010-04-20 Mark Rowe Reviewed by Maciej Stachowiak. REGRESSION: NPP_Destroy is not called when page navigates when plug-in is displaying modal dialog An interaction between the plug-in host and WebKit was resulting in WKPCSetModal being called while NetscapePluginInstanceProxy was waiting on a reply to the GetScriptableNPObject message. This resulted in calls to stop the plug-in being deferred due to the presence of plug-in code up the stack. This could lead to crashes as it was possible for the plug-in view to be deallocated during the modal runloop. * Plugins/Hosted/NetscapePluginHostProxy.mm: (WKPCInvalidateRect): (WKPCSetModal): Defer the handling of setModal until the next runloop iteration if the host proxy is already processing requests. This ensures that there will be no plug-in code on the stack when the modal runloop is entered, which allows the plug-in to be stopped when the page is navigated while a modal dialog is displayed. 2010-04-20 Adam Barth Reviewed by Eric Seidel. Factor DocumentWriter out of FrameLoader https://bugs.webkit.org/show_bug.cgi?id=37175 Update these callsites because the method moved to DocumentWriter. * WebView/WebFrame.mm: (-[WebFrame _canProvideDocumentSource]): (-[WebFrame _receivedData:textEncodingName:]): 2010-04-20 Kent Tamura Reviewed by Darin Adler. Change a parameter type of chooseIconForFiles() https://bugs.webkit.org/show_bug.cgi?id=37504 * WebCoreSupport/WebChromeClient.h: * WebCoreSupport/WebChromeClient.mm: (WebChromeClient::chooseIconForFiles): 2010-04-20 Sheriff Bot Unreviewed, rolling out r57892. http://trac.webkit.org/changeset/57892 https://bugs.webkit.org/show_bug.cgi?id=37864 Caused an assertion in Mac builds (Requested by smfr on #webkit). * WebView/WebFrame.mm: (-[WebFrame _getVisibleRect:]): * WebView/WebFrameView.mm: (-[WebFrameView _install]): 2010-04-20 Simon Fraser Reviewed by Dan Bernstein. Clean up RenderPart/RenderPartObject/RenderFrame/RenderEmbeddedObject https://bugs.webkit.org/show_bug.cgi?id=37741 Make Frame::ownerRenderer() return a RenderFrameBase* rather than a RenderPart*, and add the necessary toRenderFrameBase() and isRenderFrameBase(). * WebView/WebFrame.mm: (-[WebFrame _getVisibleRect:]): * WebView/WebFrameView.mm: (-[WebFrameView _install]): 2010-04-19 Dan Bernstein Reviewed by Sam Weinig. Finish exposing extremal shrink factors WebHTMLView uses when shrinking pages to fit in the printing width as SPI. * WebKit.exp: Export _WebHTMLViewPrintingMinimumShrinkFactor and _WebHTMLViewPrintingMaximumShrinkFactor. 2010-04-15 Gavin Barraclough Reviewed by Sam Weinig & Oliver Hunt. https://bugs.webkit.org/show_bug.cgi?id=37675 Remove casts/constructors to/from JSC::UString type from WebCore::String WebCore's strings should not know about JSC::UString, this should be abstracted away in the bindings. Add explicit conversion methods rather than relying on overloaded cast operators / constructors being implicitly called. This patch only changes the class String, once this has landed StringImpl, and hopefully AtomicString too, should follow suit. * Plugins/Hosted/NetscapePluginHostProxy.mm: (identifierFromIdentifierRep): * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::addValueToArray): (WebKit::NetscapePluginInstanceProxy::moveGlobalExceptionToExecState): * Plugins/Hosted/ProxyInstance.mm: (WebKit::ProxyInstance::getPropertyNames): * WebView/WebFrame.mm: (-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]): (-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]): * WebView/WebScriptDebugDelegate.mm: (-[WebScriptCallFrame evaluateWebScript:]): * WebView/WebScriptDebugger.mm: (toNSURL): * WebView/WebView.mm: (aeDescFromJSValue): 2010-04-16 Dan Bernstein Reviewed by John Sullivan. Expose the extremal shrink factors WebHTMLView uses when shrinking pages to fit in the printing width as SPI. * WebView/WebHTMLView.mm: Replaced two macros with constants. (-[WebHTMLView _beginPrintModeWithPageWidth:shrinkToFit:]): Changed to use the constants. (-[WebHTMLView _scaleFactorForPrintOperation:]): Ditto. * WebView/WebHTMLViewPrivate.h: Declared _WebHTMLViewPrintingMinimumShrinkFactor and _WebHTMLViewPrintingMaximumShrinkFactor. 2010-04-15 Mark Rowe Reviewed by Sam Weinig. WebDynamicScrollBarsView.h generates compile errors when included in plain Objective-C files. * WebView/WebDynamicScrollBarsView.h: 2010-04-15 Adam Roben Export WebUserContentURLPattern from WebKit Rubber-stamped by Mark Rowe. * WebKit.exp: 2010-04-15 Dan Bernstein Reviewed by Simon Fraser. Made consecutive calls to -[WebHTMLView _beginPrintModeWithPageWidth:shrinkToFit:] work without intermediate calls -[WebHTMLView _endPrintMode]. * WebView/WebHTMLView.mm: (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]): 2010-04-15 Adam Roben Expose UserContentURLPattern as WebKit SPI Fixes . Reviewed by Tim Hatcher. * Misc/WebUserContentURLPattern.h: Added. * Misc/WebUserContentURLPattern.mm: Added. (-[WebUserContentURLPattern initWithPatternString:]): Initialize _private and then parse the passed-in string into a UserContentURLPattern. (-[WebUserContentURLPattern dealloc]): Release _private. (-[WebUserContentURLPattern isValid]): (-[WebUserContentURLPattern scheme]): (-[WebUserContentURLPattern host]): (-[WebUserContentURLPattern matchesSubdomains]): Call through to UserContentURLPattern. 2010-04-13 Geoffrey Garen Reviewed by Oliver Hunt. Separated a DOMWrapperWorld's behavior of keeping wrappers alive from its own lifetime, so a DOMWrapperWorld's controller can throw away its wrappers even before its refcount reaches 0. * WebView/WebScriptWorld.h: * WebView/WebScriptWorld.mm: (-[WebScriptWorld unregisterWorld]): Exported this function through WebKit. 2010-04-12 Timothy Hatcher SecurityOrigin needs a way to remove individual OriginAccessEntries https://bugs.webkit.org/show_bug.cgi?id=37449 Reviewed by Dave Hyatt. * WebView/WebView.mm: (+[WebView _removeOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): Call SecurityOrigin::removeOriginAccessWhitelistEntry. * WebView/WebViewPrivate.h: Added _removeOriginAccessWhitelistEntryWithSourceOrigin. 2010-04-13 Timothy Hatcher Rename SecurityOrigin::whiteListAccessFromOrigin to addOriginAccessWhitelistEntry. And SecurityOrigin::resetOriginAccessWhiteLists to resetOriginAccessWhitelists. SecurityOrigin needs a way to remove individual OriginAccessEntries https://bugs.webkit.org/show_bug.cgi?id=37449 Reviewed by Dave Hyatt. * WebView/WebView.mm: (+[WebView _addOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): (+[WebView _resetOriginAccessWhitelists]): * WebView/WebViewPrivate.h: 2010-04-11 Sheriff Bot Unreviewed, rolling out r57468. http://trac.webkit.org/changeset/57468 https://bugs.webkit.org/show_bug.cgi?id=37433 Broke the world... Must have applied the patch wrong (Requested by abarth on #webkit). * WebView/WebFrame.mm: (-[WebFrame _canProvideDocumentSource]): (-[WebFrame _receivedData:textEncodingName:]): 2010-04-11 Adam Barth Reviewed by Eric Seidel. Factor DocumentWriter out of FrameLoader https://bugs.webkit.org/show_bug.cgi?id=37175 Update these callsites because the method moved to DocumentWriter. * WebView/WebFrame.mm: (-[WebFrame _canProvideDocumentSource]): (-[WebFrame _receivedData:textEncodingName:]): 2010-04-10 Mark Rowe Reviewed by Dan Bernstein. Further adoption of formal protocols for delegates. Move EmptyProtocolDefinitions.h down in to WebCore, and add the new protocols. Adopt the protocols in the appropriate places. * Misc/EmptyProtocolDefinitions.h: Removed. * Misc/WebDownload.mm: * WebKitPrefix.h: 2010-04-09 Jer Noble Reviewed by Darin Adler. Work around QTMovieView bug () by using a QTMovieLayer instead. https://bugs.webkit.org/show_bug.cgi?id=37311 / * WebView/WebVideoFullscreenController.mm: (-[WebVideoFullscreenController windowDidLoad]): (-[WebVideoFullscreenController setMediaElement:WebCore::]): 2010-04-09 Alexey Proskuryakov Reviewed by Maciej Stachowiak. https://bugs.webkit.org/show_bug.cgi?id=24572 XMLHttpRequest.statusText returns always "OK" on Mac * WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface): 2010-04-09 Eric Seidel Unreviewed, rolling out r57343. http://trac.webkit.org/changeset/57343 https://bugs.webkit.org/show_bug.cgi?id=37311 Broke Tiger compile. * WebView/WebVideoFullscreenController.mm: (-[WebVideoFullscreenController windowDidLoad]): (-[WebVideoFullscreenController setMediaElement:WebCore::]): 2010-04-09 Dan Bernstein Reviewed by Darin Adler. REGRESSION (r57332) - Crash in [WebDynamicScrollBarsView(WebInternal) reflectScrolledClipView:] when opening the Downloads window * WebView/WebDynamicScrollBarsView.mm: (-[WebDynamicScrollBarsView initWithCoder:]): Added. Calls super and then initializes _private. 2010-04-09 Jer Noble Reviewed by Darin Adler. Work around QTMovieView bug () by using a QTMovieLayer instead. https://bugs.webkit.org/show_bug.cgi?id=37311 / * WebView/WebVideoFullscreenController.mm: (-[WebVideoFullscreenController windowDidLoad]): (-[WebVideoFullscreenController setMediaElement:WebCore::]): 2010-04-08 Mark Rowe Reviewed by John Sullivan. REGRESSION(r56008): iTunes crashes on quit inside -[NSScrollView dealloc] In r56008 new instance variables were added to WebDynamicScrollBarsView, increasing its size. This causes problems for 32-bit applications that derive from WebDynamicScrollBarsView, as the size and layout of their subclasses is baked in at compile time. This results in instances being allocated that are smaller than the new code expects, and may result in the new instance variables sharing the same memory space as any instance variables that the subclass defines. We can avoid this problem by having the class contain only a single member that acts as a pointer to a heap-allocated structure that acts as storage for the real instance variables. This makes us free to add instance variables in the future without risk of changing the size of the class. To ensure that 32-bit applications that are built against this new WebDynamicScrollBarsView header are able to run against older versions of WebKit we pad the class out to its previous size. This results in any subclasses of WebDynamicScrollBarsView being created with a layout that is compatible with both versions of the code. This change could potentially break a subclass of WebDynamicScrollBarsView that directly accesses instance variables of its superclass. However, this is a private header and no known subclasses of WebDynamicScrollBarsView access superclass instance variables in this fashion. * WebView/WebDynamicScrollBarsView.h: * WebView/WebDynamicScrollBarsView.mm: (-[WebDynamicScrollBarsView initWithFrame:]): (-[WebDynamicScrollBarsView dealloc]): (-[WebDynamicScrollBarsView finalize]): (-[WebDynamicScrollBarsView setAllowsHorizontalScrolling:]): (-[WebDynamicScrollBarsView setAllowsScrollersToOverlapContent:]): (-[WebDynamicScrollBarsView setAlwaysHideHorizontalScroller:]): (-[WebDynamicScrollBarsView setAlwaysHideVerticalScroller:]): (-[WebDynamicScrollBarsView horizontalScrollingAllowed]): (-[WebDynamicScrollBarsView verticalScrollingAllowed]): (-[WebDynamicScrollBarsView contentViewFrame]): (-[WebDynamicScrollBarsView tile]): (-[WebDynamicScrollBarsView setSuppressLayout:]): (-[WebDynamicScrollBarsView setScrollBarsSuppressed:repaintOnUnsuppress:]): (-[WebDynamicScrollBarsView updateScrollers]): (-[WebDynamicScrollBarsView reflectScrolledClipView:]): (-[WebDynamicScrollBarsView allowsHorizontalScrolling]): (-[WebDynamicScrollBarsView allowsVerticalScrolling]): (-[WebDynamicScrollBarsView scrollingModes:WebCore::vertical:WebCore::]): (-[WebDynamicScrollBarsView horizontalScrollingMode]): (-[WebDynamicScrollBarsView verticalScrollingMode]): (-[WebDynamicScrollBarsView setScrollingModes:vertical:andLock:]): (-[WebDynamicScrollBarsView setHorizontalScrollingModeLocked:]): (-[WebDynamicScrollBarsView setVerticalScrollingModeLocked:]): (-[WebDynamicScrollBarsView setScrollingModesLocked:]): (-[WebDynamicScrollBarsView horizontalScrollingModeLocked]): (-[WebDynamicScrollBarsView verticalScrollingModeLocked]): (-[WebDynamicScrollBarsView scrollWheel:]): 2010-04-07 David Hyatt Reviewed by Oliver Hunt. https://bugs.webkit.org/show_bug.cgi?id=24300, don't expose history info via CSS Add SPI so that layout tests can access computed style including :visited information. * WebView/WebRenderNode.mm: (copyRenderNode): * WebView/WebView.mm: (-[WebView _computedStyleIncludingVisitedInfo:forElement:]): * WebView/WebViewInternal.h: * WebView/WebViewPrivate.h: 2010-04-07 Dan Bernstein Reviewed by Adele Peterson. Refactor WebHTMLView printing code and add private methods to enter and exit printing mode. https://bugs.webkit.org/show_bug.cgi?id=37246 * Misc/WebNSPrintOperationExtras.h: Declared -_web_availablePaperWidth and -_web_availablePaperHeight. * Misc/WebNSPrintOperationExtras.m: (-[NSPrintOperation _web_availablePaperWidth]): Turned -[WebHTMLView _availablePaperWidthForPrintOperation:] into this method. (-[NSPrintOperation _web_availablePaperHeight]): Turned -[WebHTMLView _calculatePrintHeight] into this method. * WebView/WebHTMLView.mm: (-[WebHTMLView _isInPrintMode]): Added this accessor. (-[WebHTMLView _beginPrintModeWithPageWidth:shrinkToFit:]): Added. Moved the code from -knowsPageRange: that computes the layout widths and enters printing mode into this private method. (-[WebHTMLView _endPrintMode]): New private method (the old -_endPrintMode has been renamed). (-[WebHTMLView _scaleFactorForPrintOperation:]): Use -[NSPrintOperation _web_availablePaperWidth]. (-[WebHTMLView _endPrintModeAndRestoreWindowAutodisplay]): Renamed -_endPrintMode to this, changed it to call _endPrintMode. (-[WebHTMLView _delayedEndPrintMode:]): Updated for rename. (-[WebHTMLView knowsPageRange:]): Use -_beginPrintModeWithPageWidth:shrintToFit:, -[NSPrintOperation _web_availablePaperWidth], and -[NSPrintOperation _web_availablePaperHeight]. Updated for rename. (-[WebHTMLView beginDocument]): Updated for rename. (-[WebHTMLView endDocument]): Ditto. * WebView/WebHTMLViewPrivate.h: Declared new private methods -_isInPrintMode, -_beginPrintModeWithPageWidth:shrinkToFit: and -_endPrintMode. 2010-04-07 Andrey Kosyakov Reviewed by Yury Semikhatsky. Removed redundant FrameLoaderClient::dispatchDidLoadResourceByXMLHttpRequest() https://bugs.webkit.org/show_bug.cgi?id=36949 * WebCoreSupport/WebFrameLoaderClient.h: * WebCoreSupport/WebFrameLoaderClient.mm: 2010-04-06 Dan Bernstein Tiger build fix after r57184. * WebView/WebHTMLViewPrivate.h: 2010-04-06 Dan Bernstein Tiger build fix after r57184. * WebView/WebHTMLViewPrivate.h: 2010-04-06 Adam Barth Unreviewed. Speculative build fix for Tiger. * WebView/WebHTMLViewPrivate.h: 2010-04-06 Dan Bernstein Reviewed by Sam Weinig and Anders Carlsson. Expose WebHTMLView’s page breaking logic as SPI. * WebView/WebHTMLView.mm: (-[WebHTMLView _adjustedBottomOfPageWithTop:bottom:limit:]): Factored out of -adjustPageHeightNew:top:bottom:limit: (-[WebHTMLView adjustPageHeightNew:top:bottom:limit:]): Call -_adjustedBottomOfPageWithTop:bottom:limit: * WebView/WebHTMLViewPrivate.h: Declared -_adjustedBottomOfPageWithTop:bottom:limit: 2010-04-06 Mark Rowe Add an #if in order to make Tiger happy. * WebView/WebViewData.mm: (-[WebViewPrivate init]): 2010-04-06 Mark Rowe Build fix. * WebView/WebViewData.mm: (-[WebViewPrivate init]): Use objc_collectingEnabled like we do elsewhere in WebKit. 2010-04-05 Mark Rowe Reviewed by Adele Peterson. Test case for / . REGRESSION(r56989): Crash in Mail in WebCore::Position::isCandidate when deleting block using block deletion UI * WebView/WebHTMLView.mm: (-[WebHTMLView _updateFontPanel]): Ask the window whether it is the key window rather than doing the comparison manually. This allows DumpRenderTree's override of isKeyWindow to force this code path to be taken during tests. 2010-04-05 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=37111 Draw replacement text when plug-in host crashes * Plugins/Hosted/WebHostedNetscapePluginView.h: Removed _pluginDied - it was only used for drawing replacement icon, and this information is now in WebCore. * Plugins/Hosted/WebHostedNetscapePluginView.mm: (-[WebHostedNetscapePluginView pluginHostDied]): Tell RenderEmbeddedObject that the plug-in has crashed. (-[WebHostedNetscapePluginView drawRect:]): Removed the case for crashed plug-in host. It is handled by WebCore now. * WebCoreSupport/WebViewFactory.mm: (-[WebViewFactory crashedPluginText]): Added a string for plug-in failure. 2010-04-03 yael aharon Reviewed by Darin Adler. Enable HTMLProgressElement for Safari on OSX https://bugs.webkit.org/show_bug.cgi?id=36961 * Configurations/FeatureDefines.xcconfig: 2010-04-02 Jer Noble Reviewed by Eric Carlson. https://bugs.webkit.org/show_bug.cgi?id=36624 Add an INIT macro for the WebKitSystemInterface function wkQTMovieSelectPreferredAlternates. * WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface): 2010-04-02 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=37043 Java regression tests spam stderr about being unable to set status message With this change, there is still spam about "Attempt to access JavaScript from destroyed applet, type 9." I haven't investigated if that indicates a problem or not. * Plugins/WebPluginController.mm: (-[WebPluginController webPlugInContainerShowStatus:]): Removed check for _documentView. We don't seem to care. 2010-04-01 Kinuko Yasuda Reviewed by Dmitry Titov. Add FileThread for async file operation support in FileReader and FileWriter https://bugs.webkit.org/show_bug.cgi?id=36896 Add FILE_READER or FILE_WRITER feature defines. * Configurations/FeatureDefines.xcconfig: 2010-04-01 Ada Chan Reviewed by Darin Adler. Change WebDatabaseManager::deleteOrigin() to return true if there are no errors in deleting the origin. Ditto for WebDatabaseManager::deleteDatabase(). https://bugs.webkit.org/show_bug.cgi?id=36988 * Storage/WebDatabaseManager.mm: (-[WebDatabaseManager deleteOrigin:]): (-[WebDatabaseManager deleteDatabase:withOrigin:]): * Storage/WebDatabaseManagerPrivate.h: 2010-04-01 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=36976 REGRESSION(r54783): Silverlight plug-in causes Safari to crash if JavaScript is disabled * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::get): The HashTable assertions aren't there to catch potential future attempts to store empty/deleted values before these happen - it's actually wrong to try to look up these values. Added an early return. (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::forget): Ditto. 2010-04-01 Chris Marrin Reviewed by Simon Fraser. Added layerTreeAsText function to DRT (for Mac) https://bugs.webkit.org/show_bug.cgi?id=36782 This is the WebKit side for Mac. It plumbs the call from WebCore to DRT. * WebView/WebFrame.mm:WebKit (Mac) side of plumbing (-[WebFrame _layerTreeAsText]): * WebView/WebFramePrivate.h: 2010-04-01 Alexey Proskuryakov Reviewed by Oliver Hunt. https://bugs.webkit.org/show_bug.cgi?id=36976 REGRESSION(r54783): Silverlight plug-in causes Safari to crash if JavaScript is disabled * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::get): Use find() instead of get(), because the latter fails with an assertion when looking up 0 or -1. (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::forget): Be prepared for unexpected object IDs coming from plug-in host. 2010-03-31 Chris Fleizach Reviewed by Darin Adler. Bug 36845 - AX: need a way to set the label of a AXWebArea through WebKit https://bugs.webkit.org/show_bug.cgi?id=36845 Provide a way through WebKit to set an accessible label that describes the web area. * WebView/WebFrame.mm: (-[WebFrame setAccessibleName:]): * WebView/WebFramePrivate.h: 2010-03-31 Marcus Bulach Reviewed by Jeremy Orlow. Adds Geolocation param for cancelGeolocationPermissionRequestForFrame. https://bugs.webkit.org/show_bug.cgi?id=35031 * WebCoreSupport/WebChromeClient.h: (WebChromeClient::cancelGeolocationPermissionRequestForFrame): 2010-03-30 Gavin Barraclough Rubber stamped by Sam Weinig. https://bugs.webkit.org/show_bug.cgi?id=36866 Move CString to WTF * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::getCookies): (WebKit::NetscapePluginInstanceProxy::getProxy): (WebKit::NetscapePluginInstanceProxy::getAuthenticationInfo): (WebKit::NetscapePluginInstanceProxy::resolveURL): * Plugins/WebBaseNetscapePluginView.h: * Plugins/WebBaseNetscapePluginView.mm: * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView resolveURL:forTarget:]): 2010-03-30 John Sullivan Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=36848 Menu items appropriate only for rich-content editing can appear in plain-text contexts * WebView/WebHTMLView.mm: (-[WebHTMLView validRequestorForSendType:returnType:]): Don't return self for non-string content if _canEditRichly is false. 2010-03-29 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=36791 Add assertions for instance proxy validity Add some assertions that the instance proxy hasn't been deleted. We sometimes keep a raw pointer to one across complicated function calls, relying on the caller to protect the reference. * Plugins/Hosted/NetscapePluginInstanceProxy.h: (WebKit::NetscapePluginInstanceProxy::renderContextID): (WebKit::NetscapePluginInstanceProxy::pluginView): (WebKit::NetscapePluginInstanceProxy::hostProxy): 2010-03-30 Laszlo Gombos Reviewed by David Kilzer. Explicit guards for ENABLE_GEOLOCATION https://bugs.webkit.org/show_bug.cgi?id=25756 * WebCoreSupport/WebGeolocationMock.mm: (-[WebGeolocationMock setError:code:]): Make the body conditional on ENABLE(GEOLOCATION) (-[WebGeolocationMock setPosition:]): Ditto. 2010-03-26 Kenneth Rohde Christiansen Reviewed by Antti Koivisto. Change method name due to it dealing with both flattening of frame sets and inner frames. * WebView/WebPreferenceKeysPrivate.h: * WebView/WebPreferences.mm: (+[WebPreferences initialize]): (-[WebPreferences isFrameFlatteningEnabled]): (-[WebPreferences setFrameFlatteningEnabled:]): * WebView/WebPreferencesPrivate.h: * WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]): 2010-03-27 Darin Adler * Misc/WebNSFileManagerExtras.m: (-[NSFileManager _webkit_pathWithUniqueFilenameForPath:]): Removed stray "!". How did that get in there? 2010-03-27 Darin Adler Reviewed by Mark Rowe. WebKit NSFileManager methods don't handle broken symlinks correctly. Part of . * Misc/WebNSFileManagerExtras.h: Removed unused defines and methods. * Misc/WebNSFileManagerExtras.m: Removed unused methods. (fileExists): Added. For use instead of fileExistsAtPath: for cases where we'd like to treat a broken symlink as a file that does indeed exist. (-[NSFileManager _webkit_pathWithUniqueFilenameForPath:]): Use fileExists. 2010-03-25 Alexey Proskuryakov Reviewed by Mark Rowe. * Plugins/Hosted/NetscapePluginHostProxy.mm: (WKPCRunSyncOpenPanel): Re-fetch host proxy in a way that works in a function that doesn't have a pluginID argument for some reason. 2010-03-25 Simon Fraser Build fix: no review. Another c_str() -> data(). * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::enumerate): 2010-03-25 Alexey Proskuryakov Reviewed by Mark Rowe. Correctness fix after r56493. * Plugins/Hosted/NetscapePluginHostProxy.mm: (WKPCRunSyncOpenPanel): We still need to update our hostProxy reference, even though we didn't use to have instanceProxy. Nothing guarantees that the host proxy won't go away while the open panel is up. 2010-03-24 Mark Rowe Build fix after r56474. * Plugins/Hosted/NetscapePluginHostProxy.mm: (WKPCRunSyncOpenPanel): 2010-03-24 Alexey Proskuryakov Reviewed by Anders Carlsson. https://bugs.webkit.org/show_bug.cgi?id=36563 A plug-in makes Safari crash on http://www.itscodingtime.com/ * Plugins/Hosted/NetscapePluginHostProxy.h: (WebKit::NetscapePluginHostProxy::port): Assert that the object is still alive. This isn't beautifully systemic, but helped catch a bug, and may help catch more. (WebKit::NetscapePluginHostProxy::clientPort): Ditto. (WebKit::NetscapePluginHostProxy::isProcessingRequests): Changed m_processingRequests to a static. This doesn't change behavior much, but helps avoid writing into deallocated memory. * Plugins/Hosted/NetscapePluginHostProxy.mm: (WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy): Changed m_processingRequests to a static. (WebKit::NetscapePluginHostProxy::processRequests): Ditto. Changing m_processingRequests after destroying the object in pluginHostDied() was wrong, but reasonably harmless, as there wasn't much time for some other object to be allocated at this address. (WKPCEvaluate): Refetch host proxy, as it may have been destroyed. (WKPCInvoke): Ditto. (WKPCInvokeDefault): Ditto. (WKPCGetProperty): Ditto. (WKPCSetProperty): Ditto. (WKPCRemoveProperty): Ditto. (WKPCHasProperty): Ditto. (WKPCHasMethod): Ditto. (WKPCEnumerate): Ditto. (WKPCRunSyncOpenPanel): Ditto. * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::processRequestsAndWaitForReply): Bail out of the "event loop" if host proxy went away while processing a request. 2010-03-24 Hayato Ito Reviewed by Shinichiro Hamaji. Refactor computePageRects so that Mac can make use of it. https://bugs.webkit.org/show_bug.cgi?id=36159 Refactoring only, so no new tests. * WebView/WebFrame.mm: (-[WebFrame _computePageRectsWithPrintWidthScaleFactor:printHeight:]): 2010-03-24 Kent Tamura Reviewed by Darin Adler. Make Icon::createIconForFiles() optional. https://bugs.webkit.org/show_bug.cgi?id=35072 - Rename iconForFiles() to chooseIconForFiles(). - Call Icon::createIconForFiles() from chooseIconForFiles(). * WebCoreSupport/WebChromeClient.h: * WebCoreSupport/WebChromeClient.mm: (WebChromeClient::chooseIconForFiles): 2010-03-23 Dan Bernstein Reverted accidental change from r56429. * WebCoreSupport/WebContextMenuClient.mm: (WebContextMenuClient::getCustomMenuFromDefaultItems): 2010-03-23 Dan Bernstein Reviewed by John Sullivan. WebKit part of Plug-in clip rect does not update when overflow clip changes https://bugs.webkit.org/show_bug.cgi?id=36479. * Plugins/Hosted/WebHostedNetscapePluginView.mm: (-[WebHostedNetscapePluginView visibleRectDidChange]): Added. Calls WKSyncSurfaceToView(). * Plugins/WebBaseNetscapePluginView.h: * Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView _windowClipRect]): Changed to use Widget::windowClipRect(). (-[WebBaseNetscapePluginView visibleRectDidChange]): Added. Invokes -renewGState. 2010-03-22 Kevin Decker Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=36328 This patch entirely WebNullPluginView. * Plugins/WebNetscapePluginView.mm: * Plugins/WebNullPluginView.h: Removed. * Plugins/WebNullPluginView.mm: Removed. * Resources/nullplugin.tiff: Removed. * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::createPlugin): Invoke the resource load delegate if the plug-in failed to load. 2010-03-22 Alexey Proskuryakov Reviewed by John Sullivan. https://bugs.webkit.org/show_bug.cgi?id=36455 Make WebKit more resistant against plug-in crashes No tests, because crashing on build bots isn't good, even if it's only helper processes that crash. * Plugins/Hosted/NetscapePluginInstanceProxy.h: (WebKit::NetscapePluginInstanceProxy::waitForReply): Protect "this", because this function needs it after waiting for reply. Some callers used to do this, but not all, and we really shouldn't depend on callers here. * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::wheelEvent): Don't protect the plug-in instance proxy, because this function doesn't use it after waiting for reply. (WebKit::NetscapePluginInstanceProxy::createBindingsInstance): Ditto. * Plugins/Hosted/ProxyInstance.mm: (WebKit::ProxyInstance::invoke): Added an m_instanceProxy null check for another code path. 2010-03-22 Kevin Decker Reviewed by John Sullivan. https://bugs.webkit.org/show_bug.cgi?id=36328 * WebCoreSupport/WebViewFactory.mm: (-[WebViewFactory missingPluginText]): Added. 2010-03-18 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=36337 Log an error when an OOP plug-in sends an unknown object id Making these LOG_ERROR and not ASSERTs, because I don't want early returns to look temporary or redundant. * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::evaluate): (WebKit::NetscapePluginInstanceProxy::invoke): (WebKit::NetscapePluginInstanceProxy::invokeDefault): (WebKit::NetscapePluginInstanceProxy::construct): (WebKit::NetscapePluginInstanceProxy::getProperty): (WebKit::NetscapePluginInstanceProxy::setProperty): (WebKit::NetscapePluginInstanceProxy::removeProperty): (WebKit::NetscapePluginInstanceProxy::hasProperty): (WebKit::NetscapePluginInstanceProxy::hasMethod): (WebKit::NetscapePluginInstanceProxy::enumerate): 2010-03-16 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=36184 YouTube video resizing doesn't work with OOP plug-ins Test: plugins/resize-from-plugin.html We were calling _WKPHResizePluginInstance synchronously or asynchronously, depending on whether the size has changed. But sync and async messages are not necessarily delivered in order - plug-in host listens only to the former while waiting for a response to a message it sent (a call to invoke() in this case). * Plugins/Hosted/NetscapePluginInstanceProxy.h: * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::resize): * Plugins/Hosted/WebHostedNetscapePluginView.mm: (-[WebHostedNetscapePluginView updateAndSetWindow]): 2010-03-16 Yury Semikhatsky Reviewed by Pavel Feldman. Introduce InspectorFrontendClient that provides InspectorFrontend with an interface to the embedder. InspectorClient now serves as a delegate for InspectorController and does not contain methods for managing inspector frontend window. That allows to create remote InspectorFrontendHost. Introduce InspectorFrontendClient that would provide InspectorFrontend with an interface to the embedder https://bugs.webkit.org/show_bug.cgi?id=35036 * WebCoreSupport/WebInspectorClient.h: * WebCoreSupport/WebInspectorClient.mm: (WebInspectorClient::WebInspectorClient): (WebInspectorClient::inspectorDestroyed): (WebInspectorClient::openInspectorFrontend): (WebInspectorClient::highlight): (WebInspectorClient::hideHighlight): (WebInspectorFrontendClient::WebInspectorFrontendClient): (WebInspectorFrontendClient::frontendLoaded): (WebInspectorFrontendClient::localizedStringsURL): (WebInspectorFrontendClient::hiddenPanels): (WebInspectorFrontendClient::bringToFront): (WebInspectorFrontendClient::closeWindow): (WebInspectorFrontendClient::attachWindow): (WebInspectorFrontendClient::detachWindow): (WebInspectorFrontendClient::setAttachedWindowHeight): (WebInspectorFrontendClient::inspectedURLChanged): (WebInspectorFrontendClient::updateWindowTitle): (-[WebInspectorWindowController dealloc]): (-[WebInspectorWindowController windowShouldClose:]): (-[WebInspectorWindowController close]): (-[WebInspectorWindowController showWindow:]): (-[WebInspectorWindowController attach]): (-[WebInspectorWindowController detach]): (-[WebInspectorWindowController attached]): (-[WebInspectorWindowController setFrontendClient:]): (-[WebInspectorWindowController destroyInspectorView]): (-[WebNodeHighlighter initWithInspectedWebView:]): (-[WebNodeHighlighter dealloc]): (-[WebNodeHighlighter highlightNode:]): (-[WebNodeHighlighter hideHighlight]): (-[WebNodeHighlighter didAttachWebNodeHighlight:]): (-[WebNodeHighlighter willDetachWebNodeHighlight:]): * WebInspector/WebInspector.mm: (-[WebInspector attach:]): (-[WebInspector detach:]): 2010-03-15 Andy Estes Reviewed by John Sullivan. Updated call to WKGetWheelEventDeltas() to match new method signature. https://bugs.webkit.org/show_bug.cgi?id=29601 * WebView/WebDynamicScrollBarsView.mm: (-[WebDynamicScrollBarsView scrollWheel:]): 2010-03-15 John Sullivan Reviewed by Adam Roben. -[WebFrame setAlwaysHideHorizontal/VerticalScroller:] prevents keyboard scrolling * WebView/WebDynamicScrollBarsView.h: Added instance variables horizontalScrollingAllowedButScrollerHidden and verticalScrollingAllowedButScrollerHidden. Renamed instance variables hideHorizontal/VerticalScroller to alwaysHideHorizontal/VerticalScroller for clarity. Declared methods -horizontalScrollingAllowed and -verticalScrollingAllowed. Added comments. * WebView/WebDynamicScrollBarsView.mm: (-[WebDynamicScrollBarsView setAlwaysHideHorizontalScroller:]): Updated for instance variable renaming. (-[WebDynamicScrollBarsView setAlwaysHideVerticalScroller:]): Ditto. (-[WebDynamicScrollBarsView horizontalScrollingAllowed]): New method, returns YES if the scroller is showing or the only reason that the scroller is not showing is that setAlwaysHideHorizontalScrolling has been called. (-[WebDynamicScrollBarsView verticalScrollingAllowed]): New method, returns YES if the scroller is showing or the only reason that the scroller is not showing is that setAlwaysHideVerticalScrolling has been called. (-[WebDynamicScrollBarsView updateScrollers]): Updated for instance variable renamings. Now updates horizontalScrollingAllowedButScrollerHidden and verticalScrollingAllowedButScrollerHidden. Now takes the always-hidden state into account in the early-return code path, to avoid taking it into account twice in the regular code path. * WebView/WebFrameView.mm: (-[WebFrameView _scrollToBeginningOfDocument]): Use _isScrollable instead of _hasScrollBars. (-[WebFrameView _scrollToEndOfDocument]): Ditto. (-[WebFrameView scrollToBeginningOfDocument:]): Use _largestScrollableChild instead of _largestChildWithScrollBars. (-[WebFrameView scrollToEndOfDocument:]): Ditto. (-[WebFrameView _pageVertically:]): Use _isScrollable and _largestScrollableChild instead of _hasScrollBars and _largestChildWithScrollBars. (-[WebFrameView _pageHorizontally:]): Ditto. (-[WebFrameView _scrollLineVertically:]): Ditto. (-[WebFrameView _scrollLineHorizontally:]): Ditto. (-[WebFrameView keyDown:]): Use _largestScrollableChild instead of _largestChildWithScrollBars. (-[WebFrameView _isScrollable]): New method, calls -[WebDynamicScrollBarsView horizontalScrollingAllowed] and -[WebDynamicScrollBarsView verticalScrollingAllowed] (-[WebFrameView _largestScrollableChild]): New method, like _largestChildWithScrollBars but uses _isScrollable. (-[WebFrameView _hasScrollBars]): Added a comment that this is no longer used by Safari, and can thus probably be deleted once we no longer want to support it for nightly build compatibility with old versions of Safari. (-[WebFrameView _largestChildWithScrollBars]): Ditto. * WebView/WebFrameViewPrivate.h: Declared -_isScrollable and -_largestScrollableChild. Added comments to _hasScrollBars and _largestChildWithScrollBars saying that they are no longer used by Safari, and can thus probably be deleted once we no longer want to support them for nightly build compatibility with old versions of Safari. 2010-03-15 John Sullivan Method name and parameter name mistakes from recent SPI addition Reviewed by Dan Bernstein. * WebView/WebDynamicScrollBarsView.h: Renamed instance variable and method name from "setAllowXXX" to "setAllowsXXX". * WebView/WebDynamicScrollBarsView.mm: (-[WebDynamicScrollBarsView setAllowsScrollersToOverlapContent:]): Updated for renamed instance variable and method. (-[WebDynamicScrollBarsView setAlwaysHideHorizontalScroller:]): Changed parameter name from shouldBeVisible to shouldBeHidden. (-[WebDynamicScrollBarsView setAlwaysHideVerticalScroller:]): Ditto. (-[WebDynamicScrollBarsView contentViewFrame]): Updated for renamed instance variable. (-[WebDynamicScrollBarsView tile]): Ditto. (-[WebDynamicScrollBarsView reflectScrolledClipView:]): Ditto. * WebView/WebFrame.mm: (-[WebFrame setAllowsScrollersToOverlapContent:]): Renamed method from setAllowXXX, and updated for same change in WebDynamicScrollBarsView. * WebView/WebFramePrivate.h: Renamed method name from "setAllowXXX" to "setAllowsXXX". 2010-03-14 Darin Adler Reviewed by Mark Rowe. Remove unneeded dependency on non-string identifier for an NSTableColumn https://bugs.webkit.org/show_bug.cgi?id=36106 * WebView/WebTextCompletionController.mm: (-[WebTextCompletionController _buildUI]): Use init instead of initWithIdentifier: because the table has only one column and that column does not need an identifier. 2010-03-12 Beth Dakin Reviewed by Simon Fraser. Fix for https://bugs.webkit.org/show_bug.cgi?id=34942 Fullscreen API naming is inconsistent -and corresponding- This patch changes all occurrences of "fullScreen" to the more popular "fullscreen." * Plugins/Hosted/NetscapePluginHostProxy.h: (WebKit::NetscapePluginHostProxy::isFullscreenWindowShowing): * Plugins/Hosted/NetscapePluginHostProxy.mm: (WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy): (WebKit::NetscapePluginHostProxy::didEnterFullscreen): (WebKit::NetscapePluginHostProxy::didExitFullscreen): (WebKit::NetscapePluginHostProxy::setFullscreenWindowIsShowing): (WKPCSetFullscreenWindowIsShowing): * Plugins/Hosted/WebKitPluginClient.defs: * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView _workaroundSilverlightFullscreenBug:]): (-[WebNetscapePluginView _createPlugin]): (-[WebNetscapePluginView _destroyPlugin]): * WebView/WebVideoFullscreenHUDWindowController.mm: (-[WebVideoFullscreenHUDWindowController windowDidLoad]): 2010-03-12 Andy Estes Reviewed by Brady Eidson. Expose WebPDFView's underlying PDFDocument. https://bugs.webkit.org/show_bug.cgi?id=36045 * WebView/WebDocumentPrivate.h: Create a new protocol called WebDocumentPDF. * WebView/WebPDFView.h: Have WebPDFView implement said protocol. * WebView/WebPDFView.mm: (-[WebPDFView PDFDocument]): Expose WebPDFView's underlying PDFDocument by implementing -(PDFDocument*)PDFDocument from WebDocumentPDF. 2010-03-12 Andy Estes Reviewed by Brady Eidson. Remove an unused method. https://bugs.webkit.org/show_bug.cgi?id=35940 * Plugins/WebPluginController.mm: removed - (void)showURL:(NSURL *) inFrame:(NSString *) 2010-03-11 Mark Rowe Reviewed by David Kilzer. Make it possible to build WebKit for older Mac OS X versions from the current Mac OS X version Default to using the appropriate SDK if the target Mac OS X version is not the current Mac OS X version. * Configurations/Base.xcconfig: 2010-03-11 Mark Rowe Reviewed by Tim Hatcher. Make it possible to build WebKit for older Mac OS X versions from the current Mac OS X version Introduce TARGET_MAC_OS_X_VERSION_MAJOR to represent the Mac OS X version that is being targeted. It defaults to the current Mac OS X version unless otherwise specified. Key off TARGET_MAC_OS_X_VERSION_MAJOR where we'd previously been keying off MAC_OS_X_VERSION_MAJOR. Explicitly map from the target Mac OS X version to the preferred compiler since Xcode's default compiler choice may not be usable when targetting a different Mac OS X version. Key off TARGET_GCC_VERSION rather than MAC_OS_X_VERSION_MAJOR in locations where we'd previously been keying off MAC_OS_X_VERSION_MAJOR but the decision is really related to the compiler version being used. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: * Configurations/FeatureDefines.xcconfig: * Configurations/Version.xcconfig: 2010-03-11 Anders Carlsson Reviewed by David Hyatt. Remove invalidateContents, it isn't used and it never makes sense to only invalidate the contents. * WebCoreSupport/WebChromeClient.h: * WebCoreSupport/WebChromeClient.mm: 2010-03-11 Alexey Proskuryakov Reviewed by Geoff Garen. https://bugs.webkit.org/show_bug.cgi?id=35965 Crash when passing an object returned from plug-in back to the plug-in Test: plugins/round-trip-npobject.html * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::retainLocalObject): Corrected the check - there is now a separate ProxyRuntimeObject class for proxy pbjects. (WebKit::NetscapePluginInstanceProxy::releaseLocalObject): Ditto. * Plugins/Hosted/ProxyInstance.mm: (WebKit::ProxyInstance::invoke): Check if m_instanceProxy is still non-zero. The plug-in could have crashed while we were waiting for response. (WebKit::ProxyInstance::setFieldValue): Ditto. 2010-03-10 Simon Fraser Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=35975 Flash 10.1b crashes when generating snapshots Do a version check before sending a drawRect event to a Flash plugin, since 10.1.d51 has a bug that crashes when called this way. * Plugins/Hosted/WebHostedNetscapePluginView.mm: (-[WebHostedNetscapePluginView drawRect:]): * Plugins/WebBaseNetscapePluginView.h: * Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView supportsSnapshotting]): * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView drawRect:]): 2010-03-10 John Sullivan Reviewed by Tim Hatcher. input type other than text won't work with autofill * WebView/WebHTMLRepresentation.mm: (-[WebHTMLRepresentation elementDoesAutoComplete:]): Return true for any text field that's not a password, rather than only for TEXT type. 2010-03-09 Brady Eidson Reviewed by Tim Hatcher. REGRESSION: WebInspector docking busted on Windows and https://bugs.webkit.org/show_bug.cgi?id=35953 * WebCoreSupport/WebInspectorClient.mm: (-[WebInspectorWindowController showWindow:]): Use the InspectorController:: copy of the should attach settings key. (-[WebInspectorWindowController attach]): Ditto. (-[WebInspectorWindowController detach]): Ditto. 2010-03-09 Geoffrey Garen Reviewed by Darin Adler. Updated for FastMalloc reporting changes. * Misc/WebCoreStatistics.mm: (+[WebCoreStatistics memoryStatistics]): 2010-03-08 Simon Fraser Reviewed by Mark Rowe. Move the new method to the end of the MIG definitions file, to avoid breaking compatibility between WebKit and older versions of WebKitPluginHost. * Plugins/Hosted/WebKitPluginHost.defs: 2010-03-08 Simon Fraser Reviewed by Kevin Decker. Need to grab image snapshot of Core Animation plugins Allow plug-ins using the Core Animation drawing model to be captured when doing a flattening paint, by sending them a drawRect event as if they were software-painting. * Plugins/Hosted/NetscapePluginInstanceProxy.h: * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::snapshot): New snapshot() method that calls over to the plugin host, and then draws the image that comes back. * Plugins/Hosted/WebHostedNetscapePluginView.mm: (-[WebHostedNetscapePluginView drawRect:]): If we don't have a software renderer, but we're doing a flattening paint, then call the snapshot method. * Plugins/Hosted/WebKitPluginHost.defs: Added snapshot method. * Plugins/WebBaseNetscapePluginView.h: * Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView inFlatteningPaint]): New utility method that asks the FrameView whether the current paint behavior is flattening. * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView drawRect:]): If the plug-in is using CA but this is a flattening paint, go ahead and send a drawRect event to the plug-in. 2010-03-08 Darin Adler Reviewed by Dan Bernstein. Fix crash when you quit inside an unload handler. rdar://problem/6958347 Test: manual-tests/quit-inside-unload.html * WebView/WebView.mm: (-[WebView _closeWithFastTeardown]): Removed code to set _private->closed since _close now does this earlier, before calling this method. (-[WebView _close]): Moved code to set _private->closed to the top of this method. (-[WebView setHostWindow:]): Rewrote the code that forbade setting the host window after closing so that it only forbids non-nil host windows. That way, the code to clear away the host window can run safely after setting _private->closed, yet client code cannot set a new host window after closing. 2010-03-08 Darin Adler Roll out a file I checked in by accident. * WebView/WebView.mm: Back to previous version. 2010-03-08 Chris Marrin Reviewed by Darin Adler. Turn on HW accel on Leopard even if coreVideoHas7228836Fix() is false, when WebGL is enabled https://bugs.webkit.org/show_bug.cgi?id=35759 This allows WebGL to work on Leopard without the fix. It exposes these users to the crash that happens because of the CoreVideo bug, but it limits the exposure to those who have chosen to enable WebGL. * WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]): 2010-03-02 Adam Treat Reviewed by Dave Hyatt. Adapt the mac port to the refactoring of repaint methods. https://bugs.webkit.org/show_bug.cgi?id=34214 * WebCoreSupport/WebChromeClient.h: * WebCoreSupport/WebChromeClient.mm: (WebChromeClient::invalidateContents): (WebChromeClient::invalidateWindow): (WebChromeClient::invalidateContentsAndWindow): (WebChromeClient::invalidateContentsForSlowScroll): 2010-03-08 Jian Li Reviewed by Dmitry Titov. Blob.slice support. https://bugs.webkit.org/show_bug.cgi?id=32993 Add ENABLE_BLOB_SLICE feature define. * Configurations/FeatureDefines.xcconfig: 2010-03-08 Eric Uhrhane Reviewed by David Levin. Remove the now-redundant Settings fields for the Database https://bugs.webkit.org/show_bug.cgi?id=35763 No new tests; this code isn't called. * WebView/WebView.mm: Remove the call into Settings. (-[WebView _preferencesChangedNotification:]): 2010-03-07 Mark Rowe Rubber-stamped by Cameron Zwarich. Remove unnecessary includes from header files, adding them to the handful of implementation files that need them. * Misc/WebIconDatabase.mm: 2010-03-07 Mark Rowe Rubber-stamped by Cameron Zwarich. Remove unnecessary includes from header files, adding them to the handful of implementation files that need them. * Misc/WebNSPasteboardExtras.mm: 2010-03-04 Mark Rowe Reviewed by Sam Weinig. DOMSVG.h includes a non-existent DOMSVGFEMorphologyElement.h * MigrateHeaders.make: Migrate DOMSVGFEMorphologyElement.h and DOMSVGFEMorphologyElementInternal.h. 2010-03-04 Mark Rowe Reviewed by Sam Weinig. Use a framework-style include to pull in WebInspector.h for consistency with other parts of WebKit. * WebInspector/WebInspectorPrivate.h: 2010-03-04 Brady Eidson Reviewed by Geoff Garen. REGRESSION (31281): -[WebArchive initWithCoder:] leaks and https://bugs.webkit.org/show_bug.cgi?id=35534 * WebView/WebArchive.mm: (-[WebArchive initWithCoder:]): Don't retain objects we don't own. 2010-03-03 Alexey Proskuryakov Reviewed by Timothy Hatcher. https://bugs.webkit.org/show_bug.cgi?id=35692 Crash when calling abort() on an XHR while in a windowless WebView * Panels/WebAuthenticationPanel.m: (-[WebAuthenticationPanel runAsModalDialogWithChallenge:]): Retain the challenge, just like it's done for sheet. 2010-03-02 Eric Uhrhane Reviewed by David Levin. Move database enable bit fully out of settings This is stage one of a three-stage commit [webkit, then chromium, then webkit again]. In this change I'm adding calls to Database::setIsAvailable inside Settings::setDatabaseEnabled and anywhere else that called it, and switching webkit fully over to using that flag [added in a previous checkin]. Phase two will remove Chromium's use of Settings for the Database, and phase three will remove the Setting for the Database enable entirely, leaving only Database::isAvailable/setIsAvailable. No new tests; tested by existing storage tests. https://bugs.webkit.org/show_bug.cgi?id=35310 * WebView/WebView.mm: Added a call to Database::setIsAvailable. (-[WebView _preferencesChangedNotification:]): 2010-03-02 Adam Roben Add -[WebView _registerURLSchemeAsSecure:] Fixes Expose SecurityOrigin::registerURLSchemeAsSecure as WebKit SPI Reviewed by Tim Hatcher. * WebView/WebView.mm: (+[WebView _registerURLSchemeAsSecure:]): * WebView/WebViewPrivate.h: Added. Calls through to SecurityOrigin::registerURLSchemeAsSecure. 2010-03-01 Jakob Petsovits Reviewed by Adam Barth. Adapt to the new ZoomMode enum. https://bugs.webkit.org/show_bug.cgi?id=35347 * WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]): (-[WebView _setZoomMultiplier:isTextOnly:]): (-[WebView _realZoomMultiplierIsTextOnly]): 2010-02-27 Jing Jin Reviewed by Timothy Hatcher. Move implementation of Bug 35449 into WebFramePrivate. * WebView/WebFrame.h: * WebView/WebFrame.mm: (-[WebFrame setAllowScrollersToOverlapContent:]): (-[WebFrame setAlwaysHideHorizontalScroller:]): (-[WebFrame setAlwaysHideVerticalScroller:]): * WebView/WebFramePrivate.h: 2010-02-26 Jing Jin Reviewed by Timothy Hatcher. https://bugs.webkit.org/show_bug.cgi?id=35449 Add ability to hide WebFrame scrollbars and to allow scrollbars to overlap with content. * WebView/WebDynamicScrollBarsView.h: * WebView/WebDynamicScrollBarsView.mm: (-[WebDynamicScrollBarsView setAllowScrollersToOverlapContent:]): Allows scrollbars to overlap with the document and re-layouts the document. (-[WebDynamicScrollBarsView setAlwaysHideHorizontalScroller:]): Hides the horizontal scrollbar. (-[WebDynamicScrollBarsView setAlwaysHideVerticalScroller:]): Hides the vertical scrollbar. (-[WebDynamicScrollBarsView contentViewFrame]): Calculates the appropriate frame based on allowScrollersToOverlapContent. (-[WebDynamicScrollBarsView tile]): If allowScrollersToOverlapContent is YES, set the contentView's frame so it overlaps with the scrollbar. (-[WebDynamicScrollBarsView updateScrollers]): Take into account hideHorizontalScroller and hideVerticalScroller. (-[WebDynamicScrollBarsView reflectScrolledClipView:]): set drawsBackground to NO when scrollbars are overlapping with content, so we don't get trails during scrollbar draw updates. * WebView/WebDynamicScrollBarsViewInternal.h: * WebView/WebFrame.h: * WebView/WebFrame.mm: (-[WebFrame setAllowScrollersToOverlapContent:]): Hook for [WebDynamicScrollBarsView setAllowScrollersToOverlapContent:] (-[WebFrame setAlwaysHideHorizontalScroller:]): Hook for [WebDynamicScrollBarsView setAlwaysHideHorizontalScroller:] (-[WebFrame setAlwaysHideVerticalScroller:]): Hook for [WebDynamicScrollBarsView setAlwaysHideVerticalScroller:] 2010-02-26 Gavin Barraclough Reviewed by Alexey Proskuryakov. Bug 35401 - Fix handling of errors in handling calls over bridge, where base object bridge-type does not match method bridge-type. The code assumes users will only attempt to invoke a Java method on a Java base object, etc. Add language specific subclasses of RuntimeMethod, and pass the RuntimeMethod into invokeMethod, so we can typecheck before casting. Throw an exception on type mismatch. * Plugins/Hosted/ProxyInstance.h: * Plugins/Hosted/ProxyInstance.mm: (WebKit::PluginRuntimeMethod::PluginRuntimeMethod): new class to distinguish this type of RuntimeMethod. (WebKit::ProxyInstance::getMethod): create an appropriate sublclass of RuntimeMethod. (WebKit::ProxyInstance::invokeMethod): dynamically check the type of the RuntimeMethod. 2010-02-25 Alexey Proskuryakov Reviewed by Geoffrey Garen. https://bugs.webkit.org/show_bug.cgi?id=35394 Make passing objects between Java and plug-ins work Added a ProxyInstance implementation of RuntimeObject. * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::addValueToArray): * Plugins/Hosted/ProxyInstance.h: * Plugins/Hosted/ProxyInstance.mm: (WebKit::ProxyInstance::newRuntimeObject): (WebKit::ProxyInstance::getClass): * Plugins/Hosted/ProxyRuntimeObject.h: Added. (WebKit::ProxyRuntimeObject::classInfo): * Plugins/Hosted/ProxyRuntimeObject.mm: Added. (WebKit::ProxyRuntimeObject::ProxyRuntimeObject): (WebKit::ProxyRuntimeObject::~ProxyRuntimeObject): (WebKit::ProxyRuntimeObject::getInternalProxyInstance): 2010-02-24 Adam Barth Reviewed by Darin Fisher. [Chromium API] Disambiguate allowJavaScript from didNotAllowScript https://bugs.webkit.org/show_bug.cgi?id=35205 Make these two callsites explicit about not running script immediately. * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::getWindowNPObject): (WebKit::NetscapePluginInstanceProxy::demarshalValueFromArray): 2010-02-23 Brady Eidson Reviewed by Tim Hatcher and Pavel Feldman. Regression (r55107) - WebInspector docking is busted. https://bugs.webkit.org/show_bug.cgi?id=35274 * WebCoreSupport/WebInspectorClient.mm: (-[WebInspectorWindowController showWindow:]): Swap the order of the "should attach?" check to get the expected behavior. 2010-02-23 Dan Bernstein Reviewed by Simon Fraser. Incomplete repaint of YouTube timeline thumb while scrolling https://bugs.webkit.org/show_bug.cgi?id=34381 Test: fast/repaint/repaint-during-scroll.html NSClipView offsets any rects marked as needing display during scrolling by the scroll offset. Compensate for this when -setNeedsDisplay: is called during scrolling. * WebView/WebHTMLView.mm: (-[WebHTMLView _frameOrBoundsChanged]): Set inScrollPositionChanged to YES around to call to FrameView::scrollPositionChanged(). (-[WebHTMLView setNeedsDisplayInRect:]): When called beneath scrollPositionChanged(), adjust the rect by the inverse of the scroll offset. 2010-02-23 Steve Block Reviewed by Darin Adler. Adds ChromeClient::cancelGeolocationPermissionRequestForFrame https://bugs.webkit.org/show_bug.cgi?id=34962 This method is required so that a Geolocation object can cancel an asynchronous permission request. This allows the chrome client to cancel any UI it is showing for the permission request. * WebCoreSupport/WebChromeClient.h: (WebChromeClient::cancelGeolocationPermissionRequestForFrame): 2010-02-22 Alexey Proskuryakov Rubber-stamped by Geoff Garen. Rename RuntimeObjectImp to RuntimeObject. * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::addValueToArray): (WebKit::NetscapePluginInstanceProxy::retainLocalObject): (WebKit::NetscapePluginInstanceProxy::releaseLocalObject): 2010-02-22 Brady Eidson Reviewed by Tim Hatcher. Disable WebView docking to views that are too small. and https://bugs.webkit.org/show_bug.cgi?id=35254 * WebCoreSupport/WebInspectorClient.mm: (-[WebInspectorWindowController showWindow:]): No matter the preference, don't open the inspector window attached if WebCore says it shouldn't be attached. 2010-02-22 Simon Fraser Reviewed by John Sullivan. On Leopard, we have to disable hardware acceleration if we detect that the installed Core Video framework has bug . * WebView/WebView.mm: (coreVideoHas7228836Fix): (-[WebView _preferencesChangedNotification:]): 2010-02-21 Dan Bernstein Reviewed by Darin Adler. False warnings about needing layout in -[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] https://bugs.webkit.org/show_bug.cgi?id=35218 * WebView/WebHTMLView.mm: (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]): Suppress the warning and the forced layout if the view is not being drawn in this display operation. 2010-02-21 Kevin Decker Reviewed by Sam Weinig. plugInViewWithArguments: API sends wrong parameter for WebPlugInBaseURLKey https://bugs.webkit.org/show_bug.cgi?id=35215 The plugInViewWithArguments: API passes a dictionary of plugin arguments. One of the parameters is WebPlugInBaseURLKey, which is a key that represents the base URL of the document containing the plug-in's view. Instead of sending the base URL, code in WebFrameLoaderClient::createPlugin would incorrectly pass the source URL of the plug-in resource. * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::createPlugin): When building the plug-in arguments dictionary, pass the real base URL for the WebPlugInBaseURLKey key. 2010-02-19 Maciej Stachowiak Reviewed by David Levin. Add an ENABLE flag for sandboxed iframes to make it possible to disable it in releases https://bugs.webkit.org/show_bug.cgi?id=35147 * Configurations/FeatureDefines.xcconfig: 2010-02-19 Alexey Proskuryakov Reviewed by Maciej Stachowiak. https://bugs.webkit.org/show_bug.cgi?id=35132 Mouse cursor sometimes flickers over Flash content (35132) * Plugins/WebNetscapePluginEventHandlerCarbon.mm: (WebNetscapePluginEventHandlerCarbon::mouseMoved): Send adjustCursor events on every mouse move. This matches Firefox, and is actually required for plug-ins to manipulate cursor wihout resorting to techniques such as fast firing timers. * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView handleMouseEntered:]): Some plug-ins handle mouse cursor internally, but those that don't just need to get an arrow cursor (matching Firefox). This means that e.g. a plugin inside won't get a finger mouse pointer. * Plugins/WebHostedNetscapePluginView.mm: (-[WebNetscapePluginView handleMouseEntered:]): (-[WebNetscapePluginView handleMouseExited:]): Implement this behavior here, too. Also, out of process code didn't reset mouse pointer on mouse exit, which it needed to do. * WebView/WebHTMLView.mm: (needsCursorRectsSupportAtPoint): (setCursor): (resetCursorRects): Make sure that the same workaround we have for Web content also applies to Netscape plug-ins, as AppKit would reset the mouse pointer to arrow if given a chance. (+[WebHTMLViewPrivate initialize]): Renamed setCursorIMP on Leopard and higher to prevent confusion - the method we override is completely different. (-[WebHTMLView hitTest:]): Added a FIXME about a likely bug. 2010-02-19 Simon Fraser Reviewed by Dan Bernstein. Page contents missing from snapshot on Newsweek.com article Followup to avoid capturing compositing layers twice in snapshots. Add private methods to WebView to specify whether drawing the WebView into an image will include flattened compositing layers (the default behavior) or not. * WebView/WebFrame.mm: (-[WebFrame _drawRect:contentsOnly:]): Consult the WebView flag to see if we want flattening. * WebView/WebViewPrivate.h: New methods. * WebView/WebView.mm: Ditto. (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]): (-[WebView _setIncludesFlattenedCompositingLayersWhenDrawingToBitmap:]): (-[WebView _includesFlattenedCompositingLayersWhenDrawingToBitmap]): * WebView/WebViewData.h: New member variable. 2010-02-19 Alexey Proskuryakov Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=35165 plugins/set-status.html fails on Windows bot * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::status): * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView status:]): Match Windows port behavior (and also Firefox one, in a way) - pass null status messages as empty ones to chrome. 2010-02-18 Simon Fraser Reviewed by Dan Bernstein. Page contents missing from snapshot on Newsweek.com article Add logic to determine when painting via the software rendering path will give an equivalent result to the accelerated compositing presentation. This tests for the presence of 3D transforms. Also have -[WebFrame _drawRect:contentsOnly:] set the PaintBehaviorFlattenCompositingLayers paint behavior when painting into a bitmap context, so that snapshots contain composited layers. * WebView/WebFrame.mm: (-[WebFrame _drawRect:contentsOnly:]): Set the PaintBehaviorFlattenCompositingLayers flag when painting into a bitmap context. * WebView/WebView.mm: (-[WebView _isSoftwareRenderable]): Returns YES if all frames can be software-rendered. * WebView/WebViewPrivate.h: New _isSoftwareRenderable method. 2010-02-18 Alexey Proskuryakov Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=35134 Crash when a plugin calls NPN_SetStatus(0) Test: plugins/set-status.html * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::status): (WebKit::NetscapePluginInstanceProxy::loadURL): Added null checks for CFStringCreateWithCString arguments. 2010-02-17 Dmitry Titov Reviewed by David Levin, Darin Fisher, Simon Hausmann. When a live iframe element is moved between pages, it still depends on the old page. https://bugs.webkit.org/show_bug.cgi?id=34382 * WebCoreSupport/WebFrameLoaderClient.h: * WebCoreSupport/WebFrameLoaderClient.mm: Added empty implementation of a new virtual method. (WebFrameLoaderClient::didTransferChildFrameToNewDocument): 2010-02-17 Kent Tamura Reviewed by Eric Seidel. Introduces new Icon loading interface in order to support asynchronous loading. https://bugs.webkit.org/show_bug.cgi?id=32054 Add an empty implementation of ChromeClient::iconForFiles(). * WebCoreSupport/WebChromeClient.h: * WebCoreSupport/WebChromeClient.mm: (WebChromeClient::iconForFiles): 2010-02-17 Timothy Hatcher Add a way for WebView and its dependancies to be selectively included in WebKitStatistics leak tracking. By default WebView is not included and you need to subclass WebView and implement +isIncludedInWebKitStatistics to be included. rdar://problem/7567677&7572900 https://webkit.org/b/35045 Reviewed by Adam Roben. * WebView/WebDataSource.mm: (-[WebDataSource _initWithDocumentLoader:]): Increment WebDataSourceCount if the WebFrame is included in statistics. (-[WebDataSource dealloc]): Only --WebDataSourceCount if _private->includedInWebKitStatistics is YES. (-[WebDataSource finalize]): Ditto. * WebView/WebFrame.mm: (-[WebFrame _isIncludedInWebKitStatistics]): Return _private->includedInWebKitStatistics. (-[WebFrame _initWithWebFrameView:webView:]): Increment WebFrameCount if the WebView's class is included in statistics. (-[WebFrame dealloc]): Only --WebFrameCount if _private->includedInWebKitStatistics is YES. (-[WebFrame finalize]): Ditto. * WebView/WebFrameInternal.h: * WebView/WebFrameView.mm: (-[WebFrameView _setWebFrame:]): Increment WebFrameViewCount if the WebFrame is included in statistics. (-[WebFrameView initWithFrame:]): Move ++WebFrameViewCount from here since we don't know what WebFrame we belong to yet. (-[WebFrameView dealloc]): Only --WebFrameViewCount if _private->includedInWebKitStatistics is YES. (-[WebFrameView finalize]): Ditto. * WebView/WebHTMLRepresentation.mm: (-[WebHTMLRepresentation init]): Move ++WebHTMLRepresentationCount from here since we don't know what WebFrame we belong to yet. (-[WebHTMLRepresentation dealloc]): Only --WebHTMLRepresentationCount if _private->includedInWebKitStatistics is YES. (-[WebHTMLRepresentation finalize]): Ditto. (-[WebHTMLRepresentation setDataSource:]): Increment WebHTMLRepresentationCount if the WebFrame of the dataSource is included in statistics. * WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]): (-[WebView dealloc]): (+[WebView shouldIncludeInWebKitStatistics]): Return NO, so any WebView wont be included. Subclasses that care can return YES to be included. * WebView/WebViewInternal.h: 2010-02-16 Darin Adler Reviewed by Sam Weinig. Generalize delayed plug-in start for background tabs for use for other media https://bugs.webkit.org/show_bug.cgi?id=34981 * WebView/WebHTMLView.mm: (-[WebHTMLView viewWillMoveToWindow:]): Added comment. (-[WebHTMLView viewDidMoveToWindow]): Ditto. * WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]): Call setCanStartMedia right away so that if this view is not in a window, it will not start any media. (-[WebView viewWillMoveToWindow:]): Call setCanStartMedia(false) when moving to a window of nil. (-[WebView viewDidMoveToWindow]): Call setCanStartMedia(true) when moved to a window that is non-nil. 2010-02-16 Eric Carlson Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=34988 WebHTMLView.mm has two -willRemoveSubview: methods * WebView/WebHTMLView.mm: (-[WebHTMLView willRemoveSubview:]): Consolidate the two copies of this method. 2010-02-16 Alexey Proskuryakov Reviewed by Geoffrey Garen and Kevin Decker. https://bugs.webkit.org/show_bug.cgi?id=34989 Cursor disappears on scroll bars that are over plugin content This fixes event dispatch for both Cocoa and Carbon event models (mouseEntered/mouseExited in the former case, and adjustCursor in the latter). * Plugins/Hosted/WebHostedNetscapePluginView.mm: (-[WebHostedNetscapePluginView handleMouseEntered:]): (-[WebHostedNetscapePluginView handleMouseExited:]): * Plugins/WebBaseNetscapePluginView.h: * Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView handleMouseEntered:]): (-[WebBaseNetscapePluginView handleMouseExited:]): * Plugins/WebNetscapePluginView.h: * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView handleMouseEntered:]): (-[WebNetscapePluginView handleMouseExited:]): AppKit cannot reliably dispatch events for overlapping views. We are now asking WebCore to notify plug-in views of mouse entered/exited as part of DOM event dispatch. * WebCoreSupport/WebFrameLoaderClient.mm: (NetscapePluginWidget::handleEvent): Besides mouse moved, dispatch plugin mouse entered/exit events in HTMLPlugInElement default event handler. Other mouse events are passed down by EventHandler. 2010-02-15 Alexey Proskuryakov More build fixing (for what is actually a 64-bit failure, as 32-bit apparently includes headers that aren't included in 64-bit). * Plugins/Hosted/NetscapePluginInstanceProxy.h: * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::contains): (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::get): Move inline functions to .cpp; also made the class Noncopyable. 2010-02-15 Alexey Proskuryakov Mac release build fix attempt. * Plugins/Hosted/NetscapePluginInstanceProxy.h: * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::~LocalObjectMap): Implement destructor in .cpp file, where necessary headers are already included. 2010-02-12 Alexey Proskuryakov Reviewed by Kevin Decker. Browser objects identity is not preserved by Safari Out of process part. To avoid excessive IPC, plugin process doesn't send each NPObject release/retain call to Safari. It only sends one when the last one is removed, and it can destroy the proxy NPObject. However, the browser may be sending the same object out to plug-in as a function call argument at the same time - neither side can know what the other one is up to. The solution is to make the "destroying object" call return a boolean result, making it possible for the browser to make plugin host keep the proxy with zero refcount for a little longer. * Plugins/Hosted/NetscapePluginHostProxy.mm: (WKPCForgetBrowserObject): This function (that used to be named ReleaseObject) is only called when plug-in releases all of its references, so renamed it. Its boolean result is returned as call success or failure. * Plugins/Hosted/NetscapePluginInstanceProxy.h: (WebKit::NetscapePluginInstanceProxy::LocalObjectMap): Made the numeric ID to JSObject map two-way. * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::idForObject): This method is tricky in that it creates objects with refcount of 1, but doesn't increase refcount when returning found objects. This extra count accounts for the "reference" kept by plugin process. (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::retain): Only retaining for the duration of calls out to plug-in, which means that refcount is almost always equal to 1. Note that we can't use "++" here, due to how std::pair works! (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::release): Ditto. (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::clear): Clear all references when stopping plug-in. (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::forget): Like release(), but only functional when recount is 1 (meaning that the object is not being sent out to plug-in at the moment). (WebKit::NetscapePluginInstanceProxy::NetscapePluginInstanceProxy): Updated for other changes. (WebKit::NetscapePluginInstanceProxy::cleanup): Ditto. (WebKit::NetscapePluginInstanceProxy::getWindowNPObject): Ditto. (WebKit::NetscapePluginInstanceProxy::getPluginElementNPObject): Ditto. (WebKit::NetscapePluginInstanceProxy::forgetBrowserObjectID): Ditto. (WebKit::NetscapePluginInstanceProxy::evaluate): Ditto. (WebKit::NetscapePluginInstanceProxy::invoke): Ditto. (WebKit::NetscapePluginInstanceProxy::invokeDefault): Ditto. (WebKit::NetscapePluginInstanceProxy::construct): Ditto. (WebKit::NetscapePluginInstanceProxy::getProperty): Ditto. (WebKit::NetscapePluginInstanceProxy::setProperty): Ditto. (WebKit::NetscapePluginInstanceProxy::removeProperty): Ditto. (WebKit::NetscapePluginInstanceProxy::hasProperty): Ditto. (WebKit::NetscapePluginInstanceProxy::hasMethod): Ditto. (WebKit::NetscapePluginInstanceProxy::enumerate): Ditto. (WebKit::NetscapePluginInstanceProxy::addValueToArray): Ditto. (WebKit::NetscapePluginInstanceProxy::demarshalValueFromArray): Ditto. (WebKit::NetscapePluginInstanceProxy::retainLocalObject): Helper for calling retain when making calls out to plug-in. No-op for objects that aren't wrapped to be sent (i.e. for objects wrapping ProxyInstance wrappers for plug-in objects being sent bak). (WebKit::NetscapePluginInstanceProxy::releaseLocalObject): Ditto. * Plugins/Hosted/ProxyInstance.mm: (WebKit::ProxyInstance::invoke): Retain/release arguments during call. (WebKit::ProxyInstance::setFieldValue): Ditto. * Plugins/Hosted/WebKitPluginClient.defs: Renamed PCReleaseObject to PCForgetBrowserObject. 2010-02-12 Darin Adler Reviewed by Sam Weinig. Removed unneeded custom implementation of isDescendantOf. * Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView shouldClipOutPlugin]): Use the -[NSView isDescendantOf:] method instead of our own method named superviewsHaveSuperviews. 2010-02-12 Dan Bernstein Reviewed by Darin Adler. REGRESSION (r48586): Loading an HTML page causes PDFKit to be loaded * WebView/WebPDFDocumentExtras.h: Removed the category declaration and addWebPDFDocumentExtras(). Declare allScriptsInPDFDocument(). * WebView/WebPDFDocumentExtras.mm: (allScriptsInPDFDocument): Changed the -_web_allScripts method into this function. * WebView/WebPDFRepresentation.mm: Removed +initialize. (-[WebPDFRepresentation finishedLoadingWithDataSource:]): Use allScriptsInPDFDocument() instead of -_web_allScripts. 2010-02-10 Geoffrey Garen Reviewed by Oliver Hunt. Exported some new JavaScript heap introspection. * Misc/WebCoreStatistics.h: * Misc/WebCoreStatistics.mm: (+[WebCoreStatistics javaScriptObjectTypeCounts]): Just like javaScriptProtectedObjectTypeCounts, except this function enumerates all live objects, not just protected objects. 2010-02-08 Maciej Stachowiak Reviewed by Cameron Zwarich. Restore ENABLE_RUBY flag so vendors can ship with Ruby disabled if they choose. https://bugs.webkit.org/show_bug.cgi?id=34698 * Configurations/FeatureDefines.xcconfig: 2010-02-09 Alexey Proskuryakov Reviewed by Geoffrey Garen. https://bugs.webkit.org/show_bug.cgi?id=34490 WebCore::ImageEventSender::dispatchPendingEvents() crashes in certain conditions * ForwardingHeaders/wtf/ValueCheck.h: Added. 2010-02-10 Jesus Sanchez-Palencia Reviewed by Kenneth Rohde Christiansen. Support frameset flattening https://bugs.webkit.org/show_bug.cgi?id=32717 Add support for enabling/disabling FrameSet Flattening on the Mac port. * WebView/WebPreferenceKeysPrivate.h: * WebView/WebPreferences.mm: (+[WebPreferences initialize]): (-[WebPreferences isFrameSetFlatteningEnabled]): (-[WebPreferences setFrameSetFlatteningEnabled:]): * WebView/WebPreferencesPrivate.h: * WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]): 2010-02-09 Alexey Proskuryakov Reviewed by Anders Carlsson. https://bugs.webkit.org/show_bug.cgi?id=34771 A stray mouse moved event is sent to plug-ins after mouse exit * WebCoreSupport/WebFrameLoaderClient.mm: (NetscapePluginWidget::handleEvent): A mouseout DOM event is dispatched while handling NSMouseMoved - but we shouldn't be sending a mouse moved event to plug-ins at this point. 2010-02-09 Shinichiro Hamaji Reviewed by Darin Adler. Provide a way to get total number of pages to be printed https://bugs.webkit.org/show_bug.cgi?id=34699 * Misc/WebCoreStatistics.h: * Misc/WebCoreStatistics.mm: (-[WebFrame numberOfPages:pageWidthInPixels:]): 2010-02-08 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=34727 Assertion crashes and freezes when plug-in property access results in an exception * Plugins/Hosted/WebKitPluginClient.defs: Made PCSetProperty and PCRemoveProperty async. A plug-in can call back whil processing this call (e.g. for NPN_SetException), so we need to listen for messages while waiting for reply. * Plugins/Hosted/NetscapePluginHostProxy.mm: (WKPCEvaluate): If there is no instance proxy, return KERN_FAILURE. This improves consistency between method implementations, and leaves us with one less IPC call to make in failure case (returning false with KERN_SUCCESS and returning KERN_FAILURE looks the same from plugin host code). (WKPCInvoke): Ditto. (WKPCInvokeDefault): Ditto. (WKPCGetProperty): Ditto. (WKPCSetProperty): Send a reply once done. (WKPCRemoveProperty): Ditto. (WKPCHasProperty): If there is no instance proxy, return KERN_FAILURE. (WKPCHasMethod): Ditto. (WKPCEnumerate): Ditto. 2010-02-08 Alexey Proskuryakov Reviewed by Anders Carlsson. OOP: Support NPN_SetException Tested by plugins/netscape-throw-exception.html (removed it from skipped list). * Plugins/Hosted/NetscapePluginHostProxy.mm: (WKPCSetException): * Plugins/Hosted/NetscapePluginInstanceProxy.h: * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::globalExceptionString): (WebKit::NetscapePluginInstanceProxy::setGlobalException): (WebKit::NetscapePluginInstanceProxy::moveGlobalExceptionToExecState): * Plugins/Hosted/ProxyInstance.mm: (WebKit::ProxyInstance::invoke): (WebKit::ProxyInstance::getPropertyNames): (WebKit::ProxyInstance::fieldValue): (WebKit::ProxyInstance::setFieldValue): * Plugins/Hosted/WebKitPluginClient.defs: Route exception string to a global that's checked after calling into plug-in (just like in in-process case). 2010-02-05 Kevin Decker Reviewed by Mark Rowe. https://bugs.webkit.org/show_bug.cgi?id=34661 REGRESSION (Safari 4.0-> Safari 4.0.4): NPP_SetWindow no longer sets a clipRect of (0,0,0,0) when it becomes hidden * Plugins/Hosted/WebHostedNetscapePluginView.mm: (-[WebHostedNetscapePluginView updateAndSetWindow]): When clipping out NPDrawingModelCoreAnimation plug-ins, provide a zero'd out clipRect. * Plugins/WebBaseNetscapePluginView.h: Moved superviewsHaveSuperviews to the base class. * Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView superviewsHaveSuperviews]): Added to the base class; extracted from WebNetscapePluginView. (-[WebBaseNetscapePluginView shouldClipOutPlugin]): Added new method with code extracted from WebNetscapePluginView. * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]): When clipping out NPDrawingModelCoreAnimation plug-ins, provide a zero'd out clipRect. 2010-02-04 Mark Rowe Rubber-stamped by Dan Bernstein. Fix the ability to #include . * MigrateHeaders.make: Mark DOMBlob.h as a public header since the already-public DOMFile.h depends on it. 2010-02-04 John Sullivan https://bugs.webkit.org/show_bug.cgi?id=34611 WebLocalizedString() could use an assertion that it is being called on the main thread Reviewed by Tim Hatcher. * Misc/WebLocalizableStrings.m: Removed. * Misc/WebLocalizableStrings.mm: Copied from mac/Misc/WebLocalizableStrings.m. Renamed to use .mm extension so it can include a C++ header. (WebLocalizedString): Added an assertion that this is being called on the main thread. 2010-02-04 Dan Bernstein Reviewed by Simon Fraser. REGRESSION (r53718): When scrolling a tall window by page, the overlap between pages is too big https://bugs.webkit.org/show_bug.cgi?id=34371 * WebView/WebFrameView.mm: (-[WebFrameView _verticalPageScrollDistance]): Use Scrollbar methods instead of constants, and cap the scroll distance. (-[WebFrameView initWithFrame:]): Use Scrollbar::pixelsPerLineStep() instead of cScrollbarPixelsPerLineStep. (-[WebFrameView _horizontalPageScrollDistance]):Use Scrollbar methods instead of constants, and cap the scroll distance. 2010-02-01 Shinichiro Hamaji Reviewed by Eric Seidel. Provide a way to get page number with layoutTestController https://bugs.webkit.org/show_bug.cgi?id=33840 * Misc/WebCoreStatistics.h: * Misc/WebCoreStatistics.mm: (-[WebFrame pageNumberForElement:element:pageWidth:]): 2010-01-29 Gavin Barraclough Reviewed by Sam Weinig + Oliver Hunt. Bug 34346 - With JSC bindings, make processingUserGesture work with events in Isolated Worlds Pass processeing user gensture flag to media play/pause methods. * WebView/WebVideoFullscreenHUDWindowController.mm: (-[WebVideoFullscreenHUDWindowController setPlaying:]): 2010-02-01 Dan Bernstein Reviewed by Anders Carlsson. Crash at NetscapePlugInStreamLoader::didReceiveResponse() The crash was caused by having two streams with a streamID of 1. * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::NetscapePluginInstanceProxy): Fixed a typo. Now correctly increments m_currentURLRequestID to account for the manual stream. (WebKit::NetscapePluginInstanceProxy::disconnectStream): If the stream is the manual stream, null it out instead of trying to remove it from the map. Added an assertion. (WebKit::NetscapePluginInstanceProxy::loadRequest): Added an assertion. == Rolled over to ChangeLog-2010-01-29 ==