ChangeLog   [plain text]


2010-08-09  Mark Rowe  <mrowe@apple.com>

        Merge r62872.

    2010-07-08  Brady Eidson  <beidson@apple.com>

        Reviewed by Tim Hatcher.

        <rdar://problem/8136327> - Crash in Entourage calling WebCache method from background thread

        * Misc/WebCache.mm:
        (+[WebCache setDisabled:]): Forward the call to the main thread if called from a background thread.

        * Misc/WebNSObjectExtras.h:
        * Misc/WebNSObjectExtras.mm:
        (+[NSObject _webkit_invokeOnMainThread]): Add a class version of the main thread invoker.

2010-07-22  Mark Rowe  <mrowe@apple.com>

        Merge r63927.

    2010-07-22  Sam Weinig  <sam@webkit.org>

        Reviewed by Maciej Stachowiak.

        Fix for <rdar://problem/8222626>
        Send textDidChangeInTextField delegate callback only in response to typing or other forms of user text input.

        The function name no longer perfectly matches the behavior, but I didn't want to break any existing clients. Maybe we
        should migrate to a new function name eventually

        * WebCoreSupport/WebEditorClient.mm:
        (WebEditorClient::textDidChangeInTextField):

2010-07-09  Mark Rowe  <mrowe@apple.com>

        Merge r62875.

    2010-07-08  Adele Peterson  <adele@apple.com>

        Reviewed by Jon Honeycutt, Adam Roben, and Darin Adler.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=41721
        <rdar://problem/8158561> Missing plug-in indicator should have a pressed state

        Implement shouldMissingPluginMessageBeButton.

        * WebCoreSupport/WebChromeClient.h:
        * WebCoreSupport/WebChromeClient.mm:
        (WebChromeClient::shouldMissingPluginMessageBeButton):

2010-07-09  Mark Rowe  <mrowe@apple.com>

        Merge r62451.

    2010-07-03  Jon Honeycutt  <jhoneycutt@apple.com>

        The missing plug-in indicator should be clickable

        https://bugs.webkit.org/show_bug.cgi?id=41550
        <rdar://problem/8132162>

        From an original patch by Kevin Decker.

        Reviewed by Darin Adler.

        * WebCoreSupport/WebChromeClient.h:
        Declare an override of missingPluginButtonClicked().

        * WebCoreSupport/WebChromeClient.mm:
        (WebChromeClient::missingPluginButtonClicked):
        Call the UIDelegate's method.

        * WebView/WebUIDelegatePrivate.h:
        Declare didPressMissingPluginButton.

2010-07-09  Mark Rowe  <mrowe@apple.com>

        Merge r62284.

    2010-07-01  Timothy Hatcher  <timothy@apple.com>

        Provide a WebView preference to disable DNS prefetching.

        https://bugs.webkit.org/show_bug.cgi?id=28825
        rdar://problem/7181249

        Reviewed by Darin Adler.

        * WebView/WebPreferenceKeysPrivate.h: Added WebKitDNSPrefetchingEnabledPreferenceKey.
        * WebView/WebPreferences.mm:
        (+[WebPreferences initialize]): Set WebKitDNSPrefetchingEnabledPreferenceKey to YES.
        (-[WebPreferences isDNSPrefetchingEnabled]): Added. Return WebKitDNSPrefetchingEnabledPreferenceKey's value.
        (-[WebPreferences setDNSPrefetchingEnabled:]): Added. Set WebKitDNSPrefetchingEnabledPreferenceKey's value.
        * WebView/WebPreferencesPrivate.h: Added isDNSPrefetchingEnabled and setDNSPrefetchingEnabled:.
        * WebView/WebView.mm:
        (-[WebView _preferencesChangedNotification:]): Call WebCore::Settings::setDNSPrefetchingEnabled.

2010-07-09  Mark Rowe  <mrowe@apple.com>

        Merge r59338.

    2010-05-12  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by David Hyatt.

        Composited plug-ins can cause missed painting
        https://bugs.webkit.org/show_bug.cgi?id=39033
        <rdar://problem/7972478>
        
        Eagerly enable compositing mode via the enclosing FrameView when the plug-in tells us it wants
        to do compositing.

        * Plugins/Hosted/WebHostedNetscapePluginView.mm:
        (-[WebHostedNetscapePluginView createPlugin]):
        * Plugins/WebNetscapePluginView.mm:
        (-[WebNetscapePluginView createPlugin]):

2010-07-07  Mark Rowe  <mrowe@apple.com>

        Merge r62625.

    2010-07-06  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Simon Fraser.

        Expose URL matching from WebUserContentURLPattern
        https://bugs.webkit.org/show_bug.cgi?id=41726
        <rdar://problem/7910144>

        We previously had a way to construct WebUserContentURLPattern
        instances via WebKit, but no way for callers to perform matching.
        This patch adds the matchesURL functionality to allow for this.

        * Misc/WebUserContentURLPattern.h: Added matchesURL.
        * Misc/WebUserContentURLPattern.mm:
        (-[WebUserContentURLPattern matchesURL:]): Added. Calls through to WebCore::UserContentURLPattern::matches.

2010-07-01  Mark Rowe  <mrowe@apple.com>

        Merge r62279.

    2010-07-01  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Anders Carlsson.

        <rdar://problem/8148656> <https://bugs.webkit.org/show_bug.cgi?id=41431>
        REGRESSION (r49411): Various crashes due to JavaScript execution during plug-in destruction

        Strengthen m_inDestroy "swipe under the carpet" fix.

        * Plugins/Hosted/NetscapePluginInstanceProxy.h: Added a long comment about m_inDestroy, and
        changed it to static.

        * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
        (WebKit::NetscapePluginInstanceProxy::NetscapePluginInstanceProxy): m_inDestroy is now
        static, so we don't initialize it in constructor.
        (WebKit::NetscapePluginInstanceProxy::destroy): Assert that we aren't already destroying
        some plug-in.
        (WebKit::NetscapePluginInstanceProxy::evaluate): This function accidentally lacked an
        m_inDestroy check in r42789.

2010-07-01  Mark Rowe  <mrowe@apple.com>

        Merge r60882.

    2010-06-08  Mark Rowe  <mrowe@apple.com>

        Reviewed by Adele Peterson.

        <rdar://problem/8072136> REGRESSION (r56051): Inspect Element context menu does nothing in applications linked against 10.4 SDK

        * WebCoreSupport/WebContextMenuClient.mm:
        (fixMenusReceivedFromOldClients): Fix up the tag on the Inspect Element menu item. This ensures that even if the
        context menu layout doesn't match our expectations that the menu item will continue to trigger the web inspector.

2010-07-01  Mark Rowe  <mrowe@apple.com>

        Merge r61189.

    2010-06-15  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        <rdar://problem/8077032> REGRESSION (r50796): Black background on AppleScript generated email

        Test: platform/mac/editing/input/NSBackgroundColor-transparent.html

        r50796 changed the initial background color from invalid to transparent. As a result,
        NSAttributedStrings returned from +_web_attributedStringFromRange started including the
        NSBackgroundColor attribute, with a transparent color as the value. This caused problems for
        components in the system that ignore the alpha component, turning the color into opaque black.

        * Misc/WebNSAttributedStringExtras.mm:
        (+[NSAttributedString _web_attributedStringFromRange:]): Change to not include the background
        and foreground color attributes if the color are transparent.

2010-07-01  Mark Rowe  <mrowe@apple.com>

        Merge r61204.

    2010-06-11  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/8084721> Pages using accelerated compositing fail to update correctly in Carbon apps
        
        The run loop observer used to commit compositing layer changes does not do
        updates if [window viewsNeedDisplay] is true, because this indicates that a delayed window
        update is pending (added in r58623).
        
        However, Carbon apps don't use the NSWindow updating mechanism, so [window viewsNeedDisplay] always returns YES.
        This caused us to never sync compositing layers.
        
        So detect if the current window is wrapping a carbon window, and in that case consult the root
        HIView to detect if display is pending.

        * WebView/WebView.mm:
        (layerSyncRunLoopObserverCallBack):

2010-06-28  Mark Rowe  <mrowe@apple.com>

        Merge r59138.

    2010-05-10  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Anders Carlsson.

        Allow compositing layers to be connected across iframe boundaries on Mac
        https://bugs.webkit.org/show_bug.cgi?id=38856
        
        When painting an iframe into a compositing layer, the "PaintBehaviorFlattenCompositingLayers"
        flag was mistakenly set, because we'd detect that we were drawing into a bitmap. This caused
        content to show up in both compositing layers, and the painted background inside the iframe.
        
        Fix by taking the flattening state from the parent frame, if there is one. For the root
        frame, we continue to look to see if we're painting into a bitmap.

        * WebView/WebFrame.mm:
        (-[WebFrame _drawRect:contentsOnly:]):

2010-06-01  Mark Rowe  <mrowe@apple.com>

        Merge r60504.

    2010-06-01  Kevin Decker  <kdecker@apple.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=40025
        <rdar://problem/8046273> 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  <mrowe@apple.com>

        Merge r60168.

    2010-05-25  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        Database origins aren't populated at launch (missing db in prefs sheet, possible other symptoms)
        <rdar://problem/8013233> 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  <mrowe@apple.com>

        Merge r59956.

    2010-05-21  David Hyatt  <hyatt@apple.com>

        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  <mrowe@apple.com>

        Merge r59793.

    2010-05-19  Anders Carlsson  <andersca@apple.com>

        Reviewed by Kevin Decker and Simon Fraser.

        <rdar://problem/8004528> 
        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  <mrowe@apple.com>

        Merge r59514.

    2010-05-14  Stephanie Lewis  <slewis@apple.com>

        Rubber-stamped by Mark Rowe.

        Update order files.

        * WebKit.order:

2010-05-17  Mark Rowe  <mrowe@apple.com>

        <rdar://problem/7987585> Disable SVG filters.

        * Configurations/FeatureDefines.xcconfig:

2010-05-17  Mark Rowe  <mrowe@apple.com>

        <rdar://problem/7987743> Disable Blob.slice.

        * Configurations/FeatureDefines.xcconfig:

2010-05-17  Mark Rowe  <mrowe@apple.com>

        <rdar://problem/7987750> Disable progress element.

        * Configurations/FeatureDefines.xcconfig:

2010-05-14  Mark Rowe  <mrowe@apple.com>

        <rdar://problem/7677994> Disable WebGL

        * Configurations/FeatureDefines.xcconfig:

2010-05-13  Mark Rowe  <mrowe@apple.com>

        Merge r59418.

    2010-05-13  Timothy Hatcher  <timothy@apple.com>

        Allow reporting exceptions that occur when using JavaScriptCore APIs
        to the Web Inspector.

        <rdar://problem/7975410>

        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  <mrowe@apple.com>

        Merge r59391.

    2010-05-13  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=39089
        <rdar://problem/7974044> 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  <mrowe@apple.com>

        Merge r59232.

    2010-05-12  Jer Noble  <jer.noble@apple.com>

        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  <mrowe@apple.com>

        Merge r59125.

    2010-05-10  Timothy Hatcher  <timothy@apple.com>

        Fix a crash when closing a WebView while the Web Inspector is open.

        <rdar://problem/7966830>

        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  <mrowe@apple.com>

        Merge r59093.

    2010-05-10  Anders Carlsson  <andersca@apple.com>

        Unbreak the world. (Fix Mac builds).

        * Plugins/Hosted/WebKitPluginHostTypes.h:

2010-05-12  Mark Rowe  <mrowe@apple.com>

        Merge r59086.

    2010-05-10  Anders Carlsson  <andersca@apple.com>

        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  <mrowe@apple.com>

        Merge r58982.

    2010-05-07  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig and Simon Fraser.

        <rdar://problem/7947356>
        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  <andersca@apple.com>

        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
        <rdar://problem/7942075>

        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  <mitz@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7951285> 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  <steveblock@google.com>

        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  <mitz@apple.com>

        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  <mitz@apple.com>

        Rubber-stamped by Mark Rowe.

        Fixed test crashes after r58847.

        * WebView/WebHTMLView.mm:
        (setNeedsDisplayInRect): Null-check the frame.

2010-05-05  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7932072> 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  <sullivan@apple.com>

        <rdar://problem/7942606> 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  <simon.fraser@apple.com>

        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  <adachan@apple.com>

        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  <bdakin@apple.com>

        Reviewed by Mike Thole.

        Fix for <rdar://problem/7818509> 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  <inferno@chromium.org>

        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  <snej@chromium.org>

        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  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/7477071> 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  <andersca@apple.com>

        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  <andersca@apple.com>

        Reviewed by Darin Adler.

        Use C99 integer types in more places.

        * Plugins/WebNetscapePluginView.mm:
        (getNPRect):

2010-04-30  Anders Carlsson  <andersca@apple.com>

        Fix Tiger build.

        * Plugins/WebBaseNetscapePluginStream.h:
        * Plugins/WebBaseNetscapePluginStream.mm:
        (WebNetscapePluginStream::startStream):

2010-04-30  Anders Carlsson  <andersca@apple.com>

        Another 32-bit build fix.

        * Plugins/WebNetscapePluginView.mm:
        (-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]):

2010-04-30  Anders Carlsson  <andersca@apple.com>

        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  <andersca@apple.com>

        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  <andersca@apple.com>

        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  <andersca@apple.com>

        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  <mthole@apple.com>

        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  <simon.fraser@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/7918719> 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  <darin@apple.com>

        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  <hamaji@chromium.org>

        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  <sam@webkit.org>

        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  <mitz@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7903728> 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  <simon.fraser@apple.com>

        Reviewed by Anders Carlsson.

        <rdar://problem/7894489> 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  <ddkilzer@apple.com>

        <http://webkit.org/b/38029> +[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  <ap@apple.com>

        Rubber-stamped by Mark Rowe.

        <rdar://problem/7805969> REGRESSION: iTunes unable to play trailers

        Undo the changes made for https://bugs.webkit.org/show_bug.cgi?id=35215 (<rdar://problem/7673157>)
        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  <davemoore@chromium.org>

        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  <abarth@webkit.org>

        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  <inferno@chromium.org>

        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  <ap@apple.com>

        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  <mrowe@apple.com>

        Tiger build fix.

        * Plugins/WebPluginController.mm: Add an #import that is necessary on Tiger.

2010-04-21  Mark Rowe  <mrowe@apple.com>

        Reviewed by Eric Carlson.

        <rdar://problem/7313430> 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 (<rdar://problem/7313430>).

        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  <mrowe@apple.com>

        Reviewed by Maciej Stachowiak.

        <rdar://problem/7856151> 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  <abarth@webkit.org>

        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  <tkent@chromium.org>

        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  <webkit.review.bot@gmail.com>

        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  <simon.fraser@apple.com>

        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  <mitz@apple.com>

        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  <barraclough@apple.com>

        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  <mitz@apple.com>

        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  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/7870651> WebDynamicScrollBarsView.h generates compile errors when included in plain Objective-C files.

        * WebView/WebDynamicScrollBarsView.h:

2010-04-15  Adam Roben  <aroben@apple.com>

        Export WebUserContentURLPattern from WebKit

        Rubber-stamped by Mark Rowe.

        * WebKit.exp:

2010-04-15  Dan Bernstein  <mitz@apple.com>

        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  <aroben@apple.com>

        Expose UserContentURLPattern as WebKit SPI

        Fixes <http://webkit.org/b/37354>.

        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  <ggaren@apple.com>

        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  <timothy@apple.com>

        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  <timothy@apple.com>

        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  <webkit.review.bot@gmail.com>

        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  <abarth@webkit.org>

        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  <mrowe@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/7845305> 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  <jer.noble@apple.com>

        Reviewed by Darin Adler.

        Work around QTMovieView bug (<rdar://problem/7712713>) by using a QTMovieLayer instead.
        https://bugs.webkit.org/show_bug.cgi?id=37311 / <rdar://problem/7749993>

        * WebView/WebVideoFullscreenController.mm:
        (-[WebVideoFullscreenController windowDidLoad]):
        (-[WebVideoFullscreenController setMediaElement:WebCore::]):

2010-04-09  Alexey Proskuryakov  <ap@apple.com>

        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  <eric@webkit.org>

        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  <mitz@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7846015> 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  <jer.noble@apple.com>

        Reviewed by Darin Adler.

        Work around QTMovieView bug (<rdar://problem/7712713>) by using a QTMovieLayer instead.
        https://bugs.webkit.org/show_bug.cgi?id=37311 / <rdar://problem/7749993>

        * WebView/WebVideoFullscreenController.mm:
        (-[WebVideoFullscreenController windowDidLoad]):
        (-[WebVideoFullscreenController setMediaElement:WebCore::]):

2010-04-08  Mark Rowe  <mrowe@apple.com>

        Reviewed by John Sullivan.

        <rdar://problem/7814899> 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  <hyatt@apple.com>

        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  <mitz@apple.com>

        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  <caseq@chromium.org>

        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  <mitz@apple.com>

        Tiger build fix after r57184.

        * WebView/WebHTMLViewPrivate.h:

2010-04-06  Dan Bernstein  <mitz@apple.com>

        Tiger build fix after r57184.

        * WebView/WebHTMLViewPrivate.h:

2010-04-06  Adam Barth  <abarth@webkit.org>

        Unreviewed.

        Speculative build fix for Tiger.

        * WebView/WebHTMLViewPrivate.h:

2010-04-06  Dan Bernstein  <mitz@apple.com>

        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  <mrowe@apple.com>

        Add an #if in order to make Tiger happy.

        * WebView/WebViewData.mm:
        (-[WebViewPrivate init]):

2010-04-06  Mark Rowe  <mrowe@apple.com>

        Build fix.

        * WebView/WebViewData.mm:
        (-[WebViewPrivate init]): Use objc_collectingEnabled like we do elsewhere in WebKit.

2010-04-05  Mark Rowe  <mrowe@apple.com>

        Reviewed by Adele Peterson.

        Test case for <http://webkit.org/b/37115> / <rdar://problem/7829331>.
        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  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=37111
        <rdar://problem/7790327> 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  <yael.aharon@nokia.com>

        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  <jer.noble@apple.com>

        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  <ap@apple.com>

        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  <kinuko@chromium.org>

        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  <adachan@apple.com>

        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  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=36976
        <rdar://problem/7817498>
        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  <cmarrin@apple.com>

        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  <ap@apple.com>

        Reviewed by Oliver Hunt.

        https://bugs.webkit.org/show_bug.cgi?id=36976
        <rdar://problem/7817498>
        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  <cfleizach@apple.com>

        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  <bulach@chromium.org>

        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  <barraclough@apple.com>

        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  <sullivan@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=36848
        <rdar://problem/7362913>
        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  <ap@apple.com>

        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  <laszlo.1.gombos@nokia.com>

        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  <kenneth@webkit.org>

        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  <darin@apple.com>

        * Misc/WebNSFileManagerExtras.m:
        (-[NSFileManager _webkit_pathWithUniqueFilenameForPath:]):
        Removed stray "!". How did that get in there?

2010-03-27  Darin Adler  <darin@apple.com>

        Reviewed by Mark Rowe.

        WebKit NSFileManager methods don't handle broken symlinks correctly.
        Part of <rdar://problem/7574046>.

        * 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  <ap@apple.com>

        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  <simon.fraser@apple.com>

        Build fix: no review.
        
        Another c_str() -> data().
        
        * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
        (WebKit::NetscapePluginInstanceProxy::enumerate):

2010-03-25  Alexey Proskuryakov  <ap@apple.com>

        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  <mrowe@apple.com>

        Build fix after r56474.

        * Plugins/Hosted/NetscapePluginHostProxy.mm:
        (WKPCRunSyncOpenPanel):

2010-03-24  Alexey Proskuryakov  <ap@apple.com>

        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  <hayato@chromium.org>

        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  <tkent@chromium.org>

        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  <mitz@apple.com>

        Reverted accidental change from r56429.

        * WebCoreSupport/WebContextMenuClient.mm:
        (WebContextMenuClient::getCustomMenuFromDefaultItems):

2010-03-23  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        WebKit part of
        <rdar://problem/7197736> 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  <kdecker@apple.com>

        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  <ap@apple.com>

        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  <kdecker@apple.com>

        Reviewed by John Sullivan.

        https://bugs.webkit.org/show_bug.cgi?id=36328

        * WebCoreSupport/WebViewFactory.mm:
        (-[WebViewFactory missingPluginText]): Added.

2010-03-18  Alexey Proskuryakov  <ap@apple.com>

        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  <ap@apple.com>

        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 <yurys@chromium.org>

        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  <aestes@apple.com>

        Reviewed by John Sullivan.

        Updated call to WKGetWheelEventDeltas() to match new method signature.

        https://bugs.webkit.org/show_bug.cgi?id=29601
        <rdar://problem/7453254>

        * WebView/WebDynamicScrollBarsView.mm:
        (-[WebDynamicScrollBarsView scrollWheel:]):

2010-03-15  John Sullivan  <sullivan@apple.com>

        Reviewed by Adam Roben.
        
        -[WebFrame setAlwaysHideHorizontal/VerticalScroller:] prevents keyboard scrolling
        <https://bugs.webkit.org/show_bug.cgi?id=36125>

        * 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  <sullivan@apple.com>

        Method name and parameter name mistakes from recent SPI addition
        <https://bugs.webkit.org/show_bug.cgi?id=36119>

        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  <darin@apple.com>

        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  <bdakin@apple.com>

        Reviewed by Simon Fraser.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=34942 Fullscreen 
        API naming is inconsistent
        -and corresponding-
        <rdar://problem/7729165>

        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  <aestes@apple.com>

        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  <aestes@apple.com>

        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  <mrowe@apple.com>

        Reviewed by David Kilzer.

        <rdar://problem/7745082> 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  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        <rdar://problem/7745082> 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  <andersca@apple.com>

        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  <ap@apple.com>

        Reviewed by Geoff Garen.

        https://bugs.webkit.org/show_bug.cgi?id=35965
        <rdar://problem/7742771> 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  <simon.fraser@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=35975
        <rdar://problem/7739922> 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  <sullivan@apple.com>

        Reviewed by Tim Hatcher.

        <rdar://problem/7735387> input type other than text won't work with autofill
        <https://bugs.webkit.org/show_bug.cgi?id=35963>

        * 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  <beidson@apple.com>

        Reviewed by Tim Hatcher.

        REGRESSION: WebInspector docking busted on Windows
        <rdar://problem/7728433> 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  <ggaren@apple.com>

        Reviewed by Darin Adler.

        Updated for FastMalloc reporting changes.
        
        * Misc/WebCoreStatistics.mm:
        (+[WebCoreStatistics memoryStatistics]):

2010-03-08  Simon Fraser  <simon.fraser@apple.com>

        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  <simon.fraser@apple.com>

        Reviewed by Kevin Decker.

        <rdar://problem/7714340> 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  <darin@apple.com>

        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  <darin@apple.com>

        Roll out a file I checked in by accident.

        * WebView/WebView.mm: Back to previous version.

2010-03-08  Chris Marrin  <cmarrin@apple.com>

        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  <atreat@rim.com>

        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  <jianli@chromium.org>

        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  <ericu@chromium.org>

        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  <mrowe@apple.com>

        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  <mrowe@apple.com>

        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  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/7717249> DOMSVG.h includes a non-existent DOMSVGFEMorphologyElement.h

        * MigrateHeaders.make: Migrate DOMSVGFEMorphologyElement.h and DOMSVGFEMorphologyElementInternal.h.

2010-03-04  Mark Rowe  <mrowe@apple.com>

        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  <beidson@apple.com>

        Reviewed by Geoff Garen.

        REGRESSION (31281): -[WebArchive initWithCoder:] leaks
        <rdar://problem/7702420> 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  <ap@apple.com>

        Reviewed by Timothy Hatcher.

        https://bugs.webkit.org/show_bug.cgi?id=35692
        <rdar://problem/7703622> 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  <ericu@chromium.org>

        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  <aroben@apple.com>

        Add -[WebView _registerURLSchemeAsSecure:]

        Fixes <http://webkit.org/b/35580> <rdar://problem/7706407> 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  <jpetsovits@rim.com>

        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  <jjin@apple.com>

        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  <jjin@apple.com>

        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  <barraclough@apple.com>

        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  <ap@apple.com>

        Reviewed by Geoffrey Garen.

        https://bugs.webkit.org/show_bug.cgi?id=35394
        <rdar://problem/7685262> 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  <abarth@webkit.org>

        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  <beidson@apple.com>

        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  <mitz@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7611158> 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  <steveblock@google.com>

        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  <ap@apple.com>

        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  <beidson@apple.com>

        Reviewed by Tim Hatcher.

        Disable WebView docking to views that are too small.
        <rdar://problem/7248409> 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  <simon.fraser@apple.com>

        Reviewed by John Sullivan.

        <rdar://problem/7285392> 
        On Leopard, we have to disable hardware acceleration if we detect that the
        installed Core Video framework has bug <rdar://problem/7228836>.
        
        * WebView/WebView.mm:
        (coreVideoHas7228836Fix):
        (-[WebView _preferencesChangedNotification:]):

2010-02-21  Dan Bernstein  <mitz@apple.com>

        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  <kdecker@apple.com>

        Reviewed by Sam Weinig.

        plugInViewWithArguments: API sends wrong parameter for WebPlugInBaseURLKey
        https://bugs.webkit.org/show_bug.cgi?id=35215
        <rdar://problem/7673157>
        
        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  <mjs@apple.com>

        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  <ap@apple.com>

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=35132
        <rdar://problem/7664353> 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 <A> 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  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/7535894> 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  <ap@apple.com>

        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  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/7535894> 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  <ap@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=35134
        <rdar://problem/7246280> 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  <dimich@chromium.org>

        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  <tkent@chromium.org>

        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  <timothy@apple.com>

        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  <darin@apple.com>

        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  <eric.carlson@apple.com>

        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  <ap@apple.com>

        Reviewed by Geoffrey Garen and Kevin Decker.

        https://bugs.webkit.org/show_bug.cgi?id=34989
        <rdar://problem/7417965> 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  <ap@apple.com>

        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  <ap@apple.com>

        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  <ap@apple.com>

        Reviewed by Kevin Decker.

        <rdar://problem/7130641> 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  <darin@apple.com>

        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  <mitz@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7615234> 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  <ggaren@apple.com>

        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  <mjs@apple.com>

        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  <ap@apple.com>

        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  <jesus.palencia@openbossa.org>

        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  <ap@apple.com>

        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  <hamaji@chromium.org>

        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  <ap@apple.com>

        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  <ap@apple.com>

        Reviewed by Anders Carlsson.

        <rdar://problem/6530010> 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  <kdecker@apple.com>

        Reviewed by Mark Rowe.

        https://bugs.webkit.org/show_bug.cgi?id=34661
        <rdar://problem/7614067> 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  <mrowe@apple.com>

        Rubber-stamped by Dan Bernstein.

        Fix the ability to #include <WebKit/DOMFile.h>.

        * MigrateHeaders.make: Mark DOMBlob.h as a public header since the already-public DOMFile.h depends on it.

2010-02-04  John Sullivan  <sullivan@apple.com>

        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  <mitz@apple.com>

        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  <hamaji@chromium.org>

        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  <barraclough@apple.com>

        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  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        <rdar://problem/7044385> 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 ==