ChangeLog-2006-02-09   [plain text]


2006-02-09  Tim Omernick  <timo@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/4198378> Crash on a CFRelease when visiting http://www.akella.com/

        * Plugins/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView requestWithURLCString:]):
	The true source of this crash is that the URL string is sometimes not NULL-terminated, which is the
	Real Player plugin's fault.  That has been filed as 4439591.
	However, we can be more bulletproof here by switching the URL string encoding from Windows Latin 1
	to ISO Latin 1, so that any NULL-terminated string can be represented.  (As Darin and I found out
	last night, Windows Latin 1 has "holes" in certain character ranges and	thus cannot encode arbitrary
	C strings).

2006-02-09  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Anders. 
        
        - Moved all the default delegate classes to their own directory.

        * DefaultDelegates: Added.
        * DefaultDelegates/WebDefaultContextMenuDelegate.h: Added.
        * DefaultDelegates/WebDefaultContextMenuDelegate.m: Added.
        * DefaultDelegates/WebDefaultEditingDelegate.h: Added.
        * DefaultDelegates/WebDefaultEditingDelegate.m: Added.
        * DefaultDelegates/WebDefaultFrameLoadDelegate.h: Added.
        * DefaultDelegates/WebDefaultFrameLoadDelegate.m: Added.
        * DefaultDelegates/WebDefaultPolicyDelegate.h: Added.
        * DefaultDelegates/WebDefaultPolicyDelegate.m: Added.
        * DefaultDelegates/WebDefaultResourceLoadDelegate.h: Added.
        * DefaultDelegates/WebDefaultResourceLoadDelegate.m: Added.
        * DefaultDelegates/WebDefaultScriptDebugDelegate.h: Added.
        * DefaultDelegates/WebDefaultScriptDebugDelegate.m: Added.
        * DefaultDelegates/WebDefaultUIDelegate.h: Added.
        * DefaultDelegates/WebDefaultUIDelegate.m: Added.
        * WebKit.xcodeproj/project.pbxproj:
        * WebView/WebDefaultContextMenuDelegate.h: Removed.
        * WebView/WebDefaultContextMenuDelegate.m: Removed.
        * WebView/WebDefaultEditingDelegate.h: Removed.
        * WebView/WebDefaultEditingDelegate.m: Removed.
        * WebView/WebDefaultFrameLoadDelegate.h: Removed.
        * WebView/WebDefaultFrameLoadDelegate.m: Removed.
        * WebView/WebDefaultPolicyDelegate.h: Removed.
        * WebView/WebDefaultPolicyDelegate.m: Removed.
        * WebView/WebDefaultResourceLoadDelegate.h: Removed.
        * WebView/WebDefaultResourceLoadDelegate.m: Removed.
        * WebView/WebDefaultScriptDebugDelegate.h: Removed.
        * WebView/WebDefaultScriptDebugDelegate.m: Removed.
        * WebView/WebDefaultUIDelegate.h: Removed.
        * WebView/WebDefaultUIDelegate.m: Removed.

2006-02-08  Justin Garcia  <justin.garcia@apple.com>

        Original patch by Graham Dennis, reviewed by me:
        
        <http://bugs.webkit.org/show_bug.cgi?id=3982>
        webViewDidBeginEditing, webViewDidEndEditing notification methods not called on delegate
        
        Changes made by me, reviewed by thatcher:
        
        Made _setWindowHasFocus: and _setDisplaysWithFocusAttributes: into private SPI to allow
        for the testing of window.onFocus, window.onBlur, caret and focus halo painting, and 
        the focusing of content editable regions that happens as side effect of setting a selection,
        but only if the window has focus (7128).

        * WebCoreSupport/WebFrameBridge.m:
        (-[WebFrameBridge didBeginEditing]):
        (-[WebFrameBridge didEndEditing]):
        * WebView/WebHTMLView.m:
        (-[WebHTMLView updateFocusState]):
        (-[WebHTMLView _setWindowHasFocus:]):
        (-[WebHTMLView _setDisplaysWithFocusAttributes:]):
        * WebView/WebHTMLViewPrivate.h:

2006-02-08  David Kilzer  <ddkilzer@kilzer.net>

        Reviewed by Darin.

        - Fix http://bugs.webkit.org/show_bug.cgi?id=3527
        Allow Safari to open postscript files in browser windows as well

        * WebView/WebPDFRepresentation.m:
        (+[WebPDFRepresentation postScriptMIMETypes]): Added.
        (+[WebPDFRepresentation supportedMIMETypes]): Include PostScript MIME types.
        (-[WebPDFRepresentation convertPostScriptDataSourceToPDF:]): Added.
        (-[WebPDFRepresentation finishedLoadingWithDataSource:]):
        Handle PostScript conversion using new convertPostScriptDataSourceToPDF method.

2006-02-07  Alexey Proskuryakov  <ap@nypop.com>

        Reviewed by Timothy.

        Convert JavaScript objects to appropriate AppleScript types, instead of only strings
        http://bugs.webkit.org/show_bug.cgi?id=7012

        Tests: fast/AppleScript/*

        * WebView/WebView.m:
        (-[WebView aeDescByEvaluatingJavaScriptFromString:]): Added.
        * WebView/WebViewPrivate.h:

2006-02-06  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Eric.

        - fixed "remove frame, renderer and completed flag from ChildFrame, make Frame track these"
        http://bugs.webkit.org/show_bug.cgi?id=7125
        
        - fixed "onload event never called for iframe element with emtpy or about:blank src"
        http://bugs.webkit.org/show_bug.cgi?id=3609

        * WebCoreSupport/WebFrameBridge.h:
        * WebCoreSupport/WebFrameBridge.m:
        (-[WebFrameBridge initWithPage:webView:renderer:frameName:view:]): Pass along renderer.
        (-[WebFrameBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]): Pass along renderer.
        * WebCoreSupport/WebPageBridge.m:
        (-[WebPageBridge initWithMainFrameName:webView:frameView:]): Pass null for renderer.
        * WebView/WebView.m:
        * WebView/WebViewPrivate.h:

2006-02-06  John Sullivan  <sullivan@apple.com>

        Reviewed by Maciej Stachowiak.

        * WebView/WebPDFView.m:
        (-[WebPDFView menuForEvent:]):
        Removed use of WKExecutableLinkedInTigerOrEarlier() by modifying backward-compatibility
        hack involving PDF view context menus. Now we only bother to make sure that the PDFKit-
        supplied context menu items are present in Safari, for the benefit of the open source
        folks using tip of tree WebKit but older released Safari; it's possible that some other
        existing WebKit apps won't show all the PDF view context menu items.

2006-02-06  Maciej Stachowiak  <mjs@apple.com>

        Remove remaining .subproj references to fix release build.

        * WebKit.xcodeproj/project.pbxproj:

2006-02-06  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Hyatt.
        
        - renamed subproject directories to not end with .subproj

        * Carbon: renamed from Carbon.subproj
        * DOM: renamed from DOM.subproj
        * History: renamed from History.subproj
        * Misc: renamed from Misc.subproj
        * Panels: renamed from Panels.subproj
        * Plugins: renamed from Plugins.subproj
        * WebCoreSupport: renamed from WebCoreSupport.subproj
        * WebInspector: renamed from WebInspector.subproj
        * WebView: renamed from WebView.subproj
        
2006-02-06  Maciej Stachowiak  <mjs@apple.com>

        Ooops, I made a last-minute change to my last patch that broke the build - fixed.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _closeOldDataSources]):
        (-[WebFrame _detachFromParent]):
        (-[WebFrame _transitionToCommitted:]):
        (-[WebFrame _checkLoadCompleteForThisFrame]):
        (-[WebFrame _handledOnloadEvents]):
        (-[WebFrame _loadItem:withLoadType:]):
        (-[WebFrame _goToItem:withLoadType:]):
        (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:formState:]):
        (-[WebFrame _clientRedirectedTo:delay:fireDate:lockHistory:isJavaScriptFormAction:]):
        (-[WebFrame _clientRedirectCancelled:]):
        * WebView.subproj/WebFramePrivate.h:

2006-02-05  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.
        
        - shuffle things around so that WebFrame no longer has a WebView backpointer, the backpointer is
        at the bridge level.
        http://bugs.webkit.org/show_bug.cgi?id=7093

        * WebCoreSupport.subproj/WebFrameBridge.h:
        * WebCoreSupport.subproj/WebFrameBridge.m:
        (-[WebFrameBridge initWithPage:webView:frameName:view:]):
        (-[WebFrameBridge page]):
        (-[WebFrameBridge mainFrame]):
        (-[WebFrameBridge webView]):
        (-[WebFrameBridge createWindowWithURL:frameName:]):
        (-[WebFrameBridge showWindow]):
        (-[WebFrameBridge areToolbarsVisible]):
        (-[WebFrameBridge setToolbarsVisible:]):
        (-[WebFrameBridge isStatusbarVisible]):
        (-[WebFrameBridge setStatusbarVisible:]):
        (-[WebFrameBridge setWindowFrame:]):
        (-[WebFrameBridge windowFrame]):
        (-[WebFrameBridge setWindowContentRect:]):
        (-[WebFrameBridge windowContentRect]):
        (-[WebFrameBridge setWindowIsResizable:]):
        (-[WebFrameBridge windowIsResizable]):
        (-[WebFrameBridge firstResponder]):
        (-[WebFrameBridge makeFirstResponder:]):
        (-[WebFrameBridge closeWindowSoon]):
        (-[WebFrameBridge runJavaScriptAlertPanelWithMessage:]):
        (-[WebFrameBridge runJavaScriptConfirmPanelWithMessage:]):
        (-[WebFrameBridge canRunBeforeUnloadConfirmPanel]):
        (-[WebFrameBridge runBeforeUnloadConfirmPanelWithMessage:]):
        (-[WebFrameBridge runJavaScriptTextInputPanelWithPrompt:defaultText:returningText:]):
        (-[WebFrameBridge addMessageToConsole:]):
        (-[WebFrameBridge runOpenPanelForFileButtonWithResultListener:]):
        (-[WebFrameBridge setStatusText:]):
        (-[WebFrameBridge startLoadingResource:withURL:customHeaders:]):
        (-[WebFrameBridge startLoadingResource:withURL:customHeaders:postData:]):
        (-[WebFrameBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
        (-[WebFrameBridge focusWindow]):
        (-[WebFrameBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
        (-[WebFrameBridge userAgentForURL:]):
        (-[WebFrameBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
        (-[WebFrameBridge previousKeyViewOutsideWebFrameViews]):
        (-[WebFrameBridge defersLoading]):
        (-[WebFrameBridge setDefersLoading:]):
        (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
        (-[WebFrameBridge _preferences]):
        (-[WebFrameBridge selectWordBeforeMenuEvent]):
        (-[WebFrameBridge historyLength]):
        (-[WebFrameBridge canGoBackOrForward:]):
        (-[WebFrameBridge goBackOrForward:]):
        (-[WebFrameBridge print]):
        (-[WebFrameBridge pollForAppletInView:]):
        (-[WebFrameBridge respondToChangedContents]):
        (-[WebFrameBridge respondToChangedSelection]):
        (-[WebFrameBridge undoManager]):
        (-[WebFrameBridge issueCutCommand]):
        (-[WebFrameBridge issueCopyCommand]):
        (-[WebFrameBridge issuePasteCommand]):
        (-[WebFrameBridge issuePasteAndMatchStyleCommand]):
        (-[WebFrameBridge canPaste]):
        (-[WebFrameBridge overrideMediaType]):
        (-[WebFrameBridge isEditable]):
        (-[WebFrameBridge shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
        (-[WebFrameBridge shouldBeginEditing:]):
        (-[WebFrameBridge shouldEndEditing:]):
        (-[WebFrameBridge windowObjectCleared]):
        (-[WebFrameBridge spellCheckerDocumentTag]):
        (-[WebFrameBridge isContinuousSpellCheckingEnabled]):
        (-[WebFrameBridge didFirstLayout]):
        (-[WebFrameBridge dashboardRegionsChanged:]):
        (-[WebFrameBridge createModalDialogWithURL:]):
        (-[WebFrameBridge canRunModal]):
        (-[WebFrameBridge runModal]):
        * WebCoreSupport.subproj/WebPageBridge.h:
        * WebCoreSupport.subproj/WebPageBridge.m:
        (-[WebPageBridge initWithMainFrameName:webView:frameView:]):
        (-[WebPageBridge webView]):
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _fileWrapperForURL:]):
        (-[WebDataSource _webView]):
        (-[WebDataSource _setLoading:]):
        (-[WebDataSource _startLoading:]):
        (-[WebDataSource _setTitle:]):
        (-[WebDataSource _setRequest:]):
        (-[WebDataSource _updateIconDatabaseWithURL:]):
        (-[WebDataSource _defersCallbacksChanged]):
        (-[WebDataSource _setWebFrame:]):
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _traverseNextFrameStayWithin::]):
        (-[WebFrame _detachFromParent]):
        (-[WebFrame _setDataSource:]):
        (-[WebFrame _loadDataSource:withLoadType:formState:]):
        (-[WebFrame _initWithWebFrameView:webView:bridge:]):
        (-[WebFrame dealloc]):
        (-[WebFrame finalize]):
        (-[WebFrame webView]):
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _webView]):
        (-[WebFrameView _goBack]):
        (-[WebFrameView _goForward]):
        * WebView.subproj/WebFrameViewInternal.h:
        * WebView.subproj/WebView.m:
        (-[WebView _createFrameNamed:inParent:allowsScrolling:]):
        (-[WebView _commonInitializationWithFrameName:groupName:]):

2006-02-04  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        * Misc.subproj/WebCoreStatistics.h:
        * Misc.subproj/WebCoreStatistics.m:
        (+[WebCoreStatistics javaScriptRootObjectTypeCounts]):
        javaScriptRootObjecTypeCounts -> javaScriptRootObjectTypeCounts

2006-02-04  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Hyatt.

        - change JavaScript collector statistics calls to use HashCountedSet instead
        of CFSet; other misc cleanup
        http://bugs.webkit.org/show_bug.cgi?id=7072

        * Misc.subproj/WebCoreStatistics.h:
        * Misc.subproj/WebCoreStatistics.m:
        (+[WebCoreStatistics javaScriptProtectedObjectsCount]): new
        (+[WebCoreStatistics javaScriptRootObjecTypeCounts]): new
        (+[WebCoreStatistics javaScriptRootObjectClasses]): deprecated
        (+[WebCoreStatistics javaScriptReferencedObjectsCount]): deprecated
        (+[WebCoreStatistics javaScriptNoGCAllowedObjectsCount]): Just return 0. Deprecated.

2006-02-03  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.
        
        - change spellchecker preflighting to happen via class methods instead of
        object methods.

        * WebView.subproj/WebView.m:
        (-[WebView setContinuousSpellCheckingEnabled:]):
        (+[WebView _preflightSpellCheckerNow:]):
        (+[WebView _preflightSpellChecker]):

2006-02-03  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Justin.

        Renamed configuration names to Debug, Release and Production.

        * WebKit.xcodeproj/project.pbxproj:

2006-02-02  David Hyatt  <hyatt@apple.com>

	Fix for bug 6957, rewrite image rendering in C++ and move it to
        WebCore.  Animation now stops lazily and just uses the CachedObject
        notification system to push updates so that rects no longer need to
        be cached (or sets of animating renderers in specific views).

        Reviewed by darin

        * Misc.subproj/WebNSPasteboardExtras.h:
        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_writeImage:element:URL:title:archive:types:]):
        (-[NSPasteboard _web_declareAndWriteDragImage:element:URL:title:archive:source:]):
        * Misc.subproj/WebNSViewExtras.h:
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_dragImage:element:rect:event:pasteboard:source:offset:]):
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData init]):
        * WebCoreSupport.subproj/WebImageRendererFactory.m:
        (+[WebImageRendererFactory shouldUseThreadedDecoding]):
        (+[WebImageRendererFactory setShouldUseThreadedDecoding:]):
        (-[WebImageRendererFactory setPatternPhaseForContext:inUserSpace:]):
        (-[WebImageRendererFactory imageDataForName:]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
        (-[NSArray elementAtPoint:]):
        * WebView.subproj/WebImageView.m:
        (-[WebImageView writeImageToPasteboard:types:]):
        (-[WebImageView elementAtPoint:]):
        (-[WebImageView mouseDragged:]):
        * WebView.subproj/WebView.m:
        (-[WebView _writeImageElement:withPasteboardTypes:toPasteboard:]):

2006-01-31  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.
        
        - fixed <rdar://problem/4267144> REGRESSION (10.4.2): Safari pages auto-scroll too easily 
        during drag over content [5853]
        
        There were two issues here:
        (1) dragging over a non-editable webview (such as a typical Safari page) should not have
        auto-scrolled at all; the fact that it did was an uninentional side effect of making
        auto-scroll work for editable webviews a la Blot.
        (2) the speed & hot area of the auto-scroll changed between 10.4.1 and 10.4.2.
        
        I have a fix for (1), which is the much more important issue. I'll modify the bugzilla bug
        to be about the remaining issue.

        * WebView.subproj/WebView.m:
        (-[WebView _autoscrollForDraggingInfo:timeDelta:]):
        do nothing if not editable
        (-[WebView _shouldAutoscrollForDraggingInfo:]):
        return NO if not editable

2006-01-31  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.
        
        Support for programmatic scrolling one line at a time for PDFs. (We already had support for
        programmatic scrolling one page at a time, and to top/end.)

        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView _fakeKeyEventWithFunctionKey:]):
        generalized comment
        (-[WebPDFView scrollLineDown:]):
        pass a faked arrow-down key event
        (-[WebPDFView scrollLineUp:]):
        pass a faked arrow-up key event

2006-01-31  Darin Adler  <darin@apple.com>

        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebFrameBridge.m:
        (-[WebFrameBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
        Updated for name change.

2006-01-30  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Tim O.

        Add -Wno-deprecated-declarations to the compile flags for WebNetscapePluginPackage.m.
        <rdar://problem/4427068> LMGetCurApRefNum, CloseConnection and GetDiskFragment now deprecated.
        When we workaround these we can remove this compile flag.

        * WebKit.xcodeproj/project.pbxproj:

2006-01-30  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Justin.

        Remove the only use of -[NSFont glyphPacking]. This method was deprecated in Tiger
        and always returns NSNativeShortGlyphPacking.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer initWithFont:]):

2006-01-28  David Hyatt  <hyatt@apple.com>

        Clean up RenderImage, eliminating unneeded members and methods.
	
        Reviewed by darin

        * WebCoreSupport.subproj/WebImageRenderer.h:
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer copyWithZone:]):
        (-[WebImageRenderer size]):
        (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):

2006-01-26  Tim Omernick  <timo@apple.com>

        Reviewed by John Sullivan.

	<rdar://problem/4422365>

        * WebView.subproj/WebHTMLView.m:
        (-[NSArray addSuperviewObservers]):
        In addition to registering for frame/bounds change notifications, call -_frameOrBoundsChanged.
        It will check the current size/scroll against the previous layout's size/scroll.  We need to
        do this here to catch the case where the WebView is laid out at one size, removed from its
        window, resized, and inserted into another window.  Our frame/bounds changed notifications
        will not be sent in that situation, since we only watch for changes while in the view hierarchy.

	I have verified that this does not cause unnecessary layouts while running the PLT.

2006-01-25  Vicki Murley  <vicki@apple.com>

        Reviewed by Beth Dakin.

	- fix <rdar://problem/4351664> REGRESSION (420+): extra URL in b/f list - navigating back to 
	previous page fails at apple.com/retail/)
 
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]): grab the 
	redirect flag of the current load before calling _loadURL, which clears this flag, 
        (-[WebFrame _transitionToCommitted:]): remove misleading comment
        * History.subproj/WebHistoryItem.m:
        (-[WebHistoryItem setURL:]): release resources in the page cache when setting
        the URL on a WebHistoryItem

2006-01-25  Timothy Hatcher  <timothy@apple.com>

        Move off of -[NSFont widthOfString:] since it is now deprecated.
        Use the NSStringDrawing -[NSString sizeWithAttributes:] API.

        * WebCoreSupport.subproj/WebFileButton.m:
        (-[WebFileChooserButton bestVisualFrameSizeForCharacterCount:]):

2006-01-23  Darin Adler  <darin@apple.com>

        - fixed some small localizable strings issues

        * WebInspector.subproj/WebInspector.m:
        (-[DOMNode _nodeTypeName]): Changed so we don't have two localizable strings that
        are both "Document". I'm not sure we want to localize the DOM inspector UI at all,
        but this fixes things for now.
        (-[DOMNode _displayName]): Ditto.

        * English.lproj/Localizable.strings: Updated.
        * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.

2006-01-23  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by thatcher
        
        Turned on -O2 for B&I build.

        * WebKit.xcodeproj/project.pbxproj:

2006-01-22  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Anders Carlsson.
        
        Makes the Inspector's Style pane take !important into account
        when marking overloaded properties.

        * WebInspector.subproj/webInspector/inspector.js:

2006-01-21  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Anders Carlsson.

        Make sure shorthand properties get striked-out if
        all the properties they expand into are overloaded.

        * WebInspector.subproj/webInspector/inspector.js:

2006-01-21  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin.

        Adds computed style to the Web Inspector.
        Adds a "mapped style" link to the mapped attributes.

        * WebInspector.subproj/webInspector/inspector.css:
        * WebInspector.subproj/webInspector/inspector.html:
        * WebInspector.subproj/webInspector/inspector.js:

2006-01-20  Timothy Hatcher  <timothy@apple.com>

        Reviewed by John, some parts by Darin.

        Removes the old WebDebugDOMNode code, superseded by the ObjC DOM and the Web Inspector.
        Since Safari 2.0 still relies on these classes for the Debug menu's "Show DOM Tree", we remove
        that menu item to prevent a crash.

        * WebKit.exp: adds WebInspector, removes WebDebugDOMNode
        * WebKit.xcodeproj/project.pbxproj: added the REMOVE_SAFARI_DOM_TREE_DEBUG_ITEM define so the new WebView code doesn't build in the Default config
        * WebView.subproj/WebDebugDOMNode.h: Removed.
        * WebView.subproj/WebDebugDOMNode.m: Removed.
        * WebView.subproj/WebView.m:
        (+[WebView initialize]): check if we are in Safari and IncludeDebugMenu is true then observe for NSApplicationDidFinishLaunchingNotification and call _finishedLaunching
        (+[WebView _finishedLaunching]): observe for NSMenuDidAddItemNotification now that the main menu is loaded and wait for the Debug menu to be added
        (+[WebView _removeDOMTreeMenuItem:]): when the debug menu is added remove the "Show DOM Tree" item

2006-01-20  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Hyatt.

        Corrects the cascade order for mapped attributes.
        Shows "inline stylesheet" rather than "null" for rules in <style> tags.

        * WebInspector.subproj/webInspector/inspector.js:

2006-01-19  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Eric.

        Adds inline style reporting and mapped attribute support to the Inspector Style pane.
        Cleans up the node attributes area with a more natural attr = "value" look.
        Slight optimization to only update visible scrollbars during a window resize.

        * WebInspector.subproj/webInspector/inspector.css:
        * WebInspector.subproj/webInspector/inspector.js:

2006-01-19  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin.
        
        http://bugs.webkit.org/show_bug.cgi?id=6631
        Inspector window has inappropriate maximum height

        * WebInspector.subproj/WebInspector.m:
        (-[WebInspector window]): removes the maximum size constraint

2006-01-19  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.

        * WebKit.xcodeproj/project.pbxproj:
        made WebNSUserDefaultsExtras.h private (SPI) so its one method can be called from
        Safari, so Safari can stop calling the similar method in Foundation.

2006-01-19  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.
        
        Made _webKit_guessedMIMEType SPI so Safari can use it in order to stop using
        the similar SPI method in Foundation. This involved splitting it out of the file
        it was in, to avoid creating any other new SPI here. Poor svn diff got mighty
        confused in the process.

        * Misc.subproj/WebNSDataExtras.h:
        removed _webkit_guessedMIMEType from here
        * Misc.subproj/WebNSDataExtrasPrivate.h: 
        Added. Contains only _webkit_guessedMIMEType. This file is private (SPI), whereas
        WebNSDataExtras.h is project-internal. I could have renamed WebNSDateExtras.h to
        WebNSDateExtrasInternal.h also, but I minimized the gratuitous change level here
        by not doing that.
        
        * Misc.subproj/WebNSDataExtras.m:
        Despite the great confusion of svn diff, all I actually did here was move 
        _webkit_guessedMIMEType and its helper _webkit_guessedMIMETypeForXML into a new
        category. No lines of code were harmed while creating this patch.

        * WebKit.xcodeproj/project.pbxproj:
        updated for new file

        * WebView.subproj/WebView.m:
        Added #import for new file since WebView uses _webkit_guessedMIMEType

2006-01-19  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.

        * Misc.subproj/WebNSURLExtras.h:
        added declaration of _webkit_rangeOfURLScheme so Safari can call it as a step
        towards weaning Safari from Foundation SPI.

2006-01-17  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by eric
        
        Deployment builds now use -O2

        * WebKit.xcodeproj/project.pbxproj:

2006-01-17  Beth Dakin  <bdakin@apple.com>

        Reviewed by Darin.

        Fix for <rdar://problem/4112029> With Quartz scaling on, Safari incorrectly 
        handles mouseover effects

        The location of an event in the window should be converted to the superview 
        of the contentView to do accurate hitTesting.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _updateMouseoverWithEvent:]): Convert the point to the
        contentView's superview from nil. 

2006-01-16  Timothy Hatcher  <timothy@apple.com>

        Rubber stamped by Maciej.

        Check for a new "WebKitDeveloperExtras" default when
        including the "Inspect Element" context menu item.
        We should retire the other one eventually.

        * WebView.subproj/WebView.m:
        (-[WebView _menuForElement:defaultItems:]):

2006-01-17  Anders Carlsson  <andersca@mac.com>

        Reviewed by Timothy Hatcher.

        - http://bugs.webkit.org/show_bug.cgi?id=6594
        Web Inspector: finish node attributes
        
        * WebInspector.subproj/webInspector/inspector.css:
        * WebInspector.subproj/webInspector/inspector.html:
        * WebInspector.subproj/webInspector/inspector.js:
        Add initial support for element attributes.

2006-01-16  John Sullivan  <sullivan@apple.com>

        Reviewed by Vicki Murley.
        
        - fixed <rdar://problem/4409288> REGRESSION (TOT): When no selection is present on page, 
        Jump to Selection doesn't beep

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _hasInsertionPoint]):
        new helper method
        (-[NSArray validateUserInterfaceItem:]):
        Don't validate this menu item (or a couple of others) if the selection is a caret and
        the page isn't editable. In that state, there is no visible selection so this menu item
        doesn't make sense. I suspect this was broken by some editing-related change that makes
        selectionState return WebSelectionStateCaret here where it used to return WebSelectionStateNone.

2006-01-16  Tim Omernick  <timo@apple.com>

        Reviewed by John Sullivan.

	WebKit part of <rdar://problem/4211707> NPAPI ref count behavior differs with Mozilla

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView getVariable:value:]):
	The returned window script object is expected to be retained, as described here:
	<http://www.mozilla.org/projects/plugins/npruntime.html#browseraccess>

2006-01-16  Anders Carlsson  <andersca@mac.com>

        Reviewed by Darin.

        * WebInspector.subproj/webInspector/inspector.js:
        Use defined NodeType values instead of integers.

2006-01-15  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin.
 
        New DOM Inspector that lives in WebKit and is accessible from any WebView.
        Accessible from a contextual menu when the WebKitEnableInspectElementContextMenuItem default is
        true or you have a development build. Browsing the tree, serialized HTML and CSS rules work.
 
        To always enable enter the following in the Terminal (change the bundle id to affect other WebKit apps):
        defaults write com.apple.Safari WebKitEnableInspectElementContextMenuItem -bool true
 
        http://bugs.webkit.org/show_bug.cgi?id=6571

        * English.lproj/Localizable.strings:
        * English.lproj/StringsNotToBeLocalized.txt: reorder of the entries
        * Misc.subproj/WebKitNSStringExtras.h:
        * Misc.subproj/WebKitNSStringExtras.m:
        (-[NSString _webkit_stringByCollapsingWhitespaceCharacters]): collapses consecutive whitespace into a single space
        * WebCoreSupport.subproj/WebFrameBridge.m:
        (-[WebFrameBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): cleanup
        (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): call the new UI delegate method
        * WebInspector.subproj: Added.
        * WebInspector.subproj/WebInspector.h: Added.
        * WebInspector.subproj/WebInspector.m: Added.
        (+[WebInspector sharedWebInspector]):
        (-[WebInspector init]):
        (-[WebInspector initWithWebFrame:]):
        (-[WebInspector dealloc]):
        (-[WebInspector window]):
        (-[WebInspector windowDidLoad]):
        (-[WebInspector windowWillClose:]):
        (-[WebInspector showWindow:]):
        (-[WebInspector setWebFrame:]):
        (-[WebInspector webFrame]):
        (-[WebInspector setRootDOMNode:]):
        (-[WebInspector rootDOMNode]):
        (-[WebInspector setFocusedDOMNode:]):
        (-[WebInspector focusedDOMNode]):
        (-[WebInspector setSearchQuery:]):
        (-[WebInspector searchQuery]):
        (-[WebInspector searchResults]):
        (-[WebInspector showOptionsMenu]):
        (-[WebInspector selectNewRoot:]):
        (-[WebInspector resizeTopArea:]):
        (-[WebInspector treeViewScrollTo:]):
        (-[WebInspector treeViewOffsetTop]):
        (-[WebInspector treeViewScrollHeight]):
        (-[WebInspector traverseTreeBackward]):
        (-[WebInspector traverseTreeForward]):
        (-[WebInspector _toggleIgnoreWhitespace:]):
        (-[WebInspector _highlightNode:]):
        (-[WebInspector _nodeHighlightExpired:]):
        (-[WebInspector _focusRootNode:]):
        (-[WebInspector _revealAndSelectNodeInTree:]):
        (-[WebInspector _showSearchResults:]):
        (-[WebInspector _refreshSearch]):
        (-[WebInspector _update]):
        (-[WebInspector _updateRoot]):
        (-[WebInspector _updateTreeScrollbar]):
        (+[WebInspector isSelectorExcludedFromWebScript:]):
        (+[WebInspector webScriptNameForSelector:]):
        (+[WebInspector isKeyExcludedFromWebScript:]):
        (-[WebInspector handleEvent:]):
        (-[WebInspector webView:didFinishLoadForFrame:]):
        (-[WebInspector webView:plugInViewWithArguments:]):
        (-[WebInspector outlineView:numberOfChildrenOfItem:]):
        (-[WebInspector outlineView:isItemExpandable:]):
        (-[WebInspector outlineView:child:ofItem:]):
        (-[WebInspector outlineView:objectValueForTableColumn:byItem:]):
        (-[WebInspector outlineView:willDisplayOutlineCell:forTableColumn:item:]):
        (-[WebInspector outlineViewItemDidCollapse:]):
        (-[WebInspector outlineViewSelectionDidChange:]):
        (-[WebInspectorPrivate dealloc]):
        (-[DOMHTMLElement _addClassName:]): Helper method for the Inspector to append style classes
        (-[DOMHTMLElement _removeClassName:]): Helper method for the Inspector to remove style classes
        (-[DOMNode _contentPreview]):
        (-[DOMNode _isAncestorOfNode:]):
        (-[DOMNode _isDescendantOfNode:]):
        (-[DOMNode _isWhitespace]):
        (-[DOMNode _lengthOfChildNodesIgnoringWhitespace]):
        (-[DOMNode _childNodeAtIndexIgnoringWhitespace:]):
        (-[DOMNode _nextSiblingSkippingWhitespace]):
        (-[DOMNode _previousSiblingSkippingWhitespace]):
        (-[DOMNode _firstChildSkippingWhitespace]):
        (-[DOMNode _lastChildSkippingWhitespace]):
        (-[DOMNode _firstAncestorCommonWithNode:]):
        (-[DOMNode _traverseNextNodeStayingWithin:]):
        (-[DOMNode _traverseNextNodeSkippingWhitespaceStayingWithin:]):
        (-[DOMNode _traversePreviousNode]):
        (-[DOMNode _traversePreviousNodeSkippingWhitespace]):
        (-[DOMNode _nodeTypeName]):
        (-[DOMNode _shortDisplayName]):
        (-[DOMNode _displayName]):
        * WebInspector.subproj/WebInspectorInternal.h: Added.
        * WebInspector.subproj/WebInspectorOutlineView.h: Added.
        * WebInspector.subproj/WebInspectorOutlineView.m: Added.
        (-[WebInspectorOutlineView isOpaque]):
        (-[WebInspectorOutlineView _highlightColorForCell:]):
        (-[WebInspectorOutlineView _highlightRow:clipRect:]):
        (-[WebInspectorOutlineView drawBackgroundInClipRect:]):
        * WebInspector.subproj/WebInspectorPanel.h: Added.
        * WebInspector.subproj/WebInspectorPanel.m: Added.
        (-[WebInspectorPanel canBecomeKeyWindow]):
        (-[WebInspectorPanel canBecomeMainWindow]):
        (-[WebInspectorPanel moveWindow:]):
        (-[WebInspectorPanel resizeWindow:]):
        (-[WebInspectorPanel sendEvent:]):
        * WebInspector.subproj/WebNodeHighlight.h: Added.
        * WebInspector.subproj/WebNodeHighlight.m: Added.
        (-[WebNodeHighlight initWithBounds:andRects:forView:]):
        (-[WebNodeHighlight dealloc]):
        (-[WebNodeHighlight fractionComplete]):
        (-[WebNodeHighlight expire]):
        (-[WebNodeHighlight redraw:]):
        * WebInspector.subproj/WebNodeHighlightView.h: Added.
        * WebInspector.subproj/WebNodeHighlightView.m: Added.
        (-[WebNodeHighlightView roundedRect:withRadius:]):
        (-[WebNodeHighlightView initWithHighlight:andRects:forView:]):
        (-[WebNodeHighlightView dealloc]):
        (-[WebNodeHighlightView isOpaque]):
        (-[WebNodeHighlightView drawRect:]):
        * WebInspector.subproj/webInspector: Added.
        * WebInspector.subproj/webInspector/Images: Added.
        * WebInspector.subproj/webInspector/Images/close.png: Added.
        * WebInspector.subproj/webInspector/Images/closePressed.png: Added.
        * WebInspector.subproj/webInspector/Images/downTriangle.png: Added.
        * WebInspector.subproj/webInspector/Images/menu.png: Added.
        * WebInspector.subproj/webInspector/Images/menuPressed.png: Added.
        * WebInspector.subproj/webInspector/Images/popupFill.png: Added.
        * WebInspector.subproj/webInspector/Images/popupFillPressed.png: Added.
        * WebInspector.subproj/webInspector/Images/popupLeft.png: Added.
        * WebInspector.subproj/webInspector/Images/popupLeftPressed.png: Added.
        * WebInspector.subproj/webInspector/Images/popupRight.png: Added.
        * WebInspector.subproj/webInspector/Images/popupRightPressed.png: Added.
        * WebInspector.subproj/webInspector/Images/rightTriangle.png: Added.
        * WebInspector.subproj/webInspector/Images/scrollThumbBottom.png: Added.
        * WebInspector.subproj/webInspector/Images/scrollThumbMiddle.png: Added.
        * WebInspector.subproj/webInspector/Images/scrollThumbTop.png: Added.
        * WebInspector.subproj/webInspector/Images/scrollTrackBottom.png: Added.
        * WebInspector.subproj/webInspector/Images/scrollTrackMiddle.png: Added.
        * WebInspector.subproj/webInspector/Images/scrollTrackTop.png: Added.
        * WebInspector.subproj/webInspector/Images/squareButtonRight.png: Added.
        * WebInspector.subproj/webInspector/Images/squareButtonRightPressed.png: Added.
        * WebInspector.subproj/webInspector/Images/upTriangle.png: Added.
        * WebInspector.subproj/webInspector/inspector.css: Added.
        * WebInspector.subproj/webInspector/inspector.html: Added.
        * WebInspector.subproj/webInspector/inspector.js: Added.
        * WebKit.xcodeproj/project.pbxproj: Adds Web Inspector files
        * WebView.subproj/WebUIDelegatePrivate.h: new UI delegate method to supply a replacement view for plugins
        * WebView.subproj/WebView.m:
        (-[WebView _menuForElement:defaultItems:]): Add a new context menu item for inspecting
        (-[WebView _inspectElement:]): Context menu item target for inspecting

2006-01-14  Alexey Proskuryakov  <ap@nypop.com>

        Reviewed by Darin.

        - Fix http://bugs.webkit.org/show_bug.cgi?id=6531
        document.cookie="killmenothing" doesn't set the cookie

        * WebCoreSupport.subproj/WebCookieAdapter.m: (-[WebCookieAdapter setCookies:forURL:policyBaseURL:]):
        Append an '=' to the cookie string if it has none, so that 
        +[NSHTTPCookie cookiesWithResponseHeaderFields:forURL:] can parse it.

2006-01-14  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Eric.

        - added bridging infrastructure for Page class
        
        * WebCoreSupport.subproj/WebPageBridge.h: Added.
        * WebCoreSupport.subproj/WebPageBridge.m: Added.
        (-[WebPageBridge initWithMainFrameName:view:]): New class, somewhat obvious.
        * WebKit.xcodeproj/project.pbxproj:
        * WebView.subproj/WebView.m:
        (-[WebViewPrivate dealloc]): Don't use _mainFrameBrige, use _pageBridge
        (-[WebView _close]): ditto
        (-[WebView _commonInitializationWithFrameName:groupName:]): ditto
        (-[WebView mainFrame]): ditto

2006-01-12  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Eric.

        - rename WebBridge to WebFrameBridge
        
        - also removed all tabs from WebFrameBridge.m

        * DOM.subproj/WebDOMOperations.m:
        (-[DOMNode _bridge]):
        (-[DOMNode webArchive]):
        (-[DOMRange _bridge]):
        (-[DOMRange webArchive]):
        * DOM.subproj/WebDOMOperationsPrivate.h:
        * English.lproj/StringsNotToBeLocalized.txt:
        * Misc.subproj/WebCoreStatistics.m:
        * Misc.subproj/WebNSViewExtras.h:
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _bridge]):
        * Plugins.subproj/WebBaseNetscapePluginView.m:
        * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
        * Plugins.subproj/WebPluginContainerCheck.m:
        (-[WebPluginContainerCheck _isForbiddenFileLoad]):
        * Plugins.subproj/WebPluginController.h:
        * Plugins.subproj/WebPluginController.m:
        (-[WebPluginController bridge]):
        * WebCoreSupport.subproj/WebBridge.h: Removed.
        * WebCoreSupport.subproj/WebBridge.m: Removed.
        * WebCoreSupport.subproj/WebFileButton.h:
        * WebCoreSupport.subproj/WebFileButton.m:
        (-[WebFileChooserButton initWithBridge:delegate:]):
        * WebCoreSupport.subproj/WebFrameBridge.h: Added.
        * WebCoreSupport.subproj/WebFrameBridge.m: Added.
        (-[WebFrameBridge mainFrame]):
        (-[WebFrameBridge createWindowWithURL:frameName:]):
        (-[WebFrameBridge canTargetLoadInFrame:]):
        (-[WebFrameBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
        (formDelegate):
        (-[WebFrameBridge createModalDialogWithURL:]):
        * WebCoreSupport.subproj/WebSubresourceLoader.m:
        * WebCoreSupport.subproj/WebTextRendererFactory.m:
        * WebCoreSupport.subproj/WebViewFactory.m:
        (-[WebViewFactory bridgeForView:]):
        * WebKit.xcodeproj/project.pbxproj:
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _bridge]):
        (-[WebDataSource _receivedMainResourceError:complete:]):
        (-[WebDataSource _stringWithData:]):
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebDebugDOMNode.m:
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _traverseNextFrameStayWithin::]):
        (Frame):
        (-[WebFrame _detachFromParent]):
        (-[WebFrame _bridge]):
        (-[WebFrame _initWithWebFrameView:webView:bridge:]):
        * WebView.subproj/WebFrameInternal.h:
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView webCoreBridge]):
        (-[WebFrameView _bridge]):
        * WebView.subproj/WebHTMLRepresentation.m:
        (+[WebHTMLRepresentation supportedMIMETypes]):
        (-[WebHTMLRepresentation _bridge]):
        (-[WebHTMLRepresentation documentSource]):
        * WebView.subproj/WebHTMLRepresentationPrivate.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]):
        (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]):
        (-[WebHTMLView updateFocusState]):
        (-[NSArray validateUserInterfaceItem:]):
        (-[NSArray attributedString]):
        (-[NSArray selectedAttributedString]):
        (-[NSArray concludeDragForDraggingInfo:actionMask:]):
        (-[NSArray keyDown:]):
        (-[NSArray _alterCurrentSelection:direction:granularity:]):
        (-[NSArray _alterCurrentSelection:verticalDistance:]):
        (-[NSArray _expandSelectionToGranularity:]):
        (-[NSArray cut:]):
        (-[NSArray _applyStyleToSelection:withUndoAction:]):
        (-[NSArray _applyParagraphStyleToSelection:withUndoAction:]):
        (-[NSArray pasteAsPlainText:]):
        (-[NSArray insertNewline:]):
        (-[NSArray insertLineBreak:]):
        (-[NSArray insertParagraphSeparator:]):
        (-[NSArray _changeWordCaseWithSelector:]):
        (-[NSArray startSpeaking:]):
        (-[NSArray selectToMark:]):
        (-[NSArray swapWithMark:]):
        (-[NSArray transpose:]):
        (-[WebHTMLView characterIndexForPoint:]):
        (-[WebHTMLView firstRectForCharacterRange:]):
        (-[WebHTMLView selectedRange]):
        (-[WebHTMLView attributedSubstringFromRange:]):
        (-[WebHTMLView _selectMarkedText]):
        (-[WebHTMLView _selectRangeInMarkedText:]):
        (-[WebHTMLView setMarkedText:selectedRange:]):
        (-[WebHTMLView _selectionIsInsideMarkedText]):
        (-[WebTextCompleteController _insertMatch:]):
        (-[WebTextCompleteController doCompletion]):
        (-[WebTextCompleteController endRevertingChange:moveLeft:]):
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebImageView.m:
        * WebView.subproj/WebMainResourceLoader.m:
        * WebView.subproj/WebRenderNode.m:
        * WebView.subproj/WebResource.m:
        (-[WebResource _stringValue]):
        * WebView.subproj/WebScriptDebugDelegate.m:
        * WebView.subproj/WebTextView.m:
        * WebView.subproj/WebView.m:
        (-[WebView _createFrameNamed:inParent:allowsScrolling:]):
        (-[WebView _commonInitializationWithFrameName:groupName:]):
        (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]):
        (-[WebView moveDragCaretToPoint:]):
        (-[WebView shouldClose]):
        (-[WebView editableDOMRangeForPoint:]):
        (-[WebView setEditable:]):
        (-[WebView deleteSelection]):
        (-[WebView _bridgeForSelectedOrMainFrame]):
        (-[WebView _bridgeAtPoint:]):

2006-01-13  Darin Adler  <darin@apple.com>

        - Replaced tabs with spaces in source files that had less than 10 lines with tabs.
        - Set allow-tabs Subversion property in source files that have more than 10 lines with tabs.

2006-01-12  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim O.
        
        - fixed <rdar://problem/4406994> REGRESSION (TOT): zooming window at cnn.com 
        makes window fill width of screen

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _largestChildWithScrollBars]):
        now skips zero-area frames, used by some evil ads

2006-01-10  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim H.
        
        - fixed <rdar://problem/4265966> PDFs continue to show a (secondary) selection 
        when the focus moves elsewhere

        * WebView.subproj/WebPDFView.h:
        added trackedFirstResponder ivar
        
        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView dealloc]):
        assert that trackedFirstResponder is nil, as it was released/cleared in viewWillMoveToWindow:
        (-[WebPDFView _trackFirstResponder]):
        If the tracked first responder was the PDFView's documentView, and the current first responder isn't,
        deselect all. This is equivalent to overriding resignFirstResponder in the PDFView's 
        documentView and deselecting all there, as other web document view classes do. Also, keep track of
        the new first responder for next time.
        (-[WebPDFView viewWillMoveToWindow:]):
        stop observing NSWindowDidUpdateNotification on the old window
        (-[WebPDFView viewDidMoveToWindow]):
        start observing NSWindowDidUpdateNotification on the new window, with _trackFirstResponder
        as the callback. Ideally we'd use a notification that tells us that the first responder is
        changing, but there is no such notification, so we have to use this very frequent one instead.
        The archaic 2573089 tracks the desire to have a responder-changed notification.
        (-[WebPDFView becomeFirstResponder]):
        removed comment about this bug that's now obsolete

2006-01-11  Darin Adler  <darin@apple.com>

        * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.

2006-01-09  Darin Adler  <darin@apple.com>

        * Makefile.am: Removed.

2006-01-09  John Sullivan  <sullivan@apple.com>

        Reviewed by Beth Dakin.
                
        - fixed <rdar://problem/4302263> CrashTracer: 504 crashes in Safari at 
        com.apple.AppKit: NSTargetForSendAction + 1060
        
        The problem was that back/forward/stop/reload context menu items had nil targets,
        and thus were relying on AppKit to start from the context menu target (the clicked-upon 
        view) and use the responder chain to find the WebView to act as the target. In Tiger, 
        context menus don't retain their implicit target (the clicked-upon view again), and
        there was a race condition where the WebHTMLView could be dealloc'ed while the menu item
        was being processed, eventually crashing in AppKit. The fix is to explicitly set the
        target of these four menu items to the WebView, since the WebView is not dealloc'ed
        in the loading process.
        
        This might be fixed in a future version of AppKit by making the context menu retain its
        implicit target until it is dismissed, but with this change it will be fixed regardless
        of potential AppKit changes.

        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate menuItemWithTag:target:]):
        Added target: parameter and removed code that set the target for some menu items; now the
        caller is responsible for supplying the target.
        (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
        Supply target (or nil) in calls to menuItemWithTag:target:. This matches existing behavior
        except for Back/Forward/Stop/Reload, which used to supply no target but now supply the
        WebView as the target.
        (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
        Supply target (or nil) in calls to menuItemWithTag:target:

2006-01-09  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Darin.
        
        - Second cut at fixing <rdar://problem/4268278> Submitting a form 
        in onUnload event handler causes crash in 
        -[WebDataSource(WebPrivate) _commitIfReady:].)

        - Fixes http://bugs.webkit.org/show_bug.cgi?id=6331
        REGRESSION: form events don't fire after back/forward navigation, 
        due to inconsistent load state
        
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _stopLoading]): 
        (1) If there are no resource loaders to signal the WebView that we've
        been canceled, manufacture the signal. Otherwise, the cancel gets 
        ignored and nobody cleans up after the load. (We signal the WebView but
        not the WebFrame because we don't want the WebFrame to tear down the 
        data source.  Unlike most canceled data sources, this one has valid data 
        because it's in the back/forward cache.)
        (2) Update _private->stopping before returning because if the 
        data source is in the back/forward cache it can be reused, so it 
        needs to be in a consistent state. (We never encountered this 
        situation before because we would always crash first.)
        (-[WebDataSource _commitLoadWithData:]): Move _commitIfReady call 
        inside retain block because the commit may cause an unload event 
        to fire, which may start a new load, deallocating the current 
        data source. (This is the same reason the rest of the function is 
        in the retain block.)
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]): If the unload handler 
        started a new load, return early to avoid stomping it.
        (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): 
        Undo previous incorrect fix.
        (-[WebFrame stopLoading]): Remove misleading comment. Setting 
        provisionalDataSource to nil is not optional but required for 
        internal consistency.

2006-01-09  Alexey Proskuryakov  <ap@nypop.com>

        Reviewed by Maciej.

        Affects many layout tests (when running with primary Russian language).

        - Fix http://bugs.webkit.org/show_bug.cgi?id=4759
        'ex' length unit calculation (Some layout tests fail if the system primary language is Russian)

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer xHeight]): Use glyphForCharacter() instead of -[NSFont glyphWithName:].

2006-01-07  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by Darin, landed by ap.
        
        Test: fast/text/atsui-small-caps-punctuation-size.html
        
        - fix http://bugs.webkit.org/show_bug.cgi?id=6397
          ATSUI small caps use small punctuation
          
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (createATSULayoutParameters): Changed the characters for which size must
        not change from !u_isbase() to the M* categories.

2006-01-06  John Sullivan  <sullivan@apple.com>

        Reviewed by Vicki Murley (full credit) and Tim Omernick (half credit).
        
        - fixed <rdar://problem/4401102> REGRESSION (420+): When displaying a PDF, tabbing around stops working after reaching page

        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView setNextKeyView:]):
        Use [PDFSubview documentView] rather than PDFSubview here, since that's the view that we now hand off first-responderhood to.

2006-01-05  Tim Omernick  <timo@apple.com>

        Reviewed by Geoff.

	<rdar://problem/4400804> Client-side redirect to a non-HTTP URL confuses Safari

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
	If we were waiting for a quick redirect, but the policy delegate decided to ignore it, then we 
	need to report that the client redirect was cancelled.
	
2006-01-05  John Sullivan  <sullivan@apple.com>

        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView _fakeKeyEventWithFunctionKey:]):
        Just added a FIXME comment about how to clean up this minor hack in the future.

2006-01-05  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim O.
        
        - fixed these bugs:
        <rdar://problem/3021785> page up/down don't work on frameset pages unless you click        
        <rdar://problem/3021788> Page Up/Down moves an unscrollable frame if you click on it first
        
        and the WebKit part of this (need new Safari too for complete fix):
        <rdar://problem/4378905> Page up/down don't work in PDFs when address field is focused
        
        I moved some logic down from Safari that dealt with finding the largest scrollable child frame in a frameset,
        and added support for standard scrolling-related selectors to WebPDFView. The latter was needed for 4378905;
        the former was needed due to side effects of the Safari part of the change. As long as I was doing the former,
        I also used that logic to fix 3021785 and 3021788.
        
        * WebView.subproj/WebFrameViewPrivate.h:
        new currently-private methods _hasScrollBars and _largestChildWithScrollBars

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView scrollToBeginningOfDocument:]):
        if we don't have scroll bars, operate on our largest child with scroll bars instead
        (-[WebFrameView scrollToEndOfDocument:]):
        ditto
        (-[WebFrameView _pageVertically:]):
        ditto
        (-[WebFrameView _pageHorizontally:]):
        ditto
        (-[WebFrameView _scrollLineVertically:]):
        ditto
        (-[WebFrameView _scrollLineHorizontally:]):
        ditto
        (-[WebFrameView keyDown:]):
        where we were bailing out if ![self allowsScrolling], also check for whether there's a
        child with scroll bars, and don't bail out if so
        (-[WebFrameView _area]):
        new helper method used to implement _largestChildWithScrollBars (code moved from Safari)
        (-[WebFrameView _hasScrollBars]):
        new method, just returns YES if either scroll bar is showing (code moved from Safari)
        (-[WebFrameView _largestChildWithScrollBars]):
        new method, returns the child with the largest area that is showing at least one scroll bar
        (code moved from Safari and tweaked a little)
        
        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView _fakeKeyEventWithFunctionKey:]):
        new method, hackaround for the fact that PDFView handles key downs from standard scrolling keys
        but does not implement the standard responder selectors
        (-[WebPDFView scrollPageDown:]):
        use _fakeKeyEventWithFunctionKey: to get the PDFView to scroll appropriately
        (-[WebPDFView scrollPageUp:]):
        ditto
        (-[WebPDFView scrollToBeginningOfDocument:]):
        ditto
        (-[WebPDFView scrollToEndOfDocument:]):
        ditto
        
        * WebView.subproj/WebView.m:
        add scrollToBeginningOfDocument and scrollToEndOfDocument to the list of responder operations
        that we hand off appropriately to the responder chain. These two aren't defined in any header
        but are generated by Home and End keys and used by the text system.

2006-01-05  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Darin.

        - Fixed http://bugs.webkit.org/show_bug.cgi?id=6361
        Add plugin support to DumpRenderTree

        * WebKit.exp: export WebPluginDatabase class, which DumpRenderTree
        needs to add plugins to the runtime.

2006-01-03  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	- move frame management and finding code from WebKit to WebCore
	http://bugs.webkit.org/show_bug.cgi?id=6368

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView loadPluginRequest:]): Set frame name straight on the bridge,
	instead of having it bubble through the view and frame.
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge initWithFrameName:view:]): don't pass name to frame, we own it now; set it
	on ourselves directly
	(-[WebBridge findFrameNamed:]): removed
        (-[WebBridge createWindowWithURL:frameName:]): set name on bridge, not webview
        (-[WebBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
        (-[WebBridge runModal]): remove excess braces
        * WebKit.xcodeproj/project.pbxproj:
        * WebView.subproj/WebControllerSets.h: Removed.
        * WebView.subproj/WebControllerSets.m: Removed.
        * WebView.subproj/WebFrame.m:
        (-[WebFramePrivate name]): removed
        (-[WebFramePrivate setName:]): removed
        (-[WebFramePrivate dealloc]): don't release name, we no longer have one
        (-[WebFrame _appendChild:]): removed
        (-[WebFrame _removeChild:]): removed
        (-[WebFrame _createItem:]): removed stray space
        (-[WebFrame _immediateChildFrameNamed:]): Just call the bridge
        (-[WebFrame _setName:]): removed
        (-[WebFrame _detachFromParent]): remove bridge from parent note self
        (-[WebFrame _continueLoadRequestAfterNewWindowPolicy:frameName:formState:]):
        (-[WebFrame _addChild:]): Call appendChild: on bridge, not self
        (-[WebFrame _nextFrameWithWrap:]): just call bridge (and moved helpers there)
        (-[WebFrame _previousFrameWithWrap:]): just call bridge (and moved helpers there)
        (-[WebFrame _initWithWebFrameView:webView:bridge:]): don't take a name any more
        (-[WebFrame _setFrameNamespace:]): just call bridge
        (-[WebFrame _frameNamespace]): just call bridge
        (-[WebFrame _hasSelection]): remove excess braces
        (-[WebFrame _clearSelection]): ditto
        (-[WebFrame initWithName:webFrameView:webView:]): no more name
        (-[WebFrame name]): just call bridge
        (-[WebFrame findFrameNamed:]): just call bridge (and moved helpers there)
        (-[WebFrame parentFrame]): fixed for new style
        * WebView.subproj/WebFrameInternal.h:
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebView.m:
        * WebView.subproj/WebViewPrivate.h:

2006-01-03  Darin Adler  <darin@apple.com>

        Reviewed by Beth.

	This is a fix for <rdar://problem/3710994> HiDPI: Link underlines are 
	still one pixel high even if the UI resolution is > 100%

	This fix refactors -drawLineForCharacters to make its organization
	more logical. It changes behavior when printing to the screen by
	rounding the parameters of the line (x- and y-values, width, and 
	thickness) to integer boundaries in device space. Previously,
	this part of the routine just hardcoded a 1 pixel line.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (drawHorizontalLine): This just takes care of drawing the line once everything
	has been calculated in -drawLineForCharacters
        (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
	Now takes device space into account. Calls drawHorizontalLine

2006-01-03  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Vicki.

        - moved frame traversal code across from bridge, also dropped the children
	array

        * WebCoreSupport.subproj/WebBridge.h:
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge dealloc]): Don't release children array, that was moved
	down to WebCore.
        (-[WebBridge saveDocumentState:]):
	- many methods moved to WebCore.
        * WebView.subproj/WebFrame.m:
        (Frame): New convenience method to get a WebFrame * from a method that
	returns WebCoreBridge *.
        (-[WebFrame _firstChildFrame]): use Frame()
        (-[WebFrame _lastChildFrame]): ditto
        (-[WebFrame _previousSiblingFrame]): ditto
        (-[WebFrame _nextSiblingFrame]): ditto
        (-[WebFrame _traverseNextFrameStayWithin:]): ditto

2006-01-03  Anders Carlsson  <andersca@mac.com>

        Reviewed by Darin.

        - Fix http://bugs.webkit.org/show_bug.cgi?id=6357
        REGRESSION: iframe and target is broken
        
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _descendantFrameNamed:sourceFrame:]):
        Return the correct frame.

2006-01-02  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Eric.

	    - moved frame traversal logic from WebFrame to WebBridge
	    http://bugs.webkit.org/show_bug.cgi?id=6341

	    To do this, I had to invert the ownership so that WebBridge now
	    owns WebFrame instead of vice versa. As a result, WebView now owns
	    a WebBridge pointer and does not have a direct WebFrame pointer.

        * WebCoreSupport.subproj/WebBridge.h:
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge initWithFrameName:view:]): The initializer is now responsible for creating
	the frame, so pass it what it needs to do that.
        (-[WebBridge dealloc]): The bridge now owns the frame, so release it.
        (-[WebBridge close]): ditto
        (-[WebBridge firstChild]): Moved from WebFrame
        (-[WebBridge lastChild]): ditto
        (-[WebBridge childCount]): ditto
        (-[WebBridge previousSibling]): ditto
        (-[WebBridge nextSibling]): ditto
        (-[WebBridge isDescendantOfFrame:]): ditto
        (-[WebBridge traverseNextFrameStayWithin:]): ditto
        (-[WebBridge appendChild:]): ditto
        (-[WebBridge removeChild:]): ditto
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _removeChild::]): Call WebBridge version
        (-[WebFramePrivate dealloc]): ditto
        (-[WebFrame _firstChildFrame]): ditto
        (-[WebFrame _lastChildFrame]): ditto
        (-[WebFrame _childFrameCount]): ditto
        (-[WebFrame _previousSiblingFrame]): ditto
        (-[WebFrame _nextSiblingFrame]): ditto
        (-[WebFrame _traverseNextFrameStayWithin:]): ditto
        (-[WebFrame _appendChild:]): ditto
        (-[WebFrame _removeChild:]): ditto
        (-[WebFrame _isDescendantOfFrame:]): ditto,
        (-[WebFrame _detachFromParent]): reorder a bit to avoid losing our bridge
	pointer before the bridge is due to release us, and don't release the
	bridge any more since it now owns us
        (-[WebFrame _initWithName:webFrameView:webView:bridge:]): new initializer,
	we no longer create the bridge, instead it is passed in
        (-[WebFrame initWithName:webFrameView:webView:]): Call the new designated
	initializer, but this method is no longer viable and should be deprecated.
        * WebView.subproj/WebFrameInternal.h:
        
	* WebView.subproj/WebView.m: WebView was changed to hold onto
	the WebBridge for the main frame instead of the WebFrame.
	
        (-[WebViewPrivate dealloc]): update for the fact that we hold
	a bridge now, not a frame.
        (-[WebView _close]): ditto
        (-[WebView _createFrameNamed:inParent:allowsScrolling:]): Create
	a bridge, not a frame.
        (-[WebView _commonInitializationWithFrameName:groupName:]): ditto.
        (-[WebView setDefersCallbacks:]): get mainFrame via method
        (-[WebView mainFrame]): Update to get the main frame properly

2005-12-30  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by Darin, landed by ap.
        
        Test: fast/text/justified-text-rect.html
        
        - WebKit part of fix for
          http://bugs.webkit.org/show_bug.cgi?id=5461
          Text width measured incorrectly when text-align: justify

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer selectionRectForRun:style:geometry:]): Added.
        (CG_drawHighlight): Use new function CG_selectionRect.
        (CG_selectionRect): New function to compute the selection rect.
        Eliminated rounding hackery that was required for keeping the highlight
        rect within the selection rect computed by
        InlineTextBox::selectionRect, since the latter uses this function now.
        The new selection rect is wider and matches AppKit more closely,
        although the right hand side is roundf()ed instead of cielf()ed for
        optimal caret positioning.
        (ATSU_drawHighlight): Use new function ATSU_selectionRect.
        (ATSU_selectionRect): New function to compute the selection rect.
        Much like CG_selectionRect.

2005-12-29  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Eric.

        Manual testcase added:
        WebCore/manual-tests/onunload-form-submit-crash.html

        - Fixed <rdar://problem/4268278> Submitting a form in onUnload event 
        handler causes crash in -[WebDataSource(WebPrivate) _commitIfReady:] 

        The problem is that the form submission in the unload event kicks off 
        a new load in the midst of the load that caused the unload event to 
        fire in the first place, so the two loads stomp each other.

        The solution is to cancel the first load and let the unload handler's 
        load win. (Firefox does the same.)

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]): Moved call to -closeURL up
        the call stack to _continueLoadRequest. (See below.) This has the 
        side-effect of always firing the unload event, even if the new 
        datasource never becomes committed, which seems like a good thing. 

        (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
        Call -closeURL here, instead of in _transitionToCommitted,  so that the
        unload handler can fire before we initialize any part of the load.
        
        Check provisionalDataSource for nil to discover if the unload event
        kicked off its own load.

        Cleared up some coments.

        (-[WebFrame _detachFromParent]):
        It turns out that if you close the window instead of just navigating
        to a new page, you get an alternate assertion failure/crash because
        the load kicked off by the unload event handler generates resource
        loader callbacks after the associated WebFrame/WebView has disappeared.

        The nifty solution here is just to reverse the order of calls to
        -stopLoading and -closeURL, thus guaranteeing that -stopLoading has the
        last word when you close a window.

2005-12-30  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by Eric, committed by Maciej.
        
        - fix for http://bugs.webkit.org/show_bug.cgi?id=6288
          HEAD build broken 12/29/2005

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (overrideLayoutOperation): Use previous character from the buffer
        instead of ch which may be uninitialized on the first iteration.

2005-12-29  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Eric.

        - finished frame traversal cleanup
        http://bugs.webkit.org/show_bug.cgi?id=6293

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge childFrames]): Removed (this was unused)
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _removeChild::]): Moved to FrameTraversal category.
        (-[WebFrame _childFrameCount]): New frame traversal method to avoid
	getting the count from the array directly.
        (-[WebFrame _appendChild:]): Factored out the parts of addChild: that
	seem directly relevant to adding a child.
        (-[WebFrame _removeChild:]): Moved to FrameTraversal category.
        (-[WebFrame _detachChildren]): Don't deallocate children array because
	there's no particular need to.
        (-[WebFrame _setDataSource:]): make the assert use _childFrameCount
        (-[WebFrame _opened]):
        (-[WebFrame _checkLoadComplete]): Instead of checking all frames starting
	from the main frame, check this frame and all ancestors. If a resource
	for a frame completes, that con only possibly finish loading for that
	frame and its ancestors, not any other frame in the tree.
	(-[WebFrame _recursiveCheckLoadComplete]): Removed, no longer needed.
        (-[WebFrame _childFramesMatchItem:]): Get child frame count in the new 
	approved way.
        (-[WebFrame _internalChildFrames]): removed
	(-[WebFrame _addChild:]): Use _appendChild: for most of the work.
        (-[WebFrame _generateFrameName]): Get child frame count in the new 
	approved way.
        (-[WebFrame _stopLoadingSubframes]): Use new frame traversal mechanisms,
	upon further consideration there's no need to copy part of the frame tree here.
        (-[WebFrame findFrameNamed:]): Remove extra braces.
        (-[WebFrame childFrames]): Make a new array using the frame traversal methods.
        * WebView.subproj/WebFramePrivate.h: Remove some methods.
        * WebView.subproj/WebMainResourceLoader.m:
        (-[WebMainResourceLoader didReceiveResponse:]): Do _checkLoadComplete on the current
	frame not the main frame (before there was no difference and now the new version is
	what is desired).
        * WebView.subproj/WebView.m:
        (-[WebView _finishedLoadingResourceFromDataSource:]): Remove stray space
        (-[WebView _mainReceivedBytesSoFar:fromDataSource:complete:]): Remove stray spaces
	and update FIXME comment.
        (-[WebView _receivedError:fromDataSource:]): Remove stray space

2005-12-29  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	- abstract frame traversal in WebFrame more
	http://bugs.webkit.org/show_bug.cgi?id=6283
	
	Rewrote most of the frame traversal code in WebFrame to use DOM-style 
	first/last/next/previous methods, to abstract access better in preparation 
	for moving it down. 

	As an added bonus, many formerly recursive methods are now iterative.

        * WebKit.xcodeproj/project.pbxproj: Use gnu99 dialect of C, so that
	variables can be declared in for loop initializers.

	- added new frame traversal methods, to avoid dealing with the children array
	directly:
	
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _firstChildFrame]): New method.
        (-[WebFrame _lastChildFrame]): New method.
        (-[WebFrame _previousSiblingFrame]): New method.
        (-[WebFrame _nextSiblingFrame]): New method.
        (-[WebFrame _traverseNextFrameStayWithin:]): Like traverseNextNode() in the DOM;
	uses some of the previous.

	- apply the new methods
	
        (-[WebFrame _createItemTreeWithTargetFrame:clippedAtTarget:]): Rewrite loop
	to use new traversal methods.
        (-[WebFrame _immediateChildFrameNamed:]): ditto, also added FIXME
        (-[WebFrame _setName:]): Improved comment, removed gratuitous brace
        (-[WebFrame _isDescendantOfFrame:]): Rewrote to chase parent pointers instead
	of looking in child arrays (duh)
        (-[WebFrame _detachChildren]): Rewrite loop to use new traversal methods,
	still walk backwards for now.
        (-[WebFrame _closeOldDataSources]): Rewrite using new traversal methods.
        (-[WebFrame _childFramesMatchItem:]): ditto
        (-[WebFrame _defersCallbacksChanged]): ditto
        (-[WebFrame _viewWillMoveToHostWindow:]): ditto
        (-[WebFrame _viewDidMoveToHostWindow]): ditto
        (-[WebFrame _addChild:]): don't use childFrames method
        (-[WebFrame _removeChild:]): Clear out the sibling pointers after unlinking from the list, 
	not obvious if anything needs this but it seems like the right thing to do.
        (-[WebFrame _generateFrameName]): don't bother to nil-check children array, since
	calling count on nil still gives 0.
        (-[WebFrame _saveDocumentAndScrollState]): Rewrite to use frame traversal methods
        (-[WebFrame _deepLastChildFrame]): renamed from _lastChildFrame, rewrite to use child
	traversal methods.
        (-[WebFrame _nextFrameWithWrap:]): Use new frame traversal stuff (mostly just
	a thin wrapper on _traverseNextFrameStayWithin: 
        (-[WebFrame _previousFrameWithWrap:]): Use new traversal functions
        (-[WebFrame _numPendingOrLoadingRequests:]): Rewrite loop with new tracrsal functions
        (-[WebFrame _reloadForPluginChanges]): ditto
        (-[WebFrame _recursive_pauseNullEventsForAllNetscapePlugins]): ditto
        (-[WebFrame _recursive_resumeNullEventsForAllNetscapePlugins]): ditto
        (-[WebFrame _documentViews]): ditto
        (-[WebFrame _updateDrawsBackground]): ditto
        (-[WebFrame _unmarkAllMisspellings]): ditto
        (-[WebFrame _atMostOneFrameHasSelection]): ditto
        (-[WebFrame _findFrameWithSelection]): ditto
        (-[WebFrame _stopLoadingSubframes]): ditto
        (-[WebFrame _subframeIsLoading]): ditto
        (-[WebFrame _descendantFrameNamed:sourceFrame:]): ditto

2005-12-29  Darin Adler  <darin@apple.com>

        * WebView.subproj/WebFrameView.m: (-[WebFrameViewPrivate dealloc]):
        Removed unused "draggingTypes" instance variable.

2005-12-29  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by darin 
        
        Test: fast/text/atsui-spacing-features.html

        - WebKit part of fix for
          http://bugs.webkit.org/show_bug.cgi?id=3922
          Variable word/letter spacing and full justification not supported for
          ATSUI-rendered text

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (overrideLayoutOperation): Add letter- and word-spacing and padding for
        justification.
        (createATSULayoutParameters): Compute padding per space.

2005-12-27  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by Maciej, landed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=4844
        Render "simple" Hebrew using the CG codepath

        * WebCoreSupport.subproj/WebTextRenderer.m: (shouldUseATSU): Exclude Hebrew letters and maqaf.

2005-12-25  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Geoff

        - Remove WebFrame's parent frame pointer, instead rely on WebCore's parent concept
        http://bugs.webkit.org/show_bug.cgi?id=6241

        * WebCoreSupport.subproj/WebBridge.h:
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge canTargetLoadInFrame:]): Use bridge parent method instead of needlessly
	asking for parent via WebFrame
        (-[WebBridge frameDetached]): Don't call _removeChild on the parent frame any more
	because WebFame's _detachFromParent takes care of that now.
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _createItemTreeWithTargetFrame:clippedAtTarget:]): Fix stray spaces
        (-[WebFrame _detachChildren]): Don't remove children as we loop any more, they
	can remove themselves.
        (-[WebFrame _detachFromParent]): Remove self from parent; don't nil out bridge
	until we are done with it.
        (-[WebFrame _transitionToCommitted:]): Remove some extra braces.
        (-[WebFrame _goToItem:withLoadType:]): Use parentFrame method in assert instead of parent
	field directly.
        (-[WebFrame _addChild:]): Don't poke at parent frame pointer in _private
	since it is not there any more.
        (-[WebFrame _removeChild:]): Remove extra braces and don't clear parent pointer
	explicitly any more.
        (-[WebFrame _addFramePathToString:]): Get parentFrame from method, not field.
        (-[WebFrame _loadDataSource:withLoadType:formState:]): Remove extra braces.
        (-[WebFrame _nextFrameWithWrap:]): Get parent in the proper way and clean up the
	coding style.
        (-[WebFrame _previousFrameWithWrap:]): Ditto.
        (-[WebFrame parentFrame]): Get parent from the bridge.

2005-12-25  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Hyatt.

	- fixed REGRESSION: world leak of WebDataSource
	http://bugs.webkit.org/show_bug.cgi?id=6242

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _stopLoading]): don't retain self until after
	the possible early return.

2005-12-24  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Geoff.

	- rearrange some code in WebDataSource so that more of the frame traversal logic
	is in WebFrame, in preparation for moving it down to WebBridge.
	http://bugs.webkit.org/show_bug.cgi?id=6239

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _archiveWithMarkupString:nodes:]): Assert that the
	data source is committed, doesn't make sense to archive otherwise.
        (-[WebDataSource _subframeArchivesWithCurrentState:]): New helper method.
        (-[WebDataSource _archiveWithCurrentState:]): Assert that the data source
	is committed. Use the helper.
        (-[WebDataSource _setWebView:]): Comment that we won't tell subframes that
	defers callback changed.
        (-[WebDataSource _startLoading]): Remove stray space.
        (-[WebDataSource _stopLoading]): Only handle local _stopLoading business.
	Cound on WebFrame to tell subframes to stop loading. Fold in _stopLoadingInternal
	and remove _recursiveStopLoading.
        (-[WebDataSource _startLoading:]): Clean up an assert slightly.
        (-[WebDataSource _setTitle:]): Remove stray spaces.
        (-[WebDataSource _defersCallbacksChanged]): Don't call subframes. WebFrame
	can do that.
        (-[WebDataSource isLoading]): Move checking of subframes down to WebFrame.
        (-[WebDataSource webArchive]): Return nil if the data source is not yet
	committed. It makes no sense to archive a provisional data source since it
	has no data yet.
        (-[WebDataSource addSubresource:]): Replace an assert with an early return,
	ASSERT is not an appropriate way to flag problems with the argument of a public
	method.
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _setLoadType:]): Remove stray space.
        (-[WebFrame _checkLoadCompleteForThisFrame]): Stop loading subframes
	manually and add a FIXME about confusingness of stopping loading here.
        (-[WebFrame _defersCallbacksChanged]): Tell our subframes.
        (-[WebFrame _addChild:]): Remove stray space.
        (-[WebFrame _stopLoadingSubframes]): New helper method.
        (-[WebFrame _subframeIsLoading]): New helper method, code moved
	from WebDataSource.
        (-[WebFrame stopLoading]): Tell subframes to stop loading.
        (-[WebFrame reload]): Remove extra braces.
        * WebView.subproj/WebFrameInternal.h:

2005-12-23  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John.

	- move more frame tree traversal code from WebView to WebFrame

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _atMostOneFrameHasSelection]): Moved this debug
	method from WebView, renamed it and changed it to return a boolean
	so it is appropriate for use in assertions instead of giving its own
	errors.
        (-[WebFrame _accumulateFramesWithSelection:]): Helper for the above.
        (-[WebFrame _findFrameWithSelection]):  Moved from WebView and renamed from
	_findSelectedFrame, also removed the skipping variant.
        (-[WebFrame _clearSelectionInOtherFrames]): Moved from WebView and
	changed how the logic works. Instead of clearing selection in any frame
	but the focus frame, it clears selection in all but this one.
        * WebView.subproj/WebFrameInternal.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView becomeFirstResponder]): Call _clearSelectionInOtherFrames
        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView PDFViewWillClickOnLink:withURL:]): Stop getting WebFrame
	in needlessly roundabout way.
        (-[WebPDFView becomeFirstResponder]): Call _clearSelectionInOtherFrames
        * WebView.subproj/WebTextView.m:
        (-[WebTextView _webFrame]): New helper method.
        (-[WebTextView _elementAtWindowPoint:]): Use it.
        (-[WebTextView becomeFirstResponder]): Call _clearSelectionInOtherFrames
        (-[WebTextView resignFirstResponder]): Fix style issue
        (-[WebTextView clickedOnLink:atIndex:]): Use new helkper
        * WebView.subproj/WebView.m:
        (-[WebView selectedFrame]): Call to WebFrame as appropriate
        (-[WebView _selectedOrMainFrame]): Fix style issue
        * WebView.subproj/WebViewInternal.h:

2005-12-22  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Eric.

	- move a few more methods from WebView to WebFrame.	

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _hasSelection]): Renamed from _frameIsSelected: and moved from
	WebView.
        (-[WebFrame _clearSelection]): Renamed from _deselectFrame: and moved from 
	WebView.
        * WebView.subproj/WebFrameInternal.h:
        * WebView.subproj/WebView.m:
        (-[WebView searchFor:direction:caseSensitive:wrap:]): Update for renames.
        (-[WebView _findSelectedFrameStartingFromFrame:skippingFrame:]): Ditto.
        (-[WebView _debugCollectSelectedFramesIntoArray:startingFromFrame:]): Ditto.
        (-[WebView _selectedFrameDidChange]):

2005-12-21  Timothy Hatcher  <timothy@apple.com>

        * WebKit.xcodeproj/project.pbxproj:
          Set tab width to 8, indent width to 4 and uses tabs to false per file.

2005-12-20  Alexey Proskuryakov  <ap@nypop.com>

        Reviewed by justin
        
        <http://bugs.webkit.org/show_bug.cgi?id=4682>
        -[WebHTMLView firstRectForCharacterRange:] is using _selectedRange instead of the given range if no marked text

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView firstRectForCharacterRange:]): 
        Handle some large unsigned values the way NSTextView does.
        Actually use the range passed in instead of _selectedRange,
        use of _selectedRange was a workaround that is no longer necessary.

2005-12-20  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin Adler.
        
        - fixed http://bugs.webkit.org/show_bug.cgi?id=6146
          (REGRESSION: Bold font used for Google search result pages is too thick)
          
        This is a problem with a particular font that was installed by Microsoft Office X. Though the
        font and/or lower levels of font-handling code in the system are buggy, this bad symptom will
        occur for users of Safari and other WebKit clients who happen to have one of these bad fonts.
        This adds a workaround to avoid the problem.

        * WebCoreSupport.subproj/WebTextRendererFactory.m:
        (-[WebTextRendererFactory fontWithFamilies:traits:size:]):
        When we're going to synthesize bold or italic, yet the font we looked up was apparently a
        match for the traits, try to look up a font that without the to-be-synthesized traits.
        This way, instead of applying synthetic bold over Arial Bold, we'll apply synthetic
        bold over Arial Regular, which is uglier than just using Arial Bold, but far less ugly
        than using Arial Bold with synthetic bold too.

 2005-12-16  Justin Garcia  <justin.garcia@apple.com>
 
         <rdar://problem/4103393> Frequent Safari crash on lexisnexus.com (khtml::Selection::xPosForVerticalArrowNavigation)
         <rdar://problem/4330451> CrashTracer: [REGRESSION] 2235 crashes in Safari at com.apple.WebCore: khtml::Selection::xPosForVerticalArrowNavigation const  436
         
         Reviewed by darin
         
         WebCore will crash when a selection that starts or ends in a node 
         that has been removed from the document is modify()d.  This can occur:
         (1) in non-editable regions (4103393 and 4330451), (2) in editable 
         regions (4383146) as the result of arbitrary DOM operations, and (3) in 
         Mail (4099739) as the result of an editing operation that sets a 
         bad ending selection.
         
         Crashes of type (1) can occur when the user uses the arrow keys 
         to interact with a web app, or when the user tries to use 
         command-shift-arrow to switch tabs (this is a depricated
         combo that will work if no one else responds to it). The easiest 
         way to fix these crashes is to disallow editing'ish selection changes 
         like moveDown:, selectWord:, pageDown:, etc, when the selection 
         is in a non-editable region.
         
         Crashes of type (2) will require a more complicated fix (but occur 
         much less often than type (1)).  Crashes of type (3) must be 
         fixed by tracking down the editing operation that sets bad selections.
         
         Added a layout-test:
         * editing/selection/selection-actions.html
 
         * WebView.subproj/WebHTMLView.m:
         (-[WebHTMLView _canAlterCurrentSelection]):
         (-[WebHTMLView _alterCurrentSelection:direction:granularity:]):
         (-[WebHTMLView _alterCurrentSelection:verticalDistance:]):
         (-[WebHTMLView _expandSelectionToGranularity:]):
         * WebView.subproj/WebHTMLViewPrivate.h:

2005-12-20  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by mitz
        
        Fixed more uninitialized variable warnings, and 
        removed an extra semicolon.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (overrideLayoutOperation):
        (createATSULayoutParameters):

2005-12-20  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	- push more of frame lookup and management from WebView to
	WebFrame, this is in preparation for shifting this to WebCore
	http://bugs.webkit.org/show_bug.cgi?id=6163
	
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge closeWindowSoon]): Adjust for change to WebFrameNamespaces
        (-[WebBridge runModal]): ditto
        * WebView.subproj/WebControllerSets.h:
        * WebView.subproj/WebControllerSets.m:
        (+[WebFrameNamespaces addFrame:toNamespace:]): This now operates in terms
	of WebFrames (expected to be the main frame) not WebViews.
        (+[WebFrameNamespaces framesInNamespace:]): Ditto.
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _setFrameNamespace:]): Set self, not WebView.
        (-[WebFrame _shouldAllowAccessFrom:]): Moved this code above use
	to avoid prototyping the method.
        (-[WebFrame _descendantFrameNamed:sourceFrame:]): Ditto.
        (-[WebFrame _frameInAnyWindowNamed:sourceFrame:]): Copied logic
	over from WebView.
        (-[WebFrame findFrameNamed:]): Do it all here, don't call WebView.
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebView.m:
        * WebView.subproj/WebViewPrivate.h:

2005-12-20  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by adele.

        Fixed build failure due to missing 'b's in my last checkin.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge isStatusbarVisible]): changed 'B' to 'b'
        (-[WebBridge setStatusbarVisible:]): ditto

2005-12-20  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by Darin, committed by Adele.

        - fix deployment builds broken by the ATSUI multiple renderers patch
        http://bugs.webkit.org/show_bug.cgi?id=6153

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (createATSULayoutParameters): Assign initial values, which will never be used,
        to substituteRenderer and firstSmallCap, to avoid uninitialized variable warnings.

2005-12-20  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by John.

        Part of fix for <rdar://problem/4310363> JavaScript window.open: Height
        is 1 pixel short, and related bugs. See WebCore ChageLog.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge webView]): Added method.

2005-12-20  Eric Seidel  <eseidel@apple.com>

        Reviewed by mjs.

        Development-only build fix.

        * WebView.subproj/WebFrame.m:
        (-[WebFramePrivate dealloc]): fixed typo

2005-12-20  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed.

	- revert accidental commit of this file.

2005-12-19  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Eric.

	- Move handling of frame namespaces down to WebFrame.
	- Put some internal class declarations in the implementation file.

        * WebView.subproj/WebControllerSets.m:
        (+[WebFrameNamespaces addWebView:toFrameNamespace:]):
        (+[WebFrameNamespaces webViewsInFrameNamespace:]):
        * WebView.subproj/WebFrame.m:
        (-[WebFramePrivate dealloc]):
        (-[WebFrame _setFrameNamespace:]):
        (-[WebFrame _frameNamespace]):
        * WebView.subproj/WebFrameInternal.h:
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebView.m:
        (-[WebView _close]):
        (-[WebView _findFrameNamed:sourceFrame:]):
        (-[WebView setGroupName:]):
        (-[WebView groupName]):
        * WebView.subproj/WebViewInternal.h:

2005-12-19  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by Darin, committed by Adele.
        
        Test: fast/text/atsui-multiple-renderers.html

        - fix http://bugs.webkit.org/show_bug.cgi?id=6139
          ATSUI code path should implement small caps, synthetic bold and oblique and correct metrics for fallback fonts

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (overrideLayoutOperation): Fetch renderer info from the renderers array;
        add synthetic bold offset; render only synthetic bold in the synthetic bold pass.
        (drawGlyphs): Replaced 14 with new SYNTHETIC_OBLIQUE_ANGLE define.
        (initializeATSUStyle): Apply a skewing transform for synthetic oblique.
        (createATSUTextLayout): Merged into createATSUTextLayout.
        (createATSULayoutParameters): Merged in createATSUTextLayout; allocate
        and fill a renderers array and a character buffer for small caps and mirroring;
        (applyMirroringToRun): Merged into createATSULayoutParameters.
        (ATSU_drawHighlight): Deleted mirroring code.
        (ATSU_draw): Deleted mirroring code; added second pass for synthetic bold.
        (ATSU_pointToOffset): Deleted mirroring code.

2005-12-19  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by Darin, committed by Adele.
        
        Test: fast/text/atsui-kerning-and-ligatures.html

        - fix http://bugs.webkit.org/show_bug.cgi?id=6137
          Disable kerning and some ligatures in the ATSUI code path

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (initializeATSUStyle): Disable kerning; disable ligatures unless the font
        does not contain 'a', in which case it is assumed to never be rendered
        by the CG code path.

2005-12-19  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by Darin, committed by Adele.
        
        Test: fast/text/should-use-atsui.html

        - fix for http://bugs.webkit.org/show_bug.cgi?id=6132
          Incorrect selection highlighting for ATSUI text when selected range is "CG-safe"

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (shouldUseATSU): Always start scanning from 0 since drawing and
        highlighting also measure everything up to run->from.

2005-12-17  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Eric.

	- remove some unused SPI headers.

        * DOM.subproj/WebDOMDocument.h: Removed.
        * DOM.subproj/WebDOMElement.h: Removed.
        * DOM.subproj/WebDOMNode.h: Removed.
        * WebKit.xcodeproj/project.pbxproj:

2005-12-17  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed and landed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=5479
          Can't select text with RTL override rendered by ATSUI

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (overrideLayoutOperation): Update since the layout only includes from -> to now.
        (-[WebTextRenderer pointToOffset:style:position:includePartialGlyphs:]): Remove
        reversed parameter.
        (CG_floatWidthForRun): Add code to handle RTL case.
        (addDirectionalOverride): Put the override around the entire run.
        (ATSU_drawHighlight): Rearrange and reuse ATSU_floatWidthForRun for more of the work.
        Also round.
        (ATSU_pointToOffset): Remove reversed parameter and run swapping.
        (CG_pointToOffset): Remove reversed parameter, using rtl flag in style instead.

2005-12-16  Evan Gross  <evan@rainmakerinc.com>

        Reviewed and landed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=4680
          WebHTMLView (WebNSTextInputSupport) - attributedSubstringFromRange "not yet implemented"

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView attributedSubstringFromRange:]):
        Implement by calling the same RTF conversion used when copying to the pasteboard.

2005-12-16  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed and landed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=6090
          REGRESSION: Assertion failure when choosing Copy from a WebImageView's contextual menu

        * WebView.subproj/WebImageView.m:
        (-[WebImageView elementAtPoint:]): Use WebCoreElementImageRendererKey
        for the image renderer and WebElementImageKey for the image.

2005-12-15  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	- remove _frameForView: method from WebView and replace with a direct pointer on the WebFrameView in the WebFrame

        * Misc.subproj/WebNSViewExtras.m:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _detachFromParent]):
        (-[WebFrame _loadDataSource:withLoadType:formState:]):
        (-[WebFrame initWithName:webFrameView:webView:]):
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _setWebFrame:]):
        (-[WebFrameView webFrame]):
        * WebView.subproj/WebFrameViewInternal.h:
        * WebView.subproj/WebView.m:
        * WebView.subproj/WebViewPrivate.h:

2005-12-13  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	- remove the dead _frameForDataSource: method (WebDataSource now knows its WebFrame)
	http://bugs.webkit.org/show_bug.cgi?id=6072
	
        * WebView.subproj/WebView.m:
        * WebView.subproj/WebViewPrivate.h:

=== Safari-521~5 ===

2005-12-12  Timothy Hatcher  <timothy@apple.com>

        Reviewed by nobody, simple build fix.

        Fixes a couple ambiguous selector build errors when building with GCC 3.3.

        * Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase releaseIconForURL:]):
        * WebView.subproj/WebHTMLView.m:
        (-[NSView _web_layoutIfNeededRecursive:testDirtyRect:]):
        (-[NSArray elementAtPoint:]):

2005-12-12  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed and checked in by John Sullivan.
        
        Fix for: http://bugs.webkit.org/show_bug.cgi?id=6053
        WebIconDatabase returns the Accessibility Verifier app icon instead of
        a generic document icon
        
        * Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase _iconForFileURL:withSize:]):
        use file type iconForFileType:NSFileTypeForHFSTypeCode(kGenericDocumentIcon) instead of '????'
        to get the generic document icon.

2005-12-12  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.
        
        - Made protocol <WebDocumentSelection> include protocol <WebDocumentText>, for clarity.
        This required moving some methods from WebTextView, which conformed to <WebDocumentText>,
        up into superclass WebSearchableTextView, which conformed to <WebDocumentSelection>.

        * Misc.subproj/WebSearchableTextView.m:
        (-[NSString supportsTextEncoding]):
        moved this method (unchanged) from subclass WebTextView
        (-[NSString string]):
        ditto
        (-[NSString attributedString]):
        ditto
        (-[NSString selectedString]):
        ditto
        (-[NSString selectedAttributedString]):
        ditto
        (-[NSString selectAll]):
        ditto
        (-[NSString deselectAll]):
        ditto
        
        * WebView.subproj/WebDocumentPrivate.h:
        made <WebDocumentSelection> incorporate <WebDocumentText> rather than just <NSObject>
        * WebView.subproj/WebHTMLView.h:
        removed <WebDocumentText> from protocol list since it's covered by <WebDocumentSelection>
        * WebView.subproj/WebPDFView.h:
        ditto
        * WebView.subproj/WebTextView.h:
        ditto
        * WebView.subproj/WebTextView.m:
        removed the methods that were moved into WebSearchableTextView.m

2005-12-10  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - fix http://bugs.webkit.org/show_bug.cgi?id=6032
          REGRESSION: Uncaught exception when image is dragged out of webpage

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
        Pass the image renderer, not the NSImage.
        (-[WebHTMLView elementAtPoint:]): Add an NSImage to the dictionary, which now comes from
        WebCore with only an image renderer.
        * WebView.subproj/WebView.m: (-[WebView _writeImageElement:withPasteboardTypes:toPasteboard:]):
        Pass the image renderer, not the NSImage.

2005-12-10  Darin Adler  <darin@apple.com>

        Was getting build failures related to "count" methods.
        Made Tim's build fix Leopard-only.

        * WebView.subproj/WebPreferencesPrivate.h: Go back to <PDFKit/PDFKit.h> on Tiger.

2005-12-09  John Sullivan  <sullivan@apple.com>

        Reviewed by Adele Peterson.
        
        - fixed <rdar://problem/4373905> Cannot paste in Tiger Mail using TOT WebKit

        * WebView.subproj/WebView.m:
        (-[WebView _frameForCurrentSelection]):
        I removed this method many moons ago when restructuring the code involving frames and selection.
        Too bad Mail was still using it (d'oh!). In Leopard Mail has updated to use newer SPI (which should
        become API), but to continue to work with Mail on Tiger we need this method to be around. Now it's
        just a cover for the method _selectedOrMainFrame, to which it was renamed so very long ago.

2005-12-09  Tim Omernick  <timo@apple.com>

        Reviewed by John Sullivan.

        * Carbon.subproj/HIWebView.m:
        (UpdateCommandStatus):
	Don't call -performSelector:withObject: on a method that returns a BOOL; this is not guaranteed to work on all architectures.
	-performSelector:withObject:'s return value should only be checked if the method returns an object.

2005-12-09  Timothy Hatcher  <timothy@apple.com>

        Reviewed by nobody, build fix.

        Using <PDFKit/PDFKit.h> was causing build failures for the Mail team.
        The comment about getting an ambiguous signature conflict anywhere the
        method "count" is used seems to no longer be an issue.

        * WebView.subproj/WebPreferencesPrivate.h: Use <Quartz/Quartz.h>

2005-12-08  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Hatcher.
        
        Some cleanup of how selection rects are associated with NSViews.

        * WebView.subproj/WebDocumentPrivate.h:
        Added a -selectionView method to <WebDocumentSelection>, and clarified that the
        selectionRect is in the coordinate system of this view.

        * Misc.subproj/WebSearchableTextView.m:
        (-[WebSearchableTextView selectionView]):
        new method, returns self
        
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView selectionView]):
        new method, returns self
        
        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView selectionRect]):
        translate result into coordinate system of [PDFSubview documentView]
        (-[WebPDFView selectionView]):
        new method, returns [PDFSubview documentView]

2005-12-08  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick and Dave Hyatt.
        
        - fixed these semi-legendary bugs:
        <rdar://problem/4032405> Inline PDF doesn't get keyboard focus like web pages do, so can't scroll with keys without clicking
        <rdar://problem/4265684> PDFs use secondary selection when displaying found text (4748)

        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView becomeFirstResponder]):
        Discovered that there is indeed PDFKit API for accessing the view that becomes focused; now
        passes the focus down to that view.

2005-12-08  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.
        
        - Added WebKit mechanism to help correctly pass the first responder into the PDF view hierarchy,
        in order to start addressing keyboard focus and selection highlight issues. Unfortunately this 
        doesn't actually have any user effect yet due to problems that must be fixed in PDFKit.

        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView acceptsFirstResponder]):
        Overridden to returns YES. Needed so NSClipView knows it's OK to pass focus down to this level.
        (-[WebPDFView becomeFirstResponder]):
        With setNextKeyView:, splices the PDF view into the focus-passing mechanism in much the same
        way as NSScrollView and NSClipView.
        (-[WebPDFView setNextKeyView:]):
        With becomeFirstResponder:, splices the PDF view into the focus-passing mechanism in much the same
        way as NSScrollView and NSClipView.
        (-[WebPDFView resignFirstResponder]):
        Removed this method because the WebPDFView itself is never first responder except transiently.

2005-12-08  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John.

	- some small changes towards frame tree refactoring

	Renamed WebViewSets to WebFrameNamespaces, and put the method for
	performing a selector on all extant WebViews to WebView itself,
	with a separate set tracking live WebViews. This should allow
	moving the storage of this info down to WebCore more easily.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge closeWindowSoon]):
        (-[WebBridge runModal]):
        * WebCoreSupport.subproj/WebViewFactory.m:
        (-[WebViewFactory refreshPlugins:]):
        * WebView.subproj/WebControllerSets.h:
        * WebView.subproj/WebControllerSets.m:
        (+[WebFrameNamespaces addWebView:toFrameNamespace:]):
        (webView::if):
        (+[WebFrameNamespaces webViewsInFrameNamespace:]):
        * WebView.subproj/WebView.m:
        (+[WebView _makeAllWebViewsPerformSelector:]):
        (-[WebView _removeFromAllWebViewsSet]):
        (-[WebView _addToAllWebViewsSet]):
        (-[WebView _close]):
        (-[WebView _findFrameNamed:sourceFrame:]):
        (-[WebView _commonInitializationWithFrameName:groupName:]):
        (-[WebView setGroupName:]):
        * WebView.subproj/WebViewInternal.h:

2005-12-08  Darin Adler  <darin@apple.com>

        Reviewed by Eric.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=5689
          add support for CSS "custom cursors" (cursor images)

        * WebCoreSupport.subproj/WebImageRenderer.h: Remove declaration of TIFFRepresentation and
        image methods since both are required by the WebCoreImageRenderer protocol now and we don't
        have to re-declare them.

        * Misc.subproj/WebNSPasteboardExtras.m: Add an import of the WebCoreImageRenderer.h file
        since we need to use methods inherited from that protocol.
        * Misc.subproj/WebNSViewExtras.m: Ditto.
        * WebCoreSupport.subproj/WebImageRenderer.m: Ditto. (Use and implement.)

2005-12-07  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by Maciej, landed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=5878
          REGRESSION (WebTextRenderer.m r1.201): pointToOffset always takes the CG code path

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer pointToOffset:style:position:reversed:includePartialGlyphs:]):
        Added the missing "return".

2005-12-07  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.
        
        - <rdar://problem/4331488> TOT Assertion failure in -[WebHTMLView nextValidKeyView] 
        @ home.netscape.com

        * WebView.subproj/WebHTMLView.m:
        (-[NSArray nextValidKeyView]):
        Removed assert that I added a while back. In this case at least, the assertion is
        overzealous, and I can't recreate the tortured chain of logic that led me to adding
        this assertion in the first place.

2005-12-06  David Harrison  <harrison@apple.com>

	Reviewed by Darin.

	- fix <rdar://problem/4365308> Glendale Regression: Floating dictionary doesn't work well in Safari text areas/fields
	
	Add use of NSAccessibilityHitTest to the list of exceptions.

	* WebView.subproj/WebHTMLView.m:
	(-[WebHTMLView hitTest:]): check for NSFlagsChanged event. 

2005-12-05  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin Adler.

        * WebView.subproj/WebHTMLView.m:
        (-[NSArray validateUserInterfaceItem:]):
        one more tweak: moved jumpToSelection: to be validated the same way as
        centerSelectionInVisibleArea:, since it now calls the same code. Might not
        make a difference in any real code, but you never know.

2005-12-05  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin Adler.

        * WebView.subproj/WebHTMLView.m:
        (-[NSArray validateUserInterfaceItem:]):
        removed double handling of centerSelectionInVisibleArea

2005-12-05  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.
        
        - WebKit part of fix for 
        <rdar://problem/4365690> Find > Jump to Selection does nothing on plain-text documents (inc. source HTML)        

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView jumpToSelection:]):
        Reimplement jumpToSelection: to call centerSelectionInVisibleArea:, and added a comment explaining why
        jumpToSelection: exists at all. Note that centerSelectionInVisibleArea: was already implemented here; it
        was added as part of HTML editing implementation without us realizing that it was the API replacement
        for jumpToSelection:.
        (-[WebHTMLView validateUserInterfaceItem:]):
        validate centerSelectionInVisibleArea: the same way we validate jumpToSelection: (we should have done
        this when centerSelectionInVisibleArea: was implemented)
        
        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView centerSelectionInVisibleArea:]):
        new method, same code that jumpToSelection: used to have
        (-[WebPDFView jumpToSelection:]):
        now calls centerSelectionInVisibleArea:, and there's now a comment about why it exists at all.
        (-[WebPDFView validateUserInterfaceItem:]):
        validate centerSelectionInVisibleArea: the same way we validate jumpToSelection:

2005-12-04  Tim Omernick  <timo@apple.com>

        Reviewed by Dave Harrison, John Sullivan.

	<rdar://problem/4364847> REGRESSION: QuickTime movies open without controller or don't open at all (5928)

	I changed WebFrameView on 2005-11-29 so that it avoids creating duplicate WebPluginDocumentViews.
	Unfortunately, this change caused a regression due to the fact that it subtly changed when plugins are
	initialized.  Certain plugins (e.g. QuickTime) expect to be initialized after the WebPluginDocumentView
	has been "committed" (inserted into the view hierarchy).

	My fix is to ensure that the plugin is initialized where we previously would have created that second
	WebPluginDocumentView -- that is, the plugin is created after the WebPluginDocumentView has been committed.
	
        * Plugins.subproj/WebPluginDocumentView.m:
        (-[WebPluginDocumentView setDataSource:]):
	Don't initialize the plugin if the WebPluginDocumentView has not been inserted into the view hierarchy.
	We assume here that a later call to -setDataSource: will pass this conditional, once the WebDocumentView
	has been committed.
	
2005-12-02  Justin Garcia <justin.garcia@apple.com>

        <rdar://problem/4345030>
        Denver REGRESSION (10.4.2-10.4.3): Two identical warnings on "Back" from Amazon's package tracker
        
        Before checking the navigation policy for a request, the request is compared
        against the last checked request.  If the two are the same, no check is done.
        In the bug, the two requests are identical except for the boolean on
        NSURLRequests that tells Foundation to support multipart loads for that request.
        One request was the one that was used to start servicing "Back" operation, and
        the second was being used to start loading the page (it needed to be reloaded 
        because it was the result of a form submission). Set the boolean on all 
        NSURLRequests, not just one's that are about to be used to start a load.   

        Reviewed by harrison

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _startLoading:]):
        (-[WebDataSource initWithRequest:]):
        * WebView.subproj/WebDataSourcePrivate.h:

2005-12-01  Darin Adler <darin@apple.com>

        Reviewed by Vicki.
	
	- fix <rdar://problem/4349721> Regression: Hovering over menu item doesn't highlight menu item or 
	mousing up on menu item in applet does not open URL in new window at smartmoney.com

	Since Java depends on doing a hit test inside it's mouse moved handling, let hit testing on Java 
	applets go through the standard NSView code path. Since this should only happen for Java, add a global
	so that we can Use our own WebHTMLView hit testing when calling from _updateMouseoverWithEvent.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _hitViewForEvent:]): rename forceRealHitTest to forceNSViewHitTest
        (-[WebHTMLView _updateMouseoverWithEvent:]): set global variable  to force a WebHTMLView-style hit test from here
        (-[WebHTMLView hitTest:]): perform the appropriate hit test based on global variables 

2005-11-29  Andrew Wellington  <proton@wiretapped.net>

        Reviewed by darin.  Committed by eseidel.

        Fix for: http://bugs.webkit.org/show_bug.cgi?id=4726
        Drop of multiple non-image file URLs only yields one item

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentWithPaths:]):

2005-11-29  Tim Omernick  <timo@apple.com>

        Reviewed by John Sullivan, Eric Seidel

	<rdar://problem/4340787> Safari & Dashcode create 2 instances of the QC plug-in
	
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _makeDocumentViewForDataSource:]):
	Instead of creating a new WebDocumentView, use the WebDataSource's representation if it is a WebDocumentView
	of the appropriate class.  Right now, this can only happen when the loading document is a standalone WebKit
	plugin, because WebPluginDocumentView is both the WebDocumentView and the WebDocumentRepresentation for that
	kind of page load.
	
	I have verified that this does not affect other kinds of page loads; in all other cases, the representation
	class is distinct from the document view class.

	I talked with Chris Blumenberg about this change (he knows this code), and he agreed that this is the right
	approach.

2005-11-28  Alexey Proskuryakov  <ap@nypop.com>

        Reviewed by Darin. Committed by Maciej.

	- fixed "Word completion doesn't work at end of word (unless last word)"
	(http://bugs.webkit.org/show_bug.cgi?id=4062)

        * WebView.subproj/WebHTMLView.m:
        (-[WebTextCompleteController doCompletion]):

2005-11-28  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.
        
        Probable fix for <rdar://problem/4356060> crash in -[WebHistoryItem _mergeAutoCompleteHints:]

        * History.subproj/WebHistory.m:
        (-[WebHistoryPrivate addItem:]):
        retain/release oldEntry until we're done with it, since removing it from dictionary might
        cause it to be dealloc'ed otherwise.
        
        * History.subproj/WebHistoryItem.m:
        (-[WebHistoryItem _mergeAutoCompleteHints:]):
        added an assert

2005-11-26  Alexey Proskuryakov  <ap@nypop.com>

        Reviewed by mjs.  Committed by eseidel.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=5230
        "characterIndexForPoint: not yet implemented"

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView characterIndexForPoint:]):
        (-[WebHTMLView firstRectForCharacterRange:]):

2005-11-22  Darin Adler  <darin@apple.com>

        * WebView.subproj/WebView.h: Fixed incorrect comment in public header.

2005-11-18  Vicki Murley  <vicki@apple.com>

	Changes by Tim H, reviewed by Vicki.

	- call shouldClose on the bridge for the main frame

        * WebView.subproj/WebView.m:
        (-[WebView shouldClose]):

2005-11-18  Vicki Murley  <vicki@apple.com>

        Changes by Darin, reviewed by Beth and Vicki.

        - fix <rdar://problem/3939265> support "before unload" event and onbeforeunload handler (supported by both IE and Mozilla)

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge canRunBeforeUnloadConfirmPanel]):
        (-[WebBridge runBeforeUnloadConfirmPanelWithMessage:]):
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _checkNavigationPolicyForRequest:dataSource:formState:andCall:withSelector:]):
        (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
        * WebView.subproj/WebUIDelegatePrivate.h:
        * WebView.subproj/WebView.m:
        (-[WebView shouldClose]):
        * WebView.subproj/WebViewPrivate.h:

2005-11-10  Maciej Stachowiak  <mjs@apple.com>

        Build fix, not reviewed.

        * Plugins.subproj/WebBaseNetscapePluginViewInternal.h: Added.

2005-11-10  Tim Omernick  <timo@apple.com>

        Reviewed by Geoff.

	<rdar://problem/4237941> Dashboard needs a way to stop Netscape plug-ins from getting null events

        * Plugins.subproj/WebBaseNetscapePluginViewInternal.h: Added.
	Added WebInternal category, with -stopNullEvents and -restartNullEvents.  These methods already exist on WebBaseNetscapePluginView.
	I am just exposing them	to callers elsewhere within WebKit.

        * WebKit.xcodeproj/project.pbxproj:
	Added WebBaseNetscapePluginViewInternal.h.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _recursive_pauseNullEventsForAllNetscapePlugins]):
	Walks down the web frame hierarchy and calls -_pauseNullEventsForAllNetscapePlugins on each WebHTMLView.
        (-[WebFrame _recursive_resumeNullEventsForAllNetscapePlugins]):
	Same as above, but calls -_resumeNullEventsForAllNetscapePlugins.
	
        * WebView.subproj/WebFramePrivate.h:
	Declared -_recursive_pauseNullEventsForAllNetscapePlugins and -_recursive_pauseNullEventsForAllNetscapePlugins.
	
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _pauseNullEventsForAllNetscapePlugins]):
	Checks subviews for WebBaseNetscapePluginViews, and calls -stopNullEvents on them.
        (-[WebHTMLView _resumeNullEventsForAllNetscapePlugins]):
	Same as above, but calls -restartNullEvents.

        * WebView.subproj/WebHTMLViewInternal.h:
	Declared -_pauseNullEventsForAllNetscapePlugins and -_resumeNullEventsForAllNetscapePlugins.

2005-11-07  Geoffrey Garen  <ggaren@apple.com>

        Darin reviewed this a while back.

        - Fixed <rdar://problem/4161660> window.close followed by window.print
        in onload handler crashes Safari in KJS::ScopeChain::bottom
        (redmccombstoyota.com)
        
        Added a call to stopLoading inside closeWindowSoon to prevent load
        events from firing after a window has torn down.
        
        Manual test case: WebCore/manual-tests/window-close-during-parsing.html

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge closeWindowSoon]):

2005-11-03  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin and Vicki.

        * WebKit.xcodeproj/project.pbxproj:
          Change to use $(SYSTEM_LIBRARY_DIR) consistently and place
          $(NEXT_ROOT) in a few spots to make build-root work.

2005-11-01  Tim Omernick  <timo@apple.com>

        Reviewed by John Sullivan.

	<rdar://problem/4318632>

	I've added a new notification, WebPluginWillPresentNativeUserInterfaceNotification.  Plugins are expected to post this
	notification before presenting "native UI", such as dialog boxes.  A Dashboard client can observe this notification to
	hide the Dashboard layer when plugins present external UI.
	
        * English.lproj/StringsNotToBeLocalized.txt:
	Added "WebPluginWillPresentNativeUserInterface".

        * Plugins.subproj/WebPluginsPrivate.h: Added.
        * Plugins.subproj/WebPluginsPrivate.m: Added.
	Declare WebPluginWillPresentNativeUserInterfaceNotification.

        * WebKit.xcodeproj/project.pbxproj:
	Added WebPluginsPrivate.[hm]

	* WebKit.exp:
	Added _WebPluginWillPresentNativeUserInterfaceNotification.

2005-11-01  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin Adler.
        
        fixed deployment build by hiding local variables used only in ASSERTs on builds for
        which ASSERT_DISABLED is true.

        * History.subproj/WebHistory.m:
        (-[WebHistoryPrivate removeItemForURLString:]):
        (-[WebHistoryPrivate setLastVisitedTimeInterval:forItem:]):

2005-11-01  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.
        
        - fixed <rdar://problem/4324104> Assertion failure (foundDate) in WebHistory
        
        WebFrame was updating the last visited date on a WebHistoryItem behind WebHistory's
        back, causing WebHistory's caches of items by date to get out of sync with reality.
        Changed to set the date through WebHistory rather than directly.

        * History.subproj/WebHistory.m:
        (-[WebHistoryPrivate _removeItemFromDateCaches:]):
        New method, extracted from removeItemForURLString.
        (-[WebHistoryPrivate removeItemForURLString:]):
        Now calls extracted method. Cleaned up white space a little.
        (-[WebHistoryPrivate _addItemToDateCaches:]):
        New method, extracted from addItem:
        (-[WebHistoryPrivate addItem:]):
        Now calls extracted method. Cleaned up white space a little.
        (-[WebHistoryPrivate setLastVisitedTimeInterval:forItem:]):
        New method, removes item from date caches, changes date, then adds item back to
        date caches and sends notification.
        (-[WebHistory setLastVisitedTimeInterval:forItem:]):
        New method, cover for WebHistoryPrivate version.
        
        * History.subproj/WebHistoryItem.m:
        (-[WebHistoryItem _setLastVisitedTimeInterval:]):
        Don't send notification here; send from new WebHistory method instead.
        
        * History.subproj/WebHistoryItemPrivate.h:
        Added comment about avoiding incorrect use of _setLastVisitedTimeInterval:
        * History.subproj/WebHistoryPrivate.h:
        Added declarations for WebHistory and WebHistoryPrivate versions of 
        setLastVisitedTimeInterval:forItem:
        
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]):
        change history item's date via new WebHistory method rather than directly

2005-10-25  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin.

        Remove the use of a stamp file in the Frameworks symlink build phase.
        This lets us pass the build verification.

        * WebKit.xcodeproj/project.pbxproj:

2005-10-24  Darin Adler  <darin@apple.com>

        Reviewed by Geoff.

        - change internal methods in WebTextRenderer to be functions in case this
          has any effect on speed (also makes things a bit clearer, in my opinion)

        * WebCoreSupport.subproj/WebTextRenderer.h: Made all fields public, which is
        OK since this is really a private class. Made setAlwaysUseATSU: class method
        public too for the same reason.

        * WebCoreSupport.subproj/WebTextRenderer.m: Change all methods to functions.
        (destroy): Function name for method free.
        (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]): Removed code to first subtract
        lineSpacing - descent, then later add it back.
        (getSmallCapsRenderer): Function name for method smallCapsRenderer.
        (findSubstituteFont): Function name for method substituteFontForString:families:.
        (findSubstituteRenderer): Function name for method substituteRendererForCharacters:length:families:.
        (updateGlyphMapEntry): Function name for method updateGlyphEntryForCharacter:glyphID:substituteRenderer:.
        (extendGlyphMap): Function name for method extendCharacterToGlyphMapToInclude:.
        (extendWidthMap): Function name for method extendGlyphToWidthMapToInclude:.
        (getTextBounds): Function name for method trapezoidForRun:style:atPoint:.

2005-10-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by Darin.  Committed by David Harrison.

        http://bugs.webkit.org/show_bug.cgi?id=5415
        "Left border of selection highlight leaves behind a trail"
        
        * manual-tests/drag_select_highlighting.html: Added.
        (this test case was added to WebCore)
   
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (overrideLayoutOperation):
        (-[WebTextRenderer CG_drawHighlightForRun:style:geometry:]):
        (-[WebTextRenderer ATSU_drawHighlightForRun:style:geometry:]):
        (advanceWidthIterator):


2005-10-23  Tim Omernick  <tomernick@apple.com>

        Reviewed by Dave Hyatt.

	<http://bugs.webkit.org/show_bug.cgi?id=5365>

	Send -webPlugInStop (or -pluginStop) and -webPluginDestroy (or -pluginDestroy)
	to complying plugins right when they're removed from the WebHTMLView, and also
	release them from the plugin controller's arrays.
	
	I think this patch makes WebKit behave more like plugins expect it to, which is
	the way it already behaves with Netscape plugins.
	
	I expect complying plugins to stop making noise when receiving the stop
	message, but QuickTime doesn't. If it's lucky, then it will be deallocated
	because of the release and will stop then. However, JS, for one, can retain the
	plugin (e.g. if you execute <javascript:document.getElementById('obj').width;>
	before clicking Remove OBJECT), in which case it will just keep playing.
	
        * Plugins.subproj/WebPluginController.h:
        * Plugins.subproj/WebPluginController.m:
        (-[WebPluginController destroyPlugin:]):
	Stop and destroy the plugin.
        * WebView.subproj/WebHTMLView.m:
        (-[NSArray willRemoveSubview:]):
	Destroy plugins when they are removed from the HTML view.
	
2005-10-23  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Maciej.

        For better abstraction, made the tokenizer -- instead of the 
        data source -- responsible for calling [WebFrame _checkLoadComplete]
        when the tokenizer stops.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _stopLoadingInternal]):

2005-10-21  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by darin.
        
        WebKit side of the fix for <rdar://problem/4184719> window.print() followed by 
        window.close() causes world leak
        
        No test case added because I have another reviewed patch that will include a test
        for this bug as well as many others.

        Under some conditions, [WebDataSource stopLoading] did not set [WebDataSource isLoading]
        to false, so the didFInishLoad delegates never fired.
        
        The reason isLoading didn't become false was that the tokenizer was still running.
        The fix here is to move the call to [WebCoreBridge stopLoading] above the early return
        inside [WebDataSource stopLoading] -- since the tokenizer may still be running even if the
        loader is finished loading -- and then to call [WebFrame _checkLoadComplete] to 
        give the frame a chance to fire its delegates.
        
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _stopLoadingInternal]):

2005-10-21  Beth Dakin  <bdakin@apple.com>

        Reviewed by Darin??

	Fix for <rdar://problem/3853672> Malformed HTML using crashes Safari in NSFireTimer

	The webFrame was being deleted prematurely by a call to stop(), so we changed it
	so that the calls to _receivedMainResourceError and _mainReceivedError happen 
	before the stop(), and we retain the bridge.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _receivedMainResourceError:complete:]):

2005-10-21  Geoffrey Garen  <ggaren@apple.com>

        Patch by TimO, Reviewed by hyatt, tested and landed by me.

        Found what appears to be a misguided optimization that actually causes a measurable performance problem.
        A fixed-size buffer was allocated on the stack to pass into CFURLGetBytes(), presumably to avoid malloc()
        for URLs less than 2048 bytes.  There was also a fallback which malloc()'ed a buffer in case the fixed-size
        buffer was too small to hold the URL's bytes.  This malloc()'ed buffer was then wrapped in an NSData using
        +dataWithBytesNoCopy:length:, avoiding a memory copy (yay!)

        The problem with this approach is two-fold:
    
        1. Regardless of how the buffer was allocated and filled, it is immediately wrapped in an NSData using
        +dataWithBytes:length:, which copies the input bytes.  This is pretty much unavoidable; we need to get
        the data into a malloc()'ed buffer to return it to the caller, unless the caller provides its own storage
        (which would be super inconvenient).
    
        2. The size of the fixed buffer was large enough that it fit most (if not all) URLs involved in our Page
        Load Test.  This means the unintentionally-inefficient case was by far the most *common* case!
        
        My fix is to malloc() the buffer from the start, and then use +[NSData dataWithBytes:length:freeWhenDone:]
        to wrap the buffer in an NSData.  This avoids a memory copy for the normal case where a URL is less than
        2048 bytes, and keeps the efficient behavior for the uncommon long URL case.

        * Misc.subproj/WebNSURLExtras.m:
        (-[NSURL _web_originalData]):

2005-10-21  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed and landed by Darin.

        - fixed a couple regressions caused by my last check-in
          http://bugs.webkit.org/show_bug.cgi?id=5437
          http://bugs.webkit.org/show_bug.cgi?id=5443

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer CG_drawHighlightForRun:style:geometry:]): Compute background width
        correctly, by subtracting position after run from position before run.
        (addDirectionalOverride): Make the range include only the characters between the
        directional override characters, not the directional override characters themselves.
        (initializeWidthIterator): Correctly compute "widthToStart" based on the offset to
        the beginning of the run, not to the end of the run!

2005-10-19  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - optimizations for a total of about 1% speed-up on PLT

        * WebCoreSupport.subproj/WebTextRenderer.h: Updated to use bool instead of BOOL,
        since BOOL is a signed char (which is not so efficient, at least on PPC).
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (isSpace): Changed BOOL to bool and UniChar to UChar32. This actually fixes a
        potential bug when the passed-in character is a non-BMP character (> FFFF).
        (isRoundingHackCharacter): Ditto.
        (widthForGlyph): Merged getUncachedWidth, widthFromMap, and widthForGlyph into
        one function. Marked it inline. Changed to include syntheticBoldOffset in the
        cached widths to save an add in the cached case. Instead of the special constant
        UNINITIALIZED_GLYPH_WIDTH, just check for a width >= 0. This allows us to use
        a negative number or NAN for the uninitialized width value -- I chose NAN.
        (overrideLayoutOperation): Use bool instead of Boolean in one place.
        (-[WebTextRenderer initWithFont:]): Use lroundf instead of ROUND_TO_INT.
        (-[WebTextRenderer floatWidthForRun:style:]): Put the code to choose the ATSU
        vs. CG code path back in here, because there are no callers inside the class
        that need to call both.
        (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
        Use bool instead of BOOL.
        (+[WebTextRenderer setAlwaysUseATSU:]): Ditto.
        (fontContainsString): Ditto.
        (-[WebTextRenderer computeWidthForSpace]): Ditto. Also use roundf instead of
        using ROUND_TO_INT.
        (-[WebTextRenderer setUpFont]): Use bool instead of BOOL.
        (drawGlyphs): Ditto.
        (-[WebTextRenderer CG_drawHighlightForRun:style:geometry:]): Restructure the
        code so it can use the new advanceWidthIterator function instead of the old
        widthForNextCharacter function.
        (-[WebTextRenderer CG_drawRun:style:geometry:]): Use malloc instead of calloc
        since we don't need initialization. Call CG_floatWidthForRun instead of
        floatWidthForRun -- no need to re-check whether to use the CG or ATSU code path.
        Removed code to handle a renderer of 0 since we no longer generate that in
        the renderers array in advanceWidthIterator.
        (CG_floatWidthForRun): Changed to call the new advanceWidthIterator instead of
        the old widthForNextCharacter.
        (-[WebTextRenderer extendCharacterToGlyphMapToInclude:]): Use malloc instead of
        calloc and explicitly initialize the one field that needs it. Fixed a potential
        storage leak by adding a call to WKClearGlyphVector. Initialize the renderers
        to self instead of to 0.
        (-[WebTextRenderer extendGlyphToWidthMapToInclude:]): Initialize the widths to
        NAN instead of UNINITIALIZED_GLYPH_WIDTH.
        (addDirectionalOverride): Fixed bug where the first and last character in the buffer
        could be uninitialized and where characters before and after the direction override
        could be incorrect.
        (-[WebTextRenderer ATSU_drawRun:style:geometry:]): Use bool instead of BOOL.
        (-[WebTextRenderer ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
        Ditto.
        (advanceWidthIteratorOneCharacter): Added new helper function for CG_pointToOffset.
        (-[WebTextRenderer CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
        Reimplemented to use advanceWidthIteratorOneCharacter instead of widthForNextCharacter.
        Also call CG_floatWidthForRun instead of floatWidthForRun since we don't need to
        reconsider whether to use CG or ATSU.
        (glyphForCharacter): Removed the map parameter and changed the renderer parameter to
        be an in-out one. Removed uneeded special case for when map is 0 and always get the
        renderer from the map. Also call extendCharacterToGlyphMapToInclude in here instead of
        making that the caller's responsibility.
        (initializeWidthIterator): Renamed to make the name shorter (removed "Character").
        Streamlned common cases like "no padding" and removed some unneeded casts. Changed to
        use advanceWidthIterator to compute width fo the first part of the run.
        (normalizeVoicingMarks): Factored this out into a separate function, since it's not part
        of the common case.
        (advanceWidthIterator): Changed widthForNextCharacter to this, eliminating per-character
        function overhead for iterating past a few characters. Merged the handling of surrogate
        pairs and of voicing marks so that we typically only have to do one "if" to rule out both.
        Merged the mirroring for RTL and uppercasing for small caps into a single boolean so that
        we only need one "if" to rule out both. Call the new glyphForCharacter. Check for the
        character '\t' first since that's cheaper than looking at tabWidth. Check tabWidth for 0
        first so that we don't have to convert it to floating point when not using it. Changed
        the special case for spaces to first check width, so that we don't bother with the rest
        of the code for glyphs not the same width as spaces. Fixed substitution code to call
        CG_floatWidthForRun -- no need to reconsider whether to use CG or ATSU. Also changed to
        properly get width from the result of that function. Merged the handling of letter spacing,
        padding, and word spacing into a single boolean so that we typically only have to do one
        "if" to rule out all three. Check for letterSpacing of 0 first so that we don't have to
        convert it to floating point when not using it. Same for padding and wordSpacing.
        Move the work from ceilCurrentWidth in line into this function. Assume that either we have
        all three pointers (widths, renderers, glyphs), or none of the three, to cut down on branches.
        (fillStyleWithAttributes): Use bool instead of BOOL.
        (shouldUseATSU): Ditto.

        * Misc.subproj/WebKitNSStringExtras.m: (-[NSString _web_widthWithFont:]): Update since
        the floatWidthForRun method no longer takes a widths parameter.
        * Misc.subproj/WebStringTruncator.m: (stringWidth): Ditto.

2005-10-19  Tim Omernick  <tomernick@apple.com>

        Reviewed by eseidel & darin.

	Changed some of the run measurement methods to C functions
        to avoid overhead associated with objc_msgSend().
		
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer floatWidthForRun:style:widths:]):
	Updated to call new run measurement functions instead
        of calling ObjC methods.
        (-[WebTextRenderer CG_drawRun:style:geometry:]): ditto
        (floatWidthForRun): ditto
        (CG_floatWidthForRun): ditto
        (ATSU_floatWidthForRun): ditto
        (widthForNextCharacter): ditto

2005-10-14  Vicki Murley  <vicki@apple.com>

	Changes by Mitz Pettel, reviewed by Maciej.

	Fix http://bugs.webkit.org/show_bug.cgi?id=5029 (Assertion failure in -[NSPasteboard(WebExtras) 
	_web_writeImage:URL:title:archive:types:] when trying to drag an image from a site with no favicon)

        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_writeImage:URL:title:archive:types:]): Prefer the main resource if it is an image

2005-10-12  Vicki Murley  <vicki@apple.com>

        Reviewed by Darin.

	- fix <rdar://problem/4043643> iframe swallows events for overlapping elements (3449)

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView hitTest:]): 
        (-[WebHTMLView _updateMouseoverWithEvent:]): eliminate _hitViewForEvent hackery and self
	dependency from this function

2005-10-12  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin.
        
        Define WebNSInt and WebNSUInt to wrap around NSInt on Leopard and still build on Tiger
        Once building on Tiger isn't needed we will drop WebNSInt and use NSInt

        * WebView.subproj/WebDefaultResourceLoadDelegate.m:
        (-[WebDefaultResourceLoadDelegate webView:resource:didReceiveContentLength:fromDataSource:]):
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]):
        * WebView.subproj/WebLoader.m:
        (-[NSURLProtocol didReceiveData:lengthReceived:]):
        * WebView.subproj/WebResourceLoadDelegate.h:
        * WebView.subproj/WebUIDelegate.h:
        * WebView.subproj/WebView.h:
        * WebView.subproj/WebView.m:
        (-[WebView _mouseDidMoveOverElement:modifierFlags:]):
        (-[WebView spellCheckerDocumentTag]):
        * WebView.subproj/WebViewInternal.h:
        * WebView.subproj/WebViewPrivate.h:

2005-10-12  Darin Adler  <darin@apple.com>

        * WebView.subproj/WebPolicyDelegate.h: Fix a comment.

2005-10-11  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin.
        
        Test for 10.4 because of <rdar://problem/4243463>

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView conversationIdentifier]):

2005-10-11  Adele Peterson  <adele@apple.com>

        Rolling out fix for http://bugs.webkit.org/show_bug.cgi?id=5195
        since it caused:

        REGRESSION text areas draw focus ring around each glyph, no caret in text fields
        http://bugs.webkit.org/show_bug.cgi?id=5335

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _propagateDirtyRectsToOpaqueAncestors]):
        (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
        (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):

2005-10-09  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=5195
          Would like API to flush rendering of pending DOM changes

        This was actually a Tiger regression. When AppKit added a new code path for rendering
        NSView, our special hack for doing layout when we draw didn't work any more. So we
        were able to fix this without adding any API.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _recursiveDisplayRectIgnoringOpacity:inContext:topView:]): Added.
        Does the same thing that other _recursiveDisplay methods do.

2005-10-08  Alexey Proskuryakov  <ap@nypop.com>

        Reviewed by Maciej.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=5187
          UTF-8 in long text files breaks at some point

        * WebView.subproj/WebTextRepresentation.m:
        (-[WebTextRepresentation finishedLoadingWithDataSource:]):
        Call flushReceivedData on the WebTextView so it can decode any final bytes.

        * WebView.subproj/WebTextView.h: Added WebCoreTextDecoder field and flushReceivedData method.
        * WebView.subproj/WebTextView.m:
        (-[WebTextView dealloc]): Release WebCoreTextDecoder.
        (-[WebTextView appendReceivedData:fromDataSource:]): Create a WebCoreTextDecoder to decode
        the text; use the textEncodingName from the data source. Use it to decode instead of the
        data source's stringWithData.
        (-[WebTextView flushReceivedData]): Call flush on the decoder and append any last bytes to
        the text view.

2005-10-07  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.
        
        WebKit support for allowing clients to know which frame originated a particular JavaScript alert/dialog.

        * WebView.subproj/WebUIDelegatePrivate.h:
        New optional delegate methods for the three JavaScript alert/dialogs. These are just like the existing
        ones in WebUIDelegate.h except that each adds a parameter specifying the frame that the JavaScript was
        running in. Eventually we'll deprecate the old three methods in favor of these in the public API.
        
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge runJavaScriptAlertPanelWithMessage:]):
        Call version of the delegate method that has the frame parameter if the delegate supports it.
        (-[WebBridge runJavaScriptConfirmPanelWithMessage:]):
        ditto
        (-[WebBridge runJavaScriptTextInputPanelWithPrompt:defaultText:returningText:]):
        ditto
        
        * WebView.subproj/WebDefaultUIDelegate.m:
        (-[WebDefaultUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]):
        Now implements the new version of the delegate method that includes the frame parameter. (Still
        doesn't do anything though.)
        (-[WebDefaultUIDelegate webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:]):
        Now implements the new version of the delegate method that includes the frame parameter. (Still
        doesn't do anything though.)
        (-[WebDefaultUIDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:]):
        Now implements the new version of the delegate method that includes the frame parameter. Doesn't
        actually use the frame parameter here yet though.
        
2005-10-06  Darin Adler  <darin@apple.com>

        - fixed compiling on Deployment

        * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer initWithFont:]):
        Put initialFont inside !LOG_DISABLED.

2005-10-06  Darin Adler  <darin@apple.com>

        Reviewed by Eric.

        - tweaked formatting

        * WebCoreSupport.subproj/WebTextRenderer.m: Changed function names to remove underscores;
        fixed formatting to match our coding guidelines, other related tweaks.

2005-10-06  Darin Adler  <darin@apple.com>

        Reviewed by Eric.

        - fixed regression in drawing of text in non-flipped contexts from my last check-in

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (drawGlyphs): Only flip the matrix if the NSGraphicsContext is flipped.
        (-[WebTextRenderer _ATSU_drawRun:style:geometry:]): Use -[NSGraphicsContext isFlipped]
        instead of [[NSView focusView] isFlipped].

2005-10-06  Darin Adler  <darin@apple.com>

        Reviewed by Hyatt.

        - fixed <rdar://problem/3217793> Monaco bold comes out as Helvetica bold, very bad if you choose Monaco as your fixed-width font
        - fixed <rdar://problem/3256269> CSS1: bold/italic font styles not programmatically created if font doesn't include them (3231)
          also <http://bugs.webkit.org/show_bug.cgi?id=3231>

        * WebCoreSupport.subproj/WebTextRenderer.h: Removed public declarations of private structures that are not
        used in the header. Removed the separate 16-bit character map; the difference in code size is only a few
        bytes per page and there's no measurable performance difference by always using the 32-bit character version.
        Removed substitute font width maps altogether, since we now use the width map in the substitute font's renderer.
        Also removed a few more now-unused fields and methods. Changed initWithFont to take WebCoreFont. Changed
        the setAlwaysUseATSU: method to remove the underscore prefix.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (getUncachedWidth): Get font from WebCoreFont directly instead of taking a parameter, since we now use only
        one NSFont per WebTextRenderer.
        (widthFromMap): Removed NSFont parameter for same reason as above; simplified.
        (widthForGlyph): Ditto.
        (overrideLayoutOperation): Updated for change to WebCoreFont.
        (-[WebTextRenderer initWithFont:]): Changed to use WebCoreFont. Removed code to deal with substitute font maps.
        Changed lineGap computation to use floats instead of doubles. Added code to compute a synthetic bold offset.
        Currently this is the font size divided by 24 and then rounded up to an integer.
        (-[WebTextRenderer dealloc]): Updated for change to WebCoreFont and other related changes.
        (-[WebTextRenderer finalize]): Ditto.
        (-[WebTextRenderer xHeight]): Ditto.
        (-[WebTextRenderer drawRun:style:geometry:]): Remove small caps case here; no longer needed. Also updated as above.
        (-[WebTextRenderer floatWidthForRun:style:widths:]): Ditto.
        (-[WebTextRenderer drawHighlightForRun:style:geometry:]): Ditto.
        (-[WebTextRenderer pointToOffset:style:position:reversed:includePartialGlyphs:]): Ditto.
        (+[WebTextRenderer setAlwaysUseATSU:]): Renamed to remove underscore prefix.
        (-[WebTextRenderer smallCapsRenderer]): Ditto. Changed to create a renderer for the smaller sized font.
        (-[WebTextRenderer _substituteFontForString:families:]): Reorganized this to be more readable and to call
        the new rendererForAlternateFont method.
        (-[WebTextRenderer rendererForAlternateFont:]): Added. Used to select an alternate font taking into account
        bold and italic synthesis.
        (-[WebTextRenderer substituteRendererForCharacters:length:families:]): Renamed to remove underscore prefix.
        Updated to use rendererForAlternateFont.
        (-[WebTextRenderer _computeWidthForSpace]): Updated for name changes and to remove unnecessary parameters.
        (-[WebTextRenderer setUpFont]): Renamed to remove underscore prefix. Added code to get printer or screen
        font as specified by WebCoreFont so calers don't need to do this.
        (drawGlyphs): Renamed to remove underscore prefix. Added code for synthetic oblique (14 degree slant), and
        synthetic bold (add offset and draw text a second time).
        (-[WebTextRenderer _CG_drawRun:style:geometry:]): Keep an array of substitute renderers instead of fonts.
        Changed around the loop to reverse the run to be a single loop instead of 3.
        (-[WebTextRenderer floatWidthForRun:style:widths:substituteRenderers:glyphs:startPosition:numGlyphs:]):
        Renamed to remove the underscore prefix.
        (-[WebTextRenderer _CG_floatWidthForRun:style:widths:substituteRenderers:glyphs:startPosition:numGlyphs:]):
        Changed to use subsitute renderers rather than fonts.
        (-[WebTextRenderer updateGlyphEntryForCharacter:glyphID:substituteRenderer:]): Renamed to remove underscore
        prefix and changed to use a substitute renderer rather than a substitute NSFont.
        (-[WebTextRenderer extendCharacterToGlyphMapToInclude:]): Updated to work with all characters, both ones
        that fit into 16-bit and ones that don't.
        (-[WebTextRenderer _extendGlyphToWidthMapToInclude:]): Removed NSFont parameter and simplified. This fixes
        a bug where numberOfGlyphs was accidentally used from the main font instead of "subFont".
        (glyphForCharacter): Changed to use subsitute renderers instead of substitute fonts.
        (widthForNextCharacter): Ditto. Also removed small caps code no longer needed here and replaced it with
        simpler small caps code that no longer assumes glyphs match.
        (shouldUseATSU): Changed the code to check ranges in order to slightly reduce the number of cases and
        to create earlier exit for lower character codes.

        * WebCoreSupport.subproj/WebTextRendererFactory.h: Added caches for synthesized font and oblique
        variants so we can still use the NSFont as the dictionary key. Removed coalesceTextDrawing methods.
        Changed methods to use WebCoreFont as the parameters and results instead of NSFont.
        * WebCoreSupport.subproj/WebTextRendererFactory.m:
        (-[WebTextRendererFactory clearCaches]): Clear all 8 caches.
        (-[WebTextRendererFactory isFontFixedPitch:]): Changed code slightly so there's only one call to
        the CFDictionarySetValue function.
        (-[WebTextRendererFactory init]): Create all 8 caches.
        (-[WebTextRendererFactory dealloc]): Release all 8 caches.
        (-[WebTextRendererFactory rendererWithFont:]): Select the appropriate cache based on 3 booleans:
        synthetic bold, synthetic oblique, and printer. Use WebCoreFont instead of NSFont.
        (-[WebTextRendererFactory fontWithFamilies:traits:size:]): Set the synthetic bold and oblique flags
        when returning a WebCoreFont based on requested traits that are not present in the NSFont.
        (acceptableChoice): Ignore the synthesizable traits when deciding if a chosen font is acceptable.
        (betterChoice): Rather than assuming that every font has all the desired traits, implement a rule
        that says a font with an unwanted trait loses out over a font that does not have an unwanted trait.
        This lets us chose a bold font over a non-bold font that could use synthesized bold but treat both
        as candidates.

        * WebCoreSupport.subproj/WebGlyphBuffer.h: Removed.
        * WebCoreSupport.subproj/WebGlyphBuffer.m: Removed.
        * WebKit.xcodeproj/project.pbxproj: Removed WebGlyphBuffer source files.

        * Misc.subproj/WebKitNSStringExtras.m:
        (-[NSString _web_drawAtPoint:font:textColor:]): Update to use WebCoreFont.
        (-[NSString _web_widthWithFont:]): Ditto.
        * Misc.subproj/WebStringTruncator.m:
        (truncateString): Ditto.
        (+[WebStringTruncator widthOfString:font:]): Ditto.

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView drawRect:]): Removed text drawing coalesce method calls.
        * WebView.subproj/WebTextView.m: (-[WebTextView setFixedWidthFont]): Updated to use cachedFontFromFamily
        method, which we still have, rather than fontWithFamilies method which we don't (since it now uses WebCoreFont).
        * WebView.subproj/WebView.m: (+[WebView _setAlwaysUseATSU:]): Updated for name change to underlying method.

2005-10-05  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Eric.

	<rdar://problem/4158439> Safari appears to hang when sending synchronous XMLHttpRequest that gets no server response

	No testcase - not testable w/o network.
	
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): Set a timeout of 10.

2005-10-04  Beth Dakin  <bdakin@apple.com>

        Reviewed by Darin

	Fix for <rdar://problem/4285538> TOT fix for Denver Regression: Drawing glitch in the transparent dialog's cancel/ok 
	button in the widget manager. 

        * WebCoreSupport.subproj/WebImageData.m: Calls WKSetPatternPhaseInUserSpace() which is a new function that lies in 
						WebKitSystemInterface that and takes care of pattern-setting. Prevents 
						regression that occurred with image tiling in transparency layers. 
        (-[WebImageData tileInRect:fromPoint:context:]):

2005-10-03  Tim Omernick  <tomernick@apple.com>

        Reviewed by John Sullivan.

	<rdar://problem/4281095> Denver regression: Seed: Safari HTML 4.01 <object ...> tag problem

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge determineObjectFromMIMEType:URL:]):
	If no view class is registered to handle the MIME type, check to see if there is a plugin registered which can handle it.
	This check is required because the Java plugin does not register an NSView class, so that Java files are downloaded when
	not embedded.

	Prior to this fix, -determineObjectFromMIMEType:URL: would always return ObjectElementNone for Java applets (MIME type
	"application/x-java-applet"), which would cause Java applets embedded in <OBJECT> elements to not be loaded.

	This broke on 05-03-2005, when we changed how we handle fallback content for <OBJECT> elements so that we could pass the
	Acid2 test.

2005-09-28  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by geoff
        
        Fixed <rdar://problem/4276596> multipart/x-mixed-replace: saved inline images appear only partially loaded
        Fixed <rdar://problem/4265439> progress bar should look complete even if there is some more multipart content being loaded

        * WebCoreSupport.subproj/WebSubresourceLoader.h:
        * WebCoreSupport.subproj/WebSubresourceLoader.m:
        (-[WebSubresourceLoader didReceiveResponse:]):
        Now calls signalFinish and saveResource.
        
        (-[WebSubresourceLoader signalFinish]): 
        Added.  Does the part of didFinishLoading that signals to the WebDataSource and load delegates that the load is finished.
        
        (-[WebSubresourceLoader didFinishLoading]):
        * WebView.subproj/WebLoader.h:
        * WebView.subproj/WebLoader.m:
        (-[NSURLProtocol signalFinish]):
        Similar to above
        
        (-[NSURLProtocol didFinishLoading]):

2005-09-28  Adele Peterson  <adele@apple.com>

        Reviewed by John.

        Moved _downloadWithLoadingConnection and _downloadWithRequestfrom WebDownload.h to WebDownloadInternal.h

        * Misc.subproj/WebDownload.h:
        * Misc.subproj/WebDownloadInternal.h: Added.
        * WebKit.xcodeproj/project.pbxproj: Added WebDownloadInternal.h
        * WebView.subproj/WebMainResourceLoader.m: Added import of WebDownloadInternal.h
        * WebView.subproj/WebView.m: ditto.

2005-09-27  Adele Peterson  <adele@apple.com>

        Reviewed by Maciej.

        Changed ints to size_t where appropriate.

        * Misc.subproj/WebCoreStatistics.h:
        * Misc.subproj/WebCoreStatistics.m:
        (+[WebCoreStatistics javaScriptObjectsCount]):
        (+[WebCoreStatistics javaScriptInterpretersCount]):
        (+[WebCoreStatistics javaScriptNoGCAllowedObjectsCount]):
        (+[WebCoreStatistics javaScriptReferencedObjectsCount]):
        * WebView.subproj/WebPreferences.m:
        (-[WebPreferences _pageCacheSize]):
        (-[WebPreferences _objectCacheSize]):
        * WebView.subproj/WebPreferencesPrivate.h:

2005-09-26  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.

        - fixed <rdar://problem/4118126> Drag-and-drop text with text containing a colon causes a crash
        
        There were two problems here. One is that dragging and dropping text within the same WebTextView
        should have done nothing rather than try to navigate. The other is that navigating while processing
        the end of the drag would dealloc the drag-initiating WebTextView, leading to a crash. Fixing the
        former doesn't fix all cases of the latter, since dropping onto (e.g.) Safari's location field
        could cause a navigation during the drag. So these two issues needed to be fixed separately.

        * WebView.subproj/WebTextView.m:
        (-[WebTextView dragSelectionWithEvent:offset:slideBack:]):
        Before drag, retain self, and tell WebView that the drag is self-initiated. After drag, do the
        opposite. This is the same approach as WebImageView, but it can all be contained in one method
        here due to NSTextView's dragging API, which wraps up some of the drag-machinery guts.

2005-09-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed and landed by Darin.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=5100
          -[WebTextRenderer _ATSU_drawRun:...] does not check view flippedness

        * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
        Set up a the CGContext with a matrix that flips the text if the view is not flipped.

2005-09-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed, tweaked a tiny bit, and landed by Darin.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=4940
          CG and ATSUI give different width to the same text

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (overrideLayoutOperation): Added. ATSU callback to do the rounding.
        (-[WebTextRenderer _trapezoidForRun:style:atPoint:]): Use the new createATSULayoutParameters
        function instead of calling _createATSUTextLayoutForRun.
        (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]): Use createATSULayoutParameters,
        and also compute the width in a way that works for any direction combination.
        (-[WebTextRenderer _ATSU_drawRun:style:geometry:]): Use createATSULayoutParameters.
        (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
        Use createATSULayoutParameters. Also put in code that seems to work around an ATSU bug.
        (createATSULayoutParameters): Added.
        (disposeATSULayoutParameters): Added.

2005-09-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by Dave.
        Landed by Darin.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=4862
          Incorrect layout of bidi overrides

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (addDirectionalOverride): Renamed, and made it work in both directions.
        (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]): Updated to call addDirectionalOverride.
        (-[WebTextRenderer _ATSU_drawRun:style:geometry:]): More of the same.
        (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]): Ditto.

2005-09-24  Alexey Proskuryakov  <ap@nypop.com>

        Tweaked, reviewed, and landed by Darin.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=4394
          Mouse clicks ignored in inline input areas

        * WebView.subproj/WebHTMLView.m:
        (-[NSArray mouseDown:]): Removed misleading comment and added code to send mouse event to input manager.
        (-[NSArray mouseDragged:]): Added code to send mouse event to input manager.
        (-[NSArray mouseUp:]): Ditto.
        (-[WebHTMLView _discardMarkedText]): Umnmark text before calling markedTextAbandoned: to match behavior
        of NSTextView (not sure why we did things in the opposite order before).
        (-[WebHTMLView _updateSelectionForInputManager]): Ditto.

        - unrelated tweak

        * WebView.subproj/WebView.m:
        (-[WebView _performTextSizingSelector:withObject:onTrackingDocs:selForNonTrackingDocs:newScaleFactor:]):
        Fix typecast that used ... for no good reason.

2005-09-23  Duncan Wilcox  <duncan@mclink.it>

        Reviewed and landed by Darin.

        - name changes to prepare for fixing bugzilla bug 4582

        * WebView.subproj/WebHTMLView.m: Changed names to match WebCore changes.

2005-09-20  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.

        - fixed <rdar://problem/3228554> We should enforce one selection per WebView instead of per window
        
        Note that this checkin does not mean that we will always maintain a selection in a WebView when
        the focus is elsewhere. Instead it means that there should never be more than one frame containing
        a selection in a WebView, and that it's possible to maintain a selection in a WebView when the focus 
        is elsewhere.

        * WebView.subproj/WebView.m:
        (-[WebView searchFor:direction:caseSensitive:wrap:]):
        removed unnecessary and somewhat confusing comment
        (-[WebView selectedFrame]):
        now calls the extracted method -_focusedFrame
        (-[WebView _focusedFrame]):
        new method, extracted from -selectedFrame; returns frame containing first responder, if any
        (-[WebView _findSelectedFrameStartingFromFrame:skippingFrame:]):
        added skippingFrame parameter, which is never returned
        (-[WebView _findSelectedFrameSkippingFrame:]):
        new method, starts from main frame and passes a frame to skip
        (-[WebView _findSelectedFrame]):
        now calls _findSelectedFrameSkippingFrame:nil
        (-[WebView _selectedFrameDidChange]):
        new method, called by WebDocumentText protocol implementors; calls -deselectAll on frame that
        formerly displayed a selection, if any

        * WebView.subproj/WebViewInternal.h:
        added category WebDocumentSelectionExtras, with the one method _selectedFrameDidChange

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView becomeFirstResponder]):
        call -[WebView _selectedFrameDidChange]

        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView becomeFirstResponder]):
        call -[WebView _selectedFrameDidChange]
        (-[WebPDFView resignFirstResponder]):
        deselect all unless webview says not to; note that this doesn't work in all cases due to:
        <rdar://problem/4265966> PDFs continue to show a (secondary) selection when the focus moves elsewhere        

        * WebView.subproj/WebTextView.m:
        (-[WebTextView becomeFirstResponder]):
        call -[WebView _selectedFrameDidChange]
        (-[WebTextView resignFirstResponder]):
        deselect all unless webview says not to

2005-09-20  Eric Seidel  <eseidel@apple.com>

        Reviewed by mjs.

	Moved MIME type support from a hard coded list
        (in two places) to single lists in the corresponding
        *Representation classes.  Also moved the list of types
        supported by WebCore (WebHTMLRepresentation) into WebCore.
        http://bugs.webkit.org/show_bug.cgi?id=5037

        * WebView.subproj/WebDataSource.m:
        (addTypesFromClass): new inline function
        (+[WebDataSource _repTypesAllowImageTypeOmission:]):
        * WebView.subproj/WebFrameView.m:
        (addTypesFromClass): new inline function
        (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
        * WebView.subproj/WebHTMLRepresentation.h:
        * WebView.subproj/WebHTMLRepresentation.m:
        (+[WebHTMLRepresentation supportedMIMETypes]):
        * WebView.subproj/WebHTMLView.m:
        (+[WebHTMLView supportedMIMETypes]):
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebImageRepresentation.h:
        * WebView.subproj/WebImageRepresentation.m:
        (+[WebImageRepresentation supportedMIMETypes]):
        * WebView.subproj/WebImageView.h:
        * WebView.subproj/WebImageView.m:
        (+[WebImageView supportedMIMETypes]):
        * WebView.subproj/WebPDFRepresentation.h:
        * WebView.subproj/WebPDFRepresentation.m:
        (+[WebPDFRepresentation supportedMIMETypes]):
        * WebView.subproj/WebPDFView.h:
        * WebView.subproj/WebPDFView.m:
        (+[WebPDFView supportedMIMETypes]):
        * WebView.subproj/WebTextRepresentation.h:
        * WebView.subproj/WebTextRepresentation.m:
        (+[WebTextRepresentation supportedMIMETypes]):
        * WebView.subproj/WebTextView.h:
        * WebView.subproj/WebTextView.m:
        (+[WebTextView supportedMIMETypes]):
        * WebView.subproj/WebView.m:
        (+[WebView _viewClass:andRepresentationClass:forMIMEType:]):
        (+[WebView MIMETypesShownAsHTML]): updated to match style
        (+[WebView setMIMETypesShownAsHTML:]): ditto

2005-09-16  John Sullivan  <sullivan@apple.com>

        * WebView.subproj/WebImageView.m:
        (-[WebImageView copy:]):
        fixed build-breaking silly error in previous checkin

2005-09-16  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick
        
        - fixed <rdar://problem/4256557> CrashTracer: 238 crashes in Safari at 
        com.apple.AppKit: -[NSPasteboard setData:forType:] + 188

        * WebView.subproj/WebImageView.m:
        (-[WebImageView copy:]):
        declare types to pasteboard before starting to set their data
        (-[WebImageView writeSelectionToPasteboard:types:]):
        ditto

2005-09-16  Adele Peterson  <adele@apple.com>

        Rolling out the fix for http://bugs.webkit.org/show_bug.cgi?id=4924
            QPainter should use CGContext as much as possible rather than NSGraphicsContext 
        since it caused a performance regression.

2005-09-16  Adele Peterson  <adele@apple.com>

        Change by Darin, reviewed by me and Maciej.

        Fixes http://bugs.webkit.org/show_bug.cgi?id=4547
        use int instead of long for 32-bit (to prepare for LP64 compiling)

        * Plugins.subproj/npapi.m: changed types to match those defined in npapi.h
        (NPN_MemAlloc):
        (NPN_MemFlush):
        (NPN_PostURLNotify):
        (NPN_PostURL):
        (NPN_Write):

2005-09-14  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by john

        Fixes <rdar://problem/4237479> REGRESSION (Cambridge-Denver): old QuickTime movie continues to play sound after reload
        We were adding the movie to the document twice after the changes were added to handle fallback content.
        There are some errors for which we should not render fall back content

        * Misc.subproj/WebKitErrorsPrivate.h:
        Introduced WebKitErrorPlugInWillHandleLoad to represent the cancel we do
        to prevent loading plugin content twice
        
        * Plugins.subproj/WebPluginDocumentView.m:
        (-[WebPluginDocumentView dataSourceUpdated:]): Ditto
        
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _receivedMainResourceError:complete:]):
        Don't handleFallbackContent on WebKitErrorPlugInWillHandleLoad or on a user cancel

2005-09-14  Timothy Hatcher  <thatcher@apple.com>

        Reviewed by Eric.
        
        * WebKit.xcodeproj/project.pbxproj:
        made WebDashboardRegion.h a private header

2005-09-14  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=4924
          QPainter should use CGContext as much as possible rather than NSGraphicsContext

        * WebCoreSupport.subproj/WebImageRendererFactory.m: Remove setCGCompositeOperationFromString
        method, no longer needed.

2005-09-13  Tim Omernick  <tomernick@apple.com>

        Reviewed by Justin Garcia, Darin Adler.

	- <rdar://problem/3163393> Safari does not support Windowless mode in Flash

        * Plugins.subproj/WebBaseNetscapePluginView.h:
	Added 'isTransparent' instance variable.

        * Plugins.subproj/WebBaseNetscapePluginView.m:	
        (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]):
	When updating a plugin in "windowless" (transparent) mode, clip drawing to the dirty
	region of the opaque ancestor.  This means that a partially-transparent plugin, which
	by definition does not clear its port on redraw, will not overdraw the valid parts
	of its port.
        (-[WebBaseNetscapePluginView sendEvent:]):
	Disabled the "green debug background" for transparent plugins -- since they are not
	expected to cover their entire port every redraw, this debug code makes no sense.
        (-[WebBaseNetscapePluginView setVariable:value:]):
	Implemented -setVariable:value:, which is called from NPN_SetValue() (previously
	unimplemented).
	Right now we only handle NPPVpluginTransparentBool; if we choose to handle the other
	plugin variables, then we may do so here.
        * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
	Added SPI for -[WebBaseNetscapePluginView setVariable:value].
        * Plugins.subproj/npapi.m:
        (NPN_SetValue):
	Implemented this function so that plugins may set state (such as window mode).
	
2005-09-11  Mark Rowe  <opendarwin.org@bdash.net.nz>

        Reviewed, tweaked, and landed by Darin.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=4286
          .Mac prefpane crashes when Safari using CVS WebKit is running

        * WebView.subproj/WebView.m: (-[WebView initWithFrame:frameName:groupName:]):
        If ENABLE_WEBKIT_UNSET_DYLD_FRAMEWORK_PATH, and WEBKIT_UNSET_DYLD_FRAMEWORK_PATH
        is set in the environment, then unset DYLD_FRAMEWORK_PATH.

        * WebKit.xcodeproj/project.pbxproj: Set ENABLE_WEBKIT_UNSET_DYLD_FRAMEWORK_PATH
        in configurations other than Default -- we don't want that code in production
        builds, but we want it in builds we do ourselves and nightly builds.

2005-09-10  Ingmar J Stein  <IngmarStein@gmail.com>

        Reviewed and landed by Darin.

        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
        Removed unused local variable.

2005-09-09  Tim Omernick  <tomernick@apple.com>

        Reviewed by John Sullivan.

        * History.subproj/WebBackForwardList.m:
        (-[WebBackForwardList removeItem:]):
	SPI to remove a given WebHistoryItem.

        * History.subproj/WebBackForwardListPrivate.h: Added.

        * WebKit.xcodeproj/project.pbxproj:
	Added WebBackForwardListPrivate.h as a private header.

2005-09-09  John Sullivan  <sullivan@apple.com>

        Reviewed by Tim Omernick.
        
        fixed http://bugs.webkit.org/show_bug.cgi?id=4070:
        Find in plain text won't find only occurrence if it overlaps selection

        * Misc.subproj/WebSearchableTextView.m:
        (-[NSString findString:selectedRange:options:wrap:]):
        in the wrap case, extend the search range far enough that text overlapping the
        selection (including the exact-match case) will be considered.

2005-09-08  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by darin
        
        WebKit portion of multipart/x-mixed-replace support

        * WebCoreSupport.subproj/WebSubresourceLoader.m:
        (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
        Subresource case: Check for Foundation level multipart support
        (-[WebSubresourceLoader didReceiveResponse:]): 
        Send previously received data in a multipart section to the coreLoader
        (-[WebSubresourceLoader didReceiveData:lengthReceived:]): 
        Don't send data to the coreLoader until it has been completely received
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _startLoading:]): 
        Main resource case: check for Foundation level multipart support 
        (+[WebDataSource _repTypesAllowImageTypeOmission:]):
        Some server apps send data right after declaring content multipart/x-mixed-replace, and expect it to be treated as html
        (-[WebDataSource _commitIfReady:]):
        Don't ask the WebFrame to close its old WebDataSource when loading a multipart section, because we're going to reuse it
        (-[WebDataSource _receivedData:]):
        For non text/html multipart sections, we commit the data all at once, at the end
        (-[WebDataSource _doesProgressiveLoadWithMIMEType:]):
        Added heuristic for when to commit the load incrementally
        (-[WebDataSource _commitLoadWithData:]):
        Moved from _receivedData into its own function
        (-[WebDataSource _revertToProvisionalState]):
        (-[WebDataSource _setupForReplaceByMIMEType:]):
        Commits the data received for the previous multipart section if it wasn't loaded progresively, clears out the WebFrame and WebDatasource for the next multipart section
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]): 
        The very first multipart section is treated as a normal load, so that the back/forward list and history are updated.
        All later sections have a new load type, WebFrameLoadTypeReplace, and are treated like reloads
        (-[WebFrame _checkLoadCompleteForThisFrame]): Ditto
        (-[WebFrame _itemForRestoringDocState]): Ditto
        (-[WebFrame _setupForReplace]):
        Clears out the WebFrame for the next multipart section
        * WebView.subproj/WebFrameInternal.h:
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebFrameView.m:
        (+[WebFrameView _viewTypesAllowImageTypeOmission:]): See above
        * WebView.subproj/WebLoader.h:
        * WebView.subproj/WebLoader.m:
        (-[NSURLProtocol clearResourceData]):
        (-[NSURLProtocol setSupportsMultipartContent:]):
        * WebView.subproj/WebMainResourceLoader.m: Straightforward
        (-[WebMainResourceLoader didReceiveResponse:]):

2005-09-06  Geoffrey Garen  <ggaren@apple.com>

        - fixed build bustage from last checkin.
        
        Reviewed by haytt.

        * History.subproj/WebBackForwardList.m:
        (-[WebBackForwardList pageCacheSize]): updated debug printf since we no
        longer have a variable called 'multiplier'

2005-09-06  David Hyatt  <hyatt@apple.com>

	Reduce the # of cached pages for a back/forward list.  The old cache would cache the
	following per tab:
	> 1gb memory = 16 pages per tab/window
	> 512mb memory = 8 pages per tab/window
	<= 512mb memory = 4 pages per tab/window

	This consumes far too much memory and is way too aggressive.  The new cache sizes are
	as follows:
	>= 1gb memory = 3 pages per tab/window
	>= 512mb memory = 2 pages per tab/window
	< 512mb memory = 1 page per tab/window

        Reviewed by john

        * History.subproj/WebBackForwardList.m:
        (-[WebBackForwardList pageCacheSize]):
        * WebView.subproj/WebPreferences.m:
        (+[WebPreferences initialize]):

2005-09-05  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=4846
          REGRESSION: Carbon WebKit applications don't work at all

        * Carbon.subproj/HIWebView.m: Remove lots of unneeded declarations of private stuff.
        (Draw): Call WKNSWindowOverrideCGContext and WKNSWindowRestoreCGContext rather
        than calling a non-existent setCGContext: method on the context.

2005-09-05  John Sullivan  <sullivan@apple.com>

        Reviewed by Dave Hyatt.
        
        - change related to <rdar://problem/4211999> Safari quits when click-drag-hold an image 
        that is set to automatically change.

        * WebView.subproj/WebHTMLView.m:
        (-[NSArray namesOfPromisedFilesDroppedAtDestination:]):
        handle nil wrapper with ERROR and early return rather than ASSERT, since we now know
        of a way to reproduce this (written up as 4244861)

2005-09-05  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=4357
          crash related to animated GIFs, reproducible in non-Safari WebKit application

        * WebCoreSupport.subproj/WebImageData.m:
        (removeAnimatingRendererFromView): Added.
        (removeFromDictionary): Added.
        (-[WebImageData removeAnimatingRenderer:]): Rewrote using CF functions rather than
        NS functions so that we never retain the views, since this can be called from
        a view's dealloc method.
        (setNeedsDisplayInAnimationRect): Added.
        (-[WebImageData _nextFrame:]): Rewrote as above, even though in this case it can't
        be called from the dealloc method.

2005-08-26  David Hyatt  <hyatt@apple.com>

	Add support for a new scaling and tiling function so that border images from CSS3
	can be implemented.
	
        Reviewed by darin

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData scaleAndTileInRect:fromRect:withHorizontalTileRule:withVerticalTileRule:context:]):
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer scaleAndTileInRect:fromRect:withHorizontalTileRule:withVerticalTileRule:context:]):
        (-[WebImageRenderer setAnimationRect:]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView updateFocusState]):

2005-08-26  Adele Peterson  <adele@apple.com>

        Reviewed by Beth.

        * WebKit.xcodeproj/project.pbxproj: Changed WebKit.Framework to WebKit.framework in UMBRELLA_FRAMEWORK.

2005-08-25  David Harrison  <harrison@apple.com>

        Reviewed by Maciej.

        <rdar://problem/4227734> Denver Regression: WebCore selection bug on lines starting with tab (clownfish)

        The text is in a DIV styled with "white-space:pre", and uses newline characters as linebreaks.
        WebKit's text renderer is erroneously considering the width of the lines leading up to the tab
        character when calculating the width of the tab.
        Easily fixed by having widthForNextCharacter ignore the widthToStart when working with tabWidth.
        Any prior text that fits in the same line is already factored into the xpos, which is paid attention to.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (widthForNextCharacter):
        Ignore the widthToStart when working with tabWidth.

2005-08-23  John Sullivan  <sullivan@apple.com>

        Reviewed by Beth Dakin.
        
        - fixed <rdar://problem/4229167> 14 leaks of WebFileButton and associated objects, 
        seen after running webkit layout tests

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge fileButtonWithDelegate:]):
        this method was returning a retained object; I added an autorelease

2005-08-23  Darin Adler  <darin@apple.com>

        * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.

2005-08-23  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed and landed by Darin.

        - fixed http://bugs.webkit.org/show_bug.cgi?id=4604
          LEAK -[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:] leaks an ATSUTextLayout
          <rdar://problem/4228787> ATSUTextLayout leak in _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs: (4604)

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
        Added missing call to ATSUDisposeTextLayout.

2005-08-22  Geoffrey Garen  <ggaren@apple.com>

        - fixed <rdar://problem/4227011> Debugger SPI should be removed from WebView.h API
        
        Reviewed by mjs and adele.

        Cut and pasted debugging SPI from WebView to WebView(WebPendingPublic)
        
        * WebView.subproj/WebView.h:
        * WebView.subproj/WebView.m:
        (-[WebView setScriptDebugDelegate:]):
        (-[WebView scriptDebugDelegate]):
        * WebView.subproj/WebViewPrivate.h:

2005-08-20  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin Adler.
        
        - WebKit part of fix for 
        <rdar://problem/3977607> ER: Safari should check framework versions at launch

        * WebView.subproj/WebViewPrivate.h:
        * WebView.subproj/WebView.m:
        (+[WebView _minimumRequiredSafariBuildNumber]):
        new method, returns the minimum build number of Safari that this WebKit is
        willing to work with. (The Safari version has to be new enough to check
        for this value in order for this to have any effect.)

2005-08-19  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by rjw
        
        The boolean justOpenedForTargetedLink is never used to determine a course of action.  
        It was added long ago for findOrCreateFramedNamed, which has since been removed.

        * WebView.subproj/WebDataSource.m:
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _loadDataSource:withLoadType:formState:]):
        * WebView.subproj/WebFramePrivate.h:

2005-08-19  Darin Adler  <darin@apple.com>

        Reviewed by John.

        * English.lproj/Localizable.strings: Updated to include a new localizable string
        that was added a long while back. Apprently no one has run into the code using
        this string, because if they had, they'd have seen an assert.
        * English.lproj/StringsNotToBeLocalized.txt: Updated for various recent changes.

2005-08-17  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	- fix mysterious CGImageSource error message and possibly crash on layout tests.

        * WebView.subproj/WebMainResourceLoader.m:
        (-[WebMainResourceLoader receivedError:]): Retain the data source since it may
	prematurely self-destruct otherwise.
        (-[WebMainResourceLoader cancelWithError:]): ditto

2005-08-17  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by rjw
        
        Addresses <rdar://problem/4192534> new frame load delegate SPI needed for Dashboard
            Added handledOnloadEvents delegate method (private for now)

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge handledOnloadEvents]):
        * WebView.subproj/WebDefaultFrameLoadDelegate.m:
        (-[WebDefaultFrameLoadDelegate webView:didHandleOnloadEventsForFrame:]):
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _handledOnloadEvents]):
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebViewPrivate.h:

2005-08-17  John Sullivan  <sullivan@apple.com>

        Reviewed by Geoff Garen.
        
        - fixed <rdar://problem/4219817> Particular icon database + bookmarks + history crashes Safari on launch

        * Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase releaseIconForURL:]):
        Move line that might remove last reference to iconURL to the end of the block.

2005-08-16  Darin Adler  <darin@apple.com>

        Reviewed by Trey.

	- improved fix for <rdar://problem/4211631>, tiled images tiled incorrectly when printing or 
	  drawing offscreen

        * WebCoreSupport.subproj/WebImageData.m: (-[WebImageData tileInRect:fromPoint:context:]):
        Fix pattern phase origin to use the image tile origin, which is clearly right, rather than
        the image rectangle, which isn't right, but often is the same.

2005-08-16  Adele Peterson  <adele@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/4210320> URL tooltips should display a URL for elements that submit forms

        When the setShowsURLsInToolTips preference is set, we will display a tooltip containing 
        the form's url when you mouse over a submit button.

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _updateMouseoverWithEvent:]):

2005-08-16  Darin Adler  <darin@apple.com>

        Reviewed by Beth Dakin.

        - removed Panther-only code that was not being compiled and was
          simply "bit-rotting"

        * Misc.subproj/WebFileDatabase.m:
        (-[WebFileDatabase _createLRUList:]):
        (+[WebFileDatabase _syncLoop:]):
        * Misc.subproj/WebKitErrors.m:
        (registerErrors):
        * Misc.subproj/WebNSObjectExtras.h:
        (WebCFAutorelease):
        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageDecodeItem.h:
        * WebCoreSupport.subproj/WebImageDecodeItem.m:
        * WebCoreSupport.subproj/WebImageDecoder.h:
        * WebCoreSupport.subproj/WebImageDecoder.m:
        (decoderThread):
        (startDecoderThread):
        * WebCoreSupport.subproj/WebKeyGeneration.cpp: Removed.
        * WebCoreSupport.subproj/WebKeyGeneration.h: Removed.
        * WebCoreSupport.subproj/WebKeyGenerator.h:
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (getUncachedWidth):
        (_drawGlyphs):
        * WebCoreSupport.subproj/WebViewFactory.m:
        (-[WebViewFactory getBytes:fromTextMarker:length:]):
        * WebKit.xcodeproj/project.pbxproj:
        * WebKitPrefix.h:
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _setPrimaryLoadComplete:]):
        (+[WebDataSource _repTypesAllowImageTypeOmission:]):
        (-[WebDataSource isLoading]):
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (localizedMenuTitleFromAppKit):
        (-[WebDefaultUIDelegate menuItemWithTag:]):
        (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
        (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
        * WebView.subproj/WebFormDataStream.m:
        (formCanRead):
        (webSetHTTPBody):
        * WebView.subproj/WebFrameView.m:
        (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:chosePlainText:]):
        (-[WebHTMLView resourceForData:preferredFilename:]):
        (-[WebHTMLView _lookUpInDictionaryFromMenu:]):
        (-[WebHTMLView validateUserInterfaceItem:]):
        (-[WebHTMLView _attributeStringFromDOMRange:]):
        (-[WebHTMLView toggleBaseWritingDirection:]):
        (-[WebHTMLView changeBaseWritingDirection:]):
        * WebView.subproj/WebPDFRepresentation.h:
        * WebView.subproj/WebPDFRepresentation.m:
        * WebView.subproj/WebPDFView.h:
        * WebView.subproj/WebPDFView.m:
        * WebView.subproj/WebPreferences.m:
        (+[WebPreferences _systemCFStringEncoding]):
        * WebView.subproj/WebView.m:
        (-[WebView _commonInitializationWithFrameName:groupName:]):

2005-08-16  Darin Adler  <darin@apple.com>

        Reviewed by Beth Dakin.

        - removed some unnecessary code

        * WebCoreSupport.subproj/WebGraphicsBridge.h: Removed pattern-phase related field and methods.
        * WebCoreSupport.subproj/WebGraphicsBridge.m: Ditto.

        * WebCoreSupport.subproj/WebImageData.m: Tweaked formatting and removed some unused code
        inside #if and comments.

        * WebCoreSupport.subproj/WebImageRenderer.h: Removed USE_CGIMAGEREF (which is always true now).
        * WebCoreSupport.subproj/WebImageRenderer.m: Removed old non-CGImageRef code.

        * WebCoreSupport.subproj/WebImageRendererFactory.m:
        (-[WebImageRendererFactory imageRendererWithMIMEType:]): Removed non-USE_CGIMAGEREF code.
        (-[WebImageRendererFactory imageRendererWithData:MIMEType:]): Ditto.
        (-[WebImageRendererFactory imageRendererWithSize:]): Ditto.
        (-[WebImageRendererFactory imageRendererWithName:]): Ditto.

2005-08-15  Darin Adler  <darin@apple.com>
	
        Reviewed by Beth.

	This is a fix for <rdar://problem/4211631> tiled images tiled incorrectly when printing or 
	drawing offscreen.

	Cayenne found there was a problem when they were trying to take screen shots of widgets, and
	it was ultimately a problem with the way we tile images. Darin was able to fix the problem
	by replacing some confusing hacked code with CG calls.

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData tileInRect:fromPoint:context:]):
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebInternalImage tileInRect:fromPoint:context:]):
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer drawLineForMisspelling:withWidth:]):

2005-08-14  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	- 1% speedup on HTML load speed iBench by avoiding icon database thrash
	http://bugs.webkit.org/show_bug.cgi?id=4423
	
        * Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase _setIconURL:forURL:]): Be more aggressive about returning early, because
	updating the database does some expensive data structure copies.
	

2005-08-14  Duncan Wilcox  <duncan@mclink.it>

        Reviewed and landed by Darin.

        WebKit part of fix for <http://bugs.webkit.org/show_bug.cgi?id=4011>:
        "Editing delegate selection methods not called when using mouse"

        Clicking on editable content would move the cursor or alter the selection without
        calling the appropriate editing delegate method
        (webView:shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:). The
        core of the patch is in the KHTMLPart::handleMousePressEvent* methods, the rest
        is glue needed to drill through all the layers.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
        Bridge glue.

        * WebView.subproj/WebView.m:
        (-[WebView(WebViewEditingExtras) _shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
        Final step in glue, calling editing delegate.

        * WebView.subproj/WebViewInternal.h:
        Added _shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting: private method to WebViewEditingExtras
        category.

2005-08-11  Beth Dakin  <bdakin@apple.com>

        Reviewed by Vicki

	This is a fix for <rdar://problem/4141161> REGRESSION (Tiger): WebKit does not display in composited Carbon windows.
	I basically did what Troy suggests in his bug comments, and everything seems to work fine!

        * Carbon.subproj/HIViewAdapter.m:
        (-[HIViewAdapter setNeedsDisplayInRect:]):

2005-08-10  Adele Peterson  <adele@apple.com>

        Bumping version to 420+

        * Info.plist:

2005-08-08  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - fixed <rdar://problem/3996324> REGRESSION (1.2-2.0): scroll bars sometimes not updated properly (with >40 duplicate reports!)
          also http://bugs.webkit.org/show_bug.cgi?id=3416

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
        Propagate dirty rects after doing a layout, since a layout can create new dirty rects.

2005-08-05  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        * WebKit.xcodeproj/project.pbxproj: Unchecked 'statics are thread safe' option.

2005-08-04  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by darin
        
        Fix for:
        <rdar://problem/3167884> Shockwave: 3D sprites rendered in OpenGL draw over the browser (3447)
        also as <http://bugs.webkit.org/show_bug.cgi?id=3447>
        
        The WindowRef created by -[NSWindow windowRef] has a QuickDraw GrafPort that covers 
        the entire window frame (or structure region in Carbon parlance) rather then just the window content.
        
        We filed this as an NSWindow bug <rdar://problem/4201099>

        To work around, we modify the CGrafPort to only cover the content area before we let the plug-in draw.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView fixWindowPort]):
        (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]):

2005-08-03  John Sullivan  <sullivan@apple.com>

        Reviewed by Geoff Garen.
        
        - fixed <rdar://problem/3918675> Remove code to replace authentication dialog 
        with a subclass when out of localization freeze

        * Panels.subproj/WebAuthenticationPanel.h:
        moved declaration of NonBlockingPanel here so it can be accessed by the nib
        * Panels.subproj/WebAuthenticationPanel.m:
        (-[WebAuthenticationPanel replacePanelWithSubclassHack]):
        removed this method
        (-[WebAuthenticationPanel loadNib]):
        stop calling the removed method

        * Panels.subproj/English.lproj/WebAuthenticationPanel.nib/classes.nib:
        * Panels.subproj/English.lproj/WebAuthenticationPanel.nib/info.nib:
        * Panels.subproj/English.lproj/WebAuthenticationPanel.nib/objects.nib:
        the panel in the nib now has custom class NonBlockingPanel

2005-08-03  Beth Dakin  <bdakin@apple.com>

        Reviewed by cblu

	Removing calls to WKCreateUncorrectedRGBColorSpace and
        WKCreateUncorrectedGrayColorSpace in WebKit to patch up
	TOT...Eric removed them from WebCore last night.

        * WebCoreSupport.subproj/WebImageData.m:
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (WebCGColorSpaceCreateRGB):
        (WebCGColorSpaceCreateGray):

2005-08-02  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin Adler.
        
        Preemptively moved some WebMenuItemTag values from SPI to API, in anticipation of
        approval from macosx-api-reviewers. Retitled one of them in response to API reviewers feedback:
        WebMenuItemSearchInGoogle -> WebMenuItemSearchWeb
        
        Note that as a side effect of this change, the actual numbers used for these WebMenuItemTags has
        changed from what it was in Tiger. This causes "Search in Spotlight", "Search in Google", and
        "Look Up in Dictionary" to not appear in Tiger Safari if running on tip of tree WebKit.

        * WebView.subproj/WebUIDelegatePrivate.h:
        removed WebMenuItemTagSearchInSpotlight, WebMenuItemTagSearchInGoogle, and WebMenuItemTagLookUpInDictionary

        * WebView.subproj/WebUIDelegate.h:
        added WebMenuItemTagSearchInSpotlight, WebMenuItemTagSearchWeb, and WebMenuItemTagLookUpInDictionary

        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate menuItemWithTag:]):
        updated for rename
        (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
        ditto
        (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
        ditto
        
2005-08-01  Geoffrey Garen  <ggaren@apple.com>

        -fixed <rdar://problem/3572585> window.open fails if name param = 
        the name of a window just closed in same function

        Reviewed by darin.

        Test cases added:

        * manual-tests/open-after-close.html: Added.
        * manual-tests/resources/open-after-close-popup.html: Added.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge closeWindowSoon]): We now remove a WebView from 
        WebViewSets when the WebView is *scheduled* to close.

2005-08-01  John Sullivan  <sullivan@apple.com>

        * PublicHeaderChangesFromTiger.txt:
        added a comment about isTextField -> _isTextField

2005-08-01  John Sullivan  <sullivan@apple.com>

        Patch by Trey Matteson <trey@usa.net>
        Reviewed by me.

        Fixed http://bugs.webkit.org/show_bug.cgi?id=4255
          underlines still print too thick

        The real problem here is that we have code that scales a 0 width line to always
        be width=1.0 in device space.  I'm leaving that in for the screen, but when printing
        a width of 0.5 looks good.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):

2005-08-01  Eric Seidel  <eseidel@apple.com>

        Reviewed by darin.

        * WebCoreSupport.subproj/WebGraphicsBridge.m:
        removed create*ColorSpace methods, now using CG API directly.
        http://bugs.webkit.org/show_bug.cgi?id=4211

2005-07-31  John Sullivan  <sullivan@apple.com>

        Patch by Trey Matteson <trey@usa.net>
        Reviewed by me.

        Fixed http://bugs.webkit.org/show_bug.cgi?id=4014
          PDF files by default load with a poor choice of sizing

        For now the various PDF viewing settings are sticky, stored in 2 new defaults.  Since
        there are a number of ways these settings are changed, I made a proxy for the PDFView
        through which all view changing messages are sent.  The proxy adds the behavior of
        updating the defaults upon any change.

        * Misc.subproj/WebNSDictionaryExtras.h:
        * Misc.subproj/WebNSDictionaryExtras.m:
        (-[NSMutableDictionary _webkit_setFloat:forKey:]):  New support method.
        * WebView.subproj/WebPDFView.h:
        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView initWithFrame:]):  Create proxy for PDFView.
        (-[WebPDFView dealloc]):  Free proxy.
        (-[WebPDFView _menuItemsFromPDFKitForEvent:]):  For relevant context menu items, set the
            target to the proxy instead of the PDFView.
        (-[WebPDFView _readPDFDefaults]):  Init PDFView with settings from defaults.
        (-[WebPDFView layout]):  Call _readPDFDefaults, once.  This turned out to be the best hook.
        (-[WebPDFView _makeTextSmaller:]):  Change PDFView via proxy
        (-[WebPDFView _makeTextLarger:]):  Ditto
        (-[WebPDFView _makeTextStandardSize:]):  Ditto
        (-[PDFPrefUpdatingProxy initWithView:]):  trivial
        (-[PDFPrefUpdatingProxy forwardInvocation:]):  Forward the msg, then update defaults
        (-[PDFPrefUpdatingProxy methodSignatureForSelector:]):  Simple forwarding support.
        * WebView.subproj/WebPreferenceKeysPrivate.h:
        * WebView.subproj/WebPreferences.m:
        (+[WebPreferences initialize]):  Set initial values for new PDF viewing defaults.
        (-[WebPreferences _integerValueForKey:]):  Nuke stray comment.
        (-[WebPreferences _floatValueForKey:]):  New simple support method.
        (-[WebPreferences _setFloatValue:forKey:]):  Ditto.
        (-[WebPreferences PDFScaleFactor]):  4 accessors for new defaults 
        (-[WebPreferences setPDFScaleFactor:]):
        (-[WebPreferences PDFDisplayMode]):
        (-[WebPreferences setPDFDisplayMode:]):
        * WebView.subproj/WebPreferencesPrivate.h:

2005-08-01  Justin Garcia  <justin.garcia@apple.com>

        Patch by Trey Matteson <trey@usa.net>

        Reviewed by Maciej.

        Fixed <http://bugs.webkit.org/show_bug.cgi?id=4226>
          link underlines print too thickly

        Reinstate the fix made by sullivan on 1/11/05.  There was a merge
        error with an mjs fix on 1/13/05.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):

2005-07-30  Maciej Stachowiak  <mjs@apple.com>

        Build fixes for previous change (missing includes)

        * WebView.subproj/WebFrame.m:
        * WebView.subproj/WebScriptDebugDelegate.m:

2005-07-29  Maciej Stachowiak  <mjs@apple.com>

        Changes by Michael Kahl, reviewed by me.

	- fixed <rdar://problem/4164112> MASTER: JavaScript debugging support
	
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge windowObjectCleared]):
        * WebCoreSupport.subproj/WebSubresourceLoader.m:
        * WebKit.xcodeproj/project.pbxproj:
        * WebView.subproj/WebDefaultScriptDebugDelegate.h: Added.
        * WebView.subproj/WebDefaultScriptDebugDelegate.m: Added.
        (+[WebDefaultScriptDebugDelegate sharedScriptDebugDelegate]):
        (-[WebDefaultScriptDebugDelegate webView:didParseSource:fromURL:sourceId:forWebFrame:]):
        (-[WebDefaultScriptDebugDelegate webView:didEnterCallFrame:sourceId:line:forWebFrame:]):
        (-[WebDefaultScriptDebugDelegate webView:willExecuteStatement:sourceId:line:forWebFrame:]):
        (-[WebDefaultScriptDebugDelegate webView:willLeaveCallFrame:sourceId:line:forWebFrame:]):
        * WebView.subproj/WebFrame.m:
        (-[WebFramePrivate dealloc]):
        (-[WebFrame _attachScriptDebugger]):
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebScriptDebugDelegate.h: Added.
        * WebView.subproj/WebScriptDebugDelegate.m: Added.
        (-[WebScriptDebugger initWithWebFrame:]):
        (-[WebScriptDebugger dealloc]):
        (-[WebScriptDebugger globalObject]):
        (-[WebScriptDebugger newWrapperForFrame:]):
        (-[WebScriptDebugger parsedSource:fromURL:sourceId:]):
        (-[WebScriptDebugger enteredFrame:sourceId:line:]):
        (-[WebScriptDebugger hitStatement:sourceId:line:]):
        (-[WebScriptDebugger leavingFrame:sourceId:line:]):
        (-[WebScriptCallFrame _initWithFrame:]):
        (-[WebScriptCallFrame dealloc]):
        (-[WebScriptCallFrame setUserInfo:]):
        (-[WebScriptCallFrame userInfo]):
        (-[WebScriptCallFrame caller]):
        (-[WebScriptCallFrame scopeChain]):
        (-[WebScriptCallFrame functionName]):
        (-[WebScriptCallFrame exception]):
        (-[WebScriptCallFrame evaluateWebScript:]):
        * WebView.subproj/WebScriptDebugDelegatePrivate.h: Added.
        * WebView.subproj/WebView.h:
        * WebView.subproj/WebView.m:
        (-[WebViewPrivate dealloc]):
        (-[WebView _scriptDebugDelegateForwarder]):
        (-[WebView setScriptDebugDelegate:]):
        (-[WebView scriptDebugDelegate]):
        * WebView.subproj/WebViewInternal.h:
        * WebView.subproj/WebViewPrivate.h:

2005-07-26  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Dave Hyatt.

	- fixed http://bugs.webkit.org/show_bug.cgi?id=4153
	
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _purgePageCache]): Find the oldest candidate for
	purging that is not a snapback item.

2005-07-29  David Harrison  <harrison@apple.com>

        Reviewed by Dave Hyatt (rendering) and Maciej (editing and performance improvements).

        Test cases added: Existing tab-related basic editing tests were updated.  More complex tests are coming soon.

        <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
        
        Basic strategy is to put tabs into spans with white-space:pre style, and
        render them with tabs stops every 8th space, where the space width and
        the left margin are those of the enclosing block.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (isSpace):
        (isRoundingHackCharacter):
        (getUncachedWidth):
        (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
        (-[WebTextRenderer _computeWidthForSpace]):
        (_drawGlyphs):
        (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
        (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
        (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]):
        (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
        (glyphForCharacter):
        (initializeCharacterWidthIterator):
        (ceilCurrentWidth):
        (widthForNextCharacter):

2005-07-29  John Sullivan  <sullivan@apple.com>

        Reviewed by Dave Hyatt.
        
        - WebKit part of <rdar://problem/4187404> Redo form SPI so that it doesn't rely on NSViews
        
        Much of 4187404 was addressed in earlier checkins. This checkin completes the task.

        * WebView.subproj/WebHTMLRepresentation.h:
        * WebView.subproj/WebHTMLRepresentation.m:
        removed viewForElement:, which was the only remaining NSView-related SPI that Safari autofill was
        still using. I added viewForElement a week ago as a transitional measure, so removing it won't
        affect any other clients.

2005-07-29  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris Blumenberg.

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _firstResponderIsFormControl]):
        renamed from _firstResponderIsControl for clarity. Explicitly rejects WebHTMLView, since
        it's now a control.
        (-[WebFrameView keyDown:]):
        updated for renamed method.

2005-07-28  John Sullivan  <sullivan@apple.com>

        Reviewed by Beth Dakin.
        
        - removed method -[WebHTMLRepresentation elementForView:], which was SPI used only for
        Safari autofill. Tip of tree Safari no longer includes any calls to this method. Also, 
        Tiger Safari never gets around to actually calling it due to the other recent form-SPI-related
        changes, so removing this method doesn't break Tiger Safari running on tip of tree WebKit
        (though autofill continues to not work in that configuration).

        * WebView.subproj/WebHTMLRepresentation.h:
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation elementForView:]): removed
        
2005-07-27  John Sullivan  <sullivan@apple.com>

	Patch by Trey Matteson <trey@usa.net>
        Reviewed by me.

        Fixed http://bugs.webkit.org/show_bug.cgi?id=4169
          scaling PDF view up leaves later HTML view scaled too

        An additional step of separating scaling of HTML and PDF.  If we do a zoom and there
        are no docViews that track the common scaling factor, then don't change it.  Thus in
        the common PDF case where it is the only doc view, scaling the PDF does not affect
        HTML pages loaded in the same window.

        * WebView.subproj/WebView.m:
        (-[WebView canMakeTextSmaller]):  Pass 0 for new scaling factor, since we just querying.
        (-[WebView canMakeTextLarger]):  Ditto.
        (-[WebView makeTextSmaller:]):  Pass new scaling factor.
        (-[WebView makeTextLarger:]):  Ditto.
        (-[WebView canMakeTextStandardSize]):  Pass 0 for new scaling factor.
        (-[WebView makeTextStandardSize:]):  Pass new scaling factor.
        (-[WebView _performTextSizingSelector:withObject:onTrackingDocs:selForNonTrackingDocs:newScaleFactor:]):
          The meat of the change is that this Swiss Army Knife also takes a new scaling
          factor, which it will set as the common scaling factor if it finds any doc views that
          are able to be scaled which track the common scaling factor.

2005-07-27  John Sullivan  <sullivan@apple.com>

	Patch by Trey Matteson <trey@usa.net>
        Reviewed by me.

        Fixed http://bugs.webkit.org/show_bug.cgi?id=4015
          PDF views should remember viewing mode, scroll position across back/forward
          Note this doesn't work within frames because of a PDFKit bug - see 4164
        Fixed http://bugs.webkit.org/show_bug.cgi?id=4091
          PDF views should keep a separate scaling factor from shared text scaling factor

        Basic idea #1 is that we now have a general mechanism for a WebDocView to save/restore some UI
        state to the WebHistoryItem.
        Basic idea #2 is that _WebDocumentTextSizing is expanded to allow for the case of a WebDocView
        keeping its own notion of a scaling factor.  WebPDFView's -_tracksCommonSizeFactor has justification.

        * History.subproj/WebHistoryItem.m:
        (-[WebHistoryItem setViewState:]):  New methods to hold PList of arbitrary WebView state
        (-[WebHistoryItem viewState]):
        * History.subproj/WebHistoryItemPrivate.h:
        * WebKit.xcodeproj/project.pbxproj:  Add Quartz to framework path so we can import PDFKit files
        * WebView.subproj/WebDocumentInternal.h:  New methods added to _WebDocumentTextSizing.
          Also the _ prefix is sufficient instead of _web_WebDocumentTextSizing.
          Added _WebDocumentViewState protocol.
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _createItemTreeWithTargetFrame:clippedAtTarget:]):  Rename of save/restore methods.
        (-[WebFrame _detachFromParent]):  Ditto
        (-[WebFrame _transitionToCommitted:]):  Ditto
        (-[WebFrame _checkLoadCompleteForThisFrame]):  Ditto
        (-[WebFrame _loadItem:withLoadType:]):  Ditto
        (-[WebFrame _recursiveGoToItem:fromItem:withLoadType:]):  Ditto
        (-[WebFrame _saveViewStateToItem:]):  Call doc view to retrieve view state.
        (-[WebFrame _restoreViewState]):  Call doc view to set view state.
        (-[WebFrame _scrollToTop]):  Nuked dead code.
        (-[WebFrame _textSizeMultiplierChanged]):  This work now appears in WebView.
        (-[WebFrame _saveDocumentAndScrollState]):  Same rename, one code cleanup.
        (-[WebFrame _accumulateDocumentViews:]): Add our docview to the array, call kids.
        (-[WebFrame _documentViews]):  New helper to return all docviews.
        (-[WebFrame _didFirstLayout]):  Same name change.
        * WebView.subproj/WebFrameInternal.h:
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebHTMLView.m:  Removed redundant category decl.
        (-[WebHTMLView _makeTextSmaller:]):  Implement new protocol.
        (-[WebHTMLView _makeTextLarger:]):
        (-[WebHTMLView _makeTextStandardSize:]):
        (-[WebHTMLView _tracksCommonSizeFactor]):
        * WebView.subproj/WebPDFRepresentation.m:  Tweak #imports.
        * WebView.subproj/WebPDFView.h:
        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView _menuItemsFromPDFKitForEvent:]):  No longer intercept context menu text sizing items.
        (-[WebPDFView setDataSource:]):  No longer track the WebView's scaling factor.
        (-[WebPDFView scrollPoint]):  Dig through PDFKit view tree to get real scroll position
        (-[WebPDFView setScrollPoint:]):  Ditto
        (-[WebPDFView viewState]):  Return bundle of viewing params
        (-[WebPDFView setViewState:]):  Restore bundle of viewing params
        (-[WebPDFView _makeTextSmaller:]):  Implement new text sizing protocol
        (-[WebPDFView _makeTextLarger:]):
        (-[WebPDFView _makeTextStandardSize:]):
        (-[WebPDFView _tracksCommonSizeFactor]):
        (-[WebPDFView _canMakeTextSmaller]):
        (-[WebPDFView _canMakeTextLarger]):
        (-[WebPDFView _canMakeTextStandardSize]):
        * WebView.subproj/WebTextView.m:
        (-[WebTextView _makeTextSmaller:]):  Implement new text sizing protocol
        (-[WebTextView _makeTextLarger:]):
        (-[WebTextView _makeTextStandardSize:]):
        (-[WebTextView _tracksCommonSizeFactor]):
        * WebView.subproj/WebView.m:
        (-[WebView setTextSizeMultiplier:]):  Calling docViews is now more complicates than just posting
           a notification to the frame.
        (-[WebView _performTextSizingSelector:withObject:onTrackingDocs:selForNonTrackingDocs:]):  Workhorse
           that sends the text sizing method to the right doc views.
        (-[WebView canMakeTextSmaller]):  Call workhorse.
        (-[WebView canMakeTextLarger]):  Ditto
        (-[WebView makeTextSmaller:]):  Ditto
        (-[WebView makeTextLarger:]):  Ditto
        (-[WebView canMakeTextStandardSize]):  Ditto
        (-[WebView makeTextStandardSize:]):  Ditto

2005-07-26  Justin Garcia  <justin.garcia@apple.com>

        Patch by Trey Matteson <trey@usa.net>

        Reviewed by John Sullivan.
        
        Fixed <http://bugs.webkit.org/show_bug.cgi?id=4072>
        Pressing back in browser misses out a page
        
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]):  When reloading the same page or refreshing the
        page, update the URL in the b/f item with the URL that we wind up at.  Due to cookies,
        it might be different than the result we just got when we loaded the same page.

2005-07-26  David Hyatt  <hyatt@apple.com>

	Make WebHTMLView inherit from NSControl instead of NSView.
	This change is necessary because the theme renderer for
	WebCore that draws controls with the Aqua appearance does so
	using NSCells.  NSCells must be hosted within a control view
	in order to paint properly.

	The method updateCell must be overridden because it wants to
	repaint the whole control when the windows resigns/becomes
	key, and this would result in behavior that we don't want
	(the repainting of the whole view).  We already have hooks
	in WebHTMLView for the window resigning/becoming key so
	we will do our proper control updating there instead (in a
	future patch).

        Reviewed by john

        * WebView.subproj/WebHTMLView.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView updateCell:]):
        
2005-07-26  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris Blumenberg.
        
        - more work to wean form-related SPI from NSView. All that's left (but this is a big "all")
        is viewForElement: and elementForView:        

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge textField:doCommandBySelector:]):
        changed signature to pass along DOMElement* rather than NSView*
        
        * WebView.subproj/WebFormDelegate.h:
        * WebView.subproj/WebFormDelegate.m:
        (-[WebFormDelegate textField:doCommandBySelector:inFrame:]):
        ditto

2005-07-25  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin Adler.
        
        - big hunk of weaning form-related SPI from NSView; autofill continues to
        work (but only on tip of tree Safari)
        
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge textFieldDidBeginEditing:]):
        changed name from controlTextXXX:, now takes a DOMHTMLInputElement*
        (-[WebBridge textFieldDidEndEditing:]):
        ditto
        (-[WebBridge textDidChangeInTextField:]):
        ditto
        (-[WebBridge textDidChangeInTextArea:]):
        changed name from textDidChange:, now takes a DOMHTMLTextAreaElement*
        (-[WebBridge control:textShouldBeginEditing:]):
        removed this method as it wasn't being used by autofill, and did nothing in WebKit
        (-[WebBridge control:textShouldEndEditing:]):
        ditto
        (-[WebBridge textField:shouldHandleEvent:]):
        changed name from control:textView:shouldHandleEvent:, now takes a DOMHTMLInputElement*.
        The textView parameter wasn't being used, so I eliminated it.
        
        * WebView.subproj/WebFormDelegate.h:
        * WebView.subproj/WebFormDelegate.m:
        (-[WebFormDelegate textFieldDidBeginEditing:inFrame:]):
        (-[WebFormDelegate textFieldDidEndEditing:inFrame:]):
        (-[WebFormDelegate control:textShouldBeginEditing:inFrame:]):
        (-[WebFormDelegate control:textShouldEndEditing:inFrame:]):
        (-[WebFormDelegate textDidChangeInTextField:inFrame:]):
        (-[WebFormDelegate textDidChangeInTextArea:inFrame:]):
        (-[WebFormDelegate textField:shouldHandleEvent:inFrame:]):
        These all changed in the same way as the WebBridge methods
        

2005-07-25  Vicki Murley <vicki@apple.com>

        Reviewed by Darin.
 
	- fixed <rdar://problem/3470523> Safari's user agent should be changed to say Intel rather 
	than PPC on Intel machines

        * WebView.subproj/WebView.m: add conditional #defines for "PPC" and "Intel"
        (-[WebView userAgentForURL:]): use this variable when constructing the user agent string

2005-07-24  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by mjs
        
        - Fixes <rdar://problem/4120535> deleteToEndOfLine: does not delete thew newline when at the end of a line
            Fix to match NSTextView.  Delete the next character if deleteToEndOfLine fails

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView deleteToEndOfLine:]):

2005-07-24  Justin Garcia  <justin.garcia@apple.com>

        Patch by Trey Matteson <trey@apple.com>

        Reviewed by john
        
        Fixes <http://bugs.webkit.org/show_bug.cgi?id=3953> back-forward items have wrong titles after sub-frame navigations

        This was caused by a mistaken data structure, where WebDataSource tried to keep a list of
        b/f items it was responsible for.  The problem arose in the case of frames, where a subframe
        was loaded with new content.  When this happens a fresh tree of b/f items is created,
        but the reference in the DataSource still pointed to the old item.

        Since the WebFrame does a lot of work to track the current b/f item, the easiest thing is to
        get rid of the DataSource's reference, and have it ask the WebFrame to set the title on the
        right b/f item.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSourcePrivate dealloc]):
        (-[WebDataSource _setTitle:]):
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _createItem:]):
        (-[WebFrame _transitionToCommitted:]):
        (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
        (-[WebFrame _setTitle:]):
        * WebView.subproj/WebFramePrivate.h:

2005-07-24  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by kevin
        
        Fixed make clean problem

        * Makefile.am:

2005-07-23  Justin Garcia  <justin.garcia@apple.com>

        Patch by <opendarwin.org@mitzpettel.com>

        Reviewed by darin and hyatt
        
        Fixes <http://bugs.webkit.org/show_bug.cgi?id=3862>
        The fix for <http://bugs.webkit.org/show_bug.cgi?id=3545> enclosed each run of visually ordered
        hebrew with LRO and PDF control characters, but adjusted the run's to and from to include those characters,
        so that they would be rendered if the font includes a glyph for bidi control characters.
        
        Also adding a manual test

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (reverseCharactersInRun):

2005-07-22  John Sullivan  <sullivan@apple.com>

        Reviewed by Justin Garcia.
        
        Mail (running on tip of tree WebKit) was running into an assertion I recently added.
        The assertion is actually correct, catching an old bug in this code.

        * WebView.subproj/WebView.m:
        (-[WebView selectedFrame]):
        if the first responder is a WebFrameView, then we've found the WebFrameView we're 
        looking for, and we shouldn't look at its superviews.

2005-07-22  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris Blumenberg.

        - some changes in the direction of weaning all the form-related SPI from NSView

        * PublicHeaderChangesFromTiger.txt:
        noted that the WebCore change to add -[DOMHTMLInputElement isTextField] to
        DOMExtensions.h is a public header change.

        * WebView.subproj/WebHTMLRepresentation.h:
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation viewForElement:]):
        added viewForElement: as a stopgap measure. This allowed me to convert controlsInForm:
        to return DOMElements rather than NSViews, while keeping autocomplete working in
        Safari tip of tree. When I finish the SPI conversion I'll delete this method. Note that
        from this point on, autocomplete will not work in Tiger Safari with tip of tree WebKit
        (it will always fail to find anything to autocomplete)

2005-07-21  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        Changing temporary #ifndef to #if

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _checkSolidColor:]):

2005-07-21  Adele Peterson  <adele@apple.com>

        Reviewed by Chris Blumenberg.

        - fixed <rdar://problem/4132797> don't register thin PPC WebKit plug-ins
        Merged fix for:
        <rdar://problem/4127100> [WebKit] 8B1016: After installing Acrobat Reader, can no longer see pdf's in Safari

        * Plugins.subproj/WebBasePluginPackage.h: Added isNativeLibraryData method.
        * Plugins.subproj/WebBasePluginPackage.m: (-[WebBasePluginPackage isNativeLibraryData:]): Added isNativeLibraryData method.
        * Plugins.subproj/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage initWithPath:]):
          calls isNativeLibraryData to determine whether or not to register the plug-in.
        * Plugins.subproj/WebPluginPackage.m: (-[WebPluginPackage initWithPath:]): ditto.
        * WebCoreSupport.subproj/WebImageData.m: (-[WebImageData _checkSolidColor:]): added comment for #ifdef.

2005-07-21  Geoffrey Garen  <ggaren@apple.com>

        * WebKit.pbproj/project.pbxproj: Removed.

2005-07-21  Geoffrey Garen  <ggaren@apple.com>

        * WebKit.xcodeproj/.cvsignore: Added.

2005-07-21  Geoffrey Garen  <ggaren@apple.com>

        * WebKit.xcodeproj/project.pbxproj: Added.

2005-07-21  Geoffrey Garen  <ggaren@apple.com>

        * Makefile.am:

2005-07-20  John Sullivan  <sullivan@apple.com>

        Reviewed by Vicki Murley.

        - removed some form-related methods that weren't being used anywhere, in preparation
        for weaning WebKit's WebFormDelegate protocol from NSView.

        * WebCoreSupport.subproj/WebBridge.m:
        * WebView.subproj/WebFormDelegate.h:
        * WebView.subproj/WebFormDelegate.m:
        removed these methods:
        -control:didFailToFormatString:errorDescription:
        -control:didFailToValidatePartialString:errorDescription:
        -control:isValidObject:

2005-07-20  Adele Peterson  <adele@apple.com>

          Merged fix for:
          <rdar://problem/4125127> [WebKit] horizontal rulers don't render on Safari on web.apple.com

          * WebCoreSupport.subproj/WebImageData.m:
          (-[WebImageData _checkSolidColor:]):

2005-07-20  Adele Peterson  <adele@apple.com>

        Merged fix for :
        <rdar://problem/4118278> mail divide by zero navigating messages
  
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _extendGlyphToWidthMapToInclude:font:]):

2005-07-20  John Sullivan  <sullivan@apple.com>

        Reviewed by Adele Peterson.
        
        - added -[WebView selectedFrame] to SPI (pending public API), needed for 4180958

        * WebView.subproj/WebView.m:
        (-[WebView selectedFrame]):
        new method, extracted from _selectedOrMainFrame
        (-[WebView _selectedOrMainFrame]):
        now calls extracted method
        
        * WebView.subproj/WebViewPrivate.h:
        add -selectedFrame to PendingPublic category

2005-07-19  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin Adler.
        
        - cleaned up code related to dealing with the "selected frame"; fixes radar bugs 4118830 and 4118820

        * WebView.subproj/WebTextView.m:
        (-[WebTextView resignFirstResponder]):
        call deselectAll here instead of replicating its guts, just for clarity
        
        * WebView.subproj/WebViewInternal.h:
        eliminated category WebInternal; all of these methods were used only inside WebView.m, so I moved
        them into the existing category WebFileInternal that was declared and implemented in WebView.m
        
        * WebView.subproj/WebView.m:
        (-[WebView searchFor:direction:caseSensitive:wrap:]):
        updated for name changes. Also, uses new _deselectFrame: to clear the selection if the found
        text is in a different frame.
        (-[WebView pasteboardTypesForSelection]):
        (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]):
        (-[WebView setSelectedDOMRange:affinity:]):
        (-[WebView selectedDOMRange]):
        (-[WebView selectionAffinity]):
        (-[WebView setTypingStyle:]):
        (-[WebView typingStyle]):
        (-[WebView styleDeclarationWithText:]):        
        (-[WebView replaceSelectionWithNode:]):
        (-[WebView replaceSelectionWithText:]):
        (-[WebView replaceSelectionWithMarkupString:]):
        (-[WebView replaceSelectionWithArchive:]):
        (-[WebView deleteSelection]):
        (-[WebView applyStyle:]):
        updated for name changes only
        
        (-[WebView _frameIsSelected:]):
        new method, returns YES if given frame has a non-zero-length selection
        (-[WebView _deselectFrame:]):
        new method, clears selection from given frame
        (-[WebView _findSelectedFrameStartingFromFrame:]):
        new method, recursive helper used by _findSelectedFrame
        (-[WebView _findSelectedFrame]):
        new method, finds first frame that returns YES for _frameIsSelected, or nil
        (-[WebView _debugCollectSelectedFramesIntoArray:startingFromFrame:]):
        new method, recursive helper used by _debugCheckForMultipleSelectedFrames
        (-[WebView _debugCheckForMultipleSelectedFrames]):
        new method for debugging, fires an assertion if there's more than one selected frame.
        (-[WebView _selectedOrMainFrame]):
        renamed from _frameForCurrentSelection, which was a misleading name since the returned
        frame does not necessarily have a selection (or even focus). Now checks for a selected
        but non-focused frame if the first responder is not in any frame. Also, moved in file
        from WebInternal category to WebFileInternal category.
        (-[WebView _bridgeForSelectedOrMainFrame]):
        renamed from _bridgeForCurrentSelection, which was a misleading name for the same
        reasons as _frameForCurrentSelection. Also, moved in file from WebInternal category to
        WebFileInternal category.
        (-[WebView _isLoading]):
        (-[WebView _frameViewAtWindowPoint:]):
        (-[WebView _bridgeAtPoint:]):
        just moved in file from WebInternal category to WebFileInternal category

2005-07-19  Darin Adler  <darin@apple.com>

        Reviewed by Geoff Garen.

        - improve handling of plug-ins when the WebView or a superview is hidden with -[NSView setHidden]

        * Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]):
        Add "hidden" to the list of reasons to clip out all plug-in drawing.

2005-07-18  John Sullivan  <sullivan@apple.com>
        
        Written by Trey Matteson  <trey@usa.net>
        Reviewed by John Sullivan.

        Fixed http://bugs.webkit.org/show_bug.cgi?id=4049
          scroll position not restored when going back/forward at ebay
        Fixed http://bugs.webkit.org/show_bug.cgi?id=4061
          When going back/forward to some pages, they redraw at top before restoring scroll position

        The short story is that attempting to restore the scroll position
        at the time when the first layout finishes addresses both of these
        issues.  An explanation of the underlying race condition is in
        a large comment near -_restoreScrollPosition.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge didFirstLayout]):  Pass through to WebFrame.
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]):  Get rid of attempt to
          restoreScrollPosition that never did anything because the
          docView was always 0x0 size at that point.
        (-[WebFrame _opened]):  Get rid of redundant call to restoreScrollPosition.
          The imminent call to layoutCompleted makes the same call.
        (-[WebFrame _didFirstLayout]):  Restore the scroll position on
          first layout, if we're doing a b/f nav.
        * WebView.subproj/WebFrameInternal.h:

2005-07-18  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin Adler.

        - fixed these bugs:
        <rdar://problem/4158121> context menu in PDF view should contain the selection-based items like Copy
        <rdar://problem/4184691> WebPDFView should conform to the WebDocumentElement protocol
        <rdar://problem/4184663> "Search in Spotlight" is present but dimmed in context menu for plain-text documents

        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
        added ASSERT and comments

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _searchWithGoogleFromMenu:]):
        removed this method (now handled by WebView)
        (-[WebHTMLView _searchWithSpotlightFromMenu:]):
        ditto
        (-[WebHTMLView validateUserInterfaceItem:]):
        removed validation for removed items. The validation wasn't necessary anyway, since we only put these items
        in the menu in the case where they should be enabled.

        * WebView.subproj/WebPDFView.h:
        now conforms to WebDocumentElement protocol (which lets [WebView elementAtPoint:] work better)
        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView copy:]):
        added, hands off to PDFView, needed to enable Copy in context menu
        (-[WebPDFView _pointIsInSelection:]):
        new method, checks whether given point is in the selected bounds
        (-[WebPDFView elementAtPoint:]):
        add WebElementIsSelectedKey to returned element
        (-[WebPDFView menuForEvent:]):
        use actual point instead of dummy placeholder, now that we have code that pays attention to the point

        * WebView.subproj/WebView.m:
        (-[WebView _searchWithGoogleFromMenu:]):
        moved here from WebHTMLView so it will work for any documentView that conforms to WebDocumentText.
        Rewrote slightly to be non-WebHTMLView-specific. (This menu item was always enabled in Safari because
        Safari replaces its action, but it would not have been always enabled in other WebKit clients, though
        it should have been.)
        (-[WebView _searchWithSpotlightFromMenu:]):
        moved here from WebHTMLView so it will work for any documentView that conforms to WebDocumentText.
        Rewrote slightly to be non-WebHTMLView-specific.

2005-07-18  John Sullivan  <sullivan@apple.com>

        Reviewed by Richard Williamson.
        
        - fixed <rdar://problem/4184366> WebPDFView should conform to the WebDocumentSelection protocol

        * Misc.subproj/WebNSAttributedStringExtras.h: Added.
        * Misc.subproj/WebNSAttributedStringExtras.m: Added.
        (-[NSAttributedString _web_attributedStringByStrippingAttachmentCharacters]):
        New category on NSAttributedString, initially contains this one method that had been in WebHTMLView.
        
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]):
        now uses _web_attributedStringByStrippingAttachmentCharacters
        
        * WebView.subproj/WebPDFView.h:
        now conforms to WebDocumentSelection protocol
        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView selectionRect]):
        new, implementation of WebDocumentSelection protocol method
        (-[WebPDFView pasteboardTypesForSelection]):
        ditto
        (-[WebPDFView writeSelectionWithPasteboardTypes:toPasteboard:]):
        ditto

        * WebKit.pbproj/project.pbxproj:
        updated for new files

2005-07-18  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris Blumenberg.
        
        - some refactoring cleanup in the selection/searching code

        * Misc.subproj/WebSearchableTextView.h:
        moved WebDocumentSelection protocol conformation to this class, was in subclass WebTextView
        * Misc.subproj/WebSearchableTextView.m:
        (-[WebSearchableTextView selectionRect]):
        new method (moved here from Safari) to return a single rect encompassing all selected text
        (-[WebSearchableTextView pasteboardTypesForSelection]):
        moved here from WebTextView
        (-[WebSearchableTextView writeSelectionWithPasteboardTypes:toPasteboard:]):
        ditto
        
        * WebView.subproj/WebDocumentInternal.h:
        moved WebDocumentSelection protocol out of here
        
        * WebView.subproj/WebDocumentPrivate.h:
        moved WebDocumentSelection protocol into here, added selectionRect method
        
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView selectionRect]):
        new method, calls existing bridge method formerly called by _selectionRect
        (-[WebHTMLView _selectionRect]):
        now calls [self selectionRect]. We can't just delete _selectionRect because it's used by Mail.
        
        * WebView.subproj/WebHTMLViewPrivate.h:
        removed _selectionRect since it's in WebDocumentSelection now
        
        * WebView.subproj/WebTextView.h:
        removed WebDocumentSelection from protocol list since it's in superclass now
        
        * WebView.subproj/WebTextView.m:
        removed old WebDocumentSelection methods because they are in superclass now

2005-07-15  Adele Peterson  <adele@apple.com>

        Written by Trey Matteson  <trey@usa.net>
        Reviewed by John Sullivan.

        Fixed http://bugs.webkit.org/show_bug.cgi?id=3910 - REGRESSION: Replying "Cancel" to the form repost nag leaves wrong b/f cursor

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _resetBackForwardList]):  new helper method
        (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
          If the delegate bailed on the navigation, tell the main frame
          to reset the b/f cursor back to where it was before we started.

2005-07-15  John Sullivan  <sullivan@apple.com>

        Written by Trey Matteson
        Reviewed by me.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=4013
                text find doesn't wrap in PDF files

        This just works once WebPDFView implements the WebDocumentText protocol, which is
        mostly just a matter of forwarding the methods to PDFKit appropriately.

        * WebView.subproj/WebPDFView.h:
        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView supportsTextEncoding]):
        (-[WebPDFView string]):
        (-[WebPDFView attributedString]):
        (-[WebPDFView selectedString]):
        (-[WebPDFView selectedAttributedString]):
        (-[WebPDFView selectAll]):
        (-[WebPDFView deselectAll]):

2005-07-15  John Sullivan  <sullivan@apple.com>

        Reviewed by Kevin Decker.
        
        - fixed <rdar://problem/4181884> Searching for text that overlaps selection works 
        differently in PDFView than in HTMLView

        * WebView.subproj/WebPDFView.m:
        (PDFSelectionsAreEqual):
        new function, stand-in for nonexistent -[PDFSelection isEqual:] since calling isEqual:
        on two identical PDFSelections returns NO
        (-[WebPDFView searchFor:direction:caseSensitive:wrap:]):
        Make search algorithm match that in WebCore: initially search inside selection, then check for the case
        where the found text exactly matches the previous selection, and search from past the selection if so.
        The implementation is slightly more complicated than it should be due to PDFKit API limitations (about
        which I added FIXMEs and filed bugs)

2005-07-15  John Sullivan  <sullivan@apple.com>

        Reviewed by Maciej Stachowiak.
        
        - fixed these bugs:
        <rdar://problem/4181875> Searching for text that overlaps selection works differently in WebTextView than in HTMLView
        <rdar://problem/3393678> Find not finding text in plain (non-HTML) if all text is selected

        * Misc.subproj/WebSearchableTextView.m:
        (-[NSString findString:selectedRange:options:wrap:]):
        Make search algorithm match that in WebCore: initially search inside selection, then check for the case
        where the found text exactly matches the previous selection, and search from past the selection if so.

2005-07-14  John Sullivan  <sullivan@apple.com>

        Reviewed by Dave Hyatt.

        - WebKit part of fix for: 
        <rdar://problem/4181227> webpages incorrectly use standard instead of secondary highlighting in certain cases

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge formControlIsResigningFirstResponder:]):
        Implementation of new method defined in WebCore, passes call along to WebHTMLView
        
        * WebView.subproj/WebHTMLViewInternal.h:
        declare _formControlIsResigningFirstResponder: so bridge can call it

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView updateFocusState]):
        just moved in file so it could be called from a different category
        (-[WebHTMLView _formControlIsResigningFirstResponder:]):
        new method, updates focus state

2005-07-14  John Sullivan  <sullivan@apple.com>

	added missing #import to fix build
	* WebView.subproj/WebPDFView.m

2005-07-14  Kevin Decker  <kdecker@apple.com>

        Reviewed by cblu

	Fixed: <rdar://problem/4122282> clicking a link in an PDF file opens the link with NSWorkspace without the usual security checks or WebView delegate control

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _safeLoadURL:]): added
        * WebView.subproj/WebFrameInternal.h:
        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView initWithFrame:]):
        (-[WebPDFView PDFViewWillClickOnLink:withURL:]): prevents evilness with a call to _safeLoadURL
        * WebView.subproj/WebTextView.m:
        (-[WebTextView clickedOnLink:atIndex:]): factored calling out to the bridge, and instead call _safeLoadURL

2005-07-14  Vicki Murley  <vicki@apple.com>

        Reviewed by Kocienda.

	- WebKit part of fix for  <rdar://problem/4172380> [GENENTECH] window.opener 
	not available when child opened via target="_new"

	Add a setOpener function to the WebCore bridge, and call this function when opening
	new windows through Web Kit.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _continueLoadRequestAfterNewWindowPolicy:frameName:formState:]):

2005-07-13  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by John
        
        Rolling in changes necessary to build with newer versions of gcc 4.0

        * History.subproj/WebHistoryItem.m:
        (-[WebHistoryItem copyWithZone:]):
        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_writeImage:URL:title:archive:types:]):
        * Misc.subproj/WebNSURLExtras.m:
        (-[NSURL _web_URLWithLowercasedScheme]):
        (-[NSString _web_mapHostNameWithRange:encode:makeString:]):
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge MIMETypeForPath:]):
        * WebCoreSupport.subproj/WebImageRendererFactory.m:
        (-[WebImageRendererFactory imageRendererWithBytes:length:MIMEType:]):
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer initWithFont:usingPrinterFont:]):
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _webDataRequestForData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _styleFromFontAttributes:]):
        * WebView.subproj/WebView.m:
        (-[WebView _writeImageElement:withPasteboardTypes:toPasteboard:]):
        (-[WebView mainFrameTitle]):

2005-07-13  John Sullivan  <sullivan@apple.com>

        Reviewed by Maciej Stachowiak.

        - cleaned up Find-related experimental code that I checked in a while back

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView searchFor:direction:caseSensitive:wrap:]):
        remove variant of this method that had findInSelection flag; this method is now
        the same as it was on Tiger.
        
        * WebView.subproj/WebView.m:
        (-[WebView searchFor:direction:caseSensitive:wrap:]):
        ditto

2005-07-12  Geoffrey Garen  <ggaren@apple.com>

        -rolled in patch by opendarwin.org@mitzpettel.com 
        for http://bugs.webkit.org/show_bug.cgi?id=3435
        Parentheses are backwards in Hebrew text (no bidi mirroring?)
        
        Reviewed by mjs.

        Layout test added to WebCore.

        * WebCoreSupport.subproj/WebTextRenderer.h:
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _initializeATSUStyle]):
        (applyMirroringToRun):
        (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):
        (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
        (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):

2005-07-12  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Chris Blumenberg

        * WebCoreSupport.subproj/WebBridge.m: Removed some glue that allowed one
        of two unicode (TEC or ICU ) to be chosen at runtime. I just added this
        dual support yesterday, and while Maciej and I agreed that it was good
        to land in the tree in case we run into problems in the near future, we
        also agreed that cutting over to using ICU full time right now is
        probably the best way to find bugs.

2005-07-11  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Richard

        * WebCoreSupport.subproj/WebBridge.m:
        (+[WebBridge setTextConversionMethod:]): New method to support switching text conversion method.
        (+[WebBridge textConversionMethod]): Returns current text conversion method.

2005-07-11  Kevin Decker  <kdecker@apple.com>

        Reviewed by cblu and mjs.

	Fixed: <rdar://problem/4099552> REGRESSION: Safari 1.3 Netscape API NPN_PostURL[Notify] no longer allows manual headers
	
	Most plugins (flash) send 2 CRFL's between the header and body of their POST requests, while the adboe plugin sends two LF's. This caused us to send custom headers as part of the actual POST data itself, and correspondently, would skew Content-Length.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[NSData _web_locationAfterFirstBlankLine]): Look for two LF's as well

2005-07-09  Maciej Stachowiak  <mjs@apple.com>

        - back out my revent page cache changes, turns out they cause a
	major performance regression on PLT

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _purgePageCache]):

2005-07-09  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by hyatt.

	Replace int with unsigned, to avoid going into a huge loop when
	back list count is 0.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _purgePageCache]):

2005-07-09  Maciej Stachowiak  <mjs@apple.com>

        - fixed broken Development build

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _purgePageCache]):

2005-07-09  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by hyatt.

	- fix page cache purging logic; this gets rid of a bug where the
	page cache would grow without bound if the oldest page cache item
	was the snapback item, and changed the rule a bit so page cache
	items farther back than the max size get purged, even if fewer
	than the max size are in current use.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _purgePageCache]):

2005-07-08  Geoffrey Garen  <ggaren@apple.com>

        Rolled in patch by opendarwin.org@mitzpettel.com

        -fixes http://bugs.webkit.org/show_bug.cgi?id=3818
        Fallback font doesn't have requested weight in ATSUI-rendered text

        (See WebCore Changelog for layout test)

        Reviewed by mjs.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _createATSUTextLayoutForRun:style:]):

2005-07-05  Adele Peterson  <adele@apple.com>

       Rolling out changes for <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
       since it caused a 2% performance regression.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (isSpace):
        (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
        (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
        (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]):
        (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
        (initializeCharacterWidthIterator):
        (widthForNextCharacter):

2005-07-05  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris Blumenberg.
        
        - fixed <rdar://problem/4158230> Zoom In/Zoom Out in PDF context menu don't update window's notion of text size

        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView _menuItemsFromPDFKitForEvent:]):
        Redirect Actual Size, Zoom In, and Zoom Out context menu items so that they behave exactly like Make Text Standard Size,
        Make Text Larger, and Make Text Smaller.

2005-07-01  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin Adler.
        
        - fixed http://bugs.webkit.org/show_bug.cgi?id=3711: Displayed PDF have limited options in contextual menu
        
        This was a problem with using Tiger's version of Safari with tip of tree WebKit.

        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView _anyPDFTagsFoundInMenu:]):
        new method, returns YES if the menu contains any items with any of the new PDF-related tags.
        (-[WebPDFView menuForEvent:]):
        If the executable was linked on Tiger or older (but it will never be older, since this code is
        new to Tiger), force all of the PDF-related items into the menu if none of them were there 
        after processing by the delegate.

2005-06-30  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - fixed <http://bugs.webkit.org/show_bug.cgi?id=3774>
          do renaming so that loaders are called "loader", not "client" or "delegate"

        * Misc.subproj/WebIconLoader.h:
        * Plugins.subproj/WebNetscapePluginStream.h:
        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
        (-[WebNetscapePluginStream start]):
        (-[WebNetscapePlugInStreamLoader didFinishLoading]):
        (-[WebNetscapePlugInStreamLoader didFailWithError:]):
        (-[WebNetscapePlugInStreamLoader cancelWithError:]):
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge startLoadingResource:withURL:customHeaders:]):
        (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]):
        (-[WebBridge canRunModalNow]):
        * WebCoreSupport.subproj/WebSubresourceClient.h: Removed.
        * WebCoreSupport.subproj/WebSubresourceClient.m: Removed.
        * WebCoreSupport.subproj/WebSubresourceLoader.h:
        * WebCoreSupport.subproj/WebSubresourceLoader.m:
        (-[WebSubresourceLoader initWithLoader:dataSource:]):
        (-[WebSubresourceLoader dealloc]):
        (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
        (+[WebSubresourceLoader startLoadingResource:withURL:customHeaders:referrer:forDataSource:]):
        (+[WebSubresourceLoader startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]):
        (-[WebSubresourceLoader didReceiveResponse:]):
        (-[WebSubresourceLoader didReceiveData:lengthReceived:]):
        (-[WebSubresourceLoader didFinishLoading]):
        (-[WebSubresourceLoader didFailWithError:]):
        (-[WebSubresourceLoader cancel]):
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebBaseResourceHandleDelegate.h: Removed.
        * WebView.subproj/WebBaseResourceHandleDelegate.m: Removed.
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSourcePrivate dealloc]):
        (-[WebDataSource _setLoading:]):
        (-[WebDataSource _updateLoading]):
        (-[WebDataSource _setPrimaryLoadComplete:]):
        (-[WebDataSource _startLoading:]):
        (-[WebDataSource _addSubresourceLoader:]):
        (-[WebDataSource _removeSubresourceLoader:]):
        (-[WebDataSource _addPlugInStreamLoader:]):
        (-[WebDataSource _removePlugInStreamLoader:]):
        (-[WebDataSource _stopLoadingInternal]):
        (-[WebDataSource _defersCallbacksChanged]):
        (-[WebDataSource _stopLoadingWithError:]):
        (-[WebDataSource data]):
        (-[WebDataSource isLoading]):
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebLoader.h:
        * WebView.subproj/WebLoader.m:
        * WebView.subproj/WebMainResourceClient.h: Removed.
        * WebView.subproj/WebMainResourceClient.m: Removed.
        * WebView.subproj/WebMainResourceLoader.h:
        * WebView.subproj/WebMainResourceLoader.m:
        (-[WebMainResourceLoader didReceiveResponse:]):

2005-06-29  David Harrison  <harrison@apple.com>

        Reviewed by Dave Hyatt (rendering) and Maciej (editing).

        Test cases added:  Coming soon.  Will include with next round of changes for this bug.

        This is the first checkin for...
        
        <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
        
        Basic strategy is to put tabs into spans with white-space:pre style, and
        render them with tabs stops every 8th space, where the space width and
        the left margin are those of the enclosing block.
        
        What's left is to switch to implement white-space:pre-wrap so
        that we can coalesce consecutive tabs while maintaining proper
        line breaking.  That will keep the markup smaller.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (isSpace):
        (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
        (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
        (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]):
        (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
        (initializeCharacterWidthIterator):
        (widthForNextCharacter):

2005-06-29  John Sullivan  <sullivan@apple.com>

        Reviewed by Kevin.
        
        - deleted some never-used stub code

        * WebView.subproj/WebView.m:
        * WebView.subproj/WebViewInternal.h:
        * WebView.subproj/WebViewPrivate.h:

2005-06-27  Justin Garcia  <justin.garcia@apple.com>

        Patch by Anders Carlsson <andersca@mac.com>

        Reviewed by Darin.

        - Fixes <http://bugs.webkit.org/show_bug.cgi?id=3489>
        WebView's setSelectedDOMRange doesn't not implement clearing the selection as described in the WebView documentation:
        <http://developer.apple.com/documentation/Cocoa/Reference/WebKit/ObjC_classic/Classes/WebView.html>
	
        * WebView.subproj/WebView.m:
        (-[WebView setSelectedDOMRange:affinity:]):
        If range is nil, call deselectText.

2005-06-24  Justin Garcia  <justin.garcia@apple.com>

        Patch contributed by Duncan Wilcox <duncan@mclink.it>

        Reviewed by Darin

        - Fixed <http://bugs.webkit.org/show_bug.cgi?id=3535>
            Spelling suggestions in the context menu don't call the should* delegate methods

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _changeSpellingFromMenu:]):
        give delegate's webView:shouldInsertText:replacingDOMRange:givenAction: a chance
        to prevent replacing of selected text

2005-06-22  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris Blumenberg.
        
        - fixed <rdar://problem/3764645> please add a way to allow WebKit clients to override the WebPDFView context menu

        * PublicHeaderChangesFromTiger.txt: Added.
        New file to keep track of changes made to public headers that haven't been through API review yet.
        Initially lists the WebMenuItem enum tags added to WebUIDelegate.h as part of this change.
        
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate appendDefaultItems:toArray:]):
        new method, handles initial separator
        (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
        now has defaultMenuItems: parameter. Any menu items in this array are appended at the end of
        the standard set.
        (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
        ditto
        (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]):
        This had a defaultMenuItems parameter before but it was always nil. Now it passes the defaultMenuItems
        parameter on to the two methods that construct lists (one for editing, the other for viewing). Also
        tweaked variable name and type for clarity.
        
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView menuForEvent:]):
        passes nil for new defaultItems parameter of _menuForElement:
        
        * WebView.subproj/WebImageView.m:
        (-[WebImageView menuForEvent:]):
        ditto
        
        * WebView.subproj/WebTextView.m:
        (-[WebTextView menuForEvent:]):
        ditto

        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView elementAtPoint:]):
        new method to create the element dictionary needed for _menuForElement:defaultItems:. Only supplies the
        webFrame at this point.
        (-[WebPDFView _menuItemsFromPDFKitForEvent:]):
        new method to return copies of the menu items that PDFKit would include in the context menu, with
        WebKit tags applied
        (-[WebPDFView menuForEvent:]):
        now calls standard WebKit context menu mechanism, so clients' delegates can modify the context menu as
        desired. The initial set of items are the ones WebKit was already displaying for PDF context menus.
        
        * WebView.subproj/WebUIDelegate.h:
        added enum values for the menu items in the PDF context menu
        
        * WebView.subproj/WebViewPrivate.h:
        * WebView.subproj/WebView.m:
        (-[WebView _menuForElement:defaultItems:]):
        Added the defaultItems: parameter to this method, which is then passed along to WebDefaultUIDelegate.
        All callers pass nil except for WebPDFView, at least for now.

2005-06-22  Darin Adler  <darin@apple.com>

        Change by Mitz Pettel.
        Reviewed by me.

        - fixed <http://bugs.webkit.org/show_bug.cgi?id=3618>
          RTL runs drawn by CG not reversed properly

        * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _CG_drawRun:style:geometry:]):
        Fix off-by-one mistake in order-swapping loops.

2005-06-22  Darin Adler  <darin@apple.com>

        Change by Michael Gaiman.
        Reviewed by me.

        - fixed <http://bugs.webkit.org/show_bug.cgi?id=3436>
          Missing implementation of -[NSData(WebNSDateExtras) _webkit_parseRFC822HeaderFields]

        * Misc.subproj/WebNSDataExtras.h: Fixed name of category say NSData, not NSDate.
        * Misc.subproj/WebNSDataExtras.m: (-[NSData _webkit_parseRFC822HeaderFields]): Fixed method name.

2005-06-21  John Sullivan  <sullivan@apple.com>

        Reviewed by Vicki Murley
        
        - fixed assertion failure Vicki ran into

        * Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase _forgetIconForIconURLString:]):
        Handle the case where there are no associated page URLs for the icon URL

2005-06-20  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris Blumenberg.
        
        - fixed <rdar://problem/4155182> icon database retain counts can be incorrect after removing all icons
        
        Replaced the concept of "future retain count per page URL" with a simpler concept of "retain count per
        page URL", which is maintained even after the icon is actually loaded (unlike the future retain count).
        The total retain count for an icon is now the sum of the retain counts per page URL along with any retain
        count not associated with a page URL -- this is still needed for some internal housekeeping purposes.

        * Misc.subproj/WebIconDatabasePrivate.h:
        renamed iconURLToURLs -> iconURLToPageURLs for clarity
        renamed URLToIconURL -> pageURLToIconURL for clarity
        renamed futureURLToRetainCount -> pageURLToRetainCount (there's no more "future" aspect)
        renamed iconURLToRetainCount -> iconURLToExtraRetainCount (it now maintains only some of the retain count)
        
        * Misc.subproj/WebIconDatabase.m:
        (+[WebIconDatabase sharedIconDatabase]):
        updated for name changes only
        (-[WebIconDatabase init]):
        ditto
        (-[WebIconDatabase iconForURL:withSize:cache:]):
        ditto
        (-[WebIconDatabase iconURLForURL:]):
        ditto
        (-[WebIconDatabase retainIconForURL:]):
        just bump the retain count in pageURLToRetainCount, instead of behaving differently based on whether 
        an icon had been loaded for this URL; this let me delete the internal method _retainFutureIconForURL:
        (-[WebIconDatabase releaseIconForURL:]):
        decrement the retain count in pageURLToRetainCount, then handle the case where the retain count for 
        this page has gone to zero. I deleted the internal method _releaseFutureIconForURL: formerly called here.
        (-[WebIconDatabase removeAllIcons]):
        remove all the code that dealt with retain counts; this operation no longer affects retain counts
        (-[WebIconDatabase _setIconURL:forURL:]):
        remove the code that consolidated multiple retain counts for different page URLs into a single retain 
        count; the multiple retain counts are now maintained even after the icon is loaded
        (-[WebIconDatabase _clearDictionaries]):
        updated for name changes only
        (-[WebIconDatabase _loadIconDictionaries]):
        ditto
        (-[WebIconDatabase _updateFileDatabase]):
        ditto
        (-[WebIconDatabase _totalRetainCountForIconURLString:]):
        new method, sums the retain counts associated with specific page URLs and the extra retain count
        not associated with specific page URLs
        (-[WebIconDatabase _retainIconForIconURLString:]):
        updated for name changes
        (-[WebIconDatabase _forgetIconForIconURLString:]):
        no longer affects retain counts at all; this is up to callers
        (-[WebIconDatabase _releaseIconForIconURLString:]):
        this now distinguishes the case where the retain count not associated with any page URLs hits 
        zero from the case where the total retain count hits zero, and handles both

2005-06-20  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris Blumenberg.
        
        - added support for emptying the icon database

        * Misc.subproj/WebIconDatabase.h: just fixed a typo
        * Misc.subproj/WebIconDatabasePrivate.h:
        added WebPendingPublic category with method removeAllIcons, and
        declared WebIconDatabaseDidRemoveAllIconsNotification string.
        
        * Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase removeAllIcons]):
        new method, removes all known icons from memory and disk. There's one loose end,
        covered by radar bug 4155182, where it's possible for the icon database's retain
        counts to get off after this operation. I plan to fix this next.
        (-[WebIconDatabase _setIconURL:forURL:]):
        just fixed some extra whitespace
        (-[WebIconDatabase _forgetIconForIconURLString:]):
        new method, extracted from _releaseIconForIconURLString
        (-[WebIconDatabase _releaseIconForIconURLString:]):
        now calls extracted method

        * WebKit.exp:
        added _WebIconDatabaseDidRemoveAllIconsNotification

2005-06-19  Darin Adler  <darin@apple.com>

	Changes by Mitz Pettel
        Reviewed by me.
        
        - fixed <http://bugs.webkit.org/show_bug.cgi?id=3466>
          ATSUI text doesn't render at coordinates greater than 32K

        * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
        Translate the matrix of the CGContext instead of passing the appropriate coordinates to ATSU.

2005-06-17  Richard Williamson   <rjw@apple.com>

	Changes by Mitz Pettel
        Reviewed by Richard Williamson.

	Fixed http://bugs.webkit.org/show_bug.cgi?id=3545

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (reverseCharactersInRun):
        (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):

2005-06-17  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris.

        - fixed <rdar://problem/4151001> Reloading javascript-spawned window with no URL erases its contents

        * WebView.subproj/WebFrame.m:
        (-[WebFrame reload]):
        do nothing if URL is zero-length

2005-06-14  John Sullivan  <sullivan@apple.com>

        Changes by Devin Lane.
        Reviewed by me.

        - fixed <rdar://problem/3766909> PDF viewing could use a zoom control other than the one in the context menu

        * WebView.subproj/WebPDFView.h:
        now implements protocol _web_WebDocumentTextSizing
        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView _updateScalingToReflectTextSize]):
        new method, sets the PDF scaling from the text size multiplier
        (-[WebPDFView setDataSource:]):
        call _updateScalingToReflectTextSize
        (-[WebPDFView _web_textSizeMultiplierChanged]):
        implementation of protocol _web_WebDocumentTextSizing, calls _updateScalingToReflectTextSize

2005-06-14  John Sullivan  <sullivan@apple.com>

        Reviewed by Dave Harrison.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _delayedEndPrintMode:]):
        After discussing this with Dave, I made this method both more debugger-friendly with asserts for
        the cases we don't think could ever happen, and more paranoid by handling these cases in deployment
        builds.

2005-06-14  Darin Adler  <darin@apple.com>

        - fixed build for Xcode 2.1

        * WebKit.pbproj/project.pbxproj: Use BUILT_PRODUCTS_DIR instead of SYMROOT to search for the
        WebKitSystemInterface.h file. We could re-jigger this again later, but for now this is consistent
        with both the .a file's location and where build-webkit puts the file.

2005-06-13  John Sullivan  <sullivan@apple.com>

        Reviewed by Dave Harrison and Maciej.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _endPrintMode]):
        new method, extracted from identical code in beginDocument and endDocument. This method must be called
        once to counterbalance the code called from knowsPageRange that turns on "printing mode".
        (-[WebHTMLView _delayedEndPrintMode:]):
        new method, called from "perform after delay". Checks whether the same print operation is still underway
        and, if so, delays further. Otherwise calls _endPrintMode directly.
        (-[WebHTMLView knowsPageRange:]):
        after turning on "printing mode", queue up a delayed call to _delayedEndPrintMode:. If there's an early
        error in the print mechanism such that beginDocument is never called, this will cleanly end "printing
        mode" and make the webview usable again.
        (-[WebHTMLView beginDocument]):
        cancel any delayed call to _delayedEndPrintMode:. If we get this far along in printing, then we don't need
        the failsafe call to _delayedEndPrintMode: that was set up in knowsPageRange:. Also, call extracted method.
        (-[WebHTMLView endDocument]):
        call extracted method

2005-06-13  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Chris Blumenberg and Adele.

	- better fix for <rdar://problem/4142247> REGRESSION: List to browse widgets at Apple website failed. Closing tab afterwards caused Safari crash
	http://bugs.webkit.org/show_bug.cgi?id=3445

	With this change and the matching WebKit change we'll still stop loading the moment you click
	a download link, but the unload event and detaching of event handlers will not happen early any more.
	
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _stopLoadingInternal]): call stopLoading on bridge instead of closeURL.
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]): Revert previous attempt at fix.
        (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): ditto
        (-[WebFrame stopLoading]): ditto

2005-06-13  Chris Petersen  <cpetersen@apple.com>

        Changes by Darin.
        Reviewed by me.

        - fixed problems building deployment due to recent init change

        * WebView.subproj/WebArchive.m: (-[WebArchive initWithCoder:]):
        Put the [super init] call and check for nil outside the exception handler.
        * WebView.subproj/WebResource.m: (-[WebResource initWithCoder:]): Ditto.

2005-06-12  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed <rdar://problem/4141569> REGRESSION (412+): printing fails on any page with images, and for standalone images
          also <http://bugs.webkit.org/show_bug.cgi?id=3318>

        * WebCoreSupport.subproj/WebImageData.m: Got rid of use of tabs instead of spaces throughout the file.
        (-[WebImageData _checkSolidColor:]): Wrap use of NSGraphicsContext with an autorelease pool.
        (-[WebImageData _fillSolidColorInRect:compositeOperation:context:]): Ditto.
        (-[WebImageData tileInRect:fromPoint:context:]): Ditto.
        (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]): Ditto.

2005-06-12  Darin Adler  <darin@apple.com>

        Changes by Nick Zitzmann.
        Reviewed by me.

        - fixed init methods that don't handle return values from the init methods they call

        * WebView.subproj/WebArchive.m:
        (-[WebArchive init]): Use value returned by init, check it for nil too.
        (-[WebArchive initWithMainResource:subresources:subframeArchives:]): Ditto.
        (-[WebArchive _initWithPropertyList:]): Ditto.
        (-[WebArchive initWithCoder:]): Ditto.
        * WebView.subproj/WebClipView.m:
        (-[WebClipView initWithFrame:]): Ditto.
        * WebView.subproj/WebDebugDOMNode.m:
        (-[WebDebugDOMNode initWithName:value:source:children:]): Ditto.
        * WebView.subproj/WebFrame.m:
        (-[WebFormState initWithForm:values:sourceFrame:]): Ditto.
        (-[WebFrame initWithName:webFrameView:webView:]): Ditto.
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView initWithFrame:]): Ditto.
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation init]): Ditto.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView initWithFrame:]): Ditto.
        (-[WebTextCompleteController initWithHTMLView:]): Ditto.
        * WebView.subproj/WebImageView.m:
        (-[WebImageView initWithFrame:]): Ditto.
        * WebView.subproj/WebPreferences.m:
        (-[WebPreferences initWithIdentifier:]): Ditto.
        * WebView.subproj/WebRenderNode.m:
        (-[WebRenderNode initWithName:position:rect:view:children:]): Ditto.
        * WebView.subproj/WebResource.m:
        (-[WebResource init]): Ditto.
        (-[WebResource initWithCoder:]): Ditto.
        * WebView.subproj/WebView.m:
        (-[WebViewPrivate init]): Call super init.
        (-[_WebSafeForwarder initWithTarget:defaultTarget:templateClass:]): Use value returned by init, check it for nil too.
        (-[WebView initWithFrame:]): Ditto.

2005-06-12  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Chris Blumenberg.

	- fixed <rdar://problem/4142247> REGRESSION: List to browse widgets at Apple website failed. Closing tab afterwards caused Safari crash
	http://bugs.webkit.org/show_bug.cgi?id=3445
	
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]): Stop loading the non-provisional data
	source before swapping in the provisional.
        (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): Stop only
	the provisional load here, we would not want to stop loading if this navigation
	later turns into a download or is cancelled before being committed.
        (-[WebFrame stopLoading]): Factored a bit.
        (-[WebFrame _cancelProvisionalLoad]): New method to stop only provisional load,
	and cancel any pending policy deicions.
        (-[WebFrame _stopNonProvisionalLoadOnly]): New mthod that stops only the main
	load.

2005-06-10  John Sullivan  <sullivan@apple.com>

        reviewed by Dave Harrison (first & second drafts) and Darin Adler (third draft)

        - WebKit part of fix for 
        <rdar://problem/4145214> REGRESSION (412+): Can't drag URLs from the location bar

        * Misc.subproj/WebNSPasteboardExtras.m:
        (+[NSPasteboard initialize]):
        Reinstate variation of old code that uses CreatePasteboardFlavorTypeName to set up our new pasteboard types.
        The newfangled way didn't work.

2005-06-07  Darin Adler  <darin@apple.com>

        Change by Mark Rowe <opendarwin.org@bdash.net.nz>.
        Reviewed by me.

        - fixed the WebKit half of build failure with spaces in the path
          http://bugs.webkit.org/show_bug.cgi?id=3291

        * WebKit.pbproj/project.pbxproj: Quote DERIVED_FILE_DIR when it is substituted
        into FRAMEWORK_SEARCH_PATHS, and SYMROOT when into HEADER_SEARCH_PATHS.

2005-06-06  Darin Adler  <darin@apple.com>

        * Info.plist: Bumped version to 412+. For some reason it was set to 312.1!

2005-06-05  Darin Adler  <darin@apple.com>

        Reviewed by Hyatt.

        - fixed build that I broke with the license change (some includes of WebException were still around)

        * WebKit.pbproj/project.pbxproj: Removed references to WebException.h/m.
        * WebView.subproj/WebDataSource.m: Removed include of WebException.h.
        * WebView.subproj/WebHTMLView.m: Ditto.
        * WebView.subproj/WebView.m: Ditto.

        - fixed build under gcc 4.0 (some code moved here from Foundation had warnings)

        * Misc.subproj/WebNSDataExtras.m:
        (-[NSString _web_capitalizeRFC822HeaderFieldName]): Use char instead of UInt8.
        (-[NSData _webkit_guessedMIMEType]):  Use char instead of UInt8, and take out now-
        unneeded type casts.

2005-06-05  Darin Adler  <darin@apple.com>

        - added appropriate license headers to most files and updated copyright to reflect publication dates

        * LICENSE: Added.
        * <lots of files>: Added license header.

        * WebKit.pbproj/project.pbxproj: Removed references to NP_objc.h.

        * API-Issues.rtf: Removed.
        * Misc.subproj/WebException.h: Removed.
        * Misc.subproj/WebException.m: Removed.
        * Plugins.subproj/NP_objc.h: Removed.

2005-06-01  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - WebKit part of fix for <rdar://problem/3166090> add IE JavaScript extension window.showModalDialog

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge createModalDialogWithURL:]): Added. Calls the UI delegate, falling back to the generic
        "create WebView" method.
        (-[WebBridge canRunModal]): Added. Checks the UI delegate to see if it implements runModal.
        (-[WebBridge canRunModalNow]): Added. Checks the "inConnectionCallback" field so we can prevent
        deadlock since we can't do any I/O while inside a connection callback until this aspect of NSURLConnection
        is changed.
        (-[WebBridge runModal]): Added. Sets "defersCallbacks" on all other web views in the group, then
        calls runModal on the UI delegate.

        * WebView.subproj/WebBaseResourceHandleDelegate.h: Added inConnectionCallback class method.
        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate connection:willSendRequest:redirectResponse:]): Bump count and then
        decrement count so we can tell if we are in a callback.
        (-[WebBaseResourceHandleDelegate connection:didReceiveAuthenticationChallenge:]): Ditto.
        (-[WebBaseResourceHandleDelegate connection:didCancelAuthenticationChallenge:]): Ditto.
        (-[WebBaseResourceHandleDelegate connection:didReceiveResponse:]): Ditto.
        (-[WebBaseResourceHandleDelegate connection:didReceiveData:lengthReceived:]): Ditto.
        (-[WebBaseResourceHandleDelegate connection:willStopBufferingData:]): Ditto.
        (-[WebBaseResourceHandleDelegate connectionDidFinishLoading:]): Ditto.
        (-[WebBaseResourceHandleDelegate connection:didFailWithError:]): Ditto.
        (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]): Ditto.
        (+[WebBaseResourceHandleDelegate inConnectionCallback]): Added. Return YES if count is not 0.

        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient receivedError:]): Changed to use the method without the connection: parameter
        in the base class, since we no longer are overriding the connection: version.
        (-[WebMainResourceClient willSendRequest:redirectResponse:]): Change to override the version without
        the connection prefix/parameter; now only the base class overrides the actual connection delegate methods.
        (-[WebMainResourceClient continueAfterContentPolicy:response:]): Ditto.
        (-[WebMainResourceClient didReceiveResponse:]): Ditto.
        (-[WebMainResourceClient didReceiveData:lengthReceived:]): Ditto.
        (-[WebMainResourceClient didFinishLoading]): Ditto.
        (-[WebMainResourceClient didFailWithError:]): Ditto.
        (-[WebMainResourceClient loadWithRequestNow:]): Call the method without the connection parameter.

        * WebView.subproj/WebUIDelegatePrivate.h: Added new SPI here that WebBrowser implements.

2005-05-26  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fix build failure from when I removed WebCoreUnicode

        * WebCoreSupport.subproj/WebTextRenderer.m: Removed import of WebUnicode.h that I missed.
        (-[WebTextRenderer _convertUnicodeCharacters:length:toGlyphs:]): Switch from our own macros
        to the ICU macros for surrogate pairs.
        (widthForNextCharacter): Ditto.

2005-05-26  David Harrison  <harrison@apple.com>

        <rdar://problem/4120518> Mail: control-T in an empty message crashes mail

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge issueTransposeCommand]):
        New, to support transpose in JS.

2005-05-26  Darin Adler  <darin@apple.com>

        Reviewed by Richard and Dave Harrison.

        - eliminate WebCoreUnicode and use ICU directly instead

        * Misc.subproj/WebKitNSStringExtras.m: (canUseFastRenderer): Use u_charDirection directly.
        * WebCoreSupport.subproj/WebTextRenderer.m: Removed import of <WebCore/WebCoreUnicode.h>.
        * WebView.subproj/WebHTMLView.m: (+[WebHTMLView initialize]): Removed call to WebKitInitializeUnicode.

        * Misc.subproj/WebUnicode.h: Removed.
        * Misc.subproj/WebUnicode.m: Removed.
        * Misc.subproj/WebUnicodeTables.m: Removed.

        * WebKit.pbproj/project.pbxproj: Removed files.

2005-05-24  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/4097289> -[WebView elementAtPoint:] failing when WebView is nested and offset

	Code to determine the correct frame under the window point was
	converting the point incorrectly.

        Reviewed by Chris.

        * WebView.subproj/WebView.m:
        (-[WebView _frameViewAtWindowPoint:]):

2005-05-23  John Sullivan  <sullivan@apple.com>

        Reviewed by Kevin.
        
        - WebKit part of <rdar://problem/4125783> WebKit needs a way to control whether textareas are resizable

        * WebView.subproj/WebPreferencesPrivate.h:
        added private-for-now getter and setter for new preference
        * WebView.subproj/WebPreferenceKeysPrivate.h:
        added private preference key controlling whether textareas are resizable
        * WebView.subproj/WebPreferences.m:
        (+[WebPreferences initialize]):
        initial value of new preference is NO, so other clients' behavior doesn't change
        (-[WebPreferences textAreasAreResizable]):
        new getter
        (-[WebPreferences setTextAreasAreResizable:]):
        new setter
        
        * WebView.subproj/WebView.m:
        (-[WebView _updateWebCoreSettingsFromPreferences:]):
        update this new setting in WebCore

        * English.lproj/StringsNotToBeLocalized.txt:
        updated for these changes

2005-05-23  Chris Blumenberg  <cblu@apple.com>

	Changed type for identifier parameter in WebResourceLoadDelegate-related calls to id from NSString.

        Reviewed by kevin.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge objectLoadedFromCacheWithURL:response:data:]):
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _opened]):
        (-[WebFrame _requestFromDelegateForRequest:identifier:error:]):
        (-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]):
        (-[WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:]):
        * WebView.subproj/WebFrameInternal.h:

2005-05-20  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/4098786> sync. XMLHttpRequest works w/o AllowNetworkAccess key because load delegate is not consulted

	Synchronous loads did not cause the willSendRequest method on the resource load delegate to be called. This is the method that Dashboard uses to enforce AllowNetworkAccess and this must be called to avoid exploits.

        Reviewed by sullivan.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): call [WebFrame _requestFromDelegateForRequest:identifier:error:] then 
	[WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:] so synthetic resource load delegate 
	methods are called and the data is saved as a WebResource for resources in the WebCore cache.

        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): call [WebFrame _requestFromDelegateForRequest:identifier:error:],
	respect its result, do the load and then call [WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:] 
	for synchronous loads

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _opened]): call [WebFrame _requestFromDelegateForRequest:identifier:error:] then 
	[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:] so synthetic resource load delegate methods are called 
	for subresrources in the page cache
        
	(-[WebFrame _requestFromDelegateForRequest:identifier:error:]): new, was part of the removed _sendResourceLoadDelegateMessagesForURL:::
	This method calls identifierForInitialRequest and willSendRequest.

        (-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]): new, was part of the removed _sendResourceLoadDelegateMessagesForURL:::
	This method calls the remaining resource load delegate messages.

        (-[WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:]): new, saves the resource and calls
	[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]

        * WebView.subproj/WebFrameInternal.h:

2005-05-17  Chris Blumenberg  <cblu@apple.com>
	
	Fixed: <rdar://problem/4119282> clicking a link in an RTF file opens the link with NSWorkspace without the usual security checks or WebView delegate control

        Reviewed by mjs.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]): pass the passed referrer to canLoadURL::: not [self referrer]
        (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): ditto
        * WebView.subproj/WebTextView.m:
        (-[WebTextView clickedOnLink:atIndex:]): call the loadURL bridge method so that security checks are made, command/option clicks work, policy delegate is consulted etc.

2005-05-17  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/4120255> web archives on remote servers can be viewed directly (with major security issues); should download instead

        Reviewed by mjs.

        * WebView.subproj/WebBaseResourceHandleDelegate.h:
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient continueAfterContentPolicy:response:]): if the WebKit client has chosen to "use" a remote web archive, stop the load with an error

2005-05-16  Darin Adler  <darin@apple.com>

        - attempt to get things building under "Saffron" development tools

        * WebKit.pbproj/project.pbxproj: Use BUILT_PRODUCTS_DIR instead of SYMROOT.

2005-05-13  John Sullivan  <sullivan@apple.com>

        Reviewed by Kevin.
        
        - fixed <rdar://problem/4093306> Safari crashes if Esc key is held down during series 
        of authentication sheets

        * Panels.subproj/WebAuthenticationPanel.m:
        (-[WebAuthenticationPanel cancel:]):
        retain and autorelease self. This is a workaround for an AppKit key-handling issue, which I wrote up as:
        <rdar://problem/4118422> Key-down events can be sent to a closed window if a key is kept pressed down

2005-05-12  John Sullivan  <sullivan@apple.com>

        Reviewed by Kevin.

        - rolled in changes from experimental-ui-branch to support resizable textareas
        and find-as-you-type and confirming unsubmitted form changes. The files/functions 
        modified are listed just below. After that are the ChangeLog comments from the branch.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge textDidChange:]):
        * WebView.subproj/WebFormDelegate.h:
        * WebView.subproj/WebFormDelegate.m:
        (-[WebFormDelegate textDidChange:inFrame:]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView maintainsInactiveSelection]):
        (-[WebHTMLView searchFor:direction:caseSensitive:wrap:]):
        (-[WebHTMLView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
        * WebView.subproj/WebView.m:
        (-[WebView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
        (-[WebView searchFor:direction:caseSensitive:wrap:]):
        (-[WebView makeTextStandardSize:]):
        (-[WebView maintainsInactiveSelection]):
        * WebView.subproj/WebViewPrivate.h:
        
        2005-04-18  John Sullivan  <sullivan@apple.com>

                WebKit support for notifying a form delegate when a
                textarea's contents have changed (as opposed to a 
                textfield, which was already handled).

                Reviewed by Maciej.

                * WebView.subproj/WebFormDelegate.h:
                * WebView.subproj/WebFormDelegate.m:
                (-[WebFormDelegate textDidChange:inFrame:]):
                new form delegate method

                * WebCoreSupport.subproj/WebBridge.m:
                (-[WebBridge textDidChange:]):
                new method, calls through to form delegate
                
        2005-04-11  John Sullivan  <sullivan@apple.com>

                Fixed inability to wrap around in Find in Page 

                * WebView.subproj/WebView.m:
                (-[WebView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
                changed wrapFlag from NO to YES on two lines (copy/paste error)

        2005-04-07  John Sullivan  <sullivan@apple.com>

                WebKit support for find-as-you-type. Needed an additional parameter on
                a method from WebDocumentSearching protocol. Since that's a public protocol, 
                I couldn't just add the parameter. For now I hacked it with an undeclared
                internal method that's discovered via respondsToSelector. Probably the right
                long-term approach is to deprecate the WebDocumentSearching protocol and introduce
                a replacement that has a more flexible set of parameters for possible future
                expansion.

                Reviewed by Dave Hyatt.

                * WebView.subproj/WebHTMLView.m:
                (-[WebHTMLView searchFor:direction:caseSensitive:wrap:]):
                now calls new one-more-parameter version passing NO for new parameter to match old behavior
                (-[WebHTMLView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
                new method, adds findInSelection parameter and passes it through to bridge
                 
                * WebView.subproj/WebView.m:
                (-[WebView searchFor:direction:caseSensitive:wrap:]):
                now calls new one-more-parameter version passing NO for new parameter to match old behavior
                (-[WebView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
                new method, adds findInSelection parameter and passes it through

        2005-04-07  John Sullivan  <sullivan@apple.com>

                WebKit support to allow clients to control whether the selection is still
                drawn when the first responder is elsewhere. Formerly this was hardwired
                to be true only when -[WebView isEditable] was true.

                Reviewed by Darin.

                * WebView.subproj/WebHTMLView.m:
                (-[WebHTMLView maintainsInactiveSelection]):
                check [WebView maintainsInactiveSelection] rather than just [WebView isEditable]
                
                * WebView.subproj/WebViewPrivate.h:
                * WebView.subproj/WebView.m:
                (-[WebView maintainsInactiveSelection]):
                new method for clients to override, returns -[self isEditable]
        

2005-05-10  John Sullivan  <sullivan@apple.com>

        Reviewed by Kevin.
        
        - WebKit support for <rdar://problem/3795701> Menu item/keyboard shortcut to 
        restore text zoom to normal

        * WebView.subproj/WebView.m:
        (-[WebView validateUserInterfaceItem:]):
        validate makeTextStandardSize by calling canMakeTextStandardSize
        (-[WebView canMakeTextStandardSize]):
        new method, returns YES unless text size multiplier is currently 1
        (-[WebView makeTextStandardSize:]):
        new method, sets text size multiplier to 1
        
        * WebView.subproj/WebViewPrivate.h:
        add makeTextStandardSize: and canMakeTextStandardSize to pending public category

2005-05-10  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris.
        
        - fixed <rdar://problem/4067981> Mail places RTF flavor before RTFD flavor when dragging 
        mixed image/text content.

        * WebView.subproj/WebHTMLView.m:
        (+[WebHTMLView _selectionPasteboardTypes]):
        put RTFD type before RTF type in array of types to declare

2005-05-09  Chris Blumenberg  <cblu@apple.com>

	Turned assertion into error message to prevent crash when encountering this bug:
	<rdar://problem/4067625> connection:willCacheResponse: is called inside of [NSURLConnection initWithRequest:delegate:]
	
        * WebView.subproj/WebBaseResourceHandleDelegate.h:
        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate loadWithRequest:]): set flag to track when we're initializing the connection
        (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]): log error

2005-05-09  Darin Adler  <darin@apple.com>

        * Makefile.am: Don't set up PBXIntermediatesDirectory explicitly;
        Not needed to make builds work, spews undesirable error messages too.

2005-05-06  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - make building multiple trees with make work better

        * Makefile.am: Set up Xcode build directory before invoking xcodebuild.

2005-05-04  Darin Adler  <darin@apple.com>

        Reviewed by Dave Hyatt.

        - fixed layout tests

        * WebKit.pbproj/project.pbxproj: Set deployment target to 10.3 in the build styles.
        When built without a build style (by Apple B&I) we want to get the target from the
        environment. But when built with a build style (by Safari engineers and others), we want
        to use 10.3. Because our deployment target was not set, we ran into this bug:

            <rdar://problem/4108717> CTFontGetGlyphWithName doesn't work with some strings

        * Makefile.am: Took out extra parameters that make command-line building different from
        Xcode building. Now that this is fixed, you should not get a full rebuild if you switch
        from command line to Xcode or back.

2005-05-04  Chris Blumenberg  <cblu@apple.com>

	Fixed: 
	<rdar://problem/4078417> REGRESSION (125-412): MLB gameday page doesn't update (Flash)
	<rdar://problem/4072280> XMLHttpRequest calls onReadyStateChange callback with bogus status value
        
	Reviewed by john.

	Our WebKit-level caching of subresources "dumbed-down" information held in NSURLResponse. This caused some loads to lack response headers and thus disabling cache directives. Status codes were also not retained and this caused XMLHttpRequest to fail frequently. The fix is to have WebResource retain the NSURLResponse and to use the NSURLResponse when we decide to load from WebResources.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): call new [WebResource _initWithData:URL:response:]
        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate _canUseResourceWithResponse:]): new, checks response cache directives
        (-[WebBaseResourceHandleDelegate loadWithRequest:]): call _canUseResourceWithResponse:
        (-[WebBaseResourceHandleDelegate saveResource]): call new [WebResource _initWithData:URL:response:]
        * WebView.subproj/WebResource.m:
        (-[WebResourcePrivate dealloc]):
        (-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]): call renamed _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:
        (-[WebResource initWithCoder:]): decode the NSURLReponse
        (-[WebResource encodeWithCoder:]): encode the NSURLReponse
        (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:]): take the NSURLReponse
        (-[WebResource _initWithData:URL:response:]): new
        (-[WebResource _initWithPropertyList:]): decode the NSURLReponse
        (-[WebResource _propertyListRepresentation]): encode the NSURLReponse
        (-[WebResource _response]): return ivar if we have one
        * WebView.subproj/WebResourcePrivate.h:

2005-05-03  David Hyatt  <hyatt@apple.com>

	Fix object element support so that fallback content works.  With this change Safari passes the Acid2 test.
	
        Reviewed by Maciej

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge determineObjectFromMIMEType:URL:]):
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _receivedMainResourceError:complete:]):
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient continueAfterContentPolicy:response:]):

2005-05-03  Darin Adler  <darin@apple.com>

        * WebView.subproj/WebUIDelegate.h: Fixed incorrect comment.

2005-05-01  Darin Adler  <darin@apple.com>

        - move to Xcode native targets and stop checking in generated files

        * WebKit.pbproj/project.pbxproj: Updated to use native targets and generate all the generated
        files, so we don't have to check them in any more.
        * Info.plist: Added. Native targets use a separate file for this.

        * Plugins.subproj/npapi.m: Fixed import statement to get npapi.h from <WebKit/> rather than current directory.

        * Makefile.am: Removed timestamp cleaning rules since we don't use it any more.

        * .cvsignore: Removed various timestamp files.

        * DOM.subproj/DOM-compat.h: Removed.
        * DOM.subproj/DOM.h: Removed.
        * DOM.subproj/DOMCSS.h: Removed.
        * DOM.subproj/DOMCore.h: Removed.
        * DOM.subproj/DOMEvents.h: Removed.
        * DOM.subproj/DOMExtensions.h: Removed.
        * DOM.subproj/DOMHTML.h: Removed.
        * DOM.subproj/DOMPrivate.h: Removed.
        * DOM.subproj/DOMRange.h: Removed.
        * DOM.subproj/DOMStylesheets.h: Removed.
        * DOM.subproj/DOMTraversal.h: Removed.
        * DOM.subproj/DOMViews.h: Removed.
        * Plugins.subproj/WebScriptObject.h: Removed.
        * Plugins.subproj/npapi.h: Removed.
        * Plugins.subproj/npruntime.h: Removed.
        * copy-webcore-files-to-webkit: Removed.
        * embed-frameworks.sh: Removed.
        * force-clean-timestamp: Removed.

2005-04-28  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed problems preventing us from compiling with gcc 4.0

        * WebKit.pbproj/project.pbxproj: Removed -fobjc-exceptions because I can't figure out an easy
        way to pass it only when compiling Objective-C/C++. Removed -Wmissing-prototypes from
        WARNING_CPLUSPLUSFLAGS since it's now a C-only warning.

        * History.subproj/WebHistoryItem.m: (-[WebHistoryItem pageCache]): Changed return type
        to match the declaration.
        * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
        Fixed a BOOL that should have been a Boolean.
        * WebCoreSupport.subproj/WebTextRenderer.m: Removed redundant copy of ROUND_TO_INT, also in
        a WebCore header.
        (-[WebTextRenderer _computeWidthForSpace]): Had to add cast because of difference in type of
        ROUND_TO_INT vs. CEIL_TO_INT.
        (pathFromFont): Added a cast to convert UInt8 * to char *.
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _setDocumentView:]): Fixed parameter type to match the declaration.
        (-[WebFrameView documentView]): Fixed return type to match the declaration.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
        Initialized a variable to quiet an incorrect gcc 4.0 uninitialized variable warning.
        (-[WebHTMLView deleteToMark:]): Switched from @try style to NS_DURING style of exception handler
        because we can't pass -fobjc-exceptions just to Objective-C at the moment (see above).
        (-[WebHTMLView selectToMark:]): Ditto.
        (-[WebHTMLView swapWithMark:]): Ditto.

2005-04-27  John Sullivan  <sullivan@apple.com>

        Reviewed by Dave Harrison.
        
        - fixed <rdar://problem/3547489> pop-up window blocking preference and 
        menu item can easily get out of sync.

        * WebView.subproj/WebPreferences.m:
        (-[WebPreferences _setStringValue:forKey:]):
        save local value before setting value in NSUserDefaults, so clients reacting to NSUserDefaults
        change notification but calling back on WebPreferences API will see the updated value.
        (-[WebPreferences _setIntegerValue:forKey:]):
        ditto
        (-[WebPreferences _setBoolValue:forKey:]):
        ditto

2005-04-26  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/4098713> Scripting API is incompatible with Mozilla

        Reviewed by Chris.

        * Plugins.subproj/npfunctions.h:
        * Plugins.subproj/npruntime.h:

2005-04-26  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3655817> please add support for mouse wheel events and the onmousewheel handler

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView scrollWheel:]): Call sendScrollWheelEvent: method
        instead of the old scrollOverflowWithScrollWheelEvent: (just a name change).

2005-04-18  Darin Adler  <darin@apple.com>

        Reviewed by Hyatt.

        - fixed <rdar://problem/4092614> REGRESSION (Tiger): progressively loaded background images "scroll around" instead of just appearing

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _imageSourceOptions]): Moved a global inside this function, since it's only used here.
        (-[WebImageData _cacheImages:allImages:]): Fixed a sizeof that was getting the size of the wrong thing.
        (-[WebImageData _isSizeAvailable]): Used calloc in a more consistent way.
        (drawPattern): Removed an unneeded cast.
        (-[WebImageData tileInRect:fromPoint:context:]): Here's the actual bug fix. Don't use the image size
        when deciding whether the image needs to be tiled as a pattern nor when creating the pattern: in both
        cases, use the tile size. The old way was wrong, and the new way works perfectly. Also removed uneeded
        error message when the image is not yet loaded enough to create a CGImageRef for it -- it's fine to
        draw nothing in that case.

2005-04-14  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris.

        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]):
        Beefed up assertion that's been bugging me and Chris to include
        the two troublemaking values.

2005-04-05  David Hyatt  <hyatt@apple.com>

	Fix for 4077106, wheel scroll amount smaller in Tiger.  All along wheeling should have been 4x the default
	line height of 10 (just as arrow keys did).  Scroll arrows should have done this too for scroll views (they did
	already for overflow sections).  This patch puts the override into the scrollview itself, and removes the
	multipliers in the private frame methods.
	
        Reviewed by darin

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _verticalKeyboardScrollDistance]):
        (-[WebFrameView initWithFrame:]):
        (-[WebFrameView _horizontalKeyboardScrollDistance]):

=== WebKit-312.1 ===

2005-03-31  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/4070729> REGRESSION (125-311, Panther-only?): Safari crashes while reloading "My eBay" page

        Reviewed by rjw.

        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate resourceData]): retain and autorelease resourceData since releaseResources (which releases resourceData) may be called before the caller of this method has an opporuntity to retain the returned data

=== Safari-412 ===

=== Safari-411 ===

2005-03-23  Richard Williamson   <rjw@apple.com>

	Use Patti Yeh's hack to determine the appropriate rectangle
	to place the "associated word" window.  
	If there is no marked text firstRectForCharacterRange: will
	use the selected range to determine the returned rectangle,
	ignoring the input range.  This is the fix from
	4029491 that I previously backed out.

        Reviewed by Vicki.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView firstRectForCharacterRange:]):

2005-03-23  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/4062490> REGRESSION (WebKit-408): no subresources reported in Activity window after going back at hrweb.apple.com

	Stop collecting subresource responses after the document
	had loaded, not after it has been opened.

        Reviewed by Chris.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _setState:]):
        (-[WebFrame _opened]):

2005-03-21  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	<rdar://problem/4051145> The QuickTime Cocoa plug-in needs an SPI that it can call to check for URL policy

        * Plugins.subproj/WebPluginContainerCheck.h: Added.
        * Plugins.subproj/WebPluginContainerCheck.m: Added this new helper class to encapsulate
	an async plugin navigation check.
        (+[WebPluginContainerCheck checkWithRequest:target:resultObject:selector:controller:]): Convenience allocator that gives autoreleased value.
        (-[WebPluginContainerCheck initWithRequest:target:resultObject:selector:controller:]): Initializer.
        (-[WebPluginContainerCheck finalize]): Just assert that we're done, it would
	be bad to deallocate this object while request is still outstanding.
        (-[WebPluginContainerCheck dealloc]): Ditto.
        (-[WebPluginContainerCheck _continueWithPolicy:]): Method to continue after async
	policy check.
        (-[WebPluginContainerCheck _isDisallowedFileLoad]): Do "file: URL from remote content"
	check.
        (-[WebPluginContainerCheck _actionInformationWithURL:]): Helper to make action
	dictionary.
        (-[WebPluginContainerCheck _askPolicyDelegate]): Call policy delegate to let
	the app decide if this load is allowed.
        (-[WebPluginContainerCheck start]): Start the check.
        (-[WebPluginContainerCheck cancel]): Cancel a check in progress.
        * Plugins.subproj/WebPluginController.h:
        * Plugins.subproj/WebPluginController.m:
        (-[WebPluginController initWithDocumentView:]): Initialize new _checksInProgress field.
        (-[WebPluginController _webPluginContainerCancelCheckIfAllowedToLoadRequest:]): Implement
	this new SPI method.
        (-[WebPluginController _cancelOutstandingChecks]): New helper to make sure to cancel
	all outstanding requests when destroying all plugins.
        (-[WebPluginController destroyAllPlugins]): Call above helper.
        (-[WebPluginController _webPluginContainerCheckIfAllowedToLoadRequest:inFrame:resultObject:selector:]): Implement this new plug-in SPI method.
        (-[WebPluginController bridge]): New helper method.
        (-[WebPluginController webView]): New helper method.
        * WebView.subproj/WebPolicyDelegatePrivate.h: Add new navigation
	type WebNavigationTypePlugInRequest.
        * WebKit.pbproj/project.pbxproj: Add new files.
        * WebView.subproj/WebDefaultPolicyDelegate.m:
        (-[WebDefaultPolicyDelegate webView:decidePolicyForNavigationAction:request:frame:decisionListener:]): Don't open externally on a plug-in request.

2005-03-23  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/4053515> REGRESSION (Mail): Kotoeri input method reconversion does not work in WebViews

	We now use actual document NSRanges to represent both marked text
	ranges and selection ranges.

        Reviewed by Ken Kocienda.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView validAttributesForMarkedText]):
        (-[WebHTMLView firstRectForCharacterRange:]):
        (-[WebHTMLView selectedRange]):
        (-[WebHTMLView markedRange]):
        (-[WebHTMLView _selectMarkedText]):
        (-[WebHTMLView setMarkedText:selectedRange:]):

=== Safari-410 ===

2005-03-22  Darin Adler  <darin@apple.com>

        * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.

=== Safari-409 ===

2005-03-20  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	<rdar://problem/4060020> Add stub version of security SPI for QuickTime plug-in so QuickTime team has something to compile and link against
        
	* Plugins.subproj/WebPluginContainerPrivate.h: Added.
        * Plugins.subproj/WebPluginController.m:
        (-[WebPluginController _webPluginContainerCheckIfAllowedToLoadRequest:inFrame:resultObject:selector:]):
        (-[WebPluginController _webPluginContainerCancelCheckIfAllowedToLoadRequest:]):
        * WebKit.pbproj/project.pbxproj:

2005-03-19  David Harrison  <harrison@apple.com>

        Reviewed by Maciej.
        
        <rdar://problem/4059479> Misspelling underline does underline the whole word, could go farther to the right

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer misspellingLinePatternGapWidth]):
        (-[WebTextRenderer drawLineForMisspelling:withWidth:]):
        Consider that the last pixel in the underline dot pattern is transparent.

2005-03-19  Darin Adler  <darin@apple.com>

        Reviewed by Maciej (a while back).

        - fixed <rdar://problem/4059323> local-file security check is allowing plug-in streams, but must not

        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
        Roll out change I made on 3-13. That change is needed for subresource, but not for plug-in streams.
        For plug-in streams it's too risky, and leaves a serious security hole open.

2005-03-19  Darin Adler  <darin@apple.com>

        Reviewed by Ken and John.

        - fixed <rdar://problem/4059123> REGRESSION (402-403): deleteWordForward: and deleteWordBackward: start deleting single characters after the first delete

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
        Fixed backwards logic in here and added missing check. Set action to one of the two typing actions only
        if isTypingAction is YES.

2005-03-19  David Harrison  <harrison@apple.com>

        Reviewed by me (written by Patti Yeh).
        
        <rdar://problem/4029491> <TCIM> CangJie: the candidate window appears at the top left hand corner during typing in Mail and iChat

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView firstRectForCharacterRange:]):
        Use selected range if there is no marked range.

=== Safari-408 ===

2005-03-18  David Harrison  <harrison@apple.com>

        Reviewed by Darin.

        <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView webCoreBridge]):
        New to conform to WebCoreBridgeHolder protocol.

2005-03-18  Richard Williamson   <rjw@apple.com>
	
	Fixed <rdar://problem/4057004> Data from XMLHTTPRequest is never dealloced

	WebDataSource keeps an array of all the NSURLResponses associated
	with the load for a page.  This is used to playback delegate messages
	when loading from the page cache.  However, after the document
	has completed it's initial load, we continue to keep track of responses. 
	So, this has the consequence of keeping all the responses for a page
	around for the life of the page.  NSURLResponses are now very
	heavy.  They indirectly reference the resource data (via the
	download assessment dictionary).  This fix will keep
	references to responses around for those resources loaded during initial
	page load, but not after that point.

        Reviewed by Ken.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _addResponse:]):
        (-[WebDataSource _stopRecordingResponses]):
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _opened]):

2005-03-18  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        Fix for this bug:
        
        <rdar://problem/4053729> Copy/paste of page with frames into Blot or Mail does nothing and loses insertion point

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _selectedArchive]): Wrap frameset documents in an iframe, so they can be pasted into 
        existing documents which will have a body or frameset of their own.

=== Safari-407 ===

2005-03-17  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/4055562> REGRESSION (Tiger): Safari doesn't draw progressively-loaded JPEGs (www.theregister.co.uk, www.titantalk.com)

	Anothe side effect of lazy loading of image meta data.  We now
	don't cache image size until size meta data is actually available.

        Reviewed by Darin.

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData size]):

2005-03-16  David Harrison  <harrison@apple.com>

        Reviewed by Maciej.
        
        <rdar://problem/4048506> Deleting from beginning of editable div deletes other document elements
        
        Also changed WebCore.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _shouldDeleteRange:]):
        Added call to new bridge method canDeleteRange.

2005-03-16  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        Fix for this bug:
        
        <rdar://problem/4042935> undo doesn't work properly during inline input

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView setMarkedText:selectedRange:]): Call new -[WebCoreBridge replaceMarkedTextWithText:] instead of 
        -[WebCoreBridge replaceSelectionWithText:selectReplacement:smartReplace:]. The former call was just added in 
        order to provide a better mapping of international text input onto the typing command/undo design.

2005-03-15  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/4040321> Exception: Someone's trying to encode a WebDataRequestParameters instance

	If client mutates request use new Foundation SPI to address remove applewebdata properties	from request.

        Reviewed by Ken Kocienda.

        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]):
        * WebView.subproj/WebDataProtocol.h:
        * WebView.subproj/WebDataProtocol.m:
        (+[NSURLRequest _webDataRequestPropertyKey]):

2005-03-15  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Vicki

        Fox for this bug:
        
        <rdar://problem/4052642> Each delete keystroke is in its own undo group; not included in undo group with other typing

        Calling -[WebCore setSelectedDOMRange:range affinity:] had the result of "closing" any active set of typing
        keystrokes grouped together in a single undo operation. My change on 27 Jan to route delete keystrokes 
        through _deleteRange:killRing:... made this feature regress. Previous to that change, the backwards delete
        key went through separate code that is no longer in the tree that did not set the selection in the way
        it is done now.
        
        The solution is to add an extra argument to the set-selection call. The WebCoreBridge now offers this method:
        -[WebCore setSelectedDOMRange:range affinity:closeTyping:]. Now, callers must indicate whether setting the 
        selection will act to close typing or not. The code changes below all add this new argument with the
        appropriate value for closeTyping.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]): Passes NO for closeTyping when
        deletionAction is deleteKeyAction or forwardDeleteKeyAction; YES when deleteSelectionAction.
        (-[WebHTMLView _expandSelectionToGranularity:]): Passes YES for closeTyping.
        (-[WebHTMLView selectToMark:]): Passes YES for closeTyping.
        (-[WebHTMLView swapWithMark:]): Passes YES for closeTyping.
        (-[WebHTMLView transpose:]): Passes YES for closeTyping.
        (-[WebHTMLView _selectMarkedText]): Passes NO for closeTyping.
        (-[WebHTMLView _selectRangeInMarkedText:]): Passes NO for closeTyping.
        * WebView.subproj/WebView.m:
        (-[WebView setSelectedDOMRange:affinity:]): Passes YES for closeTyping.

2005-03-14  Richard Williamson   <rjw@apple.com>

	Fix <rdar://problem/4051389> 8A413: gifs animating too fast

        Reviewed by Maciej.

	Match Mozilla's policy for minimum frame duration, which is somewhat odd:

	<= 0.01 sec use .1 sec, otherwise use specified duration.

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _frameDurationAt:]):

2005-03-14  Darin Adler  <darin@apple.com>

        Reviewed by Harrison.

        - fixed <rdar://problem/4049776> Seed: Mail: Disable spellcheck leaves red artifacts

        * WebView.subproj/WebFrameInternal.h: Added _unmarkAllMisspellings.
        * WebView.subproj/WebFrame.m: (-[WebFrame _unmarkAllMisspellings]): Added.
        Calls unmarkAllMisspellings on the bridge and self and all subframes.

        * WebView.subproj/WebView.m: (-[WebView setContinuousSpellCheckingEnabled:]):
        Call _unmarkAllMisspellings on the main frame when turning continuous spell checking off.

2005-03-14  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/4027928> Tiger_8A394:Acrobat crashes while tried to remove the subscription errors by clicking on "Would you like to remove the subscription" from Tracker details view pane

	The Acrobat application triggers loads of new documents in it's policy delegate.  This
	ultimately causes the WebHTMLView to be released before their event handlers have
	returned.  To bullet proof against this case we retain/release self before passing
	the event on for further handling.
	
        Reviewed by Maciej.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _updateMouseoverWithEvent:]):
        (-[WebHTMLView scrollWheel:]):
        (-[WebHTMLView mouseDown:]):
        (-[WebHTMLView mouseDragged:]):
        (-[WebHTMLView mouseUp:]):
        (-[WebHTMLView keyDown:]):
        (-[WebHTMLView keyUp:]):
        (-[WebHTMLView performKeyEquivalent:]):

2005-03-14  Vicki Murley  <vicki@apple.com>

	- roll out the fix for 4040321, since it is still pending CCC review.

    2005-03-10  Richard Williamson   <rjw@apple.com>

        Fixed <rdar://problem/4040321> Exception: Someone's trying to encode a WebDataRequestParameters instance 

        Reviewed by Darin.

        If a delegate returns a mutated applewebdata: request in it's willSendRequest:
        method, we don't load using the WebDataRequest.  Instead we do a normal load.
        Unfortunately, if the request they return is mutated *copy* of the applewebdata: 
        request it will hold the applewebdata: special properties.  These properties 
        will be encoded into the cache.   They should not be.  So, to fix, we sanitize the
        request, by removing the special properties from the request.

        Note that we had to dig into the private guts of NSURLRequest because there is
        no public mechanism to remove properties from a request, see 4046775.

        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]):
        * WebView.subproj/WebDataProtocol.h:
        * WebView.subproj/WebDataProtocol.m:
        (-[NSURLRequest _webDataRequestExternalRequest]):
        (-[NSURLRequest _webDataRequestSanitize]):

=== Safari-406 ===

2005-03-13  Darin Adler  <darin@apple.com>

        Reviewed by Ken and Maciej.

        - fixed <rdar://problem/4049040> REGRESSION (403-405): security check prevents user stylesheet from loading (Dictionary.app doesn't work at all!)

        * Plugins.subproj/WebNetscapePluginStream.m: (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
        Allow plug-in subresource streams to load with any URL, ignoring the "canLoadURL" method's restriction (only
        file URLs can load other file URLs), which now applies only to main resources, like web pages in frames or
        object tags and plug-in main resources.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge startLoadingResource:withURL:customHeaders:]): Allow subresources to load with any URL, as above.
        This allows things like images, stylesheets, and JavaScript to be loaded without the "canLoadURL" method's
        restriction.
        (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]): Ditto.
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): Ditto.

2005-03-10  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/4040321> Exception: Someone's trying to encode a WebDataRequestParameters instance 

        Reviewed by Darin.

	If a delegate returns a mutated applewebdata: request in it's willSendRequest:
	method, we don't load using the WebDataRequest.  Instead we do a normal load.
	Unfortunately, if the request they return is mutated *copy* of the applewebdata: 
	request it will hold the applewebdata: special properties.  These properties 
	will be encoded into the cache.   They should not be.  So, to fix, we sanitize the
	request, by removing the special properties from the request.

	Note that we had to dig into the private guts of NSURLRequest because there is
	no public mechanism to remove properties from a request, see 4046775.

        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]):
        * WebView.subproj/WebDataProtocol.h:
        * WebView.subproj/WebDataProtocol.m:
        (-[NSURLRequest _webDataRequestExternalRequest]):
        (-[NSURLRequest _webDataRequestSanitize]):

=== Safari-405 ===

2005-03-10  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Vicki.

	<rdar://problem/4046510> REGRESSION (TOT): All Flash and Shockwave plugin-based web content missing
        
	* Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):

2005-03-10  John Sullivan  <sullivan@apple.com>

        Reviewed by Vicki.
        
        - fixed <rdar://problem/4045843> Going back/forward to error page 
        hits assertion in -[WebDataSource(WebPrivate) _setData:]

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _setData:]):
        Removed bogus assertion

2005-03-09  Deborah Goldsmith  <goldsmit@apple.com>

        Reviewed by Darin.

        - fixed <rdar://problem/3997044> default encoding for non-Latin incorrect

	* WebKit/WebView.subproj/WebPreferences.m: (+[WebPreferences _systemCFStringEncoding]):
        Call __CFStringGetUserDefaultEncoding to get region, and TECGetWebTextEncodings to get
        the first encoding to determine the default encoding.

2005-03-09  Darin Adler  <darin@apple.com>

        Reviewed by Richard.

        - fixed <rdar://problem/4034175> REGRESSION (Mail): Can't use any font with style Light/Condensed/Semibold/Extrabold, etc

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _styleFromFontAttributes:]): Use a constant instead of hard-coded weight for clarity.
        (-[WebHTMLView _originalFontA]): Ditto.
        (-[WebHTMLView _originalFontB]): Ditto.
        (-[WebHTMLView _addToStyle:fontA:fontB:]): Add code to detect the case where the family name is not good enough
        to specify the font precisely. In that case, use the Postscript font name instead. Also change variable names
        so it's easier to understand the method.

2005-03-06  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	<rdar://problem/4005575> Arbitrary file disclosure vulnerability due to ability to load local html from remote content
        
	* Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView requestWithURLCString:]):
        * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
        (-[WebNetscapePluginEmbeddedView didStart]):
        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge createWindowWithURL:frameName:]):
        (-[WebBridge startLoadingResource:withURL:customHeaders:]):
        (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]):
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
        (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]):
        (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
        (-[WebBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
        (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _loadURL:referrer:intoChild:]):
        * WebView.subproj/WebFramePrivate.h:

2005-03-09  Richard Williamson   <rjw@apple.com>
	
	Fixed <rdar://problem/4032938> Safari: text layout for MS P Gothic font is corrupted

	The AppKit and ATS reports that MS P Gothic is fixed pitch.  It is
	not!  This is another case of "fixed pitch" being wrong.  I've
	coalesced all the special cases into our isFontFixedPitch:, and
	used a dictionary to improve speed.  No performance regression.

        Reviewed by Maciej.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _computeWidthForSpace]):
        * WebCoreSupport.subproj/WebTextRendererFactory.m:
        (-[WebTextRendererFactory clearCaches]):
        (-[WebTextRendererFactory isFontFixedPitch:]):

2005-03-09  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        <rdar://problem/4040388> REGRESSION (172-173): nonrepro crash in -[NSString(WebNSURLExtras) _web_isUserVisibleURL]

        * Misc.subproj/WebNSURLExtras.m:
        (-[NSString _web_isUserVisibleURL]): Fixed some pointer expressions that didn't include the index in the expression.
        (readIDNScriptWhiteListFile): Removed NSLog statements in here since we decided they aren't useful and they will
        write some messages on Tiger.

2005-03-09  Darin Adler  <darin@apple.com>

        * DOM.subproj/DOMPrivate.h: Checked in file copied from WebCore.

2005-03-08  Richard Williamson   <rjw@apple.com>

        Fixed <rdar://problem/4036949> many JPEG images fail to incremental-load due to change in ImageIO JPEG header parsing (to be fixed in WebKit)
	Fixed <rdar://problem/4042570> Need to check image properties for presence of width/height properties

	ImageIO-55 changed how image properties are created.  They
	are now created incrementally.  So we need "re-get" the image
	properties if the properties we care about (width/height) aren't
	in the property dictionary.

        Reviewed by John.

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData init]):
        (-[WebImageData fileProperties]):
        (-[WebImageData propertiesAtIndex:]):
        (-[WebImageData _isSizeAvailable]):
        (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
        (-[WebImageData size]):

2005-03-08  John Sullivan  <sullivan@apple.com>

        A couple of tweaks to the previous patch, from Darin's review.

        * Misc.subproj/WebNSPasteboardExtras.m:
        (_writableTypesForImageWithoutArchive):
        remove unnecessary _web prefix
        (_writableTypesForImageWithArchive):
        ditto
        (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
        use mutableCopy rather than initWithArray:, and adjust for name changes

2005-03-08  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.
        
        - fixed <rdar://problem/4031826> REGRESSION (Mail): standalone images from 
        Safari can't be pasted into Mail (WebKit part of fix)
        
        We were always declaring webarchive-related pasteboard types, even in the standalone
        image cases where we had no webarchive. Unfortunately, the WebView pasteboard-related
        API doesn't prevent this kind of thing from happening, because the code that
        declares the types isn't guaranteed to be anywhere near the code that writes
        the pasteboard data.
        
        After this fix, I discovered that pasting standalone images into Mail still doesn't
        work right, but the remaining issues seem to be entirely in Mail. I wrote up 4041671
        to cover these.

        * Misc.subproj/WebNSPasteboardExtras.h:
        (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
        Added boolean parameter; clients must specify whether or not there's an
        archive involved, because the array of types is different if there is.

        * Misc.subproj/WebNSPasteboardExtras.m:
        (_web_writableTypesForImageWithoutArchive):
        new static function, constructs (once) and returns the array of types
        for images that don't have archives
        (_web_writableTypesForImageWithArchive):
        new static function, constructs (once) and returns the array of types
        for images that do have archives
        (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
        added boolean parameter, now calls one of the two new static functions
        
        (-[NSPasteboard _web_writeImage:URL:title:archive:types:]):
        added asserts that we aren't declaring the archive types if we don't have archive data
        
        (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
        updated to pass parameter to _web_writableTypesForImageIncludingArchive:
        
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate copyImageToClipboard:]):
        updated to pass parameter to _web_writableTypesForImageIncludingArchive:

        * WebView.subproj/WebImageView.m:
        (-[WebImageView copy:]):
        updated to pass parameter to _web_writableTypesForImageIncludingArchive:

        * WebView.subproj/WebView.m:
        (-[WebView pasteboardTypesForElement:]):
        updated to pass parameter to _web_writableTypesForImageIncludingArchive:

2005-03-07  Richard Williamson   <rjw@apple.com>

	More bullet proofing for <rdar://problem/4038304> CrashTracer: ....9 crashes at com.apple.WebKit: -[WebTextRenderer initWithFont:usingPrinterFont:] + 840

	Protect against removal of Times and Times New Roman from
	system.  If these fonts are removed attempt to get system font
	instead of FATAL_ALWAYS.

        Reviewed by John.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer initWithFont:usingPrinterFont:]):

=== Safari-403 ===

2005-03-06  Darin Adler  <darin@apple.com>

        - fixed obvious mistake in IDN script code (luckily it hasn't been in a submission yet!)

        * Misc.subproj/WebNSURLExtras.m: (readIDNScriptWhiteListFile): Use "index" to index into the array,
        not "script", which is the script number, not the 32-bit-word index.

2005-03-05  Kevin Decker  <kdecker@apple.com>

        Reviewed by Darin.

	Fixed: <rdar://problem/4038529> Infinite progress bar loading webcams and other sites that use multipart/x-mixed-replace

	The previous patch I landed prevented us from loading multipart/x-mixed-replace but did not always update the progress bar accordingly.  
        This stops websites from having seemingly infinite progress in the browser UI.  

        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (-[WebSubresourceClient didReceiveResponse:]): If this is "multipart/x-mixed-replace", remove the WebBaseResourceHandleDelegate client from 
        the datasource's subresource array, otherwise -[WebDataSource isLoading] incorrectly returns YES.   Also it's possible at this point in
         time we're done loading now (loaded everything else except for the multipart/x-mixed-replace content) so go ahead and check to see if 
         in fact we're complete. 
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient connection:didReceiveResponse:]): ditto

2005-03-05  Richard Williamson   <rjw@apple.com>

	Fixed panther build problem.  Shouldn't include
	changes for 3968753 on panther.

        Reviewed by John.

        * WebView.subproj/WebView.m:
        (-[WebView _commonInitializationWithFrameName:groupName:]):

2005-03-05  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/4034603> REGRESSION (185-188): RadarWeb can't send enclosures anymore

        * WebView.subproj/WebFormDataStream.m:
        (closeCurrentStream): Release currentData when closing the stream.
        (advanceCurrentStream): Set up and retain currentData when the current stream is reading that data, so the
        data won't be released while in use.
        (formCreate): Initialize currentData to NULL.

        - fixed <rdar://problem/4037562> Tiger8A402: Help Viewer crashed when viewing help for iChat (infinite recursion in WebView)

        * WebView.subproj/WebView.m: (-[WebView _responderValidateUserInterfaceItem:]):
        Check for the case where we ourselves are the responder. This avoids an infinite loop.
        The actual code to perform operations avoids this with a global variable, but this lighter weight
        solution is sufficient here because validate operations don't call through to the next responder.

2005-03-04  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3968753> REGRESSION: Poor performance with differing multiple animated GIFs (was fast in Panther)

	Disable coalesced updates (in CG).  This restores the
	panther behavior.

        Reviewed by David Harrison.

        * WebView.subproj/WebView.m:
        (-[WebView _commonInitializationWithFrameName:groupName:]):

2005-03-04  Adele Amchan  <adele@apple.com>

        Reviewed by Darin.

        * English.lproj/StringsNotToBeLocalized.txt: added new strings "text/x-vcf" and "text/x-csv" to the list

2005-03-04  Adele Amchan  <adele@apple.com>

        Reviewed by Chris.

        Fix for <rdar://problem/4032982> Sun iPlanet app: not able to import AddressBook CSV format addresses properly
        Fix for <rdar://problem/4032985> Sun iPlanet app: not able to import vCard format addresses properly

        * WebView.subproj/WebTextView.m:
        (+[WebTextView unsupportedTextMIMETypes]): added "text/x-csv" and "text/x-vcf" to the list of MIME types that our text view doesn't handle

2005-03-04  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/4036817> REGRESSION: ctrl-y broken when a line + carriage return cut

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]): Merged _handleKillRing behavior
        into this function, since there's now a more-complicated way the startNewKillRingSequence boolean needs to
        be handled. Set the startNewKillRingSequence boolean after the entire process so changing the selection before
        and during the editing dosn't clear it. Also change "isTypingAction" parameter to "deletionAction" so we can
        handle forward delete with this method.
        (-[WebHTMLView _deleteSelection]): Pass deleteSelectionAction for action rather than NO for isTypingAction,
        which is the way to say the same thing using the new parameter.
        (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Refactor to use the _deleteRange
        method above. Also calls _shouldDeleteRange: for the pre-existing selection case; not doing that before was
        a bug.
        (-[WebHTMLView deleteToMark:]): Pass deleteSelectionAction for action rather than NO for isTypingAction,
        which is the way to say the same thing using the new parameter.

2005-03-04  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/4020413> REGRESSION (Mail): can't use fonts with names that start with "#" in Mail (Korean fonts)

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _styleFromFontAttributes:]): Quote font name when calling setFontFamily.
        (-[WebHTMLView _addToStyle:fontA:fontB:]): Ditto.

2005-03-04  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3965666> IDN spoofing vulnerability caused by Unicode characters that look like ASCII characters

        * Misc.subproj/WebNSURLExtras.m:
        (readIDNScriptWhiteListFile): Added. Reads file and parses script names.
        (readIDNScriptWhiteList): Added. Calls readIDNScriptWhiteList on each of the white list locations in succession.
        (allCharactersInIDNScriptWhiteList): Renamed from containsPossibleLatinLookalikes and changed sense.
        Now calls readIDNScriptWhiteList first time, and then uses the read-in list to check the scripts.
        (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Call allCharactersInIDNScriptWhiteList instead of
        containsPossibleLatinLookalikes.
        * Resources/IDNScriptWhiteList.txt: Added.
        * WebKit.pbproj/project.pbxproj: Added IDNScriptWhiteList.txt file.

        * Misc.subproj/WebKitLocalizableStrings.m: Removed. This is simply unused.
        * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.

2005-03-04  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3937667> REGRESSION (Mail): Zooming a window from titlebar button doesn't paint newly-exposed portions of window

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
        Re-set-up the visRect if the bounds changes due to layout.

=== Safari-402 ===

2005-03-03  Jens Alfke  <jens@apple.com>

        Reviewed by rjw.

	<rdar://problem/3991818> REGRESSION: Images scale while loading
	The code could crop an image when not all the scanlines were available yet, and it could crop when only a sub-rect of the image was to be drawn; but if it had to do both at once, it got the coordinates wrong. Fixed that.

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):

2005-03-01  David Hyatt  <hyatt@apple.com>

	Fix for 3841186, scrollbar shows up disabled when it should not appear at all.  Make sure updateScrollers
	is never allowed to be re-entrant from any call point by moving the guard inside the function itself.
	
        Reviewed by John Sullivan

        * WebView.subproj/WebDynamicScrollBarsView.m:
        (-[WebDynamicScrollBarsView updateScrollers]):
        (-[WebDynamicScrollBarsView reflectScrolledClipView:]):

2005-03-02  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/4029010> Expose method to retrieve drag image for WebView's selection

        Reviewed by sullivan.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): call _selectionDraggingImage
        (-[WebHTMLView _selectionDraggingImage]): new SPI for Mail, factored from previous method
        (-[WebHTMLView _selectionDraggingRect]): new SPI for Mail
        * WebView.subproj/WebHTMLViewPrivate.h:

2005-03-02  John Sullivan  <sullivan@apple.com>

        Reviewed by Adele.
        
        - fixed <rdar://problem/4023337> Safari stops loading any page (-[NSCFDictionary setObject:forKey:]: 
        attempt to insert nil key)
        
        It is very likely that the exception being hit is caused by the same problem as WebFoundation
        bug 4018486. This change makes the code robust against this kind of problem regardless.

        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate saveResource]):
        Don't call addSubresource if newly-created resource is nil (but do assert on debug builds).
        Also assert that originalURL and MIMEType are not nil.
        
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource addSubresource:]):
        Don't add nil subresource to dictionary, but do assert on debug builds.

=== Safari-401 ===

2005-03-01  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.
        
        - fixed <rdar://problem/3987482> Format>Style>Italic is not enabled when a 
        compose window is empty (works in Blot)

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView becomeFirstResponder]):
        call _updateFontPanel here so NSFontManager knows the right font for the menu
        items and the font panel

2005-03-01  David Harrison  <harrison@apple.com>

        Reviewed by Chris.
        
        <rdar://problem/3915560> Mail would like an SPI to enable "smart" text paste/drop

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _smartDeleteRangeForProposedRange:]):
        (-[WebHTMLView _smartInsertForString:replacingRange:beforeString:afterString:]):
        New.

2005-02-28  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.
        
        - WebKit part of fix for <rdar://problem/4023490> REGRESSION (125-185): Tabbing through links 
        on frameset page gets stuck at end (tivofaq.com)
        
        This tab-to-links stuff has been in shaky condition ever since AppKit futzed with
        tabbing behavior in Tiger to add support for including the toolbar in the key loop.
        I made some changes months ago to compensate for that, but some cases, such as this
        one, still weren't fixed.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
        new bottleneck method, extracted from nextKeyViewOutsideWebFrameViews; handles
        nextKeyView or nextValidKeyView depending on parameter.
        (-[WebBridge nextKeyViewOutsideWebFrameViews]):
        now calls extracted method
        (-[WebBridge nextValidKeyViewOutsideWebFrameViews]):
        new method, calls new bottleneck method
        
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView nextValidKeyView]):
        when we're stuck at the end of a nextKeyView chain inside a nexted frame, use
        nextValidKeyViewOutsideWebFrameViews. Make sure we don't end up looking inside
        the web frame views while doing this.

2005-02-25  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/4025088> window onblur and onfocus don't fire when text field has focus

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView updateFocusState]): Renamed from updateFocusDisplay. Added call to setWindowHasFocus: method.
        (-[WebHTMLView viewDidMoveToWindow]): Call method by new name.
        (-[WebHTMLView windowDidBecomeKey:]): Ditto.
        (-[WebHTMLView windowDidResignKey:]): Ditto.
        (-[WebHTMLView becomeFirstResponder]): Ditto.
        (-[WebHTMLView resignFirstResponder]): Ditto.

=== Safari-400 ===

2005-02-25  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/4000962> 8A375: Help Viewer displays voiced sound and semi-voiced characters strangely (characters don't seem to be composed)

	Added special case for voiced marks.

        Reviewed by John.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (widthForNextCharacter):

2005-02-25  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/4019823> Seed: Control-Y doesn't work

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Call _handleKillRing
        after setting the selection, since it uses the selection to get the text.
        (-[WebHTMLView _insertText:selectInsertedText:]): Check for empty string to avoid an assertion
        on the other side of the bridge when you yank the empty string.

2005-02-24  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.

	If directionality is specified use that as initial directionality,
	rather than neutral directionality.	

        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (widthForNextCharacter):

2005-02-24  Adele Amchan  <adele@apple.com>

        Reviewed by Chris.
       
        Fix for <rdar://problem/4023393> Safari crashed in khtml::RenderObject::repaintAfterLayoutIfNeeded(QRect const&, QRect const&)

        We were crashing after hitting PageDown when viewing a pdf because 
        WebKit was calling over to WebCore to scroll overflow areas.
        Since this only needs to be done if we're dealing with a WebHTMLView, 
        I added a wrapper function to check the documentView before calling
        over to WebCore.

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _scrollOverflowInDirection:granularity:]): added wrapper function that checks if documentView is a WebHTMLView 
        (-[WebFrameView scrollToBeginningOfDocument:]): uses new wrapper function now
        (-[WebFrameView scrollToEndOfDocument:]): uses new wrapper function now
        (-[WebFrameView _pageVertically:]): uses new wrapper function now
        (-[WebFrameView _pageHorizontally:]): uses new wrapper function now
        (-[WebFrameView _scrollLineVertically:]): uses new wrapper function now
        (-[WebFrameView _scrollLineHorizontally:]): uses new wrapper function now

2005-02-24  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3985889> REGRESSION (125-180): setting <img> src to GIF that already animated does not animate; just shows final frame
	
        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData resetAnimation]):
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer resetAnimation]):
        (-[WebInternalImage resetAnimation]):
        (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):

2005-02-24  Kevin Decker  <kdecker@apple.com>

        Reviewed by John.

	Fixed <rdar://problem/3962401> Don't load multipart/x-mixed-replace content to prevent memory leak

	Since we're not going to fix <rdar://problem/3087535> for Tiger, we should not load multipart/x-mixed-replace content.  Pages with such content contain what is essentially an infinite load and therefore may leak.

        * WebView.subproj/WebMainResourceClient.m: 
        (-[WebMainResourceClient connection:didReceiveResponse:]):  Disabled loading of multipart/x-mixed-replace content until we fully implement server side push. 
    	 * WebCoreSupport.subproj/WebSubresourceClient.m: 
        (-[WebSubresourceClient didReceiveResponse:]): Ditto. Same exact thing for sub resources. 


2005-02-23  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.
        
        - fixed <rdar://problem/4021370> REGRESSION (Tiger): WebKit part of fix for 
        shift-tab on tivofaq doing the wrong thing

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView becomeFirstResponder]):
        If our previousValidKeyView is nil or self (same as nil modulo AppKit oddness),
        look out of the box and get the previousValidKeyView of our webview.

2005-02-23  Darin Adler  <darin@apple.com>

        Reviewed by Hyatt.

        - fixed <rdar://problem/4010196> REGRESSION (125-186+): 8-character timestamps in gmail wrap to 2 lines (width:8ex; font-size:80%)

        * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer xHeight]): Return the maximum
        of the "x" height and width. Comment in the code explains why in more detail.

2005-02-22  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3937203> when a div adds a scrollbar (overflow:auto) we do not get regions

	Compare regions after automatice scroll regions have been
	added.

        Reviewed by Maciej.

        * WebCoreSupport.subproj/WebBridge.h:
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge dealloc]):
        (-[WebBridge _compareDashboardRegions:]):
        (-[WebBridge dashboardRegionsChanged:]):

2005-02-22  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/4012463> Dashboard widgets don't work with authenticating proxies

	Added new SPI for dashboard that just calls default delegate
	behavior.

        Reviewed by Maciej.

        * WebView.subproj/WebView.m:
        (-[WebView handleAuthenticationForResource:challenge:fromDataSource:]):
        * WebView.subproj/WebViewPrivate.h:

2005-02-22  Chris Blumenberg  <cblu@apple.com>

        Reviewed by mjs.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge issuePasteAndMatchStyleCommand]): support for new "PasteAndMatchStyle" exec command

=== Safari-188 ===

2005-02-21  David Harrison  <harrison@apple.com>

        Reviewed by Darin.

        <rdar://problem/3943090> REGRESSION (Mail): Spelling underline incompletely erased following certain steps

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer misspellingLineThickness]):
        (-[WebTextRenderer misspellingLinePatternWidth]):
        Replaced #defines with these methods, so others can get the same info.
        
        (-[WebTextRenderer drawLineForMisspelling:withWidth:]):
        Keep underline within originally specified bounds.
        

2005-02-21  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/4016358> don't ever display IDN URLs with characters from "possible Latin look-alike" scripts

        * Misc.subproj/WebNSURLExtras.m:
        (containsPossibleLatinLookalikes): Added.
        (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Call containsPossibleLatinLookalikes, and if true,
        don't decode the host name.

2005-02-19  Kevin Decker  <kdecker@apple.com>

        Reviewed by Chris.

	Fixed <rdar://problem/4010765> Flash player can be used to arbitrarily open popup windows without user permission
	
	Our window.open() policy is to refuse the <script>window.open(...)</script> case and allow the inline the <a href="javascript:window.open('foo')> case.  Clever advertisers at some point realized that by executing their Javascript through the Flash plugin, Safari would always treat their code as the inline case, and thus, they were able to work around our popup blocker. 

        * Plugins.subproj/WebBaseNetscapePluginView.h: Addded currentEventIsUserGesture boolean ivar. 
        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView sendEvent:]): If at any point the user clicks or presses a key from within a plugin, set the currentEventIsUserGesture flag to true. This is important to differentiate legitimate window.open() calls originating from plugins;  we still want to allow those. 
        (-[WebBaseNetscapePluginView initWithFrame:]): In our asynchronous load, pass along currentEventIsUserGesture to the PluginRequest. 
        (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): Inform WebCore if this was a user originated gesture when calling executeScript(). 
        (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]):
        (-[WebPluginRequest initWithRequest:frameName:notifyData:sendNotification:didStartFromUserGesture:]):
        (-[WebPluginRequest isCurrentEventUserGesture]): Added. 

2005-02-18  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3945271> REGRESSION (Mail): pasted plain text should pick up typing style instead of being unstyled

        Reviewed by kocienda.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): pass NO for matchStyle to replaceSelection
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:chosePlainText:]): return new chosePlainText parameter
        (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): pass chosePlainText for matchStyle to replaceSelection
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): ditto

2005-02-17  Richard Williamson   <rjw@apple.com>

	Removed code that should not have been checked in from
	last patch.

        * WebCoreSupport.subproj/WebTextRendererFactory.m:
        (-[WebTextRendererFactory isFontFixedPitch:]):

2005-02-17  Richard Williamson   <rjw@apple.com>

        Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead

	Fixed w/o introducing a performance regression.

        Reviewed by Vicki (and earlier by Dave Harrison).

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _computeWidthForSpace]):
        (widthForNextCharacter):
        * WebCoreSupport.subproj/WebTextRendererFactory.h:
        * WebCoreSupport.subproj/WebTextRendererFactory.m:
        (-[NSFont _web_isFakeFixedPitch]):
        (-[WebTextRendererFactory isFontFixedPitch:]):
        (-[WebTextRendererFactory fontWithFamily:traits:size:]):

2005-02-17  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3959304> PDF in img tag is not rendered correctly anymore

	We were incorrectly adding image position when flipping coordinates.

        Reviewed by David Harrison.

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]):

2005-02-17  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/4007262> Seed: Flight tracker scrolling moves to the left

	Added SPI for dashboard to disable wheel scrolling of the WebClipView.

        Reviewed by Ken.

        * ChangeLog:
        * WebView.subproj/WebClipView.m:
        (-[WebClipView _focusRingVisibleRect]):
        (-[WebClipView scrollWheel:]):
        * WebView.subproj/WebView.m:
        (-[WebViewPrivate init]):
        (-[WebView drawRect:]):
        (-[WebView _dashboardBehavior:]):
        * WebView.subproj/WebViewInternal.h:
        * WebView.subproj/WebViewPrivate.h:

=== Safari-187 ===

2005-02-17  Vicki Murley <vicki@apple.com>

	- roll out this change, since it causes a 1.5% performance regression

    2005-02-15  Richard Williamson   <rjw@apple.com>
        
        Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
        
        Lie about Osaka-Mono.  Treat it as fixed pitch, even though,
        strictly speaking it isn't.  (Similar to what we do with
        Courier New.)

        Reviewed by David Harrison.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _computeWidthForSpace]):
        * WebCoreSupport.subproj/WebTextRendererFactory.h:
        * WebCoreSupport.subproj/WebTextRendererFactory.m:
        (-[NSFont _web_isFakeFixedPitch]): 
        (-[WebTextRendererFactory isFontFixedPitch:]):
        (-[WebTextRendererFactory fontWithFamily:traits:size:]):

2005-02-17  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.
        
        - fixed <rdar://problem/3997185> The Web view on .Mac Prefs caused System Prefs 
        to lockup (resolved by re-boot only)

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge nextKeyViewOutsideWebFrameViews]):
        Don't allow recursion here; assert on debug build, return nil on deployment. I
        couldn't get my machine into a state to repro this problem (and neither could the
        originator), but it's obvious from the stack crawl that this method was recursing
        when it shouldn't have.

2005-02-16  John Sullivan  <sullivan@apple.com>

        Written by Darin, reviewed by me.
        
        - WebKit part of fix for <rdar://problem/4007384> 
        FILTER: Bookmark of RSS with Japanese search word & multiple RSS pages loses filter

        * DOM.subproj/DOMPrivate.h:
        updated this file, which is a copy of the WebCore version

2005-02-16  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3966973> Tiger 8A357: Binary Compatiblity: frequent Webstractor.app crashes [WebImageData _nextFrame]

	Webstractor.app was playing tricks to create thumbnails of
	pages.  This caused the 'focusView' to be incorrect during
	animated GIF frame rendering.

        Reviewed by Chris.

        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):

2005-02-16  Vicki Murley  <vicki@apple.com>

        Reviewed by me, code change by Darin.

        - fixed the build on Panther

        * WebView.subproj/WebFormDataStream.m: (webSetHTTPBody):
        Added a Panther-specific code path that just loads all the data into one big
        NSData object. This means that bug 3686434 won't be fixed on SUPanWheat; we'll
        still load the file into memory before sending it to the server on Panther.

2005-02-15  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3998368> Tiger8A376: WebTextRenderer assertion failure in Safari while browsing news.bbc.co.uk

	Removed use of FATAL_ALWAYS from getUncachedWidth().  It's unclear
	why we would trigger the FATAL_ALWAYS.  In the past we've seen
	the message triggered because of corrupt fonts.  Anyway, in this
	particular case, we will now return 0 for the character width,
	rather than exiting.

        Reviewed by David Harrison.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (getUncachedWidth):

2005-02-15  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead

	Lie about Osaka-Mono.  Treat it as fixed pitch, even though,
	strictly speaking it isn't.  (Similar to what we do with
	Courier New.)

        Reviewed by David Harrison.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _computeWidthForSpace]):
        * WebCoreSupport.subproj/WebTextRendererFactory.h:
        * WebCoreSupport.subproj/WebTextRendererFactory.m:
        (-[NSFont _web_isFakeFixedPitch]):
        (-[WebTextRendererFactory isFontFixedPitch:]):
        (-[WebTextRendererFactory fontWithFamily:traits:size:]):

2005-02-14  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3686434> Safari uses too much RAM on file upload, leading to malloc errors and crashes (HP printers)

        * WebView.subproj/WebFormDataStream.h: Added webSetHTTPBody, which creates and connects an appropriate
        stream to an NSMutableURLRequest.
        * WebView.subproj/WebFormDataStream.m: Added implementation here.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
        Use webSetHTTPBody.
        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]):
        Use webSetHTTPBody.
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _loadItem:withLoadType:]): Use webSetHTTPBody.
        (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.

        * English.lproj/StringsNotToBeLocalized.txt: Updated for this change and other recent changes.

2005-02-11  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/4002505> 8A378: Endlessly animating gif's on http://www.entropy.ch
	
	If animated images had no loop count property we were incorrectly
	looping forver.  Note, that in the course of fixing this bug
	I found that ImageIO is incorrectly NOT reporting the loop count
	for a whole class of animated GIFs.

        Reviewed by Ken Kocienda.

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _repetitionCount]):

=== Safari-186 ===

2005-02-11  Vicki Murley  <vicki@apple.com>

        Reviewed by Darin.

	- fix deployment build on Panther
 
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView changeBaseWritingDirection:]): ifdef out NSWritingDirectionNatural
        (-[WebHTMLView toggleBaseWritingDirection:]): fix a spacing issue

2005-02-10  David Harrison  <harrison@apple.com>

        Reviewed by Richard.

        <rdar://problem/3991652> REGRESSION (Mail): Deleting entire line in reply deletes extra blank line and moves insertion point
        
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:]):
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
        (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
        (-[WebHTMLView selectToMark:]):
        (-[WebHTMLView swapWithMark:]):
        (-[WebHTMLView transpose:]):
        (-[WebHTMLView _selectMarkedText]):
        (-[WebHTMLView _selectRangeInMarkedText:]):
        Adopt new default affinity of NSSelectionAffinityDownstream as of <rdar://problem/3937447>.
        
2005-02-10  Darin Adler  <darin@apple.com>

        Reviewed by Harrison.

        - fixed <rdar://problem/4002084> Setting ResourceLoadDelegate to nil can cause a crash

        * WebView.subproj/WebView.m: (-[WebView _cacheResourceLoadDelegateImplementations]):
        Set booleans to either YES or NO, rather than setting them only in the YES case.

2005-02-10  Darin Adler  <darin@apple.com>

        Reviewed by Harrison.

        - fixed <rdar://problem/3991225> Format->Style->Underline menu item does not get checked when selected text is underlined

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView validateUserInterfaceItem:]): Added tons of additional cases in here for all the
        "action" style methods in this class that don't always want to be valid. For the ones where state
        makes sense, added the state-checking code too for the menu item case.
        (-[WebHTMLView ignoreSpelling:]): Removed unnecessary "editable text only" check since this command
        would work fine on a non-editable selection.
        (-[WebHTMLView swapWithMark:]): Ditto.
        (-[WebHTMLView changeBaseWritingDirection:]): Added. Like toggle, but based on the sender's tag.

2005-02-08  Darin Adler  <darin@apple.com>

        "Reviewed" by Richard (he told me the file was obsolete).

        - got rid of an obsolete file

        * Plugins.subproj/npsap.h: Removed.
        * copy-webcore-files-to-webkit: Removed npsap.h.

2005-02-09  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/4000073> non-screen font error on www.worldofwarcraft.com

        Reviewed by John Sullivan.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _smallCapsFont]):

=== Safari-185 ===

2005-02-07  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3993354> Safari claims to put RTFD on the pasteboard, but doesn't, in some cases

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _stripAttachmentCharactersFromAttributedString:]): moved
        (-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]): take cachedAttributedString parameter in case the attributed string was gotten already
        (-[WebHTMLView _writeSelectionToPasteboard:]): omit RTFD from the types list when there are no attachments

2005-02-07  David Harrison  <harrison@apple.com>

        Reviewed by Ken.

        <rdar://problem/3990693> REGRESSION (8A373): ctrl-k now deletes just one character instead of line
        
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
        Set the selection so that deleteKeyPressedWithSmartDelete knows what to delete.

2005-02-06  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed <rdar://problem/3963166> PDFView SPI print method is being deprecated, moving to PDFDocument; please update WebKit

        * WebView.subproj/WebPDFView.m: (-[WebPDFView printOperationWithPrintInfo:]): Target the document instead of the view.

        * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes and also moved one translation to be a file-specific
        item rather than a file-independent one.

2005-02-05  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3991974> REGRESSION: www.jabra.com world location screen does not work

        Reviewed by hyatt.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): use the baseURL from the bridge rather than from the response

2005-02-04  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3802781> rtf->html pasteboard conversion using xhtml

        Reviewed by kocienda.

        * WebView.subproj/WebHTMLView.m:
        (+[WebHTMLView _excludedElementsForAttributedStringConversion]): new
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): call _excludedElementsForAttributedStringConversion

2005-02-04  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3832973> copy text from PowerPoint, paste into Blot (or presumably Mail) and get a single missing image icon

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): prefer RTF and RTFD over images just as NSTextView does

2005-02-03  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3555137> REGRESSION (125-173): Flash animation can erase parts of chrome (bookmarks bar & tab bar)

	convertRect:toView: returns incorrect results inside of viewWillMoveToWindow: with a nil window. Workaround this by catching this case.

        Reviewed by darin.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView superviewsHaveSuperviews]): new
        (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]): clip out the plug-in view when superviewsHaveSuperviews returns NO

2005-02-03  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3893513> Sun iPlanet app: when saving to a file it brings up a window with the thing to be saved instead

        Reviewed by adele.

        * WebView.subproj/WebTextView.m:
        (+[WebTextView unsupportedTextMIMETypes]): added "text/ldif" to the list of MIME types that our text view doesn't handle

=== Safari-183 ===

2005-02-03  Chris Blumenberg  <cblu@apple.com>

        * English.lproj/StringsNotToBeLocalized.txt: updated

2005-02-03  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3989611> Evite style "add vCalendar to calendar" do not work

        Reviewed by adele.

        * WebView.subproj/WebTextView.m:
        (+[WebTextView unsupportedTextMIMETypes]): added "text/x-vcalendar" to the list of MIME types our text view doesn't handle

2005-02-03  Vicki Murley  <vicki@apple.com>

        Reviewed by Darin.

	- fix deployment build breakage on Panther
 
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView toggleBaseWritingDirection:]):

2005-02-02  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris.
        
        - WebKit part of fix for <rdar://problem/3980651> REGRESSION (125-180): Huge number of pages printed from certain page, 
        iFrame involved
        
        This also fixes the problems with printing from GMail, yay!

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
        Don't adjust margins for header/footer here, because this is called for each subframe.
        (-[WebHTMLView knowsPageRange:]):
        Do adjust margins for header/footer here (analogous to WebTextView and WebImageView).
        Also, round the page height to an integer here (noticed in passing).

2005-02-02  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3986546> Cut, delete, and paste menu items are active when a image is opened in window

        Reviewed by john.

        * WebView.subproj/WebView.m:
        (-[WebView _responderValidateUserInterfaceItem:]): new, has the responder validate the item 
        (-[WebView validateUserInterfaceItem:]): call VALIDATE for each repsonder selector using FOR_EACH_RESPONDER_SELECTOR macro
        (-[WebView _performResponderOperation:with:]): call factored out method _responderForResponderOperations
        (-[WebView _responderForResponderOperations]): new, code from _performResponderOperation:with:

2005-02-02  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3983628> control-click on WebView is not selecting the word under the cursor (Mail, non-editable WebView)

        Reviewed by rjw.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge selectWordBeforeMenuEvent]): new
        * WebView.subproj/WebView.m:
        (-[WebView _selectWordBeforeMenuEvent]): new SPI
        (-[WebView _setSelectWordBeforeMenuEvent:]): new SPI
        * WebView.subproj/WebViewInternal.h:
        * WebView.subproj/WebViewPrivate.h:

2005-02-02  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3986013> Assertion failure going back after page load error (no apparent problem in nondebug build)

        Reviewed by rjw.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _setPrimaryLoadComplete:]): don't set the data source data when the main client is nil

2005-02-02  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        Fix for this bug:
        
        <rdar://problem/3823109> WebKit should support -toggleBaseWritingDirection: (bidi editing support)

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _applyParagraphStyleToSelection:withUndoAction:]): New function that calls through to
        new feature that allows callers to force all properties in a style to be applied as block styles.
        (-[WebHTMLView _alignSelectionUsingCSSValue:withUndoAction:]): Removed FIXME comment for something that has been fixed.
        (-[WebHTMLView toggleBaseWritingDirection:]): Implemented.

2005-02-01  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3977727> WebKit should use new SPI to support faster GIF rendering

	Note:  This REQUIRES build >= 3A362 when building on Tiger.

        Reviewed by John.

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _imageSourceOptions]):

=== Safari-182 ===

2005-02-01  Richard Williamson   <rjw@apple.com>

	Added new SPI for <rdar://problem/3967063> need spi on WebView to turn of lcd text for Dashboard

        Reviewed by Chris.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (_drawGlyphs):
        * WebView.subproj/WebView.m:
        (-[WebView drawRect:]):
        (-[WebView _dashboardBehavior:]):
        (+[WebView _setShouldUseFontSmoothing:]):
        (+[WebView _shouldUseFontSmoothing]):
        * WebView.subproj/WebViewInternal.h:
        * WebView.subproj/WebViewPrivate.h:

2005-01-31  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3949806> REGRESSION: Source window fails to refresh correctly on reload

	The data method was being called on WebDataSource before the data was set. This fix makes WebDataSource set the data before releasing the main client instead of waiting for the main client to set it when it is dealloced.

        Reviewed by darin.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _setData:]): moved within file
        (-[WebDataSource _setPrimaryLoadComplete:]): call _setData: with the data from the main client before letting go of the main client
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient releaseResources]): removed call to _setData: since the data source may need the data before releaseResources is called

2005-01-31  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3946285> Seed: Safari crashed by selecting all at internet-moebel.com

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _hitViewForEvent:]): new, factored hit test hack to this method
        (-[WebHTMLView _updateMouseoverWithEvent:): call _hitViewForEvent:
        (-[WebHTMLView acceptsFirstMouse:]): call _setMouseDownEvent: and _isSelectionEvent: on the hit HTMLView or else when it's asked to drag it will assert
        (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto

2005-01-31  David Harrison  <harrison@apple.com>

        Reviewed by Darin.

        <rdar://problem/3961239> AX Setting AXFocused on AXScrollArea of AXWebArea will cause keyboard selection change

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView maintainsInactiveSelection]):
        Keep the selection when the new first respomder is our own scrollview, in both editable and non-editaqble content.

2005-01-31  Jens Alfke  <jens@apple.com>

        Reviewed by John.

	- Fixed <rdar://problem/3903199> REGRESSION: Large background patterns slide around while loading

        * WebCoreSupport.subproj/WebImageData.m:
        (drawPattern):
        (-[WebImageData tileInRect:fromPoint:context:]):

2005-01-30  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3965265> Safari displays HTML as source when default encoding is Hebrew (due to direction overrides added by encoding converter)

        * WebView.subproj/WebPreferencesPrivate.h: Added _systemCFStringEncoding, and changed
        _setInitialDefaultTextEncodingToSystemEncoding to be a class method.
        * WebView.subproj/WebPreferences.m:
        (+[WebPreferences _systemCFStringEncoding]): Added. New SPI to be used by Safari. Broken out of
        _setInitialDefaultTextEncodingToSystemEncoding, but also added cases for MacArabic and MacHebrew.
        (+[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]): Refactor to use _systemCFStringEncoding.

2005-01-28  Jens Alfke  <jens@apple.com>

        Reviewed by Richard.

	<rdar://problem/3727680> printing some page with WebKit generates a PDF with a 1x1 image with soft mask (causes Acrobat to hang during print spooling)

	Detect 1x1 images, extract and cache color of single pixel, reduce draw and tile operations to a color fill (or to a no-op if the pixel is clear.)

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _invalidateImages]):
        (-[WebImageData _checkSolidColor:]):
        (-[WebImageData _cacheImages:allImages:]):
        (-[WebImageData _fillSolidColorInRect:compositeOperation:context:]):
        (-[WebImageData tileInRect:fromPoint:context:]):

2005-01-28  David Harrison  <harrison@apple.com>

        Reviewed by Darin.

        <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch

        Use AppKit SPI _accessibilityParentForSubview to return KWQAccObject parent of AppKit AX object.
        
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _accessibilityParentForSubview:]):
        New.

2005-01-28  Chris Blumenberg  <cblu@apple.com>

	WebKit side of: <rdar://problem/3951283> can view pages from the back/forward cache that should be disallowed by Parental Controls

        Reviewed by john.

        * WebView.subproj/WebDefaultPolicyDelegate.m:
        (-[WebDefaultPolicyDelegate webView:shouldGoToHistoryItem:]): new private delegate method
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _goToItem:withLoadType:]): call new delegate method
        * WebView.subproj/WebPolicyDelegatePrivate.h:

2005-01-26  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin, Hyatt and Ken.

	<rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _styleFromFontAttributes:]): Use new -khtml-text-decorations-in-effect
	property
        (-[WebHTMLView _styleForAttributeChange:]): likewise
        (-[WebHTMLView underline:]): likewise

2005-01-27  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Maciej

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _handleKillRing:prepend:]): New helper function. Code factored out from 
         _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:.
        (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:]): No longer takes 
        unused preflight argument. Now takes new isTypingAction argument. Uses isTypingAction to
        determine which flavor of delete command to call.
        (-[WebHTMLView _deleteSelection]): No longer passes unused preflight argument. Now passes new isTypingAction argument.
        (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Rearranged code to call
        correct flavor of delete command, based on whether typing should be preserved. Some other cleanups.
        (-[WebHTMLView deleteForward:]): Add _isEditable check.
        (-[WebHTMLView deleteBackward:]): Now calls _deleteWithDirection instead of having unique behavior different 
        from forward delete.
        (-[WebHTMLView deleteWordForward:]): Add new isTypingAction flag to _deleteWithDirection call.
        (-[WebHTMLView deleteWordBackward:]): Ditto.
        (-[WebHTMLView deleteToBeginningOfLine:]): Ditto.
        (-[WebHTMLView deleteToEndOfLine:]): Ditto.
        (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto.
        (-[WebHTMLView deleteToEndOfParagraph:]): Ditto.
        (-[WebHTMLView deleteToMark:]): Ditto.

=== Safari-181 ===

2005-01-27  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3973272> REGRESSION: Safari uses QT plugin to display PNG images

        Reviewed by john.

        * Plugins.subproj/WebBasePluginPackage.m: use renamed QT bundle ID

2005-01-26  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3829517> WebView still draws white when setDrawsBackground set to NO and no content loaded yet

        * WebView.subproj/WebFrameView.m: (-[WebFrameView drawRect:]): Check drawsBackground, and don't
        draw the white "no document" background if it's NO. This fixes things for frames with no document.
        * WebView.subproj/WebImageView.m: (-[WebImageView drawRect:]): Same as above. This fixes things
        for frames with just an image.
        * WebView.subproj/WebFrame.m: (-[WebFrame _updateDrawsBackground]): Call setDrawsBackground: on the
        document view if it implements it. This fixes things for frames with plain text.

2005-01-25  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris.
        
        - WebKit part of fix for: <rdar://problem/3970670> Text context menu 
          in WebKit needs "Look Up in Dictionary" item

        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (localizedMenuTitleFromAppKit):
        return English string in the case where AppKit bundle is found but doesn't
        contain the expected string. This case will be hit by people testing with
        an older AppKit.
        (-[WebDefaultUIDelegate menuItemWithTag:]):
        create Look Up in Dictionary item
        (-[WebDefaultUIDelegate contextMenuItemsForElement:]):
        add Look Up in Dictionary item and separator
        (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]):
        ditto

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _lookUpInDictionaryFromMenu:]):
        new method, handles bringing up the Dictionary window. Includes FIXMEs
        for a couple of the known loose ends.
        (-[WebHTMLView validateUserInterfaceItem:]):
        handle Look Up in Dictionary item like the other new items
        
        * WebView.subproj/WebUIDelegatePrivate.h:
        added SPI constant for Look Up in Dictionary menu item

2005-01-24  Maciej Stachowiak  <mjs@apple.com>

        Fixed Panther build (missing ifdef)

        * WebView.subproj/WebDefaultContextMenuDelegate.m:

2005-01-24  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.
        
        - WebKit part of fix for <rdar://problem/3960231> Text context menu in WebKit needs Spotlight and Google items
        
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (localizedMenuTitleFromAppKit):
        new function, gets localized string from AppKit so we can avoid adding localized
        strings to WebKit at this late date in Tiger. Returns the non-localized English
        string if we can't find the localized string in AppKit.
        (-[WebDefaultUIDelegate menuItemWithTag:]):
        handle the two new menu items by tag name
        (-[WebDefaultUIDelegate contextMenuItemsForElement:]):
        add menu items for Search in Google and Search in Spotlight to selected-text menu item
        for the noneditable case
        (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]):
        add menu items for Search in Google and Search in Spotlight to selected-text menu item
        for the editable case

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _searchWithGoogleFromMenu:]):
        implement this menu item action method, using same method name and implementation as NSTextView
        (-[WebHTMLView _searchWithSpotlightFromMenu:]):
        implement this menu item action method, using same basic implementation as NSTextView
        (-[WebHTMLView validateUserInterfaceItem:]):
        validate new menu items
        
        * WebView.subproj/WebUIDelegatePrivate.h:
        define new tags for new menu items

        * English.lproj/StringsNotToBeLocalized.txt:
        updated for these changes

2005-01-24  Darin Adler  <darin@apple.com>

        * WebView.subproj/WebDataSource.m: (+[WebDataSource _repTypesAllowImageTypeOmission:]):
        Do the same check as for view types, so the representation types are consistent.

2005-01-24  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3791158> REGRESSION (Mail): copyFont: and pasteFont: copy and paste only the NSFont, not other attributes

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _styleFromFontAttributes:]): Added the last
        few loose ends here: strikethrough and underline.

        - fixed <rdar://problem/3967393> add a user default that lets you turn off WebKit PDF support

        * WebView.subproj/WebFrameView.m: (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
        Leave the PDF-handling classes out of the dictionary if the secret default is set.

        * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.

2005-01-20  Darin Adler  <darin@apple.com>

        Reviewed by Kristin Forster.

        - fixed <rdar://problem/3964972> update _initWithCGSEvent:eventRef: call in mouse moved workaround (breaks cursors in Carbon WebKit applications)

        * Carbon.subproj/HIWebView.m: (MouseMoved): Instead of munging the event record's window number directly
        before calling _initWithCGSEvent, on Tiger we call _eventRelativeToWindow on the event after creating it.
        Also added a check so that with Macromedia Contribute's workaround in place we don't do anything at all
        to the event. Tested with both Contribute and CarbonWeb.

        * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.

2005-01-20  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3815672> REGRESSION (Mail): Japanese text cannot be made bold

	The AppKit's font substitution API doesn't match font traits! 
	It only find fonts that contain the appropriate glyphs.  This
	patch attempts to find the best variation within a family.

        Reviewed by Maciej.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _substituteFontForString:families:]):

=== Safari-180 ===

2005-01-20  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Fix for this bug:
        
        <rdar://problem/3786659> REGRESSION (Mail): editable WebViews don't work with "size up" and "size down" NSFontManager changes

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _addToStyle:fontA:fontB:]): This is the WebKit side of the fix. Replaced unimplemented code blocks
        with FIXME's in them for make bigger and make smaller with real working code.

2005-01-19  David Hyatt  <hyatt@apple.com>

	Fix for 3513067, spaces being lost when RTL text is rendered.  Make sure not to allow hangers or spaces
	in the margin.
	
        Reviewed by john
	
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _createATSUTextLayoutForRun:style:]):

2005-01-19  Darin Adler <darin@apple.com>

        Reviewed by vicki

	- fixed <rdar://problem/3962559> stopAnimationsInView leaks after cvs-base
 
        * WebCoreSupport.subproj/WebImageData.m: (+[WebImageData stopAnimationsInView:]): add a release

2005-01-19  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3961809> plug-in code attempts to load empty URL

        Reviewed by john.

        * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
        (-[WebNetscapePluginEmbeddedView didStart]): don't start load if URL is empty

2005-01-17  Darin Adler  <darin@apple.com>

        * DOM.subproj/DOMPrivate.h: Check in generated file.

2005-01-17  Darin Adler  <darin@apple.com>

        Reviewed by John and Richard.

        - fixed <rdar://problem/3907453> printing a multi-page PDF document from Safari doesn't produce correct output

        * WebView.subproj/WebFrameViewPrivate.h: Added.
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView canPrintHeadersAndFooters]): Added. Returnes NO for documents that can't print headers or footers,
        and delegates to the document view to answer the question. Defaults to NO, since only a view that actively does
        the work is compatible with our header and footer code.
        (-[WebFrameView printOperationWithPrintInfo:]): Added. Returns an NSPrintOperation set up for printing. The reason
        we return this rather than an NSView is that in the PDFView case, the print info is changed around before creating
        the NSPrintOperation, and also the PDFKit SPI works this way.

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView canPrintHeadersAndFooters]): Added. Returns YES.
        * WebView.subproj/WebImageView.m: (-[WebImageView canPrintHeadersAndFooters]): Ditto.
        * WebView.subproj/WebTextView.m: (-[WebTextView canPrintHeadersAndFooters]): Ditto.

        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView canPrintHeadersAndFooters]): Added. Returns NO.
        (-[WebPDFView printOperationWithPrintInfo:]): Added. Calls getPrintOperationForPrintInfo: autoRotate:YES on the PDFView.

        * WebKit.pbproj/project.pbxproj: Added WebFrameViewPrivate.h as a new private header.

2005-01-13  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3932107> Safari does not load QT Cocoa plug-in if the WebPluginMIMETypes key is not in the info.plist

	Fixing this bug required that we allow WebKit plug-ins (as well as Netscape plug-ins) support BP_CreatePluginMIMETypesPreferences
	which allows plug-ins create an auxiliary MIME types file.

        Reviewed by adele.

        * Plugins.subproj/WebBasePluginPackage.h:
        * Plugins.subproj/WebBasePluginPackage.m:
        (+[WebBasePluginPackage preferredLocalizationName]): moved from WebNetscapePluginPackage
        (-[WebBasePluginPackage pListForPath:createFile:]): ditto
        (-[WebBasePluginPackage getPluginInfoFromPLists]): ditto
        (-[WebBasePluginPackage isLoaded]): return isLoaded ivar
        (-[WebBasePluginPackage load]): if loaded, get BP_CreatePluginMIMETypesPreferences symbol
        * Plugins.subproj/WebNetscapePluginPackage.h:
        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage load]): call super when done so BP_CreatePluginMIMETypesPreferences can be initialized
        * Plugins.subproj/WebPluginPackage.m:
        (-[WebPluginPackage initWithPath:]): call getPluginInfoFromPLists
        (-[WebPluginPackage load]): call super when done so BP_CreatePluginMIMETypesPreferences can be initialized

2005-01-13  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3952809> WebJavaPlugIn.h comments need method name corrected (webPlugInCallJava)

        Reviewed by Maciej.

        * Plugins.subproj/WebJavaPlugIn.h:

=== Safari-179 ===

2005-01-13  Vicki Murley <vicki@apple.com>

        Reviewed by Adele.

        - fix <rdar://problem/3946836> Safari about box lists 2004 instead of 2005

        * WebKit.pbproj/project.pbxproj: bump "2004" to "2005"

2005-01-13  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3951911> REGRESSION: Animated GIF images with loop counts no longer update

	Draw last image after animation loop terminates.  (We
	were drawing the image at index+1, which doesn't exist!)

        Reviewed by Darin.

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _nextFrame:]):

2005-01-13  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3952084> REGRESSION: Links at projectseven.com now draw and update incorrectly during hover

	Turn off use of new CGContextStrokeLineSegments API.  We should
	turn back on when 3952944 is fixed.

        Reviewed by Darin.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):

2005-01-13  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3937663> repro assertion failure and crash dragging image that has PDF source

        Reviewed by adele.

        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]): if [WebImageRenderer image] returns nil, fallback to code that uses a file icon as the drag image
        * WebCoreSupport.subproj/WebImageRendererFactory.m:
        (-[WebImageRendererFactory supportedMIMETypes]): removed code that omits PDF and PostScript from the list since this omission is only needed in WebImageView
        * WebView.subproj/WebImageView.m:
        (+[WebImageView supportedImageMIMETypes]): added code that omits PDF and PostScript since we don't want WebImageView to render these types

2005-01-10  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	<rdar://problem/3758033> REGRESSION (Mail): Support attributes in marked text (International input)
        
	* WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]): Changed to support
	underline thickness. Also added a bit of a hack here to move thickness 2 underlines down by
	.5 pixels, since the rendering engine can't give a fractional pixel offset.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView validAttributesForMarkedText]): Support underline, underline color and marked
	clause attributes. Others that NSText supports are unimplemented for now.
        (-[WebHTMLView firstRectForCharacterRange:]): Remove needless logging.
        (-[WebHTMLView unmarkText]): Updated for new WebCore SPI.
        (-[WebHTMLView _extractAttributes:ranges:fromAttributedString:]): New method to pull the attributes
	and ranges out of an attributed string.
        (-[WebHTMLView setMarkedText:selectedRange:]): Extract attributes and pass to WebCore.
        (-[WebHTMLView insertText:]): Add comment noting that we don't really handle attributed strings
	here.

2005-01-12  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - fixed <rdar://problem/3848257> WebView will draw more than AppKit asks it to, so views behind won't redraw enough (transparent WebView)

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _propagateDirtyRectsToOpaqueAncestors]): As recommended by Troy Stephens, do the
        layouts here in this call, since it's before propagating the dirty rects to our ancestors.
        This fixes the bug, but we only do it if the WebView is not opaque, because otherwise we can
        optimize by only doing layouts you really need, and doing them later on is safe because we
        know we don't need to draw any of the views behind us.
        (-[WebHTMLView _layoutIfNeeded]): Added. Factored out from the method below.
        (-[WebHTMLView _web_layoutIfNeededRecursive]): Added. Like the other "layout if needed" call,
        but unconditional.
        (-[WebHTMLView _web_layoutIfNeededRecursive:testDirtyRect:]): Factored out the guts into the
        _layoutIfNeeded method above. Otherwise unchanged.
        (-[NSView _web_layoutIfNeededRecursive]): Added.

        * WebView.subproj/WebFrame.m: (-[WebFrame _updateDrawsBackground]): Call setDrawsBackground:NO
        on the scroll view when changing the frame to no longer be in "draws background" mode. This
        is needed because the frame manages the "draws background" mode of the scroll view. It won't
        have any effect if you call setDrawsBackground:NO before starting to use a WebView, but without
        it calling setDrawsBackground:NO later won't have an immediate effect (easily visible in Safari).
        This was hidden before because the HTML view was filling with transparent color, which blew away
        the fill that was done by NSScrollView.

        - fixed <rdar://problem/3921129> reproducible crash at www.funnychristmas.com in CFSet manipulation in WebImageData

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _imageSourceOptions]): Changed types so we don't need a cast.
        (+[WebImageData stopAnimationsInView:]): Instead of building a set of sets, by putting in the sets with addObject,
        build a single set using unionSet, and then iterate the objects instead of having to iterate the sets and then the
        objects in each set. The old code ended up sharing the sets with the live code, when the whole idea was to gather
        all the renderers because the process of stopping modifies the active sets.

2005-01-12  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3926825> Safari ignores GIF loop count

	Get loop count from file properties, not image properties.

        Reviewed by Ken Kocienda.

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _commonTermination]):
        (-[WebImageData fileProperties]):
        (-[WebImageData _floatProperty:type:at:]):
        (-[WebImageData _floatFileProperty:type:]):
        (-[WebImageData _repetitionCount]):

2005-01-11  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3934749> assertion failure in WebBaseNetscapePluginView loading movie

        Reviewed by john.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView start]): call canStart before asserting about the webView

2005-01-11  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.
        
        - fixed <rdar://problem/3446838> REGRESSION (Mail): text decorations don't print 
        (e.g. <strike>, underline)

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
        This bottleneck routine for drawing a line was setting the linewidth to 0 when
        the graphics context was not drawing to the screen. Thus, no lines. Now links
        are underlined when printing from Safari (as well as Mail).

2005-01-11  Richard Williamson   <rjw@apple.com>

	Fixed 3949145.  CG has a much faster API for drawing lines.
	Switched over to that new API (CGContextStrokeLineSegments).

        Reviewed by John Sullivan.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):

2005-01-10  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3948862> REGRESSION: missing images when RTFD is pasted into editable WebView

	This problem occurred because we were creating image elements before creating corresponding image resources. The fix is to have AppKit call us back to create the resources before it creates the elements.

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): don't deal with subresources since that's now done by the following method
        (-[WebHTMLView resourceForData:preferredFilename:]): new handler method called by AppKit

=== Safari-178 ===

2005-01-06  David Harrison  <harrison@apple.com>

        Reviewed by Dave Hyatt

        <rdar://problem/3588548> AX: tabbing does not work correctly with the screen reader and a focused link; need AXFocusedUIElement to work.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView accessibilityFocusedUIElement]):
        Implement this so that AppKit can use it from NSAccessibilityHandleFocusChanged.

2005-01-05  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3936865> REGRESSION: canvas.drawImage no longer scales properly

        Reviewed by john.

        * WebCoreSupport.subproj/WebImageData.m: use the height of the inRect instead of the fromRect when setting the origin of the context

2005-01-04  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3928329> WebKit should pass nil for "language" to checkSpellingOfString:

        Reviewed by kocienda.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _isSelectionMisspelled]): pass nil not @"" for language

2004-12-21  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	<rdar://problem/3888931> frame naming allows malicious site to bring up a window when you click on a link in another

        Implement a security check on name frame visbility. This is the
	same rule as mozilla. You can only target frames by name if you
	are in the same window, have the same domain as the frame or an
	ancestor, or if it's a top level window have the same domain as
	the opener.
	
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _shouldAllowAccessFrom:]):
        (-[WebFrame _descendantFrameNamed:sourceFrame:]):
        (-[WebFrame findFrameNamed:]):
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebView.m:
        (-[WebView _findFrameInThisWindowNamed:sourceFrame:]):
        (-[WebView _findFrameNamed:sourceFrame:]):
        * WebView.subproj/WebViewPrivate.h:

=== Safari-177 ===

=== Safari-176 ===

2004-12-20  Richard Williamson   <rjw@apple.com>

	Add call to new API.  ImageIO deprecated some older (although
	quite new!) API.   This caused us to fail to build on 337 or later.

	Developers wanting to build on older versions of Tiger must define
	USE_DEPRECATED_IMAGESOURCE_API in WebImageData.m.

        Reviewed by Vicki.

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData propertiesAtIndex:]):

2004-12-20  Richard Williamson   <rjw@apple.com>

	Don't call Tiger SPI on Panther.

        Reviewed by Vicki.

        * WebCoreSupport.subproj/WebTextRendererFactory.m:
        (+[WebTextRendererFactory createSharedFactory]):

2004-12-20  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3884448> WebKit should turn on CG local font cache

	Enable mutli-tier font caching.  We should see a performance boost with this
	change.

        Reviewed by Chris.

        * WebCoreSupport.subproj/WebTextRendererFactory.m:
        (+[WebTextRendererFactory createSharedFactory]):

2004-12-20  Richard Williamson   <rjw@apple.com>

	Fix image decoding to separately decode image meta data from actual image bits.  I
	incorrectly consolidated decode of meta data and image bits resulting in a huge
	performance regression.

	Double size of WebCore cache on lower end machines.  On the PLT run on machines with
	256MB of memory, too many images were being evicted, causing a re-decode on the PLT.
	Upping the lower limit of the cache size ensure that no images are evicted (this
	goes hand-in-hand with the change to the minimum object size from 32K to 40K).

        Reviewed by Ken.

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (+[WebImageData initialize]):
        (-[WebImageData _commonTermination]):
        (-[WebImageData _invalidateImages]):
        (-[WebImageData _invalidateImageProperties]):
        (-[WebImageData imageAtIndex:]):
        (-[WebImageData propertiesAtIndex:]):
        (-[WebImageData _cacheImages:allImages:]):
        (-[WebImageData decodeData:isComplete:callback:]):
        (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
        * WebView.subproj/WebPreferences.m:
        (+[WebPreferences initialize]):

2004-12-20  Richard Williamson   <rjw@apple.com>

	Fixed build problem caused by change to ImageIO API.

        Reviewed by Adele.

        * WebCoreSupport.subproj/WebImageData.m:

2004-12-19  Darin Adler  <darin@apple.com>

        Reviewed by Kevin.

        - some garbage collection fixes

        * Misc.subproj/WebNSObjectExtras.h: (WebCFAutorelease): Replaced the old WebNSRetainCFRelease with this
        much-easier-to-understand function cribbed from what David Harrison did in WebCore.

        * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Use CFRelease here to
        get rid of an unnecessary use of WebNSRetainCFRelease.
        * Misc.subproj/WebNSURLExtras.m:
        (+[NSURL _web_URLWithData:relativeToURL:]): Use WebCFAutorelease instead of WebNSRetainCFRelease and autorelease.
        (-[NSURL _web_URLWithLowercasedScheme]): Ditto.
        (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Use WebCFAutorelease here; the old code would not
        work correctly under GC.
        * Plugins.subproj/WebNetscapePluginPackage.m: (+[WebNetscapePluginPackage preferredLocalizationName]):
        Use WebCFAutorelease here; the old code would not work correctly under GC.

2004-12-18  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3766915> PDF content needs search to work

        Reviewed by kevin, john.

        * WebView.subproj/WebPDFView.m:
	(-[WebPDFView searchFor:direction:caseSensitive:wrap:]): implemented
        (-[WebPDFView takeFindStringFromSelection:]): new
        (-[WebPDFView jumpToSelection:]): new
        (-[WebPDFView validateUserInterfaceItem:]): new

2004-12-17  Richard Williamson   <rjw@apple.com>

	Make image decoding as lazy as possible for non threaded case; in some cases
	can avoid unnecessary decoding work.

        Reviewed by Chris.

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData imageAtIndex:]):
        (-[WebImageData propertiesAtIndex:]):
        (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):

2004-12-16  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris.
        
        One of the assertions from my previous checkin fired, so
        I made this code more robust.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge _preferences]):
        new helper method, returns global preferences if webView is nil,
        otherwise returns webView's preferences
        (-[WebBridge getObjectCacheSize]):
        use new helper method, remove now-unnecessary assert
        (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
        ditto

2004-12-16  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.
        
        - fixed <rdar://problem/3913523> Mail needs SPI for adding tooltips to links
        - cleaned up some calls to +[WebPreferences standardPreferences] that should
          have been using -[WebView preferences]
          
        This adds a (currently SPI-only) new feature that shows the URL of the link
        under the mouse in a toolTip. I tested this in Safari, but we're adding this
        feature for Mail, and Safari won't use it (unless of course you know the
        magic defaults command)

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView start]):
        use -[WebView preferences] instead of +[WebPreferences standardPreferences]
        
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge getObjectCacheSize]):
        ditto
        (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
        ditto
        
        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate willCacheResponse:]):
        ditto
        
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]):
        ditto
        (-[WebFrame _loadItem:withLoadType:]):
        ditto
        
        * WebView.subproj/WebHTMLViewInternal.h:
        private struct now keeps ivar for cached value of showsURLsInToolTips
        so it doesn't have look it up in preferences a zillion times
        
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _updateMouseoverWithEvent:]):
        if private->showsURLsInToolTips is true, set the toolTip from the URL.
        Fall back to showing the title attribute in case some element has a title
        attribute but no URL.
        (-[WebHTMLView _mayStartDragAtEventLocation:]):
        use -[WebView preferences] instead of +[WebPreferences standardPreferences]
        (-[WebHTMLView _resetCachedWebPreferences:]):
        get a fresh value for private->showsURLsInToolTips
        (-[WebHTMLView initWithFrame:]):
        call _resetCachedWebPreferences the first time, and listen for WebPreferencesChanged notifications
        (-[WebHTMLView _handleStyleKeyEquivalent:]):
        use -[WebView preferences] instead of +[WebPreferences standardPreferences]
        
        * WebView.subproj/WebPreferenceKeysPrivate.h:
        added WebKitShowsURLsInToolTipsPreferenceKey
        
        * WebView.subproj/WebPreferences.m:
        (+[WebPreferences initialize]):
        initialize WebKitShowsURLsInToolTipsPreferenceKey to 0
        (-[WebPreferences showsURLsInToolTips]):
        return WebKitShowsURLsInToolTipsPreferenceKey value
        (-[WebPreferences setShowsURLsInToolTips:]):
        set WebKitShowsURLsInToolTipsPreferenceKey value
        
        * WebView.subproj/WebPreferencesPrivate.h:
        add declarations for showsURLsInToolTips and setter
        
        * WebView.subproj/WebTextView.m:
        (-[WebTextView _preferences]):
        new helper method that gets preferences from webView if there is a webView,
        otherwise gets global preferences
        (-[WebTextView setFixedWidthFont]):
        use new helper method rather than always using global preferences
        (-[WebTextView initWithFrame:]):
        observe WebPreferencesChangedNotification instead of unnecessarily general
        NSUserDefaultsChangedNotification

2004-12-14  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.
        
        - rest of WebKit fix for <rdar://problem/3790011> undoable operations all say "Undo" 
        in the menu, no specific action names
        
        I only know of one loose end currently, which I wrote up as <rdar://problem/3920971> Edit menu 
        says "Undo Change Attributes" when it should say "Undo Set Color", from font panel

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]):
        use WebUndoActionSetColor when dragging color swatch
        (-[WebHTMLView _applyStyleToSelection:withUndoAction:]):
        new WebUndoAction parameter, passed across bridge
        (-[WebHTMLView _toggleBold]):
        use WebUndoActionSetFont
        (-[WebHTMLView _toggleItalic]):
        use WebUndoActionSetFont
        (-[WebHTMLView pasteFont:]):
        use WebUndoActionPasteFont
        (-[WebHTMLView changeFont:]):
        use WebUndoActionSetFont
        (-[WebHTMLView changeAttributes:]):
        use WebUndoActionChangeAttributes
        (-[WebHTMLView _undoActionFromColorPanelWithSelector:]):
        new method, returns WebUndoActionSetBackgroundColor or WebUndoActionSetColor
        (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]):
        now calls _undoActionFromColorPanelWithSelector
        (-[WebHTMLView changeColor:]):
        use WebUndoActionSetColor
        (-[WebHTMLView _alignSelectionUsingCSSValue:withUndoAction:]):
        new WebUndoAction parameter, passed through
        (-[WebHTMLView alignCenter:]):
        use WebUndoActionCenter
        (-[WebHTMLView alignJustified:]):
        use WebUndoActionJustify
        (-[WebHTMLView alignLeft:]):
        use WebUndoActionAlignLeft
        (-[WebHTMLView alignRight:]):
        use WebUndoActionAlignRight
        (-[WebHTMLView subscript:]):
        use WebUndoActionAlignSubscript
        (-[WebHTMLView superscript:]):
        use WebUndoActionAlignSuperscript
        (-[WebHTMLView unscript:]):
        use WebUndoActionAlignUnscript
        (-[WebHTMLView underline:]):
        use WebUndoActionAlignUnderline
        
        * WebView.subproj/WebView.m:
        (-[WebView setTypingStyle:]):
        pass WebUndoActionUnspecified through as new parameter since we don't have any more specific info
        (-[WebView applyStyle:]):
        ditto

2004-12-14  Richard Williamson   <rjw@apple.com>

	Helper method to get URL of plugin view.

        Reviewed by Chris.

        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _webViewURL]):

2004-12-14  Vicki Murley <vicki@apple.com>

        Reviewed by rjw.
 
	<rdar://problem/3855573> Remove reference to "WebScriptMethods" from WebScriptObject.h comments

        * Plugins.subproj/WebPlugin.h: changed instances of "WebScriptMethods" to "WebScripting" in this
	file as well, as requested in the bug report

2004-12-13  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John.

	<rdar://problem/3912488> Mail throws an exception after backspacing "away" inline input
        
	* WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView setMarkedText:selectedRange:]): Don't try to set a selection if
	we end up with no marked text, since that case fails and is unnecessary.

2004-12-14  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.

        - WebKit part of plumbing of fix for <rdar://problem/3790011> undoable operations all say "Undo" in the menu, 
        no specific action names

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge nameForUndoAction:]):
        renamed from setUndoActionNamePlaceholder, replaced arbitrary integers with enum values, and
        handled new "unspecified" case as a fallback

2004-12-13  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3887767> LiveConnect doesn't propagate Java exceptions back to JavaScript (prevents security suite from running)

        Reviewed by John.

        * Plugins.subproj/WebJavaPlugIn.h:

2004-12-13  John Sullivan  <sullivan@apple.com>

        Reviewed by Maciej.
        
        - fixed <rdar://problem/3744583> Safari can not quit when a webpage has a login sheet 
        that can't be cancelled.
        
        The proper fix for this would be to change the class of the NSPanel in the nib file.
        But since this would require a localization change, I did a run-time hack instead.
        I'll file a bug about fixing this when we're out of localization freeze.

        * Panels.subproj/WebAuthenticationPanel.m:
        (-[WebAuthenticationPanel replacePanelWithSubclassHack]):
        new method, creates a new panel that is identical to the original one except that
        it's our subclass, and moves all the subviews of the original panel into the new one.
        (-[WebAuthenticationPanel loadNib]):
        call replacePanelWithSubclassHack
        (-[NonBlockingPanel _blocksActionWhenModal:]):
        only method of new NSPanel subclass; overrides this SPI to allow the user to quit
        when one of these panels/sheets is on-screen

2004-12-10  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3898708> REGRESSION (8A314-8A317): World Clock's short hand not displayed (ImageIO problem with PDF?)
	Fixed <rdar://problem/3914012> use CG directly for pdf images not ImageIO

	Create a PDF document and draw that instead of using ImageIO to create a rasterized image.

        Reviewed by Maciej.

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData setIsPDF:]):
        (-[WebImageData isPDF]):
        (-[WebImageData dealloc]):
        (-[WebImageData decodeData:isComplete:callback:]):
        (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
        (-[WebImageData size]):
        (-[WebImageData animate]):
        (-[WebImageData _createPDFWithData:]):
        (-[WebImageData _PDFDocumentRef]):
        (-[WebImageData _PDFDrawInContext:]):
        (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]):
        * WebCoreSupport.subproj/WebImageRenderer.h:
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer size]):
        (-[WebImageRenderer incrementalLoadWithBytes:length:complete:callback:]):
        (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
        (_createImageRef):

2004-12-10  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.
        
        - fixed <rdar://problem/3855127> Error while printing w/o sheet, then window is left in a bad state, 
        if there's no default printer set

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView beginDocument]):
        Our implementation of knowsPageRange puts the WebHTMLView into a special "printing mode". We must
        exit the "printing mode" to return to normal behavior. This is normally done in endDocument.
        However, it turns out that if there's an exception in [super beginDocument], then endDocument
        will not be called (lame-o AppKit API). So, we handle that case by catching the exception and
        exiting the "printing mode" in beginDocument when it occurs.

2004-12-09  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3905789> Burn Disc image vibrates rapidly

	Restrict our support for animated images to GIF.  We used to
	use presence of more than one image in a resource to determine
	if an image should be animated.  This caused us to animate icns!
	If we ever support any other animated image formats we'll have
	to extend.

        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData shouldAnimate]):
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):

2004-12-09  Richard Williamson   <rjw@apple.com>

	Make WebPluginDatabase.h private (Dashboard needs SPI).

        * WebKit.pbproj/project.pbxproj:

=== Safari-175 ===

2004-12-09  Chris Blumenberg  <cblu@apple.com>

	Workaround for this exception being raised during download:
	[WebDownload connection:willStopBufferingData:]: selector not recognized

        Reviewed by john.

        * Misc.subproj/WebDownload.m:
        (-[WebDownload connection:willStopBufferingData:]): implement this method so no exception is raised. It is a bug in Foundation that this method is being called, but it's too late to fix Foundation since it has already been submitted this week. This workaround will prevent any problems from affecting users.

2004-12-08  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3911719> REGRESSION: Images no longer scale vertically
	Account for scaling correctly when taking into account progressively
 	loaded images.

	Also added implementation of repetition count for animated GIF images.
	Also replaced strings with new constants from CFImageProperties.h

	Also fixed possible problem with -(NSSize)size implementation,
	relevant to Panther only.

        Reviewed by Chris.

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _floatProperty:type:at:]):
        (-[WebImageData _frameDurationAt:]):
        (-[WebImageData _repetitionCount]):
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer size]):

2004-12-08  Chris Blumenberg  <cblu@apple.com>

	Removed NPN wrappers since these no longer need to be defined to make the QT plug-in work
	since 3828925 has been fixed.

        Reviewed by john.

        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage load]): use under-bar symbols since non-under-bar wrappers have been removed
        * Plugins.subproj/npapi.m: removed NPN wrappers
        * WebKit.exp: removed symbols

2004-12-08  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView drawRect:]): Work around for this bug:
        <rdar://problem/3908282> REGRESSION (Mail): No drag image dragging selected text in Blot and Mail
        The reason for the workaround is that this method is called explicitly from the code
        to generate a drag image, and at that time, getRectsBeingDrawn:count: will return a zero count.
        This code change uses the passed-in rect when the count is zero.

2004-12-07  Administrator  <cblu@apple.com>

	Support for fix for:
	<rdar://problem/3734309> Safari doesn't open folders in title bar menu with non-Roman names using Cmd+click

        Reviewed by john.

        * Misc.subproj/WebNSURLExtras.h:
        * Misc.subproj/WebNSURLExtras.m:
        (+[NSURL _web_URLWithUserTypedString:relativeToURL:]): renamed to take relativeToURL parameter
        (+[NSURL _web_URLWithUserTypedString:]): call _web_URLWithUserTypedString:relativeToURL: with nil for URL

2004-12-07  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3905564> REGRESSION (Tiger); in History menu, pixel size appears but is wrong for standalone images in Safari.

        Reviewed by Chris.

        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer size]):

2004-12-07  Richard Williamson   <rjw@apple.com>

	Support threaded image decoding on machines w/ >= 2 CPUs.

        Reviewed by Maciej and Chris.

        * Misc.subproj/WebKitSystemBits.h:
        * Misc.subproj/WebKitSystemBits.m:
        (WebSystemMainMemory):
        (WebNumberOfCPUs):
        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (+[WebImageData initialize]):
        (-[WebImageData init]):
        (-[WebImageData _commonTermination]):
        (-[WebImageData dealloc]):
        (-[WebImageData _invalidateImages]):
        (-[WebImageData _imageSourceOptions]):
        (-[WebImageData imageAtIndex:]):
        (-[WebImageData propertiesAtIndex:]):
        (-[WebImageData _createImages]):
        (-[WebImageData decodeData:isComplete:callback:]):
        (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
        (drawPattern):
        (-[WebImageData tileInRect:fromPoint:context:]):
        (-[WebImageData isNull]):
        (-[WebImageData size]):
        (-[WebImageData _frameDurationAt:]):
        (-[WebImageData _frameDuration]):
        (+[WebImageData stopAnimationsInView:]):
        (-[WebImageData addAnimatingRenderer:inView:]):
        (-[WebImageData removeAnimatingRenderer:]):
        * WebCoreSupport.subproj/WebImageDecodeItem.h: Added.
        * WebCoreSupport.subproj/WebImageDecodeItem.m: Added.
        (+[WebImageDecodeItem decodeItemWithImage:data:isComplete:callback:]):
        (-[WebImageDecodeItem initWithImage:data:isComplete:callback:]):
        (-[WebImageDecodeItem finalize]):
        (-[WebImageDecodeItem dealloc]):
        * WebCoreSupport.subproj/WebImageDecoder.h: Added.
        * WebCoreSupport.subproj/WebImageDecoder.m: Added.
        (decoderNotifications):
        (+[WebImageDecoder initialize]):
        (+[WebImageDecoder notifyMainThread]):
        (+[WebImageDecoder sharedDecoder]):
        (+[WebImageDecoder performDecodeWithImage:data:isComplete:callback:]):
        (+[WebImageDecoder imageDecodesPending]):
        (+[WebImageDecoder decodeComplete:status:]):
        (-[WebImageDecoder init]):
        (-[WebImageDecoder dealloc]):
        (-[WebImageDecoder finalize]):
        (-[WebImageDecoder removeItem]):
        (-[WebImageDecoder addItem:]):
        (-[WebImageDecoder decodeItem:]):
        (decoderThread):
        (startDecoderThread):
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer initWithData:MIMEType:]):
        (-[WebImageRenderer initWithContentsOfFile:]):
        (-[WebImageRenderer incrementalLoadWithBytes:length:complete:callback:]):
        (-[WebInternalImage incrementalLoadWithBytes:length:complete:callback:]):
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebImageRepresentation.m:
        (-[WebImageRepresentation receivedData:withDataSource:]):
        (-[WebImageRepresentation receivedError:withDataSource:]):
        (-[WebImageRepresentation finishedLoadingWithDataSource:]):

2004-12-07  Chris Blumenberg  <cblu@apple.com>

	Fix for performance regression.

        Reviewed by kevin.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): construct the WebResource without copying the data

2004-12-07  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3909243> REGRESSION: large standalone images stop loading part way through

        Reviewed by kevin.

        * WebView.subproj/WebBaseResourceHandleDelegate.h:
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient addData:]): call super so it buffers the data

2004-12-06  Richard Williamson   <rjw@apple.com>

	Use the AppKit's font rendering mode.  This fixes 3905347, but we still need to track down
	and resolve why metrics have changed for Courier.  This may be caused by changes in
	AppKit for 3902394.

        Reviewed by John.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (_AppkitGetCGRenderingMode):
        (getUncachedWidth):
        (_drawGlyphs):

2004-12-06  Chris Blumenberg  <cblu@apple.com>

	Forgot to commit copied header.

        * DOM.subproj/DOMPrivate.h:

2004-12-06  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3907381> NSURLConnection and WebKit buffer 2 copies of incoming data

        Reviewed by darin.

        * WebView.subproj/WebBaseResourceHandleDelegate.h:
        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (+[WebBaseResourceHandleDelegate initialize]): cache check to see if Foundation supports access to its buffered data
        (-[WebBaseResourceHandleDelegate addData:]): don't buffer data if Foundation is buffering it for us
        (-[WebBaseResourceHandleDelegate saveResource]): when creating a WebResource, pass NO for copyData since we know it won't be mutated
        (-[WebBaseResourceHandleDelegate resourceData]): return the buffered data from the connection if it supports it
        (-[WebBaseResourceHandleDelegate willStopBufferingData:]): make a mutable copy of the data from NSURLConnection so we can continue buffering 
        (-[WebBaseResourceHandleDelegate willCacheResponse:]): removed optimization that used the cached response data to save the resource since that is obsolete by this change
        (-[WebBaseResourceHandleDelegate connection:willStopBufferingData:]): new callback from NSURLConnection, informs us that NSURLConnection has given up buffering
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _receivedData:]): removed buffering code since that's done by NSURLConnection and the main client
        (-[WebDataSource _setData:]): removed unnecessary cast since the resourceData ivar is now an NSData instead of NSMutableData
        (-[WebDataSource data]): return resourceData ivar, else return the resourceData from the main client
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient releaseResources]): store resourceData on the data source so it can continue to have data after the main client has gone away 
        (-[WebMainResourceClient connection:didReceiveData:lengthReceived:]):don't call [dataSource data] just to get the length of data received since [dataSource data] can now cause data to be copied
        (-[WebMainResourceClient connectionDidFinishLoading:]): ditto
        * WebView.subproj/WebResource.m:
        (-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]): call following method with YES for copyData
        (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:copyData:]): new initializer, allows caller to choose whether or not the data is copied
        * WebView.subproj/WebResourcePrivate.h:

2004-12-06  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3903749> REGRESSION (8A321): WebKit gets incorrect glyph metrics due to change in how AppKit uses CGFont

	Use CGFontRef direction when both getting font metrics and drawing
	glyphs, instead on depending on [NSFont set].

        Reviewed by John.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (getUncachedWidth):
        (_drawGlyphs):

2004-12-06  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Harrison
        
        Fix for this bug:
        
        <rdar://problem/3906930> Hitting return key in editable content inserts br elements instead of blocks

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView insertNewline:]): One-line change to call insert-block rather than insert-br method 
        on bridge.

2004-12-04  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3846079> assertion failure in WebHTMLView(WebPrivate) removeTrackingRect at boots.com
        - fixed <rdar://problem/3857737> REGRESSION (165-166): clicking in a text field that's scrolled to the right causes it to scroll all the way left
        - fixed <rdar://problem/3861952> REGRESSION (165-166): selection is cleared when you start to scroll a frame

        * WebView.subproj/WebHTMLViewInternal.h: Added handlingMouseDown flag.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Allow passing in a
        tracking number of 0, which means no existing tracking number.
        (-[WebHTMLView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Ditto.
        (-[WebHTMLView removeTrackingRect:]): Allow removing a tracking number of 0, which is a no-op.
        (-[WebHTMLView _removeTrackingRects:count:]): Ditto.
        (-[WebHTMLView acceptsFirstResponder]): Changed check to use handlingMouseDown flag instead of mouseDownEvent
        field since that field is set up too early in the mouse down event handling process.
        (-[WebHTMLView mouseDown:]): Added code to set handlingMouseDown flag.

        - fixed part of <rdar://problem/3829808> Safari crashes when adding a DOM node that was removed from an XMLHTTP request result

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
        Changed code around so that it won't try to create a WebResource when the load fails.

        - moved next/previous links into private structure with the rest of WebFrame fields
          (We have a rule against putting new fields into obejcts that are part of our public API.)

        * WebView.subproj/WebFrame.h: Remove _nextSibling and _previousSibling.
        * WebView.subproj/WebFramePrivate.h: Added nextSibling and previousSibling fields to private class.
        * WebView.subproj/WebFrame.m: Got rid of some tabs in this file.
        (-[WebFrame _addChild:]): Changed code to use fields inside _private.
        (-[WebFrame _removeChild:]): Ditto.
        (-[WebFrame _nextFrameWithWrap:]): Ditto.
        (-[WebFrame _previousFrameWithWrap:]): Ditto.

2004-12-04  Chris Blumenberg  <cblu@apple.com>

	New fixes for:
	<rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
	<rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
	<rdar://problem/3903173> REGRESSION (172-TOT): assertion failure and crash in slotAllData logging into hotmail account
	<rdar://problem/3902749> REGRESSION (Tiger): missing image symbol does not appear

        Reviewed by darin, rjw, kocienda.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge objectLoadedFromCacheWithURL:response:data:]):
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (-[WebSubresourceClient didFinishLoading]):
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _opened]):
        (-[WebFrame _internalLoadDelegate]):
        (-[WebFrame _sendResourceLoadDelegateMessagesForURL:response:length:]):
        * WebView.subproj/WebFrameInternal.h:

2004-12-04  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed remaining bit of <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _styleFromFontAttributes:]): When translating from
        an attribute dictionary to a CSS declaration, treat missing values according to the defaults defined
        in <AppKit/NSAttributedString.h>. Before the code was treating them as "no change", which is incorrect.

        * English.lproj/StringsNotToBeLocalized.txt: Add a string from the above change.

=== Safari-173 ===

2004-12-03  Ken Kocienda  <kocienda@apple.com>

        Reviewed by me

        Roll out some recent changes by Chris that caused a performance regression.
        Fix is in hand, but it is a little risky this close to a submission. So,
        we have decided to roll back the change with the regression and roll in
        the new code after we submit.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge objectLoadedFromCacheWithURL:response:size:]):
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (-[WebSubresourceClient didFinishLoading]):
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _opened]):
        (-[WebFrame _internalLoadDelegate]):
        * WebView.subproj/WebFrameInternal.h:

2004-12-02  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3841332> REGRESSION (125.9-167u): repro crash in -[KWQPageState invalidate] involving .Mac images

	Ensure that the document is cleared when leaving a non-HTML page.  This ensures that
	the b/f cache won't incorrectly trash the previous state when restoring.

        Reviewed by John.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _setState:]):

2004-12-02  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Richard

        <rdar://problem/3748323> Problem with -[WebView editableDOMRangeForPoint:] (-isFlipped not taken into account?)
        <rdar://problem/3852590> REGRESSION (Mail): Dropped content appears in wrong place if Mail message is scrolled down

        When implementing drag and drop, moveDragCaretToPoint: and editableDOMRangeForPoint: are used in
        concert to track the mouse and determine a drop location, respectively. However, moveDragCaretToPoint:
        did a conversion of the passed-in point to the document view's coordinate space, whereas 
        editableDOMRangeForPoint: did not. Now it does.
        
        Note that I will need to coordinate with Grant to have him roll out some code in Mail that
        attempts to work around this problem (unsuccessfully), and actually manages to block the
        real fix (which needs to be in WebKit).

        * WebView.subproj/WebView.m:
        (-[WebView editableDOMRangeForPoint:]): Convert the passed-in point to the document view's coordinate space.

2004-12-02  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3895810> FATAL ERROR: <WebTextRenderer: 0x9328a20> unable to initialize with font "Times-Roman 16.00 pt. S ....

	We have a hack to replace Times with Times New Roman if we fail
        to setup Times.  If we then fail to setup Times New Roman we
        don't attempt to further fallback to the system font.  Added
        that additional fallback.

        Reviewed by Ken.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (+[WebTextRenderer webFallbackFontFamily]):
        (-[WebTextRenderer initWithFont:usingPrinterFont:]):

2004-12-02  Richard Williamson   <rjw@apple.com>

	Fixed build problem on Tiger8A821.  Private macro and function
	we were using have been deprecated,

        Reviewed by Vicki.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer initWithFont:usingPrinterFont:]):

2004-12-01  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3879870> Flash Player unable to stop data stream from continuing to download by returning -1 from NPP_Write
	Also improved and cleaned-up the plug-in stream termination code.

        Reviewed by john.

        * Plugins.subproj/WebBaseNetscapePluginStream.h:
        * Plugins.subproj/WebBaseNetscapePluginStream.m:
        (+[WebBaseNetscapePluginStream reasonForError:]): return NPRES_DONE for a nil error
        (-[WebBaseNetscapePluginStream _pluginCancelledConnectionError]): new, factored out from other methods
        (-[WebBaseNetscapePluginStream errorForReason:]): new
        (-[WebBaseNetscapePluginStream dealloc]): release MIME type
        (-[WebBaseNetscapePluginStream setMIMEType:]): new
        (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): call setMIMEType so we can use it in _pluginCancelledConnectionError, call renamed methods
        (-[WebBaseNetscapePluginStream _destroyStream]): prepended underscore, replaced some early returns with asserts as the callers are now smarter
        (-[WebBaseNetscapePluginStream _destroyStreamWithReason:]): prepended underscore, only call _destroyStream if there is an error or if the load is complete and there is no more data to be streamed
        (-[WebBaseNetscapePluginStream cancelLoadWithError:]): new, overridden by subclasses to cancel the actual NSURLConnection
        (-[WebBaseNetscapePluginStream destroyStreamWithError:]): new, calls _destroyStreamWithReason
        (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): call renamed methods
        (-[WebBaseNetscapePluginStream _deliverData]): prepended underscore, call cancelLoadAndDestroyStreamWithError if NPP_Write returns a negative number
        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView destroyStream:reason:]): call cancelLoadAndDestroyStreamWithError
        * Plugins.subproj/WebNetscapePluginRepresentation.m:
        (-[WebNetscapePluginRepresentation receivedError:withDataSource:]): call destroyStreamWithError
        (-[WebNetscapePluginRepresentation cancelLoadWithError:]): new, override method, tell the data source to stop loading
        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream cancelLoadWithError:]): new, override method, tell the loader to stop
        (-[WebNetscapePluginStream stop]): call cancelLoadAndDestroyStreamWithError
        (-[WebNetscapePluginConnectionDelegate isDone]): new
        (-[WebNetscapePluginConnectionDelegate didReceiveResponse:]): call cancelLoadAndDestroyStreamWithError
        (-[WebNetscapePluginConnectionDelegate didFailWithError:]): call destroyStreamWithError

2004-12-01  Kevin Decker  <kdecker@apple.com>

        Reviewed by Harrison.

	Fixed: <rdar://problem/3228878> potential performance problem in finding in large framesets

	Got rid of O(N^2) conditions in _nextSibling and _previousSibling of where we were looking up self in the parent array of frames.

        * WebView.subproj/WebFrame.h: Added two new pointers, one for the previous kid and one for the next kid
        * WebView.subproj/WebFrame.m: 
        (-[WebFrame _addChild:]): Updates the previous frame and the next frame after this child
        (-[WebFrame _removeChild:]): ditto
        (-[WebFrame _nextSibling]): just return the pointer now
        (-[WebFrame _previousSibling]): ditto

2004-11-30  Chris Blumenberg  <cblu@apple.com>

	Fixed:
	<rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
	<rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)

        Reviewed by darin.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): renamed to pass all data for the resource, moved delegate code to new method
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): call renamed method
        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (-[WebSubresourceClient didFinishLoading]): call renamed method
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _opened]): call _sendResourceLoadDelegateMessagesForURL:response:length:, not objectLoadedFromCacheWithURL:response:data:
        (-[WebFrame _internalLoadDelegate]):
        (-[WebFrame _sendResourceLoadDelegateMessagesForURL:response:length:]): moved from objectLoadedFromCacheWithURL:response:data:
        * WebView.subproj/WebFrameInternal.h:

2004-11-29  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - worked around bug in Panther where NSScroller calls _destinationFloatValueForScroller: on superview
          without first checking if it's implemented

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _destinationFloatValueForScroller:]):
        Implemented. Calls floatValue on the scroller.

        * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.

2004-11-23  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3890944> disable icon database for Dashboard

        Reviewed by kevin.

        * Misc.subproj/WebIconDatabase.h:
        * Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase init]): don't create dictionaries if disabled
        (-[WebIconDatabase iconForURL:withSize:cache:]): return default icon if disabled
        (-[WebIconDatabase iconURLForURL:]): return nil if disabled
        (-[WebIconDatabase retainIconForURL:]): return if disabled
        (-[WebIconDatabase releaseIconForURL:]): ditto
        (-[WebIconDatabase delayDatabaseCleanup]): ditto
        (-[WebIconDatabase allowDatabaseCleanup]): ditto
        (-[WebIconDatabase _isEnabled]): new
        (-[WebIconDatabase _setIcon:forIconURL:]): assert if called when disabled, moved to own category implementation
        (-[WebIconDatabase _setHaveNoIconForIconURL:]): ditto
        (-[WebIconDatabase _setIconURL:forURL:]): ditto
        (-[WebIconDatabase _createFileDatabase]): tweak
        (-[WebIconDatabase _applicationWillTerminate:]): moved out of public code
        * Misc.subproj/WebIconDatabasePrivate.h:
        * Misc.subproj/WebIconLoader.m:
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _updateIconDatabaseWithURL:]): assert if called when icon DB is disabled
        (-[WebDataSource _loadIcon]): don't load icon if icon DB is disabled

2004-11-22  David Hyatt  <hyatt@apple.com>

	Make sure the WebCore cache grows at 512mb and at 1024mb exactly.
	
        Reviewed by mjs

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge getObjectCacheSize]):

2004-11-22  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3891737> WebPreferences do not work if they are set before set on the WebView

	John found this problem and suggested the fix.

        Reviewed by John Louch.

        * WebView.subproj/WebView.m:
        (-[WebView setPreferences:]):

2004-11-22  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Harrison

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge canPaste]): Call WebView _canPaste.
        * WebView.subproj/WebView.m:
        (-[WebView _canPaste]): Try to forward to document view's implementation. Only WebHTMLView
        answers right now. Returns NO otherwise.
        * WebView.subproj/WebViewInternal.h: Add _canPaste method to WebView.

2004-11-22  Maciej Stachowiak  <mjs@apple.com>

	Back  out the window closing fix, it seems to be causing crashes.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _detachFromParent]):

2004-11-20  Maciej Stachowiak  <mjs@apple.com>
 
        Reviewed by John.
 
 	<rdar://problem/3710101> _web_userVisibleString makes URL autocomplete roughly 2x slower
         
 	* Misc.subproj/WebNSURLExtras.h:
        * Misc.subproj/WebNSURLExtras.m:
        (-[NSString _web_isUserVisibleURL]): New SPI to check if a URL
 	string is already in user-visible form (i.e. converting it to an
 	NSURL and then back via _web_userVisibleString would not change
 	anything).
 
2004-11-19  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John.

	<rdar://problem/3190977> closing window with many tabs in it can be quite slow
        
	* WebView.subproj/WebFrame.m:
        (-[WebFrame _detachFromParent]): autorelease bridge instead of releasing it,
	to make window and tab closing more responsive - this way the deallocation happens
	after the windoow or tab appears to close.

=== Safari-172 ===

2004-11-19  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3880387> REGRESSION: www.shockplay.com site gives "Unexpected server response"

        Reviewed by mjs.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[NSData _web_locationAfterFirstBlankLine]): support both formats ("\r\n\n" and "\r\n\r\n") for separating header data from body data because Shockwave still sends the prior format

2004-11-19  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Harrison

        Fix for this bug:

        <rdar://problem/3655241> setTypingStyle: does not set the real typing style, and typingStyle does not return it

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge respondToChangedContents]): No longer call through to WebKit to set the typing style. The call
        was part of the misguided use of the setTypingStyle: and typingStyle as a cache of what was stored on
        the WebCore side.
        (-[WebBridge respondToChangedSelection]): Ditto.
        * WebView.subproj/WebView.m:
        (-[WebViewPrivate dealloc]): Object no longer has typingStyle ivar.
        (-[WebView setTypingStyle:]): Call over the bridge to set typing style.
        (-[WebView typingStyle]): Call over the bridge to retrieve typing style.
        * WebView.subproj/WebViewInternal.h: Object no longer has typingStyle ivar.

2004-11-18  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.
        
        - fixed <rdar://problem/3886042> should save history file as binary XML so serialization, 
        parsing, reading and writing is faster

        * History.subproj/WebHistory.m:
        (-[WebHistoryPrivate _saveHistoryGuts:URL:error:]):
        convert dictionary to binary data before saving

2004-11-18  Chris Blumenberg  <cblu@apple.com>

        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation currentForm]): removed stray ";"

2004-11-18  Chris Blumenberg  <cblu@apple.com>

	Fixed development build failure.

        * Misc.subproj/WebIconDatabase.m:
        (+[WebIconDatabase sharedIconDatabase]): call LOG not Log

2004-11-18  Chris Blumenberg  <cblu@apple.com>

	<rdar://problem/3885708> save memory in icon DB by not using NSSets when holding 1 object
	
        Reviewed by sullivan.

        * Misc.subproj/WebIconDatabase.m:
        (+[WebIconDatabase sharedIconDatabase]): added timing code
        (-[WebIconDatabase _clearDictionaries]): new
        (-[WebIconDatabase _loadIconDictionaries]): call _clearDictionaries in 2 places before we bail, use _web_setObjectUsingSetIfNecessary:forKey: when adding site URLs to the iconURLToURLs dictionary
        (-[WebIconDatabase _updateFileDatabase]): fixed comment
        (-[WebIconDatabase _setIconURL:forURL:]): use _web_setObjectUsingSetIfNecessary:forKey: when adding site URLs to the iconURLToURLs dictionary
        (-[WebIconDatabase _releaseIconForIconURLString:]): handle NSString objects retured from iconURLToURLs
        (-[NSMutableDictionary _web_setObjectUsingSetIfNecessary:forKey:]): new, puts a set on the dictionary when there are 2 or more object for s key

2004-11-17  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3885073> REGRESSION: Tab images at top of news.com.com replicated and squished

	Correctly account for scaled image size and clipping.

        Reviewed by Maciej.

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):

2004-11-17  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Richard.

	<rdar://problem/3885076> Don't make IDN calls for all-ascii URLs to save about 3 pages
	at Safari startup.
	
        * Misc.subproj/WebNSURLExtras.m:
        (mapHostNames): If encoding and not decoding, then bail early if the URL is all ascii.
        (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Remove earlier special-case
	check for localhost, no longer needed.

2004-11-17  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3863601> Legacy font cache code in [WebTextRendererFactory createSharedFactory] may be unnecesary

	and added call to SPI for

	<rdar://problem/3884448> WebKit should turn on CG local font cache

	currently disabled until a Tiger build shows up with the SPI.

        Reviewed by David Harrison.

        * WebCoreSupport.subproj/WebTextRendererFactory.m:
        (+[WebTextRendererFactory createSharedFactory]):

2004-11-17  Richard Williamson   <rjw@apple.com>

        Fixed <rdar://problem/3882212> REGRESSION: Images clipped instead of scaled
        Fixed <rdar://problem/3884088> Crash terminating image load

        Also added code to turn off color correction for images created
        via CGImageSources.  This code is currently disabled because CG  
        can't change the color space of images loaded progressively.
        Further, according to Dave Hayward, CG will no longer attempt
        to color correct images that don't have embedded profiles as of
        Tiger 8A306.

        Reviewed by Chris.

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _commonTermination]):
        (-[WebImageData dealloc]):
        (-[WebImageData _invalidateImageProperties]):
        (-[WebImageData imageAtIndex:]):
        (-[WebImageData incrementalLoadWithBytes:length:complete:]):
        (-[WebImageData propertiesAtIndex:]):

2004-11-16  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3882034> REGRESSION: Context menu incorrect for PDF content

        Reviewed by darin.

        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView hitTest:]): return self if the current event is a context menu event
        (-[WebPDFView menuForEvent:]): use the PDFView subview

2004-11-15  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3880410> save 5 dirty pages by soft-linking against PDFKit framework

        Reviewed by john.

        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebPDFRepresentation.m:
        (+[WebPDFRepresentation PDFDocumentClass]): new
        (-[WebPDFRepresentation finishedLoadingWithDataSource:]): use PDFDocumentClass
        * WebView.subproj/WebPDFView.h:
        * WebView.subproj/WebPDFView.m:
        (+[WebPDFView PDFKitBundle]): new
        (+[WebPDFView PDFViewClass]): new
        (-[WebPDFView initWithFrame:]): create a PDFView subview
        (-[WebPDFView dealloc]): release the PDFView subview
        (-[WebPDFView PDFSubview]): new

2004-11-15  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3879891> WebKit should link against PDFKit instead of Quartz

        Reviewed by darin.

        * WebKit.pbproj/project.pbxproj: link against PDFKit if it is present instead of Quartz.framework

2004-11-15  Richard Williamson   <rjw@apple.com>

	Fixed missing retain of image property data.

        Reviewed by John.

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData dealloc]):
        (-[WebImageData _invalidateImages]):
        (-[WebImageData imageAtIndex:]):
        (-[WebImageData propertiesAtIndex:]):
        (-[WebImageData _frameDuration]):

2004-11-15  Richard Williamson   <rjw@apple.com>

	Cache image properties and frame durations.
	Create NSImage and TIFF representations from CGImage, lazily, as needed for
	dragging and element info dictionary.

        Reviewed by John.

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData dealloc]):
        (-[WebImageData size]):
        (-[WebImageData propertiesAtIndex:]):
        (-[WebImageData _frameDurationAt:]):
        (-[WebImageData _frameDuration]):
        * WebCoreSupport.subproj/WebImageRenderer.h:
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer dealloc]):
        (-[WebImageRenderer TIFFRepresentation]):
        (-[WebImageRenderer image]):

2004-11-14  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John.

	<rdar://problem/3879226> WebKit needlessly uses extra memory to store icon refcounts as NSNumbers	

	* Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase init]):
        (-[WebIconDatabase _setIconURL:forURL:]):
        (-[WebIconDatabase _retainIconForIconURLString:]):
        (-[WebIconDatabase _releaseIconForIconURLString:]):
        (-[WebIconDatabase _retainFutureIconForURL:]):
        (-[WebIconDatabase _releaseFutureIconForURL:]):
        * Misc.subproj/WebIconDatabasePrivate.h:

2004-11-15  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.
        
        - fixed <rdar://problem/3879513> leak in [WebArchive _propertyListRepresentation] copying HTML to pasteboard

        * WebView.subproj/WebArchive.m:
        (-[WebArchive _propertyListRepresentation]):
        the array holding the subresources was not released after use, oops!

2004-11-12  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3874577> Opening restricted (parental) content in new window/tab reveals Safari's "Resources" folder
	
        Reviewed by john.

        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate openFrameInNewWindow:]): use the unreachable URL if there is one

=== Safari-171 ===

2004-11-11  Richard Williamson   <rjw@apple.com>

        Report actual size (not partial size) but use partial size
        when drawing.

        Reviewed by Maciej.

        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData size]):

2004-11-11  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - added _wasFirstResponderAtMouseDownTime method to bridge so we can fix
          <rdar://problem/3846152> REGRESSION (125-166): can't drag text out of <input type=text> fields
          with a subsequent change to WebCore.

        * WebCoreSupport.subproj/WebBridge.m:
        (wasFirstResponderAtMouseDownTime:): Added. Calls _wasFirstResponderAtMouseDownTime
        on the WebHTMLView.
        (_getPreSmartSet): Move global inside the function, add (void) for cleanliness.
        (_getPostSmartSet): Ditto.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLViewPrivate dealloc]): Release firstResponderAtMouseDownTime.
        (-[WebHTMLView _setMouseDownEvent:]): Early exit if event is not changing.
        Set firstResponderAtMouseDownTime to the first responder.
        (-[WebHTMLView mouseDown:]): Release firstResponderAtMouseDownTime after handling
        the mouseDown event.
        (-[WebHTMLView _wasFirstResponderAtMouseDownTime:]): Added. Uses the
        firstResponderAtMouseDownTime field.
        * WebView.subproj/WebHTMLViewInternal.h: Added firstResponderAtMouseDownTime field
        and _wasFirstResponderAtMouseDownTime method.

        * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.

2004-11-11  Richard Williamson   <rjw@apple.com>

        Reviewed by Chris.

	Work-around to minimize impact of 3876764.  Cache frame durations
	after first call.  So we'll still leak 1K for each animated
	image, but that's better than 1K each time the frame is drawn!
        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData _frameDuration]):

	Simplified animation cleanup code.  Fixed leak due to 
	incorrect key passed to CFDictionaryRemoveValue.
	
        (+[WebImageData stopAnimationsInView:]):
        (-[WebImageData addAnimatingRenderer:inView:]):
        (-[WebImageData removeAnimatingRenderer:]):
        (-[WebImageData _stopAnimation]):

2004-11-11  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed <rdar://problem/3605906> Flash scrolled off the top and bottom cause CPU spin when combined with something dirty on the visible part of the page

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView drawRect:]):
        Work around AppKit bug by using rectangles from getRectsBeingDrawn:count: instead of
        using the passed-in rectangle.

2004-11-11  Richard Williamson   <rjw@apple.com>

        Work-arounds to make new ImageIO code work correctly.  Still
        disabled for now.  Requires at least Tiger 300.  Testing does
        show a 3% improvement in PLT tests!  That's huge!

        Reviewed by John.

        * WebCoreSupport.subproj/WebImageData.m:
        (-[WebImageData imageAtIndex:]):
        (-[WebImageData incrementalLoadWithBytes:length:complete:]):
        (-[WebImageData isNull]):

2004-11-10  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3396872> ICONS: icon DB inconsistencies can cause slowness during startup, idle and quit

        Reviewed by john.

        * Misc.subproj/WebFileDatabase.m:
        (-[WebFileDatabase objectForKey:]): added logging code
        * Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase init]): use alloc, init rather than autorelease, retain
        (-[WebIconDatabase _loadIconDictionaries]): use 1 object for mapping icon URLs to site URLs and vice versa rather than 3. This avoids inconsistencies and is faster.
        (-[WebIconDatabase _updateFileDatabase]): write 1 object out

2004-11-09  David Hyatt  <hyatt@apple.com>

	Fix for 3873234, Safari UI is unresponsive when parsing multiple HTML docs and 3873233, Safari hangs when
	loading large local files.
	
        Reviewed by mjs

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge tokenizerProcessedData]):
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _receivedMainResourceError:complete:]):
        (-[WebDataSource isLoading]):

2004-11-09  Richard Williamson   <rjw@apple.com>

        Fixed <rdar://problem/3870964> 8A300: Safari not recognizing a PDF link (it displays raw data)

	Add "text/pdf" as an acceptable PDF MIME type.

        Reviewed by Chris.

        * WebView.subproj/WebDataSource.m:
        (+[WebDataSource _repTypesAllowImageTypeOmission:]):
        * WebView.subproj/WebFrameView.m:
        (+[WebFrameView _viewTypesAllowImageTypeOmission:]):

2004-11-08  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3783904> Return key behavior is confusingly different between popup menus and autofill menus

        Reviewed by john.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge control:textView:shouldHandleEvent:]): new
        * WebView.subproj/WebFormDelegate.h:
        * WebView.subproj/WebFormDelegate.m:
        (-[WebFormDelegate control:textView:shouldHandleEvent:inFrame:]): new

2004-11-05  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3854218> Safari is sometimes really slow because of increased null events to plug-ins

        * Plugins.subproj/WebBaseNetscapePluginView.m: reverted null event interval to 0.02

2004-11-05  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3838413> REGRESSION (Mail): "Smart" word paste adds spaces before/after special characters

        Reviewed by rjw.

        * WebCoreSupport.subproj/WebBridge.m:
        (_getPreSmartSet): copied from AppKit
        (_getPostSmartSet): ditto
        (-[WebBridge isCharacterSmartReplaceExempt:isPreviousCharacter:]): new

2004-11-05  Richard Williamson   <rjw@apple.com>

        Fixed <rdar://problem/3810702> _checkNavigationPolicyForRequest:dataSource:formState:andCall:withSelector: ASSERTS when reentered from Xcode's man page viewer

        Reviewed by Maciej (a long time ago).

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _loadDataSource:withLoadType:formState:]):

        Fixed <rdar://problem/3845307> WebKit needs to export _HIWebViewRegisterClass so HIWebViews can work in Carbon nib files

        As suggested in the bug, the fix is to actually call 
        HIWebViewRegisterClass in WebKitInitForCarbon, rather than
        exporting the symbol.

        Reviewed by Chris.

        * Carbon.subproj/CarbonUtils.m:
        (WebInitForCarbon):
        * Carbon.subproj/HIWebView.m:
        * WebKit.pbproj/project.pbxproj:

=== Safari-170 ===

2004-11-05  Darin Adler  <darin@apple.com>

        Reviewed by Chris.

        - fixed <rdar://problem/3857151> Assertion failure in "trackingRectOwner" while moving mouse over Slashdot.org page

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Changed to no longer call
        addTrackingRect to do the work for consistency with the new method below. Not too much copied and pasted code.
        (-[WebHTMLView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Added an override
        for this new method in Tiger. No harm in implementing it on Panther, although it won't be called.
        (-[WebHTMLView _removeTrackingRects:count:]): Ditto.

2004-11-04  David Hyatt  <hyatt@apple.com>

	Make sure the dominant line direction is properly set for RTL runs so that spaces will reverse.

	Change xHeight to measure the ascent of the x glyph, since the xHeight metrics appear to be
	totally bogus in both CG and AppKit.
	
        Reviewed by darin

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer xHeight]):
        (-[WebTextRenderer _createATSUTextLayoutForRun:style:]):
        (-[WebTextRenderer _trapezoidForRun:style:atPoint:]):
        (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):
        (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
        (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):

2004-11-02  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Dave Hyatt (when I originally coded it).

        Redid WebKit part of fix for:

        <rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
       
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView firstRectForCharacterRange:]): Call the appropriate new bridge method,
        and translate to screen coordinates.

2004-11-02  John Sullivan  <sullivan@apple.com>

        Reviewed by Hyatt.
        
        - [NSFont menuFontOfSize:], called from WebStringTruncator, was taking > 9% of the time creating a 
        very large bookmarks menu, so I cached this one NSFont object.

        * Misc.subproj/WebStringTruncator.m:
        (defaultMenuFont):
        new function, caches the font used when no font is specified
        (+[WebStringTruncator centerTruncateString:toWidth:]):
        call new function

2004-11-02  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

        WebCore now implements a command to insert a block in response to typing a return key, and
        some names were improved in the course of this work.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView insertNewline:]): Now calls insertLineBreak on bridge object.
        (-[WebHTMLView insertLineBreak:]): New method.
        (-[WebHTMLView insertParagraphSeparator:]): Now implemented.
        * WebView.subproj/WebView.m: 

=== Safari-169 ===

2004-10-29  Chris Blumenberg  <cblu@apple.com>

        * WebKit.exp: added _WebPlugInModeKey, forgot to add it earlier

2004-10-29  Darin Adler  <darin@apple.com>

        - fixed <rdar://problem/3855573> Remove reference to "WebScriptMethods" from WebScriptObject.h comments

        * Plugins.subproj/WebScriptObject.h: Removed unneeded #ifdef protection for multiple includes (since
        this is an Objective-C header and we use #import for those). Fixed comments as requested in the bug
        report to match the contents of the file.

2004-10-27  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Chris

        Added new SPI for Mail so it can get the behavior it needs when the user hits
        the return key with the selection in quoted content.

        * WebView.subproj/WebView.m
        * WebView.subproj/WebViewPrivate.h

2004-10-26  Chris Blumenberg  <cblu@apple.com>

	Fixed exception that Darin encountered in Mail.

        Reviewed by darin.

        * Plugins.subproj/WebPluginController.m:
        (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): if the plug-in returns a nil view, return nil

2004-10-25  Chris Blumenberg  <cblu@apple.com>

	Darin made an internal notification have the Web prefix.

        Reviewed by me.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView addWindowObservers]):
        (-[WebBaseNetscapePluginView removeWindowObservers]):
        (ConsoleConnectionChangeNotifyProc):

2004-10-25  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris.
        
        - Cleanup from fix for <rdar://problem/3851676> bookmarks should not hold onto a WebHistoryItem object;
          eliminated notificationsSuppressed mechanism, which was used only by WebBookmark

        * History.subproj/WebHistoryItem.m:
        removed notificationsSuppressed ivar from private data object
        (-[WebHistoryItem setAlternateTitle:]):
        remove notificationsSuppressed guard
        (-[WebHistoryItem setURLString:]):
        ditto
        (-[WebHistoryItem setOriginalURLString:]):
        ditto
        (-[WebHistoryItem setTitle:]):
        ditto
        (-[WebHistoryItem _setLastVisitedTimeInterval:]):
        ditto
        (-[WebHistoryItem setNotificationsSuppressed:]):
        removed this method
        (-[WebHistoryItem notificationsSuppressed]):
        ditto
        
        * History.subproj/WebHistoryItemPrivate.h:
        removed notificationsSuppressed and setNotificationsSuppressed

2004-10-22  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3851491> installedPlugins being called for a page without plugins

        Reviewed by mjs.

        * WebView.subproj/WebFrameView.m:
        (+[WebFrameView _canShowMIMETypeAsHTML:]): call _viewTypesAllowImageTypeOmission instead of using ivar since the ivar is nil until _viewTypesAllowImageTypeOmission is called, this was causing [WebView canShowMIMEType:] to check plug-ins 

=== Safari-168 ===

2004-10-22  Ken Kocienda  <kocienda@apple.com>

        Reviewed by me

        * WebKit.pbproj/project.pbxproj: Add GCC_ENABLE_OBJC_GC and GCC_FAST_OBJC_DISPATCH flags.

2004-10-21  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3847994> REGRESSION: reproducible exception in WebImageRenderer releasePatternColor; afterwards get crash or no more browsing

        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebInternalImage createRendererIfNeeded]): Replaced retainOrCopyIfNeeded with this.
        This returns nil if a copied renderer isn't needed, and returns a new renderer if a copy is.
        The old version was sometimes returning a WebInternalImage and other times a WebImageRenderer.
        (-[WebImageRenderer retainOrCopyIfNeeded]): Returns the result of createRendererIfNeeded
        or retains self and returns self.

2004-10-20  Darin Adler  <darin@apple.com>

        Reviewed by Dave.

        - fixed <rdar://problem/3470715> Pattern cache can get huge with use of css background-image in Safari

        * WebCoreSupport.subproj/WebImageRenderer.h: Change WebImageRenderer to be a subclass of NSObject
        rather than NSImage and contain a pointer to a WebInternalImage.
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebInternalImage releasePatternColor]): Added. Releases patternColor.
        (-[WebImageRenderer initWithMIMEType:]): Added. Makes WebInternalImage and then self.
        (-[WebImageRenderer initWithData:MIMEType:]): Ditto.
        (-[WebImageRenderer initWithContentsOfFile:]): Ditto.
        (-[WebImageRenderer dealloc]): Added. Calls releasePatternColor and then releases WebInternalImage.
        (-[WebImageRenderer image]): Added. Returns pointer to image.
        (-[WebImageRenderer MIMEType]): Added. Calls through to image.
        (-[WebImageRenderer TIFFRepresentation]): Ditto.
        (-[WebImageRenderer frameCount]): Ditto.
        (-[WebImageRenderer setOriginalData:]): Added. Sets image data pointer.
        (+[WebImageRenderer stopAnimationsInView:]): Added. Calls through to image.
        (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]): Ditto.
        (-[WebImageRenderer size]): Ditto.
        (-[WebImageRenderer resize:]): Ditto.
        (-[WebImageRenderer drawImageInRect:fromRect:]): Ditto.
        (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]): Ditto.
        (-[WebImageRenderer stopAnimation]): Ditto.
        (-[WebImageRenderer tileInRect:fromPoint:context:]): Ditto.
        (-[WebImageRenderer isNull]): Ditto.
        (-[WebImageRenderer retainOrCopyIfNeeded]): Ditto.
        (-[WebImageRenderer increaseUseCount]): Ditto.
        (-[WebImageRenderer decreaseUseCount]): Ditto.
        (-[WebImageRenderer flushRasterCache]): Ditto.
        (-[WebImageRenderer imageRef]): Ditto.
        (-[WebImageRenderer copyWithZone:]): Ditto.

        * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]):
        Update for slight changes to WebImageRenderer API.
        * WebCoreSupport.subproj/WebImageRendererFactory.m:
        (-[WebImageRendererFactory imageRendererWithMIMEType:]): Ditto.
        (-[WebImageRendererFactory imageRendererWithData:MIMEType:]): Ditto.
        (-[WebImageRendererFactory imageRendererWithSize:]): Ditto.
        (-[WebImageRendererFactory imageRendererWithName:]): Ditto.
        * WebView.subproj/WebImageView.m: (-[WebImageView image]): Ditto.

2004-10-20  Chris Blumenberg  <cblu@apple.com>
	
	Fixed: <rdar://problem/3846943> REGRESSION: JNLP files are rendered instead of downloaded

        Reviewed by john.

        * Plugins.subproj/WebBasePluginPackage.h:
        * Plugins.subproj/WebBasePluginPackage.m:
        (-[WebBasePluginPackage isJavaPlugIn]): new
        * Plugins.subproj/WebPluginDatabase.m:
        (-[WebPluginDatabase refresh]): don't register the Java plug-in for a document view since Java file should be downloaded when not embedded.

2004-10-20  Chris Blumenberg  <cblu@apple.com>

	Fixed:
	<rdar://problem/3842030> WebKit needs to pass the mode (NP_FULL, NP_EMBED, etc) when calling plugInViewWithArguments
	<rdar://problem/3792852> Safari is loading the new QuickTime Cocoa plugin on Panther

        Reviewed by darin.

        * Plugins.subproj/WebPluginDocumentView.m:
        (-[WebPluginDocumentView setDataSource:]): pass "full" as the mode
        * Plugins.subproj/WebPluginPackage.m:
        (-[WebPluginPackage initWithPath:]): load plug-in with the "webplugin" extension
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): pass "embed" as the mode
        * WebKit.pbproj/project.pbxproj:

2004-10-19  Vicki Murley <vicki@apple.com>

	- bump WebKit version to 167.1, so that we can do a quick dot submission for <rdar://problem/3843951> 

        * WebKit.pbproj/project.pbxproj:

2004-10-19  Darin Adler  <darin@apple.com>

        Change suggested by Maciej during code review.

        * WebCoreSupport.subproj/WebTextRenderer.m: Changed rounding hack table to be const so it can be in shared instead
        of private memory, and doesn't require an initialization function.
        (+[WebTextRenderer initialize]): Removed initialization.

2004-10-19  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed <rdar://problem/3838934> Safari stops loading pages after rangeOfCharacterFromSet nil argument exception
        - fixed <rdar://problem/3843951> REGRESSION (166-167): Safari crashes in widthForNextCharacter (belkin.com, at startup for others)
        - fixed <rdar://problem/3841049> REGRESSION (109-110): control characters render as square boxes

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (isSpace): Merged in isAlternateSpace, never used.
        (setupRoundingHackCharacterTable): Fixed size of table, was 1 entry too short. Got rid of unneeded call to bzero,
        since globals start out zeroed automatically.
        (isRoundingHackCharacter): Fixed backwards logic causing the crash in widthForNextCharacter.
        Also removed explicit compare with 1; check for non-zero is just fine.
        (fontContainsString): Change code so we'll just skip the font if the covered character set returns nil rather than
        throwing an exception like the old version did. This should make bug 3838934 go away, although perhaps covering up
        the underlying problem.
        (-[WebTextRenderer _convertCharacters:length:toGlyphs:]): Removed unused skipControlCharacters: parameter and also
        the unnecessary code to copy the buffer to change newline characters and non-break spaces to spaces.
        (-[WebTextRenderer _convertUnicodeCharacters:length:toGlyphs:]): Removed unused local.
        (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]): Added code to set up special cases for control characters,
        \n and non-break spaces.
        (-[WebTextRenderer _createATSUTextLayoutForRun:]): Added comment about the cases this code does not handle that
        are handled by the CG case.
        (widthForNextCharacter): Call isSpace instead of checking specifically for the space character here. The old code
        would not handle cases with '\n' coming across from WebCore properly.

2004-10-18  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3840916> GC: -[WebNetscapePluginPackage initWithPath:] leaks an NSURL

        Reviewed by kevin.

        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage initWithPath:]): use executablePath on NSBundle instead of CFBundleCopyExecutableURL

2004-10-18  Chris Blumenberg  <cblu@apple.com>

        * DOM.subproj/DOMPrivate.h: change to copied header that was never committed

2004-10-18  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.
        
        - fixed <rdar://problem/3810183> Make WebHTMLView respect return value of webView:doCommandBySelector:

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView doCommandBySelector:]):
        only do default action if delegate returns NO; this works with Mail as of Tiger 8A275.

=== Safari-167 ===

2004-10-14  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Final fix for these bugs:
        
        <rdar://problem/3806306> HTML editing puts spaces at start of line
        <rdar://problem/3814252> HTML editing groups space with word causing wrapping

        This change sets some new CSS properties that have been added to WebCore to 
        enable whitespace-handling and line-breaking features that make WebView work
        more like a text editor.

        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation finishedLoadingWithDataSource:]): Turn on special editing
        CSS properties when loading an HTML document into a WebView that is editable.
        * WebView.subproj/WebView.m:
        (-[WebView setEditable:]): Add and remove special editing CSS properties in current
        document being displayed.

2004-10-14  Richard Williamson   <rjw@apple.com>

        Fixed <rdar://problem/3823026> making isRoundingHackCharacter use -O3 and an 8-bit lookup-table will speed "XBS" test up by 3% (actually < 1%)

        Careful testing shows a small performance gain on very large text files.  
        I saw large variations in timings, but taking the lowest PLT timing 
        with and without this change showed a 0.9% gain.  Note the cvs-base showed
        no improvement.  The improvement was for the large page attached to the
        bug.

        Reviewed by Ken.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (setupRoundingHackCharacterTable):
        (isRoundingHackCharacter):
        (+[WebTextRenderer initialize]):

2004-10-14  Ken Kocienda  <kocienda@apple.com>

        Reviewed by me

        Fix build breakage. These three functions need to return the values from their
        calls to WebCGColorSpaceCreateXXX.

        * WebCoreSupport.subproj/WebGraphicsBridge.m:
        (-[WebGraphicsBridge createRGBColorSpace])
        (-[WebGraphicsBridge createGrayColorSpace])
        (-[WebGraphicsBridge createCMYKColorSpace])

2004-10-13  Richard Williamson   <rjw@apple.com>

	Addressed concerns in <rdar://problem/3803117> RESP: High complexity in icu uidna_IDNToASCII called by [NSString(WebNSURLExtras) _web_mapHostNameWithRange:encode:makeString:]

	In practice I saw NO improvement in performance.  Although,
	special-case tests could possibly show improvement.  Anyway,
	the changes don't hurt performance.

        Reviewed by Maciej.

        * Misc.subproj/WebNSURLExtras.m:
        (-[NSString _web_mapHostNameWithRange:encode:makeString:]):

2004-10-13  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Ken.

	<rdar://problem/3824626> Change to do colormatching for DeviceRGB colorspace causes ~11% Safari slowdown
        
	- I fixed this by turning off all colormatching for WebKit
	content. We might turn it back on later. For now, it's possible to
	turn it on temporarily by defining COLORMATCH_EVERYTHING.
	
	* WebCoreSupport.subproj/WebGraphicsBridge.m:
        (-[WebGraphicsBridge setFocusRingStyle:radius:color:]):
        (-[WebGraphicsBridge additionalPatternPhase]):
        (-[WebGraphicsBridge createRGBColorSpace]):
        (-[WebGraphicsBridge createGrayColorSpace]):
        (-[WebGraphicsBridge createCMYKColorSpace]):
        * WebCoreSupport.subproj/WebImageData.m:
        * WebCoreSupport.subproj/WebImageRenderer.h:
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer _adjustSizeToPixelDimensions]):
        (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
        (-[WebImageRenderer _adjustColorSpace]):
        (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
        (-[WebImageRenderer tileInRect:fromPoint:context:]):
        (_createImageRef):
        (WebCGColorSpaceCreateRGB):
        (WebCGColorSpaceCreateGray):
        (WebCGColorSpaceCreateCMYK):
        * WebKitPrefix.h:

2004-10-13  Richard Williamson   <rjw@apple.com>

	Don't fill background with transparency unless debug flag
	is enabled.

        Reviewed by Hyatt.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView drawRect:]):

2004-10-12  Richard Williamson   <rjw@apple.com>

        Fixed <rdar://problem/3829705> Need to remove filling w/ transparency when not drawing backgroundy.

        Reviewed by Ken.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _transparentBackground]):
        (-[WebHTMLView _setTransparentBackground:]):
        (-[WebHTMLView drawRect:]):
        * WebView.subproj/WebHTMLViewInternal.h:
        * WebView.subproj/WebHTMLViewPrivate.h:

2004-10-11  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3802039> 8A259: Can't use Grab services to grab selection from screen

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (+[WebHTMLView initialize]): register service "return types" which are types that can be inserted into a WebView
        (-[WebHTMLView writeSelectionToPasteboard:types:]): service protocol method, be sure to only write specified types
        (-[WebHTMLView readSelectionFromPasteboard:]): new, service protocol method, insert types
        (-[WebHTMLView validRequestorForSendType:returnType:]): moved, handle return types

2004-10-11  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3834130> nil-object-in-dictionary exception seen in -[WebView _elementAtWindowPoint:]

        * WebView.subproj/WebView.m: (-[WebView _elementAtWindowPoint:]): Added a check for nil frame.

2004-10-11  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3834166> <input type=file> sends onchange even when the same file is chosen twice

        * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton chooseFilename:]):
        Do nothing if filename is the same as before.

2004-10-11  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        * WebView.subproj/WebHTMLView.m:
        (-[WebTextCompleteController doCompletion]): bridge call to get caret rect at a node
        now takes an affinity: caretRectAtNode:offset:affinity:.

2004-10-10  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Chris

        Fix for this bug:
        
        <rdar://problem/3814236> REGRESSION (Mail): Can't set the color of text in Mail compose window using drag/drag from color panel

        * WebView.subproj/WebHTMLView.m:
        (+[WebHTMLView _insertablePasteboardTypes]): Add NSColorPboardType to list.
        (-[WebHTMLView _isNSColorDrag:]): New helper. Determines if drag is an NSColor drag.
        (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): Add a case for NSColor drags,
        else do what we did before.
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Add a case for NSColor drags, which creates
        a CSS style containing color info and calls the bridge to apply the style. Otherwise, do what we did before.

2004-10-11  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - fixed <rdar://problem/3833848> REGRESSION (133-134): each keydown event is getting sent multiple times

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView performKeyEquivalent:]):
        Don't send an event through WebCore if it has already been through once.

2004-10-10  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.
        
        - fixed <rdar://problem/3777253> Crash in redirect mechanism trying to display error page for bad scheme

        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
        add retain/autorelease to the request returned from call to super. In this case, the return value
        was being dealloc'ed before being returned.

2004-10-09  Chris Blumenberg  <cblu@apple.com>

	Fixed: 
	<rdar://problem/3625352> up and down arrow and page up/down keys don't work to scroll overflow:auto/scroll/overlay areas
	<rdar://problem/3397658> scroll wheel does not work to scroll overflow:auto/scroll/overlay areas (RSS)

        Reviewed by hyatt.

        * Plugins.subproj/WebBaseNetscapePluginStream.m:
        (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): fixed typo in comment
        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): ditto
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _bridge]): new
        (-[WebFrameView scrollToBeginningOfDocument:]): call the bridge to scroll, if that fails, scroll the document view
        (-[WebFrameView scrollToEndOfDocument:]): ditto
        (-[WebFrameView _pageVertically:]): ditto
        (-[WebFrameView _pageHorizontally:]): ditto
        (-[WebFrameView _scrollLineVertically:]): ditto
        (-[WebFrameView _scrollLineHorizontally:]): ditto
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView scrollWheel:]): call the bridge to scroll, if that fails, pass to next responder

=== Safari-166 ===

2004-10-05  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3827002> assertion failure in WebBaseNetscapePluginStream on abc.go.com

        Reviewed by rjw.

        * Plugins.subproj/WebBaseNetscapePluginStream.m:
        (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): avoid assertion failure in dealloc by temporarily setting isTerminated to YES in case we are released in this method
        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): ditto

2004-10-05  John Sullivan  <sullivan@apple.com>

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]):
        initialize "arguments" var to nil to satisfy compiler on deployment build.

2004-10-05  Richard Williamson   <rjw@apple.com>

        Fixed <rdar://problem/3825442> first click lost for Dashboard
	Allow dashboard to force acceptsFirstMouse:

        Reviewed by Chris.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView acceptsFirstMouse:]):
        * WebView.subproj/WebView.m:
        (-[WebView _dashboardBehavior:]):
        * WebView.subproj/WebViewInternal.h:
        * WebView.subproj/WebViewPrivate.h:

        * WebCoreSupport.subproj/WebImageRenderer.h:
        Comment change only

2004-10-05  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3760920> Need to record plugin view instances
	
        Reviewed by rjw.

        * Plugins.subproj/WebPluginController.h:
        * Plugins.subproj/WebPluginController.m:
        (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): new, creates plug-in view and adds it to global list
        (+[WebPluginController isPlugInView:]): new, checks if the plug-in view is in the global list
        (-[WebPluginController destroyAllPlugins]): remove the plug-in from the global list 
        * Plugins.subproj/WebPluginDocumentView.m:
        (-[WebPluginDocumentView setDataSource:]): call [WebPluginController plugInViewWithArguments:fromPluginPackage:]
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): ditto
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _reloadForPluginChanges]): call [WebPluginController isPlugInView:]
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView addSubview:]): ditto

2004-10-05  David Hyatt  <hyatt@apple.com>

	Fix to make selection more like NSTextView.  All gap painting is now done by WebCore, so WebKit no longer
	needs to try to fill gaps around text.
	
        Reviewed by kocienda

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
        (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):

2004-10-05  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3577255> custom file icon shows up upside down in <input type=file>

        * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton setFilename:]): Added a call to
        setFlipped that fixes the problem, even though I don't know why.

2004-10-04  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _selectionStartFontAttributesAsRTF]): Changed to call new bridge method
        named fontAttributesForSelectionStart, deleted the method this used to use, and renamed
        this to have the word "start" in it.
        (-[WebHTMLView copyFont:]): Updated for name change.

        * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.

2004-10-04  Chris Blumenberg  <cblu@apple.com>

        * WebView.subproj/WebFrameInternal.h: removed constant declarations that I committed by mistake

2004-10-04  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3798948> NPP_URLNotify is not called if plug-in calls NPN_*URLNotfy
	Fixed a number of FIXME's related to notifying plug-ins of loaded pages.

        Reviewed by rjw.

        * Plugins.subproj/WebBaseNetscapePluginStream.h: 
		- replaced URL ivar with requestURL and responseURL ivars since we need to pass both to plug-ins
        	- added sendNotification boolean. Relying on notifyData not being NULL was not information to know whether to call NPP_URLNotify or not.
		- added isTerminated boolean because determining whether or not stream.ndata is NULL is not enough to know if the stream has been cancelled.
	* Plugins.subproj/WebBaseNetscapePluginStream.m:
        (+[WebBaseNetscapePluginStream reasonForError:]): new, factored out from receivedError:
        (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): new
        (-[WebBaseNetscapePluginStream dealloc]): release new ivars
        (-[WebBaseNetscapePluginStream finalize]): added assert
        (-[WebBaseNetscapePluginStream setRequestURL:]): new
        (-[WebBaseNetscapePluginStream setResponseURL:]): new
        (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): renamed, use responseURL as it basically did before
        (-[WebBaseNetscapePluginStream startStreamWithResponse:]): call renamed method
        (-[WebBaseNetscapePluginStream destroyStream]): 
		- do nothing if terminated
		- call NPP_StreamAsFile and NPP_DestroyStream if stream.ndata is not NULL
		- call NPP_URLNotify if sendNotification is YES regardless of value of notifyData
        (-[WebBaseNetscapePluginStream receivedError:]): call reasonForError
        (-[WebBaseNetscapePluginStream deliverData]): use renamed ivar
        * Plugins.subproj/WebBaseNetscapePluginView.h:
		- added observingFrameLoadNotification boolean
		- renamed dictionary ivar to pendingFrameLoads which has WebFrame keys and WebPluginRequest values
        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView addFrameLoadObserver]): new
        (-[WebBaseNetscapePluginView removeFrameLoadObserver]): new
        (-[WebBaseNetscapePluginView stop]): call removeFrameLoadObserver
        (-[WebBaseNetscapePluginView initWithFrame:]): use renamed pendingFrameLoads ivar
        (-[WebBaseNetscapePluginView dealloc]): ditto
        (-[WebBaseNetscapePluginView requestWithURLCString:]): set referrer on the request just as IE does
        (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): 
		- call NPP_URLNotify depending of value of sendNotification
		- call new init method on WebBaseNetscapePluginStream rather then setting variables individually
        (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]): new, calls NPP_URLNotify at the right time with the right value
        (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithError:]): new, delegate method called from WebFrame
        (-[WebBaseNetscapePluginView loadPluginRequest:]): call addFrameLoadObserver
        (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]): take new sendNotification parameter and pass it
        (-[WebBaseNetscapePluginView getURLNotify:target:notifyData:]): pass YES for sendNotification
        (-[WebBaseNetscapePluginView getURL:target:]): pass NO for sendNotification
        (-[WebBaseNetscapePluginView _postURL:target:len:buf:file:notifyData:sendNotification:allowHeaders:]): take new sendNotification parameter and pass it
        (-[WebBaseNetscapePluginView postURLNotify:target:len:buf:file:notifyData:]): pass YES for sendNotification
        (-[WebBaseNetscapePluginView postURL:target:len:buf:file:]): pass NO for sendNotification
        (-[WebPluginRequest initWithRequest:frameName:notifyData:sendNotification:]): take new sendNotification parameter
        (-[WebPluginRequest sendNotification]): new
        * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
        * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
        (-[WebNetscapePluginEmbeddedView didStart]): set referrer on the request just as IE does
        * Plugins.subproj/WebNetscapePluginRepresentation.m:
        (-[WebNetscapePluginRepresentation receivedData:withDataSource:]): set the request URL on the stream
        * Plugins.subproj/WebNetscapePluginStream.h:
        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): take new sendNotification parameter and pass it
        (-[WebNetscapePluginStream dealloc]): use renamed ivar
        (-[WebNetscapePluginStream start]): ditto
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _setState:]): removed notification posting code. This was only used by WebBaseNetscapePluginView and it was the wrong notification to send.
        (-[WebFrame _checkLoadCompleteForThisFrame]): call internal load delegate to tell it that the load has finished
        (-[WebFrame _loadItem:withLoadType:]): ditto
        (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:formState:]): ditto
        (-[WebFrame _setInternalLoadDelegate:]): new
        (-[WebFrame _internalLoadDelegate]): new
        * WebView.subproj/WebFrameInternal.h:
        * WebView.subproj/WebFramePrivate.h:

2004-10-04  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3758113> REGRESSION: Macromedia ColdFusion page doesn't show main content

	After bumping up our plug-in version, Flash now sends 2 CRLF's between the headers and body of their POST request. Our code was not prepared for this.

        Reviewed by darin.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[NSData _web_locationAfterFirstBlankLine]): looks for 2 CRLF's, not for 2 LF's

2004-10-04  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - fixed a potential storage leak when we turn on CGImageRef image rendering

        * WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer dealloc]): Fix potential storage leak
        by adding [super dealloc], but leak was not real yet because the code is commented out.

        - make paste style work with color as part of fix to <rdar://problem/3814237> REGRESSION (Mail):
          Copy/paste style does not set color in Mail compose window

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _selectionFontAttributes]): Change structure so it's easy to add more attributes.
        For now I haven't added any yet.
        (-[WebHTMLView _colorAsString:]): Moved this earlier in the file.
        (-[WebHTMLView _shadowAsString:]): Ditto.
        (-[WebHTMLView _styleFromFontAttributes:]): Add background color, foreground color, and text shadow.

2004-09-30  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3821215> NPN hasMethod and hasProperty functions should take NPObjects, not NPClass

	Also changed dashboard regions dictionary to use "control"
	for scroller region label, instead of "scroller, per
	request from ouch. 
		
        Reviewed by Chris.

        * Plugins.subproj/npruntime.h:
        * WebView.subproj/WebView.m:
        (-[WebView _addScrollerDashboardRegions:from:]):

2004-09-30  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3498680> switching back and forth between tabs stops calling anything in a plug-in

        Reviewed by darin.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView sendEvent:]): call setWindowIfNecessary because the window may have changed
        (-[WebBaseNetscapePluginView updateAndSetWindow]): new
        (-[WebBaseNetscapePluginView setWindowIfNecessary]): was setWindow, this method now just sets the window
        (-[WebBaseNetscapePluginView start]): call updateAndSetWindow
        (-[WebBaseNetscapePluginView viewDidMoveToWindow]): ditto
        (-[WebBaseNetscapePluginView viewHasMoved:]): ditto

2004-09-30  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3498668> switching out of tab doesn't send loseFocusEvent to plug-in

        Reviewed by rjw.

        * Plugins.subproj/WebBaseNetscapePluginView.h:
        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView setHasFocus:]): new, sends events to plug-in
        (-[WebBaseNetscapePluginView becomeFirstResponder]): call setHasFocus
        (-[WebBaseNetscapePluginView resignFirstResponder]): ditto 
        (-[WebBaseNetscapePluginView viewWillMoveToWindow:]): ditto

2004-09-30  Chris Blumenberg  <cblu@apple.com>

	Fixed:
	Assertion failure when loading standalone netscape plug-in content.
	Document loads of WebKit plug-in content should be cancelled since the plug-in does its own loading.

        Reviewed by john.

        * Misc.subproj/WebKitErrors.m: removed deprecated method
        * Misc.subproj/WebKitErrorsPrivate.h:
        * Plugins.subproj/WebNetscapePluginDocumentView.m:
        (-[WebNetscapePluginDocumentView setDataSource:]): fixed the assertion statement
        * Plugins.subproj/WebPluginDocumentView.h:
        * Plugins.subproj/WebPluginDocumentView.m:
        (-[WebPluginDocumentView dealloc]): remove retained plug-in
        (-[WebPluginDocumentView setDataSource:]): retain the plug-in, cancel the laod

2004-09-29  Chris Blumenberg  <cblu@apple.com>
	
	Fixed:
	<rdar://problem/3763832> Safari-155: Non-Embeded movies fail to open in Cocoa QT plug-in
	<rdar://problem/3820517> "*** -[WebPluginPackage NPP_New]: selector not recognized [self = 0x5552c10]"

        Reviewed by rjw.

        * History.subproj/WebHistoryItem.m:
        * Misc.subproj/WebNSViewExtras.h:
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_firstResponderCausesFocusDisplay]):
        (-[NSView _webView]):
        (-[NSView _frame]):
        (-[NSView _bridge]):
        (-[NSView _dataSource]):
        * Plugins.subproj/WebBasePluginPackage.h:
        * Plugins.subproj/WebBasePluginPackage.m:
        (-[WebBasePluginPackage hash]):
        (-[WebBasePluginPackage isQuickTimePlugIn]):
        * Plugins.subproj/WebNetscapePluginDocumentView.m:
        (-[WebNetscapePluginDocumentView setDataSource:]):
        * Plugins.subproj/WebNetscapePluginRepresentation.m:
        * Plugins.subproj/WebPluginController.h:
        * Plugins.subproj/WebPluginController.m:
        (-[WebPluginController initWithDocumentView:]):
        (-[WebPluginController addPlugin:]):
        (-[WebPluginController destroyAllPlugins]):
        (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
        (-[WebPluginController webPlugInContainerShowStatus:]):
        (-[WebPluginController webPlugInContainerSelectionColor]):
        (-[WebPluginController webFrame]):
        * Plugins.subproj/WebPluginDatabase.h:
        * Plugins.subproj/WebPluginDatabase.m:
        (-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]):
        (-[WebPluginDatabase refresh]):
        (WebPluginDocumentView::while):
        * Plugins.subproj/WebPluginDocumentView.h: Added.
        * Plugins.subproj/WebPluginDocumentView.m: Added.
        (-[WebPluginDocumentView initWithFrame:]):
        (-[WebPluginDocumentView dealloc]):
        (-[WebPluginDocumentView drawRect:]):
        (-[WebPluginDocumentView setDataSource:]):
        (-[WebPluginDocumentView setNeedsLayout:]):
        (-[WebPluginDocumentView layout]):
        (-[WebPluginDocumentView currentWindow]):
        (-[WebPluginDocumentView viewWillMoveToWindow:]):
        (-[WebPluginDocumentView viewDidMoveToWindow]):
        (-[WebPluginDocumentView viewWillMoveToHostWindow:]):
        (-[WebPluginDocumentView viewDidMoveToHostWindow]):
        (-[WebPluginDocumentView receivedData:withDataSource:]):
        (-[WebPluginDocumentView receivedError:withDataSource:]):
        (-[WebPluginDocumentView finishedLoadingWithDataSource:]):
        (-[WebPluginDocumentView canProvideDocumentSource]):
        (-[WebPluginDocumentView documentSource]):
        (-[WebPluginDocumentView title]):
        * Plugins.subproj/npapi.m:
        (NPN_ReleaseVariantValue):
        (NPN_GetStringIdentifier):
        (NPN_GetStringIdentifiers):
        (NPN_GetIntIdentifier):
        (NPN_IdentifierIsString):
        (NPN_UTF8FromIdentifier):
        (NPN_IntFromIdentifier):
        (NPN_CreateObject):
        (NPN_RetainObject):
        (NPN_ReleaseObject):
        (NPN_Invoke):
        (NPN_InvokeDefault):
        (NPN_Evaluate):
        (NPN_GetProperty):
        (NPN_SetProperty):
        (NPN_RemoveProperty):
        (NPN_HasProperty):
        (NPN_HasMethod):
        (NPN_SetException):
        (NPN_Call):
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge frameRequiredForMIMEType:URL:]):
        * WebCoreSupport.subproj/WebViewFactory.m:
        * WebKit.exp:
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebDebugDOMNode.m:
        * WebView.subproj/WebDocumentInternal.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView initWithFrame:]):
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebImageRepresentation.h:
        * WebView.subproj/WebRenderNode.m:
        * WebView.subproj/WebView.m:

2004-09-29  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3779998> bringing window to front or sending to back does not send focus/blur events to JavaScript window object

	The fix has two parts, 1) make onblur and onfocus work for windows, 
        and 2), allow the dashboard to override WebKit's special key/non-key
        behaviors.

        Reviewed by Maciej.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView restartNullEvents]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView addMouseMovedObserver]):
        (-[WebHTMLView removeMouseMovedObserver]):
        * WebView.subproj/WebView.m:
        (-[WebView _dashboardBehavior:]):
        * WebView.subproj/WebViewInternal.h:
        * WebView.subproj/WebViewPrivate.h:

2004-09-29  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John.

	- consolidated OS version checks into prefix header

        * Misc.subproj/WebFileDatabase.m:
        (-[WebFileDatabase _createLRUList:]):
        (+[WebFileDatabase _syncLoop:]):
        * Misc.subproj/WebKitErrors.m:
        (registerErrors):
        * Misc.subproj/WebNSObjectExtras.h:
        (WebNSRetainCFRelease):
        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
        * Misc.subproj/WebUnicode.m:
        (_unicodeDirection):
        * WebCoreSupport.subproj/WebImageData.h:
        * WebCoreSupport.subproj/WebImageRenderer.h:
        * WebCoreSupport.subproj/WebKeyGenerator.h:
        * WebCoreSupport.subproj/WebNewKeyGeneration.c:
        * WebKitPrefix.h:
        * WebView.subproj/WebDataSource.m:
        (+[WebDataSource _repTypesAllowImageTypeOmission:]):
        (-[WebDataSource isLoading]):
        * WebView.subproj/WebFrameView.m:
        (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
        * WebView.subproj/WebHTMLView.m:
        * WebView.subproj/WebPDFRepresentation.h:
        * WebView.subproj/WebPDFRepresentation.m:
        * WebView.subproj/WebPDFView.h:
        * WebView.subproj/WebPDFView.m:

2004-09-29  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

        Fix for this bug:
        
        <rdar://problem/3818296> REGRESSION (Mail): centerSelectionInVisibleArea does not work correctly

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView centerSelectionInVisibleArea:]): Now calls new centerSelectionInVisibleArea
        bridge function instead of ensureCaretVisible. Now handles caret selections and range
        selections correctly.

2004-09-28  Chris Blumenberg  <cblu@apple.com>

	Added timing code so that Doug can time RTF conversion. 

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]):
        (-[WebHTMLView _attributeStringFromDOMRange:]):

2004-09-28  Richard Williamson   <rjw@apple.com>

        <rdar://problem/3817421> add getter for dashboard regions (debugging)
        
        <rdar://problem/3817417> NSScrollView need autoregions for dashboard
	Also KWQScrollBars

        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge dashboardRegionsChanged:]):
        * WebView.subproj/WebView.m:
        (-[WebView _setInitiatedDrag:]):
        (-[WebView _addScrollerDashboardRegions:from:]):
        (-[WebView _addScrollerDashboardRegions:]):
        (-[WebView _dashboardRegions]):
        * WebView.subproj/WebViewPrivate.h:

2004-09-27  John Sullivan  <sullivan@apple.com>

        - fixed <rdar://problem/3814705> 8A266: Safari authentication dialog "remember password" text should match Mail

        * Panels.subproj/English.lproj/WebAuthenticationPanel.nib:
        changed "Remember this password" to "Remember this password in my keychain";
        this will need to go through CCC for this week's build.

2004-09-27  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3594754> change null event interval from 20 ms to 10 ms to match speed on Windows

        Reviewed by John.

        * Plugins.subproj/WebBaseNetscapePluginView.m:

2004-09-27  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3502138> text files don't remember scroll position when going back or reloading

        Reviewed by john.

        * WebView.subproj/WebTextView.m:
        (-[WebTextView layout]): implemented, call sizeToFit, without this scrollPoint: won't work

2004-09-27  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.

        - WebKit part of fix for <rdar://problem/3734466> ER: Support standard editing keystrokes 
        like Cmd-B while editing rich text

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _toggleBold]):
        new method, toggles font-weight from "bold" to "normal"
        (-[WebHTMLView _toggleItalic]):
        new method, toggles font-style from "italic" to "normal"
        (-[WebHTMLView _handleStyleKeyEquivalent:]):
        new method, if the new preference is set and we're in an editable state, check for standard
        key equivalents for toggling styles (just command-B and command-I for now).
        (-[WebHTMLView performKeyEquivalent:]):
        Moved in file, now calls _handleStyleKeyEquivalent:
        
        * WebView.subproj/WebPreferenceKeysPrivate.h:
        new preference key WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
        * WebView.subproj/WebPreferences.m:
        (+[WebPreferences initialize]):
        initial value of WebKitRespectStandardStyleKeyEquivalentsPreferenceKey is NO (maybe we'll
        change our minds about this, but this is more guaranteed to be backward-compatible)
        (-[WebPreferences respectStandardStyleKeyEquivalents]):
        read WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
        (-[WebPreferences setRespectStandardStyleKeyEquivalents:]):
        write WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
        
        * WebView.subproj/WebPreferencesPrivate.h:
        declare getter and setter
        
        * English.lproj/StringsNotToBeLocalized.txt:
        updated for these and other recent changes

2004-09-27  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3806649> assertion failure after control-click of webcam

        Reviewed by john.

        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate contextMenuItemsForElement:]): don't provide "Copy Image" if the image is not fully loaded

2004-09-27  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil to dictionary in dragging code

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _setMouseDownEvent:]): new
        (-[WebHTMLView acceptsFirstMouse:]): call _setMouseDownEvent
        (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
        (-[WebHTMLView mouseDown:]): ditto
        (-[WebHTMLView _delegateDragSourceActionMask]): removed temp fix, assert that the mouse event is not nil

2004-09-27  Darin Adler  <darin@apple.com>

        * WebKit.pbproj/project.pbxproj: Added WebDashboardRegion.h as a private header.

2004-09-24  Chris Blumenberg  <cblu@apple.com>

        Reviewed by rjw.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _selectedArchive]): added timing code for copying markup

=== Safari-165 ===

2004-09-24  Chris Blumenberg  <cblu@apple.com>

	Temp fix for: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil to dictionary in dragging code

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _delegateDragSourceActionMask]): return none if the mouse down event is nil

2004-09-24  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Fix for this bug:
        
        <rdar://problem/3813917> REGRESSION (125-163): The font panel will change the font of any web page
        
        We were doing a laughably bad job at preventing edits in documents that were not editable.
        This change fixes the specific case of the bug mentioned above, and makes an attempt to
        fix similar bugs by checking for whether the view is in editing mode before making edits.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _canEdit]): Renamed from _canType. Used in many more places in the code now.
        (-[WebHTMLView _isMoveDrag]): Change around code to make the meaning more clear. This one
        was actually performing a correct check before.
        (-[WebHTMLView keyDown:]): Renamed _canType to _canEdit.
        (-[WebHTMLView paste:]): Don't beep if can't paste. This matches AppKit. Any paste-related beeps
        will come from failure to handle key equivalent. Menu validation will kick in to dim menu.
        (-[WebHTMLView _applyStyleToSelection:]): Bail if !_canEdit.
        (-[WebHTMLView pasteAsPlainText:]): Ditto.
        (-[WebHTMLView _alignSelectionUsingCSSValue:]): Ditto.
        (-[WebHTMLView insertNewline:]): Ditto.
        (-[WebHTMLView insertParagraphSeparator:]): Ditto.
        (-[WebHTMLView _changeWordCaseWithSelector:]): Ditto.
        (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): Ditto.
        (-[WebHTMLView complete:]): Ditto.
        (-[WebHTMLView _changeSpellingToWord:]): Ditto. Some code rearranging to eliminate bridge local variable.
        (-[WebHTMLView ignoreSpelling:]): Ditto.
        (-[WebHTMLView yank:]): Bail if !_canEdit.
        (-[WebHTMLView yankAndSelect:]): Ditto.
        (-[WebHTMLView deleteToMark:]): Ditto.
        (-[WebHTMLView swapWithMark:]): Ditto.
        (-[WebHTMLView transpose:]): Ditto.
        (-[WebHTMLView _updateFontPanel]): Ditto. Some code rearranging to eliminate bridge local variable.
        (-[WebHTMLView setMarkedText:selectedRange:]): Bail if !_canEdit.
        (-[WebHTMLView _insertText:selectInsertedText:]): Ditto. Some code rearranging to eliminate bridge local variable.
        * WebView.subproj/WebHTMLViewPrivate.h: Renamed _canType to _canEdit.

2004-09-24  Ken Kocienda  <kocienda@apple.com>

        Reviewed by me

        * WebCoreSupport.subproj/WebDashboardRegion.h: Check in file copied from WebCore.

2004-09-23  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

	<rdar://problem/3685235> REGRESSION (Mail): links are not properly editable
        
        * WebView.subproj/WebDefaultUIDelegate.m: By default, don't allow
	link dragging if the element under the mouse pointer is
	editable. This way, you can drag-select starting inside a link.

2004-09-23  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris.
        
        - WebKit part of fix for <rdar://problem/3415264> 
        Default encoding should initially be set to current system encoding

        * WebView.subproj/WebPreferences.m:
        (-[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]):
        new SPI that sets the initial value of the default text encoding to
        be the system encoding, with a special-case conversion of MacRoman->Latin1.
        This is not done automatically for WebKit clients for fear of breaking them.
        
        * WebView.subproj/WebPreferencesPrivate.h:
        declare new SPI

2004-09-23  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - fixed <rdar://problem/3811584> REGRESSION (85-125): iframe.document undefined in function called from button onclick; works from img onclick

        The fix is to not let "defers callbacks" have any effect on loading "about:blank".
        I also had to fix one bug in WebCore that could then be reproduced by going to "about:blank"
        while using a button.

        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient connection:didReceiveResponse:]): Loosen asserts to allow this callback
        for the specific case of "about:blank" even if the defers callbacks flag is true.
        (-[WebMainResourceClient connectionDidFinishLoading:]): Ditto.
        (-[WebMainResourceClient loadWithRequestNow:]): Added NSURLRequest return value. Loosened asserts
        as above. Changed code to return a new request if we get a new request back that is not empty
        when the defers callbacks flag is true.
        (-[WebMainResourceClient loadWithRequest:]): If the defers callbacks flag is set, but the
        URL is one that gives us an empty document, then do the work right away, don't defer it.

2004-09-23  Darin Adler  <darin@apple.com>

        - fixed B&I builds by checking in generated file

        * WebCoreSupport.subproj/WebDashboardRegion.h: Added.

2004-09-22  Richard Williamson   <rjw@apple.com>

	Pass dashboard regions to UI delegate.

        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge dashboardRegionsChanged:]):
        * WebView.subproj/WebUIDelegatePrivate.h:
        * copy-webcore-files-to-webkit:

2004-09-22  Chris Blumenberg  <cblu@apple.com>

	Fixed build that I just broke.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]):

2004-09-22  Chris Blumenberg  <cblu@apple.com>

	<rdar://problem/3812091> REGRESSION (Mail): double-clicked word is not smart inserted on drag

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): pass value for smartMove

2004-09-22  Chris Blumenberg  <cblu@apple.com>

	Fixed:
	<rdar://problem/3667301> Frequent crashes in Mail when viewing HTML messages (CFURLGetByteRangeForComponent)
	<rdar://problem/3810354> WebResourceLoadDelegate can't refuse requests by returning nil; code asserts/crashes instead

        Reviewed by rjw.

        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (+[WebSubresourceClient startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]): removed broken code that handled loadWithRequest returning NO
        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate loadWithRequest:]): if nil is returned from the client for willSendRequest, report the cancelled error and return

2004-09-22  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _webcore_effectiveFirstResponder]): New function to yield the correct responder
        to check for firstResponder-ness before calling makeFirstResonder. This helps to prevent 
        unwanted firstResponder switching.
        * WebView.subproj/WebView.m:
        (-[WebView _webcore_effectiveFirstResponder]): Ditto.

2004-09-21  Chris Blumenberg  <cblu@apple.com

	Fixed:
	<rdar://problem/3735071> REGRESSION (Mail): WebCore Editing must do smart paste
	<rdar://problem/3799163> REGRESSION (Mail): Deleting a word doesn't delete whitespace

        Reviewed by darin.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): pass NO for smartReplace
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
        (-[WebHTMLView _changeSpellingFromMenu:]): pass NO for smartReplace
        (-[WebHTMLView pasteboardTypesForSelection]): include WebSmartPastePboardType when _canSmartCopyOrDelete return YES
        (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): ditto
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
        (-[WebHTMLView delete:]): call _deleteSelection
        (-[WebHTMLView cut:]): don't call delegate twice, call _deleteRange to delete
        (-[WebHTMLView pasteAsPlainText:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
        (-[WebHTMLView _changeWordCaseWithSelector:]): pass NO for smartReplace
        (-[WebHTMLView deleteBackward:]): call _deleteSelection when there is a selected range
        (-[WebHTMLView _changeSpellingToWord:]): pass NO for smartReplace
        (-[WebHTMLView deleteToMark:]): pass NO for smartDeleteOK
        (-[WebHTMLView transpose:]): pass NO for smartReplace
        (-[WebHTMLView _shouldDeleteRange:]): moved
        (-[WebHTMLView _deleteRange:preflight:killRing:prepend:smartDeleteOK:]): moved, handle smartDelete
        (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): moved
        (-[WebHTMLView _deleteSelection]): new
	(-[WebHTMLView _canSmartReplaceWithPasteboard]): new
	(-[WebHTMLView _canSmartCopyOrDelete]): new
        (-[WebHTMLView setMarkedText:selectedRange:]): pass NO for smartReplace
        (-[WebHTMLView _discardMarkedText]): call _deleteSelection
        (-[WebTextCompleteController _insertMatch:]): pass NO for smartReplace
        (-[WebTextCompleteController endRevertingChange:moveLeft:]): pass NO for smartReplace
        * WebView.subproj/WebHTMLViewInternal.h:
        * WebView.subproj/WebView.m:
        (-[WebView _commonInitializationWithFrameName:groupName:]): set smartInsertDeleteEnabled to YES
        (-[WebView replaceSelectionWithNode:]): pass NO for smartReplace
        (-[WebView replaceSelectionWithText:]): pass NO for smartReplace
        (-[WebView replaceSelectionWithMarkupString:]): pass NO for smartReplace
        (-[WebView deleteSelection]): call _deleteSelection on WebHTMLView

2004-09-21  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.

        - WebKit part of fix for <rdar://problem/3618274> REGRESSION (125-135): 
        Option-tab doesn't always work as expected

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
        Don't set WebCoreKeyboardAccessFull when setting WebCoreKeyboardAccessTabsToLinks
        after all; these need to be tested independently to get the option-tab behavior
        correct.

2004-09-21  John Sullivan  <sullivan@apple.com>

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView doCommandBySelector:]):
        Commented out part of previous change; it breaks Mail editing until Mail
        fixes bug 3810158.

2004-09-21  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView doCommandBySelector:]):
        Fix build failure from previous checkin, d'oh! Didn't set up webview variable.

2004-09-21  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.
        
        - fixed <rdar://problem/3809477> WebHTMLView needs to pass doCommandBySelector through delegate

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView doCommandBySelector:]):
        Call through to editing delegate. If editing delegate returns YES, don't call super.

        * WebView.subproj/WebDefaultEditingDelegate.m:
        (-[WebDefaultEditingDelegate webView:doCommandBySelector:]):
        default implementation (which was never called) was returning YES, but it should
        return NO to signal that it didn't handle the selector.
        
2004-09-21  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3647229> Safari does not play inline Windows Media Content on some sites (miggy.net and ministryofsound.com)

        Reviewed by john.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
        (-[WebNetscapePluginEmbeddedView initWithFrame:plugin:URL:baseURL:MIMEType:attributeKeys:attributeValues:]): set the plug-in before calling setting the attributes, so we can avoid passing certain attributes to the WMP plug-in that cause it to crash

2004-09-20  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3781290> REGRESSION (Mail): Crash in ReplaceSelectionCommandImpl attaching file to new message

        Reviewed by kocienda.

        * WebView.subproj/WebView.m:
        (-[WebView setEditable:]): call updateSelectionFromEmpty on the bridge if there is no selection

2004-09-20  Chris Blumenberg  <cblu@apple.com>

	Changes to implement renamed bridge methods.

        Reviewed by darin.

        * ChangeLog:
        * DOM.subproj/WebDOMOperations.m:
        (-[DOMDocument URLWithAttributeString:]): call renamed bridge method
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): take 2 parameter arrays rather than 1 which will have to be parsed
        (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): ditto

2004-09-20  Darin Adler  <darin@apple.com>

        Reviewed by Chris.

        * WebView.subproj/WebFramePrivate.h: Added back.
        * WebView.subproj/WebFrameViewPrivate.h: Removed.

2004-09-20  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - fixed <rdar://problem/3655360> REGRESSION (Mail): Ctrl-V emacs key binding, -pageDown: method, unimplemented (and pageUp, and selection-modifying versions)
        - fixed <rdar://problem/3792138> REGRESSION (Mail): Spell checker doesn't check current selected word

        * WebView.subproj/WebFrameViewInternal.h: Moved WebFrameViewPrivate inside the WebFrameView.m file.
        Removed a bunch of methods that don't need to be seen in other files, and added _verticalPageScrollDistance.
        * WebView.subproj/WebFrameViewPrivate.h: Removed. Renamed to WebFrameViewInternal.h.
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _verticalKeyboardScrollDistance]): Move in the file because of internal vs. private.
        (-[WebFrameView _shouldDrawBorder]): Ditto.
        (-[WebFrameView _tile]): Ditto.
        (-[WebFrameView _verticalPageScrollDistance]): Added. Separate method so it can be called
        by the code to implement pageDown:.
        (-[WebFrameView _drawBorder]): Move in the file because of internal vs. private.
        (-[WebFrameView _goBack]): Ditto.
        (-[WebFrameView _goForward]): Ditto.
        (-[WebFrameView _scrollVerticallyBy:]): Ditto.
        (-[WebFrameView _scrollHorizontallyBy:]): Ditto.
        (-[WebFrameView _horizontalKeyboardScrollDistance]): Ditto.
        (-[WebFrameView _horizontalPageScrollDistance]): Added. Separate method for consistency with
        vertical method above.
        (-[WebFrameView _pageVertically:]): Moved and changed to use _verticalPageScrollDistance.
        (-[WebFrameView _pageHorizontally:]): Moved and changed to use _horizontalPageScrollDistance.
        (-[WebFrameView _scrollLineVertically:]): Move in the file because of internal vs. private.
        (-[WebFrameView _scrollLineHorizontally:]): Ditto.
        (-[WebFrameView scrollPageUp:]): Ditto.
        (-[WebFrameView scrollPageDown:]): Ditto.
        (-[WebFrameView scrollLineUp:]): Ditto.
        (-[WebFrameView scrollLineDown:]): Ditto.
        (-[WebFrameView _firstResponderIsControl]): Ditto.
        (-[WebFrameView keyDown:]): Changed to eliminate _pageLeft, _lineLeft, _pageRight, and _lineRight.

        * WebView.subproj/WebDataSource.m: Use WebFrameView.h instead of WebFrameViewPrivate.h.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _alterCurrentSelection:verticalDistance:]): Added.
        (-[WebHTMLView moveToBeginningOfDocument:]): Use WebSelectToDocumentBoundary.
        (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToEndOfDocument:]): Ditto.
        (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
        (-[WebHTMLView moveParagraphBackwardAndModifySelection:]): Added.
        (-[WebHTMLView moveParagraphForwardAndModifySelection:]): Added.
        (-[WebHTMLView pageUp:]): Added.
        (-[WebHTMLView pageDown:]): Added.
        (-[WebHTMLView pageUpAndModifySelection:]): Added.
        (-[WebHTMLView pageDownAndModifySelection:]): Added.
        (-[WebHTMLView showGuessPanel:]): Changed to call advanceToNextMisspellingStartingJustBeforeSelection.
        This fixes the problem with spell checking.

        * WebView.subproj/WebImageView.m:
        (-[WebImageView webView]): Changed to use _web_parentWebView.
        (-[WebImageView menuForEvent:]): Changed to use [self webView].
        (-[WebImageView mouseDown:]): Ditto.
        (-[WebImageView mouseDragged:]): Ditto.
        (-[WebImageView draggedImage:endedAt:operation:]): Ditto.

        * WebView.subproj/WebTextView.m:
        (-[WebTextView _textSizeMultiplierFromWebView]): Changed to use _web_parentWebView.
        (-[WebTextView menuForEvent:]): Ditto.
        (-[WebTextView drawPageBorderWithSize:]): Ditto.
        (-[WebTextView knowsPageRange:]): Ditto.

        * Plugins.subproj/WebPluginDatabase.m: Updated filename of WebFrameViewInternal.h.
        * WebCoreSupport.subproj/WebBridge.m: Ditto.
        * WebKit.pbproj/project.pbxproj: Ditto.
        * WebView.subproj/WebFrame.m: Ditto.
        * WebView.subproj/WebView.m: Ditto.
        * Misc.subproj/WebNSViewExtras.m: Ditto.

2004-09-20  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - added helper method _web_parentWebView so fewer files need to get at WebFrame private methods

        * Misc.subproj/WebNSViewExtras.h: Added _web_parentWebView.
        * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_parentWebView]): Added.

=== Safari-164 ===

2004-09-17  Chris Blumenberg  <cblu@apple.com>
	
    	Fixed:
	<rdar://problem/3805757> don't unnecessarily put RTFD on the pasteboard
	<rdar://problem/3805756> strip attachments before generating RTF

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): only put RTFD on the pasteboard if it has attachments, strip attachments when writing RTF

2004-09-16  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3804648> 8A262: Safari crashed in -[WebView(WebPrivate) _editingDelegateForwarder] inside QuickTime Cocoa Plug-in during WebView deallocation

        * WebView.subproj/WebView.m: (-[WebView _editingDelegateForwarder]):
        Check _private for nil before dereferencing it.

2004-09-16  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3779150> REGRESSION: images not copied when copying HTML in Safari and pasting into TextEdit

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): use RTFDFromRange:: for RTFD
        * WebView.subproj/WebHTMLViewPrivate.h:

2004-09-15  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed assertion I saw using the font panel

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _colorAsString:]):
        Convert color space before trying to get R, G, and B components.

2004-09-15  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3802232> REGRESSION (Mail): WebCore Editing must do smart copy
	
        Reviewed by kocienda.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _writeSelectionToPasteboard:]): call instance method not class method to get pasteboard types since the types depends on the current selection granularity
        (-[WebHTMLView pasteboardTypesForSelection]): if the selection granularity is "word" include the smart pasteboard type
        (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): put nil on the pasteboard for smart copy

2004-09-14  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed <rdar://problem/3788894> REGRESSION (Mail): ctrl-t emacs key binding does not work (transpose)
        - fixed <rdar://problem/3798946> REGRESSION (Mail): Cursor does not disappear when typing

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView keyDown:]): Hide cursor by calling setHiddenUntilMouseMoves:YES.
        (-[WebHTMLView transpose:]): Added.

2004-09-14  Richard Williamson   <rjw@apple.com>

        1.  Add class parameter to object allocation function.  This is somewhat redundant, given that
        the allocation function is in the class function vector, but people wanted to use the same
        allocation function for different classes.
        
        2.  Renamed NPN_Class to NPN_Invoke to match the name in the function vector.
        
        3.  Add support for a default function on an object.  This is a feature that ActiveX supports,
        and will allow JavaScript code to be written that will look exactly the same for both ActiveX
        plugins and Netscape or WebKit plugins.  There are implementations included for the 'C' and
        'Objective-C' bindings.
        
        There bugs are covered by
        
        <rdar://problem/3776343> Support for default functions in the JavaScript bindings
        <rdar://problem/3779186> NPN_Call needs to be renamed to NPN_Invoke
        <rdar://problem/3674754> Need to implement latest npruntime.h

        Reviewed by John.

        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage load]):
        * Plugins.subproj/WebScriptObject.h:
        * Plugins.subproj/npfunctions.h:
        * Plugins.subproj/npruntime.h:

2004-09-13  Richard Williamson   <rjw@apple.com>

        D'oh.  How many times can I screw up a simple fix!

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer initWithFont:usingPrinterFont:]):

2004-09-13  Richard Williamson   <rjw@apple.com>

        Fixed snafu from 3782533 checkin.
        
        Reviewed by John.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer initWithFont:usingPrinterFont:]):

2004-09-12  Chris Blumenberg  <cblu@apple.com>

	Support for: <rdar://problem/3794790> drop rate or time remaining from download status when window is too small to fit it

        Reviewed by john.

        * Misc.subproj/WebStringTruncator.h:
        * Misc.subproj/WebStringTruncator.m:
        (+[WebStringTruncator widthOfString:font:]): new

2004-09-10  Richard Williamson   <rjw@apple.com>

        Fixed <rdar://problem/3782533> CrashTracer: .1459 crashes at com.apple.WebKit: -[WebTextRenderer initWithFont:usingPrinterFont:] + 0x138

        We were explicitly failing when we encountered deprecated fonts.
        (Those with unsupported glyph packings).
        Deprecated fonts should only appear on a system that have 
        stuff migrated from OS 9.  Ugh, thats probably why we've never seen
        the problem here.
        
        Reviewed by John.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer initWithFont:usingPrinterFont:]):

2004-09-10  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris.
        
        - added _isFrameSet as a private method, so it can be used in WebBrowser.
        This is needed to merge the fix for 3123987 to SUPanNavy.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _isFrameSet]):
        new method
        
        * WebView.subproj/WebFramePrivate.h:
        declare new method

2004-09-09  Chris Blumenberg  <cblu@apple.com>

	Support for: <rdar://problem/3795485> debug menu item to enable RSS animation on first layout

        Reviewed by rjw.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge didFirstLayout]): new
        * WebView.subproj/WebDefaultFrameLoadDelegate.m:
        (-[WebDefaultFrameLoadDelegate webView:didFirstLayoutInFrame:]): new
        * WebView.subproj/WebViewPrivate.h:

2004-09-09  Richard Williamson   <rjw@apple.com>

        Alternate implementation of image rendering.  Use CGImageRefs instead
        of NSImages.
        
        Mostly works, but currently disabled because of issues w/ CG.
        
        Reviewed by Chris.

        * ChangeLog:
        * WebCoreSupport.subproj/WebImageData.h: Added.
        * WebCoreSupport.subproj/WebImageData.m: Added.
        (-[WebImageData _commonTermination]):
        (-[WebImageData dealloc]):
        (-[WebImageData finalize]):
        (-[WebImageData copyWithZone:]):
        (-[WebImageData numberOfImages]):
        (-[WebImageData currentFrame]):
        (-[WebImageData _invalidateImages]):
        (-[WebImageData imageAtIndex:]):
        (-[WebImageData incrementalLoadWithBytes:length:complete:]):
        (drawPattern):
        (-[WebImageData tileInRect:fromPoint:context:]):
        (-[WebImageData isNull]):
        (-[WebImageData size]):
        (-[WebImageData _frameDuration]):
        (-[WebImageData _repetitionCount]):
        (-[WebImageData isAnimationFinished]):
        (+[WebImageData stopAnimationsInView:]):
        (-[WebImageData addAnimatingRenderer:inView:]):
        (-[WebImageData removeAnimatingRenderer:]):
        (-[WebImageData _stopAnimation]):
        (-[WebImageData _nextFrame:]):
        (-[WebImageData animate]):
        * WebCoreSupport.subproj/WebImageRenderer.h:
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer initWithMIMEType:]):
        (-[WebImageRenderer initWithData:MIMEType:]):
        (-[WebImageRenderer initWithContentsOfFile:]):
        (-[WebImageRenderer dealloc]):
        (-[WebImageRenderer copyWithZone:]):
        (-[WebImageRenderer retainOrCopyIfNeeded]):
        (-[WebImageRenderer resize:]):
        (-[WebImageRenderer size]):
        (-[WebImageRenderer MIMEType]):
        (-[WebImageRenderer frameCount]):
        (-[WebImageRenderer isNull]):
        (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
        (-[WebImageRenderer drawImageInRect:fromRect:]):
        (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
        (-[WebImageRenderer tileInRect:fromPoint:context:]):
        (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
        (+[WebImageRenderer stopAnimationsInView:]):
        (-[WebImageRenderer stopAnimation]):
        (-[WebImageRenderer targetAnimationRect]):
        (-[WebImageRenderer increaseUseCount]):
        (-[WebImageRenderer decreaseUseCount]):
        (-[WebImageRenderer flushRasterCache]):
        (-[WebImageRenderer imageRef]):
        (-[WebImageRenderer TIFFRepresentation]):
        (-[WebImageRenderer image]):
        * WebCoreSupport.subproj/WebImageRendererFactory.m:
        (-[WebImageRendererFactory imageRendererWithMIMEType:]):
        (-[WebImageRendererFactory imageRendererWithData:MIMEType:]):
        (-[WebImageRendererFactory imageRendererWithSize:]):
        (-[WebImageRendererFactory imageRendererWithName:]):
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebImageView.m:
        (-[WebImageView image]):

=== Safari-163 ===

2004-09-09  Maciej Stachowiak  <mjs@apple.com>

        - rolled out last two changes, they seem to cause a performance regression

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView firstRectForCharacterRange:]):

2004-09-09  Maciej Stachowiak  <mjs@apple.com>

        - fixed build

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView firstRectForCharacterRange:]):

2004-09-08  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Dave.

	WebKit part of fix for:
	
	<rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView firstRectForCharacterRange:]): Call the appropriate new bridge method,
	and translate to screen coordinates.

2004-09-09  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - fixed <rdar://problem/3790526> mark-related methods not implemented (needed for people with them in their key bindings files)

        * WebKit.pbproj/project.pbxproj: Update MACOSX_DEPLOYMENT_TARGET to 10.3 and add -fobjc-exceptions
        so we can use new exceptions.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView setMark:]): Added.
        (unionDOMRanges): Added.
        (-[WebHTMLView deleteToMark:]): Added.
        (-[WebHTMLView selectToMark:]): Added.
        (-[WebHTMLView swapWithMark:]): Added.
        (-[WebHTMLView markedRange]): Updated for change to bridge method names.
        (-[WebHTMLView hasMarkedText]): Ditto.
        (-[WebHTMLView unmarkText]): Ditto.
        (-[WebHTMLView _selectMarkedText]): Ditto.
        (-[WebHTMLView _selectRangeInMarkedText:]): Ditto.
        (-[WebHTMLView setMarkedText:selectedRange:]): Ditto.
        (-[WebHTMLView _insertText:selectInsertedText:]): Removed check for empty string. An empty string
        should not be filtered out here. We need to allow inserting an empty string.
        (-[WebHTMLView _selectionIsInsideMarkedText]): Updated for change to bridge method names.
        (-[WebHTMLView _updateSelectionForInputManager]): Ditto.

        * WebView.subproj/WebView.m: (-[WebView searchFor:direction:caseSensitive:wrap:]):
        Changed to use selectionDOMRange instead of selectionStart.

        * WebView.subproj/WebHTMLRepresentation.h: Removed unused setSelectionFrom method.
        * WebView.subproj/WebHTMLRepresentation.m: Ditto.

2004-09-08  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.
        
        - fixed the localization aspect of: 
        <rdar://problem/3790011> undoable operations all say "Undo" in the menu, no specific action names
        
        We now have all the strings ready for localization; we just don't actually use them yet.

        * English.lproj/Localizable.strings:
        updated for this change
        
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge setUndoActionNamePlaceholder]):
        added this placeholder method whose purpose is to hold localizable strings for all the Undo
        action names that NSTextView uses. Later we will use some or all of these, but we can do
        that part after the localization freeze.

2004-09-08  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3778785> REGRESSION (Mail): copying from MS word and pasting into editable region leaves internal clipboard data

        Reviewed by kocienda.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): ignore Microsoft's header meta data

2004-09-08  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3792893> WebBaseResourceHandleDelegate always returns cached data for subresource loads

        Reviewed by rjw.

        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate _canUseResourceForRequest:]): new
        (-[WebBaseResourceHandleDelegate loadWithRequest:]): call _canUseResourceForRequest:

2004-09-08  Chris Blumenberg  <cblu@apple.com>

	Forgot to add this in previous check-in.	

        * English.lproj/WebViewEditingContextMenu.nib: Added.

2004-09-08  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3791240> WebKit uses the NSTextViewContextMenu nib from inside AppKit

        Reviewed by john.

        * English.lproj/StringsNotToBeLocalized.txt:
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]): use our copy of the nib

2004-09-07  Darin Adler  <darin@apple.com>

        * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.

2004-09-07  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3790143> exception raised when dragging a URL with 2-byte characters

	(checked in with last check-in)

2004-09-07  Chris Blumenberg  <cblu@apple.com>

	Fixed:
	<rdar://problem/3080103> Need to pass cmd-modified keys to plug-ins
	<rdar://problem/3751509> can't use safari edit menu to copy and paste with Vantage Learning's My Access

        Reviewed by john.

        * Plugins.subproj/WebBaseNetscapePluginView.m: fake up command-key events for cut, copy, paste and select all so these menu items work for plug-ins
        (-[WebBaseNetscapePluginView sendModifierEventWithKeyCode:character:]):
        (-[WebBaseNetscapePluginView cut:]):
        (-[WebBaseNetscapePluginView copy:]):
        (-[WebBaseNetscapePluginView paste:]):
        (-[WebBaseNetscapePluginView selectAll:]):

2004-09-07  Darin Adler  <darin@apple.com>

        - fixed deployment build

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _deleteWithDirection:granularity:killRing:]):
        Initialize prepend variable.

2004-09-06  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3696542> REGRESSION (Mail): Editable WebKit doesn't support underline yet (in the iChat profile window, at least)
        - fixed <rdar://problem/3780249> REGRESSION (Mail): copy style/paste style doesn't work in HTML editing in Mail
        - fixed <rdar://problem/3788857> REGRESSION (Mail): Home and End keys don't work in message composer
        - fixed <rdar://problem/3788884> REGRESSION (Mail): ctrl-d emacs key binding does not work (delete forward)
        - fixed <rdar://problem/3788890> REGRESSION (Mail): ctrl-k emacs key binding does not work (delete to end of paragraph)
        - fixed <rdar://problem/3788899> REGRESSION (Mail): ctrl-y emacs key binding does not work (yank)
        - fixed <rdar://problem/3788901> REGRESSION (Mail): ctrl-o emacs key binding does not work (insert newline in front of insertion point)
        - fixed <rdar://problem/3788908> REGRESSION (Mail): ctrl-left-arrow emacs key binding does not work (move to beginning of line)
        - fixed <rdar://problem/3788913> REGRESSION (Mail): ctrl-right-arrow emacs key binding does not work (move to end of line)
        - implemented a first cut at other attribute changes from Text Panel besides underline (bugs?)
        - dealt with a couple of FIXMEs in WebHTMLView.m
        - updated list of not-yet-implemented methods in WebHTMLView.m
        - fixed many deletion operations to call the correct editing delegate methods

        * WebView.subproj/WebFrameViewPrivate.h: Remove _scrollToTopLeft and _scrollToBottomLeft.
        No one was calling them anyway, so they should really have been marked internal and not private.
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView scrollToBeginningOfDocument:]): Renamed _scrollToTopLeft to this, so the home key
        would start working with the key bindings machinery.
        (-[WebFrameView scrollToEndOfDocument:]): Same thing, for end key.
        (-[WebFrameView keyDown:]): Update for name changes, and also make sure we don't try to grab
        control-arrow keys here (probably not necessary, but good anyway).

        * WebView.subproj/WebHTMLViewInternal.h: Added keyDownEvent field, and startNewKillRingSequence
        and nextResponderDisabledOnce flags.
        * WebView.subproj/WebHTMLView.m:
        Rearrange declarations at the top of the file so that external things are up with
        the #import directives and things inside this file are declared below.
        (-[WebHTMLView _shouldReplaceSelectionWithText:givenAction:]): Ditto.
        (-[WebHTMLView _calculatePrintHeight]): Moved up into the "internal to file" category.
        (-[WebHTMLView _updateTextSizeMultiplier]): Ditto.
        (-[WebHTMLView _selectedRange]): Added.
        (-[WebHTMLView _openLinkFromMenu:]): Left this method lying around even though I deleted the
        other APPKIT_CODE_FOR_REFERENCE in case this shows up in the context menu we are now sharing
        with the AppKit. Chris will look at this later, and he can delete it then.
        (+[WebHTMLView initialize]): Call _NSInitializeKillRing.
        (-[WebHTMLView _documentRange]): Added.
        (-[WebHTMLView string]): Call the bridge to get the plain text rather than making an attributed
        string and then getting the text from there.
        (-[WebHTMLView becomeFirstResponder]): Set startNewKillRingSequence flag, so that new deletions
        will create a new kill ring entry.
        (-[WebHTMLView moveToBeginningOfDocument:]): Use backward direction instead of left direction.
        (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToBeginningOfLine:]): Ditto.
        (-[WebHTMLView moveToBeginningOfLineAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToBeginningOfParagraph:]): Ditto, also use WebSelectToParagraphBoundary.
        (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToEndOfDocument:]): Use forward direction instead of right direction.
        (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToEndOfLine:]): Ditto.
        (-[WebHTMLView moveToEndOfLineAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToEndOfParagraph:]): Ditto, also use WebSelectToParagraphBoundary.
        (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]): Ditto.
        (-[WebHTMLView _shouldDeleteRange:]): Added.
        (-[WebHTMLView _deleteRange:preflight:killRing:prepend:]): Added.
        (-[WebHTMLView delete:]): Changed to call new _deleteRange method.
        (-[WebHTMLView cut:]): Changed to preflight property and call new _deleteRange method.
        (-[WebHTMLView _selectionFontAttributes]): Added.
        (-[WebHTMLView _selectionFontAttributesAsRTF]): Added.
        (-[WebHTMLView _fontAttributesFromFontPasteboard]): Added.
        (-[WebHTMLView _emptyStyle]): Added.
        (-[WebHTMLView _styleFromFontAttributes:]): Added.
        (-[WebHTMLView _applyStyleToSelection:]): Added.
        (-[WebHTMLView copyFont:]): Implemented.
        (-[WebHTMLView pasteFont:]): Implemented.
        (-[WebHTMLView _originalFontA]): Added.
        (-[WebHTMLView _originalFontB]): Added.
        (-[WebHTMLView _addToStyle:fontA:fontB:]): Added. Has code from the method that figures out
        what the font manager is doing for changeFont:, now needed for changeAttribute: too.
        (-[WebHTMLView _styleFromFontManagerOperation]): Renamed and now calls shared methods.
        (-[WebHTMLView changeFont:]): Call shared method, still does the same thing.
        (-[WebHTMLView _colorAsString:]): Added. Has code from the method we were using with the
        color panel before.
        (-[WebHTMLView _shadowAsString:]): Added.
        (-[WebHTMLView _styleForAttributeChange:]): Added.
        (-[WebHTMLView changeAttributes:]): Implemented.
        (-[WebHTMLView _styleFromColorPanelWithSelector:]): Renamed and now calls shared methods.
        (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]): Call method by new name.
        (-[WebHTMLView changeDocumentBackgroundColor:]): Call method by new name.
        (-[WebHTMLView changeColor:]): Changed around a bit; still doesn't work yet.
        (-[WebHTMLView _alignSelectionUsingCSSValue:]): Call shared methods.
        (-[WebHTMLView indent:]): Removed, since NSTextView doesn't implement this method. Added to list
        of methods to possibly implement later in the file.
        (-[WebHTMLView insertTab:]): Call insertText: to save code and so we get WebViewInsertActionTyped
        instead of WebViewInsertActionPasted.
        (-[WebHTMLView changeCaseOfLetter:]): Removed, since NSTextView doesn't implement this method.
        Added to list of methods to possibly implement later in the file.
        (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): Added.
        (-[WebHTMLView deleteForward:]): Implemented. This makes Control-D work.
        (-[WebHTMLView deleteBackwardByDecomposingPreviousCharacter:]): Implemented by just calling
        deleteBackward for now; probably better than doing nothing.
        (-[WebHTMLView deleteWordForward:]): Changed to call new _delete method above. Fixes things
        so that we delete the selection if there is one, get the appropriate delegate calls, handle
        the kill ring properly, and don't do any selection if we can't delete.
        (-[WebHTMLView deleteWordBackward:]): Ditto.
        (-[WebHTMLView deleteToBeginningOfLine:]): Ditto.
        (-[WebHTMLView deleteToEndOfLine:]): Ditto.
        (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto.
        (-[WebHTMLView deleteToEndOfParagraph:]): Ditto. Added additional behavior needed since this
        is bound to Control-K, so it's not really just delete to end of paragraph.
        (-[WebHTMLView insertNewlineIgnoringFieldEditor:]): Added. Calls insertNewline:.
        (-[WebHTMLView insertTabIgnoringFieldEditor:]): Added. Calls insertTab:.
        (-[WebHTMLView subscript:]): Added.
        (-[WebHTMLView superscript:]): Added.
        (-[WebHTMLView unscript:]): Added.
        (-[WebHTMLView underline:]): Added.
        (-[WebHTMLView yank:]): Added.
        (-[WebHTMLView yankAndSelect:]): Added. Calls _insertText.
        (-[WebHTMLView _arrowKeyDownEventSelectorIfPreprocessing:]): Added. Part of workaround for
        control-arrow key trouble.
        (-[WebHTMLView respondsToSelector:]): Added. More of workaround.
        (-[WebHTMLView nextResponder:]): Added. More of workaround.
        (-[WebHTMLView _selectionChanged]): Set startNewKillRingSequence flag, so that new deletions
        will create a new kill ring entry.
        (-[WebHTMLView _updateFontPanel]): Remove a bunch of code here that wasn't working very well
        because it walked a DOM range incorrectly, and instead use the new method that does all the
        right stuff on the other side of the bridge.
        (-[WebHTMLView _insertText:selectInsertedText:]): Added new helper method for use by both
        insertText and yankAndSelect, with most of the guts of insertText and one additional parameter.
        (-[WebHTMLView insertText:]): Call the new _insertText.

        * WebView.subproj/WebView.m: Use macros to make the forwarding from WebView more terse.
        Updated the list to include a few methods it didn't before.

2004-09-06  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.
        
        - put preference keys in a private header file so Safari can use them for Managed Preferences

        * WebView.subproj/WebPreferenceKeysPrivate.h:
        new Private header file, includes the #defines for NSUserDefaults preference keys
        
        * WebView.subproj/WebPreferences.m:
        moved the preference key #defines out of here; now imports WebPreferenceKeysPrivate.h

        * WebKit.pbproj/project.pbxproj:
        updated for new file

2004-09-03  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3782543> CrashTracer: ...87 crashes at com.apple.WebKit: -[WebNetscapePluginPackage initWithPath:] + 0x18c

        Reviewed by john.

        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage initWithPath:]): make sure the file is at least 8 bytes long before calling memcmp

2004-09-03  Chris Blumenberg  <cblu@apple.com>
	
	Fixed:
	<rdar://problem/3788328> assertion failure when moving an image
	<rdar://problem/3783628> REGRESSION (Mail): when I try to reorder an image, the image is duplicated

        * DOM.subproj/WebDOMOperations.m:
        (-[DOMDocument _createRangeWithNode:]): new, convenience
        (-[DOMDocument _documentRange]): use _ createRangeWithNode:
        * DOM.subproj/WebDOMOperationsPrivate.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): set the selection to the image when starting the drag. This allows "move selection" to work and this matches NSText's behavior

=== Safari-162 ===

2004-09-02  Richard Williamson   <rjw@apple.com>

        Support for patterns in <canvas>.  
        (These changes attempt to create a CGImageRef from a WebImageRenderer that
        is used by the pattern drawing function.)
        
        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebImageRenderer.h:
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer dealloc]):
        (-[WebImageRenderer finalize]):
        (-[WebImageRenderer imageRef]):
        (_createImageRef):
        * WebView.subproj/WebPDFView.h:
        * WebView.subproj/WebPDFView.m:

2004-09-01  Chris Blumenberg  <cblu@apple.com>

	Fixed deployment build failure.

        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate menuItemWithTag:]):

2004-08-31  Chris Blumenberg  <cblu@apple.com>

	Fixed: 
	<rdar://problem/3699498> Context menu for editable WebViews should provide items like Cut and Paste
	<rdar://problem/3781535> REGRESSION (Mail): no context menu after ctrl-clicking a misspelled word

        Reviewed by kocienda.

        * English.lproj/Localizable.strings:
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate menuItemWithTag:]): updated to handle new menu items
        (-[WebDefaultUIDelegate contextMenuItemsForElement:]): renamed from webView:contextMenuItemsForElement:defaultMenuItems:
        (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]): new
        (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): moved, now call contextMenuItemsForElement: or editingContextMenuItemsForElement:
        * WebView.subproj/WebDefaultUIDelegate.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _isSelectionMisspelled]): new
        (-[WebHTMLView _guessesForMisspelledSelection]): new
        (-[WebHTMLView _changeSpellingFromMenu:]): new
        (-[WebHTMLView _ignoreSpellingFromMenu:]): new
        (-[WebHTMLView _learnSpellingFromMenu:]): new
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebUIDelegate.h:

2004-08-31  Darin Adler  <darin@apple.com>

        - fixed B&I build failure

        * WebView.subproj/WebHTMLView.m: (-[WebTextCompleteController _buildUI]):
        Work around unwanted warning by adding a cast.

2004-08-27  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John.

	<rdar://problem/3778314> REGRESSION: Can't proceed to survey questions on Lominger's Apple website
        
	Because we will stop parsing when there is a pending redirection,
	avoid setting one if no navigation would actually take place
	because the number of steps is out of range.

	* WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge canGoBackOrForward:]):

2004-08-30  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - part of fix for <rdar://problem/3637519> REGRESSION (125-128): unrepro crash in QListBox::sizeForNumberOfLines at istweb.apple.com

        * WebCoreSupport.subproj/WebTextRendererFactory.m: (-[WebTextRendererFactory clearCaches]):
        Call [super clearCaches].

2004-08-30  Darin Adler  <darin@apple.com>

        Reviewed by Chris.

        - did work to prepare for uploading files incrementally when submitting forms

        * History.subproj/WebHistoryItem.m:
        (-[WebHistoryItem _setFormInfoFromRequest:]): Use NSArray instead of NSData for form data.
        (-[WebHistoryItem formData]): Ditto.
        * History.subproj/WebHistoryItemPrivate.h: Ditto.
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]): Ditto.
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): Ditto.
        (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
        * WebCoreSupport.subproj/WebSubresourceClient.h: Ditto.
        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]): Ditto.
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _loadItem:withLoadType:]): Ditto.
        (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
        * WebView.subproj/WebFramePrivate.h: Ditto.

        * WebView.subproj/WebFormDataStream.h: Added.
        * WebView.subproj/WebFormDataStream.m:
        (-[WebFormDataStream initWithFormDataArray:]): Placeholder; not done yet.
        (-[WebFormDataStream formDataArray]): Ditto.
        * WebKit.pbproj/project.pbxproj: Added WebFormDataStream files.

2004-08-30  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.

        - WebKit part of fix for <rdar://problem/3607720> myFrame.print() prints the window 
        but should only print the frame

        * WebView.subproj/WebUIDelegatePrivate.h:
        declare new delegate method that includes which frame to print

        * WebView.subproj/WebDefaultUIDelegate.m:
        (-[WebDefaultUIDelegate webView:printFrameView:]):
        implement default (no-op) version of new delegate method

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge print]):
        call new delegate method if available, otherwise call old delegate method, for
        backward compatibility.

2004-08-27  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John. 
        Checked in by Ken
        
        Ken comments: It looks like Maciej forgot to land this when he checked in the
        WebCore portion of this change.

        <rdar://problem/3778314> REGRESSION: Can't proceed to survey questions on Lominger's Apple website
            
        Because we will stop parsing when there is a pending redirection,
        avoid setting one if no navigation would actually take place
        because the number of steps is out of range.
    
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge canGoBackOrForward:]):

2004-08-27  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Chris

        Fix for this bug:
        
        <rdar://problem/3756997> WebKit aggressive in making pasted text into a URL, even when it's not much like a URL

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): Don't try so hard to coerce data
        on the pasteboard into a URL, and do not make an anchor with an href for any URLs that are 
        explicitly present on the pasteboard. Also, move URL pasteboard type check beneath the RTF
        checks.

=== Safari-161 ===

2004-08-26  Chris Blumenberg  <cblu@apple.com>

	Fixed build failure on Panther.

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): ifdef'd out call to AppKit SPI
        (-[WebHTMLView _attributeStringFromDOMRange:]): ditto

2004-08-26  Chris Blumenberg  <cblu@apple.com>

	Tweak to last check-in.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]):

2004-08-26  Chris Blumenberg  <cblu@apple.com>

	Fixed: 
	<rdar://problem/3546412> support for pasting and drag and dropping of RTF and RTFD to editable WebViews
	<rdar://problem/3745345> use AppKit for converting from DOM to RTF

        Reviewed by rjw.

        * DOM.subproj/WebDOMOperations.m:
        (-[DOMDocument _documentRange]): new
        * DOM.subproj/WebDOMOperationsPrivate.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): call AppKit SPI to get a document fragment from an attributed string
        (-[WebHTMLView string]): added a FIXME
        (-[WebHTMLView _attributeStringFromDOMRange:]): new, calls AppKit SPI that creates an attributed string from a DOM Range
        (-[WebHTMLView attributedString]): call _attributeStringFromDOMRange:, fallback to old code if it returns nil
        (-[WebHTMLView selectedAttributedString]): ditto

2004-08-26  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3774178> Plugin hooks for selected state aren't being called

        Reviewed by darin.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge setIsSelected:forView:]): don't forget colons in method names

2004-08-26  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3768439> can't click in WebView in Carbon WebKit apps (GetEventPlatformEventRecord returns false)

        Reviewed by rjw.

        * Carbon.subproj/HIWebView.m:
        (Click): use WebGetEventPlatformEventRecord not GetEventPlatformEventRecord
        (MouseUp): ditto
        (MouseMoved): ditto
        (MouseDragged): ditto
        (MouseWheelMoved): ditto
        (WindowHandler): ditto
        (HIWebViewEventHandler): ditto
        (UpdateObserver): ditto
        (WebGetEventPlatformEventRecord): Call GetEventPlatformEventRecord, if that fails fallback to the current event. This is code Eric Schlegel to me to use. 

2004-08-24  Chris Blumenberg  <cblu@apple.com>

	Fixed with help from Trey:
	<rdar://problem/3764856> REGRESSION !25-154): Safari accepts mouse clicks (follows links) when not key

        Reviewed by rjw.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _isSelectionEvent:]): brought back from CVS
        (-[WebHTMLView acceptsFirstMouse:]): only call eventMayStartDrag if _isSelectionEvent returns YES since we only want to allow selection dragging on the first mouse down
        (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto

2004-08-24  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

        Improved the checks used to see if certain operations can be done based
        on the state of the selection and whether the selection is editable. I
        added some helpers and improved some others to assist in making these
        determinations.
        
        This helps to fix this bug:
        <rdar://problem/3764987> Crash after adding newline to quoted text
        
        Since some editing methods expect the the selection to be in a certain state 
        in order to work, these checks help obviate crashes like 3764987.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _writeSelectionToPasteboard:]): _haveSelection name changed to _hasSelection.
        (-[WebHTMLView _canCopy]): Checks to see if state is appropriate to perform this operation.
        (-[WebHTMLView _canCut]): Ditto. Function added.
        (-[WebHTMLView _canDelete]): Ditto. Function refined.
        (-[WebHTMLView _canPaste]): Ditto. Function refined.
        (-[WebHTMLView _canType]): Ditto. Function added.
        (-[WebHTMLView _hasSelection]): Name changed from _haveSelection.
        (-[WebHTMLView _hasSelectionOrInsertionPoint]): Added.
        (-[WebHTMLView _isEditable]): Added.
        (-[WebHTMLView takeFindStringFromSelection:]): _haveSelection name changed to _hasSelection.
        (-[WebHTMLView validateUserInterfaceItem:]): Ditto
        (-[WebHTMLView validRequestorForSendType:returnType:]): Ditto
        (-[WebHTMLView keyDown:]):
        (-[WebHTMLView copy:]): Uses new _canCopy check.
        (-[WebHTMLView cut:]): Uses new _canCut check.
        (-[WebHTMLView delete:]): Now uses _canDelete check.
        (-[WebHTMLView paste:]): Now uses _canPaste check.
        (-[WebHTMLView _updateFontPanel]): _haveSelection name changed to _hasSelection.
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebView.m:
        (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]): Use selectionState check to
        determine whether or not operation can be done.

2004-08-24  Richard Williamson   <rjw@apple.com>

        Fixed <rdar://problem/3770469> Some PDFs open with line of previous page above PDF view
	
        Set height resize flags on WebPDFView.
		
        Reviewed by Chris.

        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView initWithFrame:]):

2004-08-24  David Hyatt  <hyatt@apple.com>

	Add Atom and RSS MIME types to set of supported XML types.
	
        Reviewed by rjw

        * WebView.subproj/WebDataSource.m:
        (+[WebDataSource _repTypesAllowImageTypeOmission:]):
        * WebView.subproj/WebFrameView.m:
        (+[WebFrameView _viewTypesAllowImageTypeOmission:]):

2004-08-23  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Kevin.

	- remove annoying ERROR spew and replace with comment
	
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView validAttributesForMarkedText]):

2004-08-23  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Richard.

	- a bit of code cleanup

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _stringWithData:]): Call textEncodingName instead of
	copying it's code.
        (-[WebDataSource textEncodingName]): Tweak formatting.

2004-08-23  Chris Blumenberg  <cblu@apple.com>

	Fixed build.

        * WebKit.pbproj/project.pbxproj: make sure we're doing -f on a file, not a directory

2004-08-23  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3674867> use new Security framework SPI's to reenable cert acquisition

        Reviewed by john.

        * WebCoreSupport.subproj/WebKeyGeneration.cpp:
        * WebCoreSupport.subproj/WebKeyGeneration.h:
        * WebCoreSupport.subproj/WebKeyGenerator.h:
        * WebCoreSupport.subproj/WebKeyGenerator.m:
        (-[WebKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]): re-enabled cert code, call Panther version on Panther, Tiger version on Tiger
        (-[WebKeyGenerator addCertificatesToKeychainFromData:]): ditto
        * WebCoreSupport.subproj/WebNewKeyGeneration.c: Added.
        (gnrAddContextAttribute):
        (gnrGetSubjPubKey):
        (gnrNullAlgParams):
        (gnrSign):
        (gnrFreeCssmData):
        (nssArraySize):
        (signedPublicKeyAndChallengeString):
        (addCertificateToKeychainFromData):
        (addCertificatesToKeychainFromData):
        * WebCoreSupport.subproj/WebNewKeyGeneration.h: Added.
        * WebKit.pbproj/project.pbxproj:

2004-08-20  David Hyatt  <hyatt@apple.com>

	Fix the directionality of the unicode hyphen so that on Panther it now matches Tiger.
	
        Reviewed by darin

        * Misc.subproj/WebUnicode.m:
        (_unicodeDirection):

2004-08-20  Richard Williamson   <rjw@apple.com>

	    Implemented new JNI abstraction.  We no longer invoke Java methods
	    directly with JNI, rather we call into the plugin.  This allows the
	    plugin to dispatch the call to the appropriate VM thread.  This
	    change should (will?) fix a whole class of threading related problems with
	    the Java VM.

        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge getAppletInView:]):

2004-08-20  Trey Matteson  <trey@apple.com>

	3655407 - Editing: -complete: method unimplemented (WebKit editing API)

	This feature is mostly implemented.  The only loose ends I know of are:

	3769654 - text insertions done via complete: should preserve case of full replacement string
	3769652 - positioning of complete: popup window wrong for right-to-left languages

        Reviewed by John

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLViewPrivate dealloc]):  Free new object.
        (-[WebHTMLView menuForEvent:]):  Bail on completion session.
        (-[WebHTMLView windowDidResignKey:]):  Ditto.
        (-[WebHTMLView windowWillClose:]):  Ditto.
        (-[WebHTMLView mouseDown:]):  Ditto.
        (-[WebHTMLView resignFirstResponder]):  Ditto.
        (-[WebHTMLView keyDown:]):  Bail on completion session if WebCore takes the event.
	Give the CompleteController a crack at the key event.
        (-[WebHTMLView _expandSelectionToGranularity:]):  Adopt method rename
        (-[WebHTMLView complete:]):  Make CompleteController, tell it to do its thing.
        (-[WebHTMLView checkSpelling:]):  Add ERROR().
        (-[WebHTMLView showGuessPanel:]): Add ERROR().
        (-[WebHTMLView _changeSpellingToWord:]): Add ERROR().
        (-[WebHTMLView ignoreSpelling:]): Add ERROR().

        (-[WebTextCompleteController initWithHTMLView:]):
        (-[WebTextCompleteController dealloc]):
        (-[WebTextCompleteController _insertMatch:]): Stick the new string into the doc.
        (-[WebTextCompleteController _buildUI]):  Make popup window.
        (-[WebTextCompleteController _placePopupWindow:]):  Position popup window.
        (-[WebTextCompleteController doCompletion]):  Lookup matches, display window.
        (-[WebTextCompleteController endRevertingChange:moveLeft:]):  Bail on complete: session.
        (-[WebTextCompleteController filterKeyDown:]):  Process keys while popup is up.
        (-[WebTextCompleteController _reflectSelection]):  Handle choice in popup.
        (-[WebTextCompleteController tableAction:]):  Handle double click in popup
        (-[WebTextCompleteController numberOfRowsInTableView:]):  Fill table with matches.
        (-[WebTextCompleteController tableView:objectValueForTableColumn:row:]):  Ditto.
        (-[WebTextCompleteController tableViewSelectionDidChange:]):  Handle selection change.
        * WebView.subproj/WebHTMLViewInternal.h:

2004-08-20  John Sullivan  <sullivan@apple.com>

        * English.lproj/StringsNotToBeLocalized.txt:
        checked this in; the only difference is that
        the strings were out of order.

2004-08-19  Richard Williamson   <rjw@apple.com>

        Continue to call old pollForAppletInView: in Tiger until
        we get an plugin that supports the new API.
		
        Reviewed by Chris.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge getAppletInView:]):
        * WebKit.pbproj/project.pbxproj:

=== Safari-158 ===

2004-08-19  Chris Blumenberg  <cblu@apple.com>

	Fixed typo in comment.

        * Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase _updateFileDatabase]):

2004-08-19  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3566336> CrashTracer: .2403 crashes at com.apple.WebKit: -[WebFileDatabase performSetObject:forKey:] + 0x94

        Reviewed by trey.

        * Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase _updateFileDatabase]): pass WebFileDatabase copies of the mutable dictionaries or else they may be accessed on a separate thread as the main thread is modifying them

2004-08-18  Richard Williamson   <rjw@apple.com>

        Replace horrible pollForAppletInView: with new
        webPlugInGetApplet.  The details of how the applet instance
        is provided now belong to the Java team.  Yeh.
		
        Reviewed by Chris.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge getAppletInView:]):

2004-08-17  Richard Williamson   <rjw@apple.com>

        Fixed <rdar://problem/3759093> Need PDF context menu: "Open in Preview" or other external app

        Added support for "Open with ..." in PDF view.
		
        Reviewed by Chris and Trey.

        * ChangeLog:
        * English.lproj/Localizable.strings:
        * English.lproj/StringsNotToBeLocalized.txt:
        * WebView.subproj/WebPDFView.h:
        * WebView.subproj/WebPDFView.m:
        (-[WebPDFView initWithFrame:]):
        (-[WebPDFView dealloc]):
        (applicationInfoForMIMEType):
        (-[WebPDFView path]):
        (-[WebPDFView menuForEvent:]):
        (-[WebPDFView setDataSource:]):
        (-[WebPDFView layout]):
        (-[WebPDFView viewDidMoveToHostWindow]):
        (-[WebPDFView openWithFinder:]):

2004-08-17  Richard Williamson   <rjw@apple.com>

        JNI needs both the jmethodID and return type.  Changed API to 
        pass both.
		
        Reviewed by Chris.

        * Plugins.subproj/WebJavaPlugIn.h:

2004-08-17  Trey Matteson  <trey@apple.com>

	3764147 - failure of subframe to load leaves links in parent doc broken

        Reviewed by Maciej.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _receivedMainResourceError:complete:]):
	Need to call [bridge end] in the case of an error, so WC can clean up.

=== Safari-157 ===

2004-08-15  Richard Williamson   <rjw@apple.com>

        More changes to np headers.
        
        Reviewed by Darin.

        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage load]):
        * Plugins.subproj/npapi.h:
        * Plugins.subproj/npfunctions.h:
        * Plugins.subproj/npruntime.h:

2004-08-13  Darin Adler  <darin@apple.com>

        Reviewed by Chris.

        - fixed <rdar://problem/3760924> Carbon path passed in NPP_StreamAsFile must be in local character set, not UTF-8

        * Plugins.subproj/WebBaseNetscapePluginStream.m:
        (CarbonPathFromPOSIXPath): Added. New function that uses the path pieces from an FSSpec.
        This has many advantages; the big one that fixes the bug is that it gives the mangled names
        that work even for files that have names that can't otherwise be encoded in Carbon-style
        path names. I didn't write this from scratch: I started with the method in Foundation
        and just changed it to use FSSpec.
        (-[WebBaseNetscapePluginStream destroyStream]): Remove code that used NSString and just call
        CarbonPathFromPOSIXPath instead.

        * Plugins.subproj/npapi.h: The Revision tag wanted to touch this file.
        I think we are going to have some trouble with this; I'd like to take that out.

        * English.lproj/StringsNotToBeLocalized.txt: Updated.

2004-08-12  Trey Matteson  <trey@apple.com>

        3761329 - query result links all dead in ingrammicro.com (sometimes)
        3761328 - links in some docs dead when doc is loaded from WebArchive

        Nasty problem.  It turns out that these result pages are a parent frame with two child
        frames.  One of the child frames is a 1 or 2 byte text document.  When the text child
        is the last doc to complete, because we use a Text rep instead of an HTMLRep, it turns
        out we never send [bridge end] from WebKit.  That mistake results in checkCompleted not
        being called enough in the part, and we never realize the load is done.  WebCore does
        not allow redirects to happen until the entire load is complete,  and  the links on this
        results page are actually little pieces of JS that set location to a generated URL.  Since
        redirects are not allowed these links all silently fail to do anything, and the doc never
        achieves a completed state where they will work.

        Solution is to make sure we always call [bridge end] from the DataSource instead of only
        the HTML rep doing it.

        Reviewed by Richard and Darin.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _finishedLoading]):  Call [bridge end] here for all kinds of docs.
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation finishedLoadingWithDataSource:]):  Don't call is just for HTMLReps.

2004-08-12  Richard Williamson   <rjw@apple.com>

        Bring npruntime.h and friends closer to compliance with
        latest spec.

        Reviewed by Maciej.

        * Plugins.subproj/npapi.h:
        * Plugins.subproj/npfunctions.h:
        * Plugins.subproj/npruntime.h:
        (_NPString::):
        (_NPString::_NPVariant::):
        * copy-webcore-files-to-webkit:

2004-08-12  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3761097> should be able to option-drag selection so HTML can be copied within a page

        Reviewed by rjw.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _isMoveDrag]): new, take into account the option key
        (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): call _isMoveDrag
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): call _isMoveDrag

2004-08-12  Richard Williamson   <rjw@apple.com>

        Quick fix for 3760903.  The real fix is described in 3760920.  Needed
        by Java plugin guys so they can be unblocked for feature freeze.
		
        Reviewed by Chris.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _reloadForPluginChanges]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView addSubview:]):

2004-08-12  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3760898> error pages in subframes attempt to load appledata URLs when reloaded

        Reviewed by darin.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _createItem:]): when setting the original URL of the history item, use the unreachable URL

=== Safari-156 ===

2004-08-11  Adele Amchan  <adele@apple.com>

        Reviewed by me, bug fix by Darin.

        - fixed <rdar://problem/3736477> Pages don't load if hard drive is named with non-ASCII Symbol

        * Plugins.subproj/WebBaseNetscapePluginStream.m:
        (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]):
        Use UTF8String instead of cString to convert the MIME type to a C string. Safer, since it can't
        ever fail due to encoding problems even though this string should always be ASCII.
        (-[WebBaseNetscapePluginStream destroyStream]): Use stringWithUTF8String to convert the path name
        to an NSString, since stringWithCString is deprecated (doesn't really matter since the path is always
        all ASCII). Fix the bug by calling fileSystemRepresentation on the NSString to turn it into a C
        string form. Even though the POSIX path can't have any non-ASCII characters in it, the Carbon path
        can, so we need to use this instead of cString which can fail depending on characters and encoding.

2004-08-09  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Trey.

	WebKit part of:

	- made basic marked text highlighting work to complete basic level of <rdar://problem/3704359> input method support not yet implemented for HTML editing

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView markedRange]): Use new bridge calls instead of internal marked range storage.
        (-[WebHTMLView hasMarkedText]): Likewise.
        (-[WebHTMLView unmarkText]): Likewise.
        (-[WebHTMLView _selectMarkedText]): Likewise.
        (-[WebHTMLView _selectRangeInMarkedText:]): Likewise.
        (-[WebHTMLView _selectionIsInsideMarkedText]): Likewise.
        (-[WebHTMLView _updateSelectionForInputManager]): Likewise.
        (-[WebHTMLView setMarkedText:selectedRange:]): Use direct bridge call instead
	of private _selectMarkedDOMRange: method, which would now be trivial.
        * WebView.subproj/WebHTMLViewInternal.h: Remove unneeded

2004-08-10  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - change name of WebMakeCollectable to WebNSRetainCFRelease so it fits into the
          "NS and CF retain counts are separate" mental model, rather than the "think about
          how garbage collection works" one

        * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Rename.
        * Misc.subproj/WebNSObjectExtras.h: (WebNSRetainCFRelease): Ditto.
        * Misc.subproj/WebNSURLExtras.m:
        (+[NSURL _web_URLWithData:relativeToURL:]): Ditto.
        (-[NSURL _web_URLWithLowercasedScheme]): Ditto.

2004-08-09  Trey Matteson  <trey@apple.com>

	3756599 - REGRESSION: hit assertion in KWQPageState invalidate

	By inspection I found a flaw in the recently added logic, although
	I have no steps to repro.  My theoretical explanation is that we would
	get two errors and go through _receivedMainResourceError: twice, which
	would cause the pageState to be invalidated twice, which is the only
	way I can see to hit the assert.

        Reviewed by Darin

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _receivedMainResourceError:]):  Clear the pageState out
	of the history item after it's been invalidated by WebCore.

2004-08-09  Richard Williamson   <rjw@apple.com>

        Inspired by Trey we have a much better approach for conditionally
        linking Quart.framework.  Instead of multiple targets we use 
        `` to invoke some inline script to extend COMMON_LDFLAGS as
        necessary.  Thanks Trey!
        
        Reviewed by Trey.

        * WebKit.pbproj/project.pbxproj:

2004-08-09  Trey Matteson  <trey@apple.com>

	Hookup UI for "Continuous Spelling" menu item.

        Reviewed by Richard.

        * WebView.subproj/WebView.m:
        (-[WebView validateUserInterfaceItem:]):  Enable and check the
	menu item to reflect our state.
        (-[WebView toggleContinuousSpellChecking:]):  Change type to
	IBAction, just cosmetic.
        * WebView.subproj/WebViewPrivate.h:

2004-08-08  Trey Matteson  <trey@apple.com>

	3745023 - Safari crashes trying to access anchor while downloading

	I bet this is behind a few other crashers as well.  In this bug the start of the
	download leaves a KWQPageState hanging around, and when that is freed it damages
	the part and view.  If you're still using that page, you're dead.

	The fix is to properly invalidate the PageState when we receive an error before
	reaching WebFrameCommitted state.  Normally this happens when a page is reheated
	from the PageState, but in this case we never manage to leave the page to begin
	with, although we've already created the PageState.

	Other errors besides the synthetic one download generates would have caused similar
	crashing.  Another example would be clicking on a second link before the load
	caused by clicking on the first link reached committed state.

        Reviewed by Richard

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _receivedMainResourceError:complete:]):  Let the frame do the
	main work (since it has access to the pageCache state).  Also renamed to make
	it clear that this is about an error for the main resource.
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _receivedMainResourceError:]):  Let WC know about the failure, as
	the DataSource used to, but now pass the pageCache state along too.
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient receivedError:]):  Call renamed method.
        (-[WebMainResourceClient cancelWithError:]):  Ditto.

2004-08-08  Vicki Murley  <vicki@apple.com>

        Reviewed by vicki (changes by rjw)
 
	- make "weak" linking with Quartz work with buildit

        * WebKit.pbproj/project.pbxproj: 

2004-08-06  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Maciej

        Finish off spellchecking support to HTML editing. Includes work to
        enable continuous spellchecking.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge isContinuousSpellCheckingEnabled]): Simple bridge method.
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer drawLineForMisspelling:withWidth:]): New method to add
        AppKit-style misspelling underline.

=== Safari-155 ===

2004-08-05  Darin Adler  <darin@apple.com>

        * WebView.subproj/WebHTMLView.m: Added a list of methods that NSTextView implements that we don't.
        All inside #if 0.

2004-08-05  Chris Blumenberg  <cblu@apple.com>

        Fixed unnecessary import of NSURLFileTypeMappings.

        * WebView.subproj/WebMainResourceClient.m:

2004-08-05  Richard Williamson   <rjw@apple.com>

        Make builds conditionally include -framework Quartz.
		
        Reviewed by Chris.

        * WebKit.pbproj/project.pbxproj:

2004-08-04  Darin Adler  <darin@apple.com>

        - fixed broken Deployment build

        * Carbon.subproj/HIWebView.m: (Click):
        Remove code that checks err variable before setting it.

2004-08-03  Richard Williamson   <rjw@apple.com>

        First cut at dirt simple PDF support.  This feature
        depends on Quartz.framework (parent of PDFKit), which only exists
        on Tiger.  So, we "weak" link against Quartz.
		
        We do very basic PDF rendering.  Coming up are support for
        "Find..." and linearized PDF (incremental).  Linearized PDF 
        support will require API changes in PDFKit.
		
        No UI is added to Safari, yet.
		
        Reviewed by John.

        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebDataSource.m:
        (+[WebDataSource _repTypesAllowImageTypeOmission:]):
        * WebView.subproj/WebFrameView.m:
        (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
        * WebView.subproj/WebPDFRepresentation.h: Added.
        * WebView.subproj/WebPDFRepresentation.m: Added.
        (-[WebPDFRepresentation finishedLoadingWithDataSource:]):
        (-[WebPDFRepresentation canProvideDocumentSource]):
        (-[WebPDFRepresentation documentSource]):
        (-[WebPDFRepresentation title]):
        * WebView.subproj/WebPDFView.h: Added.
        * WebView.subproj/WebPDFView.m: Added.
        (-[WebPDFView initWithFrame:]):
        (-[WebPDFView setDataSource:]):
        (-[WebPDFView dataSourceUpdated:]):
        (-[WebPDFView setNeedsLayout:]):
        (-[WebPDFView layout]):
        (-[WebPDFView viewWillMoveToHostWindow:]):
        (-[WebPDFView viewDidMoveToHostWindow]):

        Copied fix from Jaguar carbon/cocoa work.
		
        Reviewed by Darin (Jaguar version)

        * Carbon.subproj/CarbonWindowAdapter.h:
        * Carbon.subproj/CarbonWindowAdapter.m:
        (-[CarbonWindowAdapter relinquishFocus]):
        * Carbon.subproj/HIWebView.m:
        (Click):
        (OwningWindowChanged):
        (WindowHandler):

2004-08-03  David Hyatt  <hyatt@apple.com>

	Add the text/xsl MIME type as one that can be displayed.
	
        Reviewed by john

        * WebView.subproj/WebDataSource.m:
        (+[WebDataSource _repTypesAllowImageTypeOmission:]):
        * WebView.subproj/WebFrameView.m:
        (+[WebFrameView _viewTypesAllowImageTypeOmission:]):

2004-08-03  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Ken.

	- implemented enough of the NSTextInput protocol and added the
	proper calls to NSInputManager to allow input methods to
	work. However, the text is not marked yet.

        * WebView.subproj/WebHTMLViewInternal.h: Added new fields to track
	marked range.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView markedRange]): Implemented
        (-[WebHTMLView conversationIdentifier]): Implemented
        (-[WebHTMLView hasMarkedText]): Implemented
        (-[WebHTMLView unmarkText]): Implemented
        (-[WebHTMLView setMarkedText:selectedRange:]): Implemented - does
	not yet handle attributes in attributed strings
        (-[WebHTMLView insertText:]): Modified to handle replacing or abandoning
	the marked text when set.
        (-[WebHTMLView _selectMarkedText]): new helper method, self-explanatory
        (-[WebHTMLView _setMarkedDOMRange:]): hitto.
        (-[WebHTMLView _selectRangeInMarkedText:]): ditto
        (-[WebHTMLView _discardMarkedText]): ditto
        (-[WebHTMLView _selectionIsInsideMarkedText]): ditto
        (-[WebHTMLView _updateSelectionForInputManager]): ditto

	- did a bit of refactoring while I was in here.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _shouldReplaceSelectionWithText:givenAction:]): added this new
	helper method to simplify the common case of calling the shouldInsertText: delegate
        (-[WebHTMLView pasteAsPlainText:]): use it
        (-[WebHTMLView insertTab:]): ditto
        (-[WebHTMLView insertNewline:]): ditto
        (-[WebHTMLView _changeWordCaseWithSelector:]): ditto
        (-[WebHTMLView _changeSpellingToWord:]): ditto
        (-[WebHTMLView _selectionChanged]): ditto

2004-08-03  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3572737> Images not resizing at www.bmx-test.com (spoof nofix)

        Reviewed by darin.

        * WebCoreSupport.subproj/WebImageRendererFactory.m:
        (-[WebImageRendererFactory supportedMIMETypes]): hard code image/pjpeg to the list of image mime types that we can handle

2004-08-03  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - fixed <rdar://problem/3740937> ER: A way to turn a DOMRange into text (equivalent of -innerText)

        * DOM.subproj/DOMPrivate.h: Added.
        * WebKit.pbproj/project.pbxproj: Added DOMPrivate.h.
        * copy-webcore-files-to-webkit: Added DOMPrivate.h.

2004-08-02  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.

        WebKit part of fix for <rdar://problem/3631868> NSToolbar adoption: 
        Tab key should cycle around toolbar and page content

        * WebView.subproj/WebHTMLView.m:
        removed overrides of nextKeyView and previousKeyView
        (-[WebHTMLView nextValidKeyView]):
        call super only if we can't move the focus within the frame hierarchy
        (-[WebHTMLView previousValidKeyView]):
        ditto
        * WebView.subproj/WebHTMLViewInternal.h:
        removed nextKeyViewAccessShouldMoveFocus ivar

2004-08-02  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Update name of firstResponderIsSelfOrDescendantView, adding _web_ prefix to this SPI call.
        
        Do some work to make caret blinking in newly-created editable WebView's that are 
        similar in structure to Blot more "automatic".

        * Misc.subproj/WebNSViewExtras.h: Change name of firstResponderIsSelfOrDescendantView. Add _web_ prefix.
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_firstResponderIsSelfOrDescendantView]): Name change.
        (-[NSView _web_firstResponderCausesFocusDisplay]): Adds an additional check for whether the view's
        is first responder. This helps to make the focus setting in viewDidMoveToWindow work right.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView updateFocusDisplay]): Use _web_firstResponderCausesFocusDisplay now instead of 
        firstResponderIsSelfOrDescendantView.
        (-[WebHTMLView viewDidMoveToWindow]): Schedule call to updateFocusDisplay for the next crank of the
        run loop. The reason is that placing the caret in the just-installed view requires the HTML/XML 
        document to be available on the WebCore side, but it is not at the time this code is running. 
        However, it will be there on the next crank of the run loop. Doing this helps to make a 
        blinking caret appear in a new, empty window "automatic".
        (-[WebHTMLView performKeyEquivalent:]):  _web_firstResponderIsSelfOrDescendantView name change.
        * WebView.subproj/WebView.m:
        (-[WebView _performResponderOperation:with:]): _web_firstResponderIsSelfOrDescendantView name change.

2004-07-29  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John.

	Added stubbed-out versions of all the NSTextInput protocol
	methods, and put comments in places where we will need to call the
	input manager to make input methods work 100%.
	
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge respondToChangedSelection]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView mouseDown:]):
        (-[WebHTMLView mouseDragged:]):
        (-[WebHTMLView mouseUp:]):
        (-[WebHTMLView _interceptEditingKeyEvent:]):
        (-[WebHTMLView keyDown:]):
        (-[WebHTMLView _selectionChanged]):
        (-[WebHTMLView _delegateDragSourceActionMask]):
        (-[WebHTMLView validAttributesForMarkedText]):
        (-[WebHTMLView characterIndexForPoint:]):
        (-[WebHTMLView firstRectForCharacterRange:]):
        (-[WebHTMLView selectedRange]):
        (-[WebHTMLView markedRange]):
        (-[WebHTMLView attributedSubstringFromRange:]):
        (-[WebHTMLView conversationIdentifier]):
        (-[WebHTMLView hasMarkedText]):
        (-[WebHTMLView unmarkText]):
        (-[WebHTMLView setMarkedText:selectedRange:]):
        (-[WebHTMLView doCommandBySelector:]):
        (-[WebHTMLView insertText:]):
        * WebView.subproj/WebHTMLViewInternal.h:
        * WebView.subproj/WebView.m:

=== Safari-154 ===

2004-07-29  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - fill in some unimplemented methods

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView moveToBeginningOfDocument:]): Implement, using new document granularity.
        (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToBeginningOfParagraph:]): Implement, even though the underlying WebCore
        code is not yet implemented.
        (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToEndOfDocument:]): More of the same.
        (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToEndOfParagraph:]): More of the same.
        (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]): Ditto.
        (-[WebHTMLView pageDown:]): Added comment describing desired behavior.
        (-[WebHTMLView pageUp:]): Ditto.
        (-[WebHTMLView copyFont:]): Ditto.
        (-[WebHTMLView pasteFont:]): Ditto.
        (-[WebHTMLView changeAttributes:]): Ditto.
        (-[WebHTMLView indent:]): Ditto.

2004-07-28  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3737864> Can not download image from web by using drag and drop

        Reviewed by john.

        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]): On Tiger, to use NSFilesPromisePboardType with other pasteboard types, set the file types of the promise on the pasteboard as a property list instead of mucking with the NSFilePromiseDragSource class

2004-07-28  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John.

	- avoid triggering an assertion when using dead keys (like option-e)

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView insertText:]): Don't pass zero-length strings to
	WebCore. Dead-key input seems to insert empty strings as a side
	effect.

2004-07-28  Trey Matteson  <trey@apple.com>

	Spellchecking, Part I.  Basic spellcheck is working.  Spelling panel is hooked up.

	At this point, no special marking of misspellings, no grammar check, no context
	menu integration, no "check continually" mode.

        Reviewed by Ken.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge spellCheckerDocumentTag]):  Typical bridge glue.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView validateUserInterfaceItem:]):  Validate various spelling actions.
        (-[WebHTMLView checkSpelling:]):  Call WC for real work, update panel.
        (-[WebHTMLView showGuessPanel:]):  Show panel, call WC for real work.
        (-[WebHTMLView _changeSpellingToWord:]):  Apply correction to our doc.
        (-[WebHTMLView changeSpelling:]):  Simple pass through to above method.
        (-[WebHTMLView ignoreSpelling:]):  Tell checker to ignore the word.
        * WebView.subproj/WebView.m:
        (-[WebView _close]):  Call AK's closeSpellDocumentWithTag: for proper cleanup.

2004-07-27  John Sullivan  <sullivan@apple.com>

        Reviewed by Trey.
        
        WebKit part of fix for <rdar://problem/3622268> Reload failed pages when a 
        network problem is corrected, inc. using Network Diagnostics

        * WebView.subproj/WebFrame.m:
        (-[WebFrame reload]):
        This method did not handle unreachableURLs at all. The reason Safari's Reload
        did work with unreachableURLs was that Safari does "reloadObeyingLocationField"
        which never actually calls -[WebFrame reload]. Fixed by creating a fresh
        request for the previously-unreachable URL.

2004-07-26  Richard Williamson   <rjw@apple.com>

        Fixed 3739737.  When setting the focus to a NSView, set the focus
        carbon focus to kControlIndicatorPart.  kControlIndicatorPart is a
        placeholder value for use to indicate that Cocoa has the focus.  
	
        Reviewed by Ken.

        * Carbon.subproj/CarbonWindowAdapter.m:
        (-[CarbonWindowAdapter makeFirstResponder:]):
        * Carbon.subproj/HIWebView.m:
        (Click):
        (SetFocusPart):

2004-07-26  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3689734> dragging to an editable WebView does not scroll document

        Reviewed by rjw.

        * WebView.subproj/WebView.m:
        (-[WebView documentViewAtWindowPoint:]): new, factored from draggingDocumentViewAtWindowPoint:
        (-[WebView _draggingDocumentViewAtWindowPoint:]): call documentViewAtWindowPoint:
        (-[WebView _autoscrollForDraggingInfo:timeDelta:]): forward call to the document view
        (-[WebView _shouldAutoscrollForDraggingInfo:]): ditto

=== Safari-153 ===

2004-07-23  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Trey

        Fix for this bug:
        
        <rdar://problem/3738920> Caret blinks in inactive window

        As part of the fix, I cleaned up the way we handle special drawing that needs
        to be done in the HTML view that is first responder in the key window (e.g the
        drawing of text selection highlight and caret blinking).

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView updateFocusDisplay]): New method that centralizes the changes
        we need to make when the first responder-ness of the view or key-ness of the
        window changes.
        (-[WebHTMLView viewDidMoveToWindow]): Call new updateFocusDisplay helper.
        (-[WebHTMLView windowDidBecomeKey:]): Ditto.
        (-[WebHTMLView windowDidResignKey:]): Ditto.
        (-[WebHTMLView becomeFirstResponder]): Ditto.
        (-[WebHTMLView resignFirstResponder]): Ditto.

2004-07-22  Darin Adler  <darin@apple.com>

        * Plugins.subproj/npruntime.h: Update with new version from newer JavaScriptCore.

2004-07-21  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Trey

        * WebCoreSupport.subproj/WebBridge.m: Remove interceptEditingKeyEvent
        bridge call over. This method of handling editing key events is now
        obsolete.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView performKeyEquivalent:]): Send key event over to the 
        DOM if this view is or contains the first responder. This now
        happens unconditionally.
        (-[WebHTMLView keyDown:]): Send key event to the DOM, then see if
        the web view wants to interpret it an an editing key event. This
        is the new place to intercept key events for editing.

2004-07-21  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Add implementations for these methods. Formerly, they logged an error.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView moveToBeginningOfLine:]):
        (-[WebHTMLView moveToBeginningOfLineAndModifySelection:]):
        (-[WebHTMLView moveToEndOfLine:]):
        (-[WebHTMLView moveToEndOfLineAndModifySelection:]):

2004-07-21  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Added some more handlers for standard Cocoa key bindings. 
        These are "secrets" of NSText, meaning they are not public API, but we choose to mimic.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]):
        (-[WebHTMLView moveToBeginningOfLineAndModifySelection:]):
        (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]):
        (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]):
        (-[WebHTMLView moveToEndOfLineAndModifySelection:]):
        (-[WebHTMLView moveToEndOfParagraph:]):
        (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]):
        * WebView.subproj/WebView.h: Add these declarations to the comment in the header listing
        the responder-like methods we support.
        * WebView.subproj/WebView.m:
        (-[WebView moveToBeginningOfParagraphAndModifySelection:]):
        (-[WebView moveToEndOfParagraphAndModifySelection:]):
        (-[WebView moveToBeginningOfLineAndModifySelection:]):
        (-[WebView moveToEndOfLineAndModifySelection:]):
        (-[WebView moveToBeginningOfDocumentAndModifySelection:]):
        (-[WebView moveToEndOfDocumentAndModifySelection:]):

2004-07-20  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Richard

        * Misc.subproj/WebNSEventExtras.h: Added helper that returns whether
        a key event has a binding in the key binding manager.
        * Misc.subproj/WebNSEventExtras.m: 
        (-[NSEvent _web_keyBindingManagerHasBinding]): New helper mentioned above.
        * Plugins.subproj/npruntime.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView performKeyEquivalent:]): Add a check of whether the key event 
        has a binding in the key binding manager. This works around the fact that
        NSResponder's interpretKeyEvents does not return a value telling whether
        or not the key was handled. This now makes it possible for us to trap
        modified key events we know we can handle (like those command-key + arrow events 
        used for text navigation), while letting all others pass.

2004-07-20  Chris Blumenberg  <cblu@apple.com>

	Fixed:
	<rdar://problem/3580589> REGRESSION (1.1-1.2): can't open a new window for an image that has not loaded
	<rdar://problem/3612691> Missing image icons (blue ?) lack context menu

        Reviewed by john.

        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): if there is no image, but there is an image URL, provide image context menu items besides "Copy Image" 
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): don't drag an image with an actual image
        (-[WebHTMLView _mayStartDragAtEventLocation:]): ditto

2004-07-20  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Chris.

	<rdar://problem/3721690> REGRESSION (125.7-148u) clicking on links at macosx.apple.com/Builds does not load new page in frame
	
        * Plugins.subproj/npruntime.h:
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge canTargetLoadInFrame:]): Don't apply the restrictions to frames
	that are in the same window (Mozilla does this too).

2004-07-20  Richard Williamson   <rjw@apple.com>

		Fix for 3728558.  Fixed the key event handling in the carbon/cocoa
		integration code.  This does not fix the arrow keys not working on
		initial focus problem also mentioned in the bug.
		
		Bumped the version of the NP function structures.
		
        Reviewed by John.

        * Carbon.subproj/CarbonUtils.m:
        (WebInitForCarbon):
        (PoolCleaner):
        * Carbon.subproj/HIWebView.m:
        (OwningWindowChanged):
        (WindowHandler):
        * Plugins.subproj/npapi.h:

2004-07-20  Trey Matteson  <trey@apple.com>

	3733698	REGRESSION: sometimes dragging photos on homepage.mac.com leads to an assertion

	Relax an assertion, as we ran into a valid case where it's not true.

        Reviewed by Chris.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
	Removing this assert allows for the oddball case of a drag gesture that
	starts on one element, but then the element is no longer there when
	the drag is about to start.

2004-07-20  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

        Fix for this bug:
        
        <rdar://problem/3707505> HTMLCompose: blinking cursor in both an address text field and the message body

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView setCaretVisible:]): New helper. Calls over bridge to do the work.
        (-[WebHTMLView windowDidBecomeKey:]): This function cannot just assume that self is first responder
        (and do things like adjusting text background color and restoring focus rings). 
        First-responder-ness needs to be checked first. Now it is.
        (-[WebHTMLView windowDidResignKey:]): Ditto.
        (-[WebHTMLView becomeFirstResponder]): Call new helper to make caret visible.
        (-[WebHTMLView resignFirstResponder]): Call new helper to make caret invisible.

2004-07-12  Richard Williamson   <rjw@apple.com>

        Fixed 3721917.  The RealPlayer plugin doesn't support the new 
        NPPVpluginScriptableNPObject variable passed to NPP_GetValue and
        incorrectly returns NPERR_NO_ERROR.  We interpret this to the
        mean the variable has been set.  The variable has not been set 
        and will consequently be uninitialized.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView pluginScriptableObject]):

2004-07-19  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Richard

        Fix for this bug:
        
        <rdar://problem/3707504> HTMLCompose: key events are stolen by Web(HTML)View

        * Misc.subproj/WebNSViewExtras.h:
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView firstResponderIsSelfOrDescendantView]): New helper to 
        (-[WebHTMLView performKeyEquivalent:]): Do not pass key events through to the editing
        key handler unless the WebHTMLView is first responder or contains the first responder.
        This prevents the "stealing" of key events mentioned in the bug.
        * WebView.subproj/WebView.m:
        (-[WebView _performResponderOperation:with:]): Uses the new firstResponderIsSelfOrDescendantView
        helper. The code I replaced used the same logic as the new helper.

=== Safari-152 ===

2004-07-12  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Kevin.

	<rdar://problem/3673988>: (REGRESSION(141-144): connection assertion failure at http://traffic.511.org/sfgate)
	
        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate connectionDidFinishLoading:]):
	Don't check connection consistency if this load got cancelled
	while finishing, because in this case we have cleared the
	connection field already. This can happen when a redirect fires
	from an onload handler.

2004-07-12  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John.

	<rdar://problem/3632570>: (REGRESSION: SocialText.net wiki keeps asking for auth, even though pages load)

        * Misc.subproj/WebIconLoader.m:
        (-[WebIconLoader didReceiveAuthenticationChallenge:]): Ignore the challenge - we don't
	want an auth panel for favicons.
        (-[WebIconLoader didCancelAuthenticationChallenge:]): Ignore cancel, since we are ignoring
	the challenge.

2004-07-09  Chris Blumenberg  <cblu@apple.com>
	
	Allowed my change for 3715785 to compile on Jaguar.

        Reviewed by kocienda.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge canTargetLoadInFrame:]): don't use the DOM API since it doesn't exist on Jaguar, instead call the new domain method on the bridge

2004-07-09  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        * Plugins.subproj/npruntime.h: Updated license to lawyer-approved 
        joint Apple-Mozilla BSD-style license.

2004-07-08  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3720728> REGRESSION (125.8-146): Crash moving mouse over plugin at manray-photo.com
	
        Reviewed by john.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView pluginScriptableObject]): don't call NPP_GetValue unless the plug-in implements it

2004-07-08  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3706296> VIP: ifilm.com crashing reproducibly with Safari

        Reviewed by kocienda.

        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage launchRealPlayer]): don't release a NULL appURL

2004-07-08  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3650140> reproducible assertion failure going to plugin page with JavaScript disabled

        Reviewed by john.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): don't call NPP_NewStream and other stream methods if there is no JS result to deliver. This is what Mozilla does.
        (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): Return NPERR_GENERIC_ERROR if JS is disabled. This is what Mozilla does.

=== Safari-151 ===

2004-07-07  Trey Matteson  <trey@apple.com>

	3719051 - Safari doesn't update form inputs when a page was refreshed by javascript window.location
	... and at least 5 other cases in Radar

	Very similar problem to the Harvard PIN bug.  We need to be sure
	to not carry any state over when we are processing a client
	redirect, which reuses the same WebHistoryItem.

        Reviewed by John.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]):  Comment
        (-[WebFrame _opened]):  Clear form and scroll state on client redirect.

2004-07-06  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3715785> multiple frame injection vulnerability reported by Secunia, affects almost all browsers
	
        Reviewed by john, trey, kocienda.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge canTargetLoadInFrame:]): new method, return YES if the requesting frame is local, the target frame is an entire window or if the domain of the parent of the targeted frame equals this domain
        (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]): call canTargetLoadInFrame: to make sure we can load the request
        (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): ditto

2004-07-06  John Sullivan  <sullivan@apple.com>

        Reviewed by Trey.

        - fixed <rdar://problem/3717147> folder icon used for error page in back/forward 
        menu when iTunes is not installed

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]):
        When displaying the error page for an unreachable URL, leave the requested URL
        in the WebHistoryItem; don't clobber it with a bogus one that represents the
        error page. This not only avoids the wrong-icon problem, but should also help
        in cases where an unreachable URL becomes reachable later on.

2004-07-06  Trey Matteson  <trey@apple.com>

	3716053 - www.theage.com.au has extra back/forward items due to ads

	The real change was in WebKit.  Here was are just renaming a method and folding
	all the WebFrameLoadTypeOnLoadEvent uses to be WebFrameLoadTypeInternal, since there
	was never any difference anyway.

        Reviewed by Richard

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]):  rename part of the method.
        * WebView.subproj/WebFrame.m:  Nuke WebFrameLoadTypeOnLoadEvent.
        (-[WebFrame _transitionToCommitted:]):
        (-[WebFrame _checkLoadCompleteForThisFrame]):
        (-[WebFrame _loadItem:withLoadType:]):
        (-[WebFrame _itemForRestoringDocState]):
        * WebView.subproj/WebFramePrivate.h:

2004-07-06  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Trey
        
        Only register the editing delegate for those notifications for which it implements the callbacks.

        * WebView.subproj/WebView.m:
        (-[WebView registerForEditingDelegateNotification:selector:]):
        (-[WebView setEditingDelegate:]):

2004-07-06  Trey Matteson  <trey@apple.com>

	3294652 - Failed drag of links doesn't slide back

	The only reason for this is that because of some hacks, we lie to
	AK about the drag image offset, which means we slide back to
	slightly the wrong place.  But it's very minor, so we should
	just fix it.

        Reviewed by Ken.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
	Ask for slideback.

2004-07-02  Darin Adler  <darin@apple.com>

        Reviewed by Dave.

        - fixed problem where tabsToLinks and privateBrowsingEnabled did not work with non-
          standard WebPreferences objects

        * WebView.subproj/WebPreferences.m:
        (-[WebPreferences _valueForKey:]): New helper.
        (-[WebPreferences _stringValueForKey:]): Use _valueForKey.
        (-[WebPreferences _integerValueForKey:]): Use _valueForKey.
        (-[WebPreferences _boolValueForKey:]): Use _valueForKey.
        (-[WebPreferences tabsToLinks]): Use _boolValueForKey; this is the bug fix.
        (-[WebPreferences privateBrowsingEnabled]): Ditto.
        (+[WebPreferences _setIBCreatorID:]): Use copy instead of retain for keeping an NSString.

2004-07-01  Trey Matteson  <trey@apple.com>

	3556159 - Crashes in -[WebFrame(WebPrivate) _transitionToCommitted:] at www.mastercardbusiness.com

	We know from the line number of the crash that it is due to [self parentFrame]==nil.

	Looking at the HTML and that of the related bugs, they do special stuff with onload
	handlers.  It is no longer repro, presumably because the includes JS files changed,
	as the bugs only included the top level HTML.  I suspect that the problem is that the
	WebFrameLoadTypeOnLoadEvent case was added, and in some weird sequence specific to
	MasterCard, they hit a case where we would be in WebFrameLoadTypeOnLoadEvent mode but
	not have a parent frame.

	So we guard in the code against hitting a nil parentFrame, and log an error just in
	case this ever crops up again and we can learn more about it.

        Reviewed by Richard.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]):  Guard against nil parentFrame.

2004-07-01  John Sullivan  <sullivan@apple.com>

        Reviewed by Trey.
        
        - fixed these bugs:
        <rdar://problem/3709110> REGRESSION (Tiger): Pressing Tab key to move focus 
        onto links skips every other link
        <rdar://problem/3692576> focus ring is in odd place after clicking RSS button 
        with "Tab to links" enabled
        
        WebHTMLView has some trickery by which we advance the focused link when nextKeyView
        or previousKeyView is called within nextValidKeyView or previousValidKeyView. This
        broke in Tiger because AppKit now (sometimes at least) calls nextKeyView more than
        once within nextValidKeyView. Fixed 3709110 by making sure we only advance the focus 
        once within a call to nextValidKeyView or previousValidKeyView.
        
        Also, this same trickery didn't work right with hidden views. Fixed 3692576 by checking
        whether the view is hidden and bypassing the focus-moving trickery in that case.

        * WebView.subproj/WebHTMLViewInternal.h:
        renamed inNextValidKeyView -> nextKeyViewAccessShouldMoveFocus
        
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView nextKeyView]):
        now clears nextKeyViewAccessShouldMoveFocus
        (-[WebHTMLView previousKeyView]):
        ditto
        (-[WebHTMLView nextValidKeyView]):
        now doesn't set focus-moving trigger ivar if view is hidden or has hidden ancestor
        (-[WebHTMLView previousValidKeyView]):
        ditto

2004-06-30  Trey Matteson  <trey@apple.com>

	Dragging within a web view should be allowed to start when the window isn't key.

	A few months ago, Chris made this work, but it relied on the fact that all dragging
	was done in WebKit.  When WebCore got involved in dragging, it was broken.  Now we
	have a new scheme that gets it working again that properly involves WebCore.

	The general idea is that when AK asks us whether to accept the first mouse and do
	"delayed window ordering", we must consult WC to see if we might start a drag.  In
	addition, instead of these drags in non-active windows being started as a special
	case in WK, they go through the normal WK-WC drag machinery.  Finally to work in
	frames we have to drill to the deepest hit view in acceptsFirstMouse, because previous
	hacks to hitTest make the top-most WebHTMLView field all events for its view tree
	(which leads to it fielding all acceptFirstMouse messages too).

        Reviewed by John.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge mayStartDragAtEventLocation:]):  Glue change for new arg type.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
	firstMouseDownEvent ivar is no longer needed.
        (-[WebHTMLView _mayStartDragAtEventLocation:]):  Receives a location instead of a drag
	event, since we need to do this work when we have no drag event.  This means the
	check of the delay for text dragging is moved down to WebCore.
        (-[WebHTMLView acceptsFirstMouse:]):  Respond based on whether we might do a drag.
	This includes drilling to the deepest view the event hits, whereas we used to only
	respond considering the topmost WebHTMLView.
        (-[WebHTMLView shouldDelayWindowOrderingForEvent:]):  Ditto.
        (-[WebHTMLView mouseDown:]):  Get rid of special case where some activating
	mouseDown events weren't sent to WC.  We need to go through the whole pipeline
	now to get a drag started properly.
        (-[WebHTMLView mouseDragged:]):  Ditto, let WC start the drag.
        (-[WebHTMLView mouseUp:]):  firstMouseDownEvent ivar is no longer needed.
        * WebView.subproj/WebHTMLViewInternal.h:
        * WebView.subproj/WebHTMLViewPrivate.h:

2004-06-25  Trey Matteson  <trey@apple.com>

	Added new utility method.

        Reviewed by John.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _isDescendantOfFrame:]):   New code.
        * WebView.subproj/WebFramePrivate.h:

2004-06-24  Richard Williamson   <rjw@apple.com>

		Fixed <rdar://problem/3710313>: CGContext not zeroed when WebImageRenderer is copied
		The context ivar of WebImageRenderer wasn't being nil when the object was copied.

        Reviewed by Darin.

        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer copyWithZone:]):
        (-[WebImageRenderer dealloc]):
        (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):

2004-06-24  Trey Matteson  <trey@apple.com>

	3672725 - Assertion failure in URLCompletion code with particular set of bookmarks

	Problem was caused by a URL with unescaped unicodes getting into
	the Bookmarks file, presumably from import from IE.  We now test
	for this case and convert the data on the way in as if it were
	user-entered.

        Reviewed by John and Darin.

        * History.subproj/WebHistoryItem.m:
        (-[WebHistoryItem initFromDictionaryRepresentation:]):

2004-06-24  Trey Matteson  <trey@apple.com>

	3704950	drag image in DB ConfigBar has horizontal graphics turd	WebCore JavaScript

	When we generate a drag image (or a selection image too, for that matter) we
	translate the CTM using a CG call.  Later, WebImageRenderer adjusts the pattern
	phase based on the CTM of the focused view, which doesn't include our translate.
	So we must inform WebKit about the additional phase adjustment.

        Reviewed by Richard

        * WebCoreSupport.subproj/WebGraphicsBridge.h:
        * WebCoreSupport.subproj/WebGraphicsBridge.m:
        (-[WebGraphicsBridge setAdditionalPatternPhase:]):  New trivial setter.
        (-[WebGraphicsBridge additionalPatternPhase]):      ...and getter.
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer tileInRect:fromPoint:context:]):  Take any additional phase
	adjustment into account when setting phase.

2004-06-24  Trey Matteson  <trey@apple.com>

	3693420 - onbeforecut and onbeforepaste need real implementaion

        Reviewed by Chris.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView validateUserInterfaceItem:]):  Check with WebCore
	to see if cut, copy, paste should be enabled.

2004-06-24  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.
        
        - fixed <rdar://problem/3706792> 8A161: Choosing text encoding for 
        error page opens finder window!?

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _reloadAllowingStaleDataWithOverrideEncoding:]):
        take unreachableURL into account

2004-06-23  Richard Williamson   <rjw@apple.com>

	Implemented changes for latest npruntime.h.
	Made npruntime.h public.
		
        Reviewed by Chris.

        * Plugins.subproj/WebBaseNetscapePluginView.h:
        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView pluginScriptableObject]):
        (-[WebBaseNetscapePluginView forceRedraw]):
        (-[WebBaseNetscapePluginView getVariable:value:]):
        * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage load]):
        * Plugins.subproj/npapi.h:
        * Plugins.subproj/npapi.m:
        (NPN_GetValue):
        * Plugins.subproj/npfunctions.h:
        * Plugins.subproj/npruntime.h:
        * WebKit.pbproj/project.pbxproj:

2004-06-21  Darin Adler  <darin@apple.com>

        * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.

2004-06-21  Chris Blumenberg  <cblu@apple.com>

	Made WebKitErrorDescriptionPlugInCancelledConnection have its own description string
	(Not for software update branch)

        Reviewed by john.

        * English.lproj/Localizable.strings:
        * Misc.subproj/WebKitErrors.m:

2004-06-21  Chris Blumenberg  <cblu@apple.com>

	Made WebKitErrorDescriptionPlugInCancelledConnection properly reuse an already localized string to avoid loc changes.

        Reviewed by john.

        * ChangeLog:
        * Misc.subproj/WebKitErrors.m:

2004-06-21  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3701269> change in error handling behavior from 10.3.3 to 10.3.4 breaks unreleased Adobe PDF plug-in

        Reviewed by john.

        * Misc.subproj/WebKitErrors.m:
        (registerErrors): register string for WebKitErrorPlugInCancelledConnection
        * Misc.subproj/WebKitErrorsPrivate.h:
        * Plugins.subproj/WebBaseNetscapePluginStream.h:
        * Plugins.subproj/WebBaseNetscapePluginStream.m:
        (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]): use renamed WEB_REASON_PLUGIN_CANCELLED constant
        (-[WebBaseNetscapePluginStream destroyStream]): ditto
        * Plugins.subproj/WebNetscapePluginRepresentation.m:
        (-[WebNetscapePluginRepresentation cancelWithReason:]): if the reason is WEB_REASON_PLUGIN_CANCELLED, cancel the load with WebKitErrorPlugInCancelledConnection
        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream cancelWithReason:]): ditto

=== Safari-146 ===

2004-06-17  Richard Williamson   <rjw@apple.com>

		Changed private headers to be pubic for npapi.h and npfunctions.h.  That
		API was approved but never marked as public in the project file.  This change does
		not make npruntime.h public, which contains the not yet approved changes
		for script-ability of netscape plugins.  Unfortunately, that API will not
		be public for WWDC.
				
        Reviewed by Chris.

        * WebKit.pbproj/project.pbxproj:

2004-06-17  Trey Matteson  <trey@apple.com>

	3698514 - coordinates in ondragstart and ondrag events are wrong

	This part fixes the ondrag coords.  I thought Cocoa passed us the mouse location
	in draggedImage:movedTo:, but no, it's the position of the dragged image.
	WebCore needs the mouse location, so to calc that we must save away the
	offset of the mouse relative to the image when we kick off the drag.

        Reviewed by Maciej.

        * Misc.subproj/WebNSViewExtras.h:
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]): Add the ability
	to return the offset of the cursor wrt to the drag image, since this routine
	generates its own drag image and positions it.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
	Calc the offset of the cursor wrt to the drag image in the myriad of ways
	that we kick off the drag.	
        (-[WebHTMLView draggedImage:movedTo:]):  Adjust the location by the
	offset we save when we kicked off the drag.
        (-[WebHTMLView draggedImage:endedAt:operation:]):  Ditto.
        * WebView.subproj/WebHTMLViewInternal.h:
        * WebView.subproj/WebImageView.m:
        (-[WebImageView mouseDragged:]):  Pass nil for new arg, we don't care.

2004-06-16  David Hyatt  <hyatt@apple.com>

	In order to support truncation in Emerson, enhance pointToOffset so that it needn't include partial
	character glyphs (the left half of a glyph).
	
        Reviewed by mjs

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer pointToOffset:style:position:reversed:includePartialGlyphs:]):
        (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
        (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):

=== Safari-145 ===

2004-06-16  Darin Adler  <darin@apple.com>

        - fixed <rdar://problem/3696081> REGRESSION: <WebKit/CarbonUtils.h> doesn't build any more

        Reviewed by Trey.

        * Carbon.subproj/CarbonUtils.h: Fixed include. Need to include <ApplicationServices/ApplicationServices.h>
        to get CGImageRef; can't include an individual header.

2004-06-15  Richard Williamson   <rjw@apple.com>

	Fixed <rdar://problem/3695875>: Objective-C instances that are exported to JavaScript are too promiscuous
	
	Flip the policy for exposing Objective-C methods and properties.
	
	Reviewed by Trey.
	
	* Plugins.subproj/WebPluginPackage.m:
	(+[NSObject isSelectorExcludedFromWebScript:]):  Just return YES.
	(+[NSObject isKeyExcludedFromWebScript:]):  Just return YES.

2004-06-15  Trey Matteson  <trey@apple.com>

	3639321 - Harvard PIN authentication ends up sending PIN as clear text with POST action

	When going back/forward to an item, if we went there originally via a POST, 
	we ask the user about rePOSTing, and if they say yes, we resend the POST. 
	This rePOST case is triggered by the form data that we saved on the b/f item.
	In the case of this bug, the overall navigation was accomplished by a POST,
	then a redirect, causing a GET.  When a load of type redirect achieves the Committed
	stage, we replace the current URL in the b/f item with the new URL (instead of
	adding a new item to the b/f list).

	The bug is that at the same time we should also update the form data in
	the b/f item to match that of the new request.  I think this will normally
	mean nil'ing it out, unless there's some way for the result of the redirect
	to be another POST.
 
	The security leak occurred because we did not clear the form data on the item,
	so when going back or forward to the page, we would go into the rePOSTing code,
	even though we eventually reached that page via a GET (caused by the redirect).
	So we would do a POST to the redirect URL containing the private data sent in
	the original POST.

        Reviewed by mjs and rjw.

        * History.subproj/WebHistoryItem.m:
        (-[WebHistoryItem _setFormInfoFromRequest:]):  New method, just wraps 3 old set methods.
        (-[WebHistoryItem formData]):  Diff being dumb, no change.
        (-[WebHistoryItem formContentType]):  Ditto
        (-[WebHistoryItem formReferrer]): Ditto
        * History.subproj/WebHistoryItemPrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _createItem:]):  Call new WebHistoryItem method - no change in real behavior
        (-[WebFrame _transitionToCommitted:]):  Clear out the form data at the key time, to fix the bug.

2004-06-15  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3695724> WebKit plug-ins should only have to implement plugInViewWithArguments:

        Reviewed by rjw.

        * ChangeLog:
        * Plugins.subproj/WebPluginViewFactory.h: mention that plugInViewWithArguments is required
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _reloadForPluginChanges]): check for plugInViewWithArguments: not webPlugInInitialize
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView addSubview:]): ditto

2004-06-15  Trey Matteson  <trey@apple.com>

	3695240 - pasting plain text with newlines in it turns them into spaces

	Easy fix, we just need to consume the incoming data as text instead of markup.

        Reviewed by John and Darin.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]):

2004-06-15  Darin Adler  <darin@apple.com>

        - fixed crash introduced by my earlier change

        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageContext dealloc]): Set _cgsContext to 0 before calling super as before.
        (-[WebImageContext finalize]): Ditto.

2004-06-14  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed some things for GC that Patrick missed, or that happened after the branch

        * Carbon.subproj/HIWebView.m:
        (HIWebViewConstructor): Use CFRetain instead of retain.
        (HIWebViewDestructor): Use CFRelease instead of release.
        * Misc.subproj/WebFileDatabase.m:
        (-[WebFileDatabase initWithPath:]): Use release instead of dealloc.
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageContext finalize]): Had [super dealloc] here by mistake; change to [super finalize].
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer finalize]): Added.
        * WebView.subproj/WebDebugDOMNode.m:
        (-[WebDebugDOMNode initWithWebFrameView:]): Use release instead of dealloc.
        * WebView.subproj/WebRenderNode.m:
        (-[WebRenderNode initWithWebFrameView:]): Use release instead of dealloc.

2004-06-15  Trey Matteson  <trey@apple.com>

	Fix ASSERT/crash we get sometimes when dragging link images.  Turns
	out there was an uninitialized variable for the image size,
	so at random we would try to create huge images that could not
	be focused.
	
        Reviewed by Maciej and Darin.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _dragImageForLinkElement:]):  Trivial fix to
	not use += with uninited variable.

2004-06-14  Darin Adler  <darin@apple.com>

        Reviewed by me, code changes by Patrick Beard.

        - fixed <rdar://problem/3671507>: (WebKit should adopt GC changes and compile with GC enabled)

        * WebKit.pbproj/project.pbxproj: Added WebNSObjectExtras.h.
        * Misc.subproj/WebNSObjectExtras.h: Added. Includes WebMakeCollectable, a cover for
        CFMakeCollectable that returns type id, for less casting, and works on Panther as well
        as Tiger. Also declares finalize in NSObject so we can call super without warnings on Panther.

        * Carbon.subproj/CarbonWindowAdapter.m: Fixed header and includes a bit.
        (-[CarbonWindowAdapter finalize]): Added.
        * History.subproj/WebBackForwardList.m:
        (-[WebBackForwardList dealloc]): Got count outside loop.
        (-[WebBackForwardList finalize]): Added.
        * History.subproj/WebHistoryItem.m:
        (-[WebHistoryItem finalize]): Added.
        * Misc.subproj/WebFileDatabase.m:
        (-[WebFileDatabase _createLRUList:]): Use release on Panther, drain on Tiger.
        (+[WebFileDatabase _syncLoop:]): Ditto.
        (-[WebFileDatabase dealloc]): Removed, since we never deallocate objects of this class, and
        the method was untested.
        * Misc.subproj/WebKitErrors.m: (registerErrors): Use release on Panther, drain on Tiger.
        * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Use
        WebMakeCollectable. Also fixed indenting.
        * Misc.subproj/WebNSURLExtras.m:
        (+[NSURL _web_URLWithData:relativeToURL:]): Use WebMakeCollectable.
        (-[NSURL _web_URLWithLowercasedScheme]): Use WebMakeCollectable.
        (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Change code to use CFRelease
        to balance CFURLCreateStringByReplacingPercentEscapes CFString creation, not release.
        * Plugins.subproj/WebBaseNetscapePluginStream.m:
        (-[WebBaseNetscapePluginStream finalize]): Added.
        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView freeAttributeKeysAndValues]): Added. Shared code for dealloc and finalize.
        (-[WebBaseNetscapePluginView dealloc]): Call freeAttributeKeysAndValues.
        (-[WebBaseNetscapePluginView finalize]): Added.
        (-[WebBaseNetscapePluginView requestWithURLCString:]): Changed so that CFString objects are
        released with CFRelease, not release.
        (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): Fixed storage leak in
        error case. Made sure CFString object is released with CFRelease, not release.
        (-[WebBaseNetscapePluginView _postURLNotify:target:len:buf:file:notifyData:allowHeaders:]):
        Another CFString that needed to a CFRelease, not a release.
        (-[WebBaseNetscapePluginView status:]): Ditto.
        * Plugins.subproj/WebBasePluginPackage.m:
        (-[WebBasePluginPackage pathByResolvingSymlinksAndAliasesInPath:]): Changed code to
        CFRelease a CFURLRef, instead of release.
        (-[WebBasePluginPackage finalize]): Added.
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge fini]): Added. Shared code for dealloc and finalize.
        (-[WebBridge dealloc]): Call fini.
        (-[WebBridge finalize]): Added.
        * WebCoreSupport.subproj/WebGlyphBuffer.m:
        (-[WebGlyphBuffer finalize]): Added.
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageContext initWithBounds:context:]): Use CGContextRetain to avoid cast.
        (-[WebImageContext dealloc]): Tweaked.
        (-[WebImageContext finalize]): Added.
        (-[WebImageRenderer finalize]): Added.
        (-[WebPDFDocument finalize]): Added.
        * WebView.subproj/WebDataProtocol.m:
        (+[NSURL _web_uniqueWebDataURL]): Changed so that CFString object is released with
        CFRelease, not release.
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSourcePrivate dealloc]): Took non-release work out of here.
        (-[WebDataSource dealloc]): Moved it here.
        (-[WebDataSource finalize]): Added.
        (-[WebDataSource isLoading]): Use release on Panther, drain on Tiger.
        * WebView.subproj/WebFrame.m:
        (-[WebFramePrivate dealloc]): Took non-release work out of here.
        (-[WebFrame dealloc]): Moved it here.
        (-[WebFrame finalize]): Added.
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView finalize]): Added.
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation finalize]): Added.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLViewPrivate dealloc]): Moved non-release work out of here.
        (-[WebHTMLView dealloc]): Moved it here.
        (-[WebHTMLView finalize]): Added.
        * WebView.subproj/WebImageView.m:
        (-[WebImageView finalize]): Added.
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient finalize]): Added.
        * WebView.subproj/WebTextView.m:
        (-[WebTextView finalize]): Added.
        * WebView.subproj/WebView.m:
        (-[WebView finalize]): Added.

2004-06-14  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin
        
        Fix for this bug:
        
        <rdar://problem/3693202> WebView.h header unnecessarily lists NSResponder methods it overrides

        * WebView.subproj/WebView.h: NSResponder overrides now gathered in a comment section.

2004-06-13  Trey Matteson  <trey@apple.com>

	Support for DHTML cut/copy/paste.

        Reviewed by Chris

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView copy:]):  Give DHTML first crack at executing the command.
        (-[WebHTMLView cut:]):  Ditto
        (-[WebHTMLView paste:]):  Ditto

2004-06-14  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3674456> make new drag & drop API compatible with DHTML dragging

        Reviewed by trey.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): tweak
        * WebView.subproj/WebUIDelegate.h: removed old, added new methods
        * WebView.subproj/WebUIDelegatePrivate.h: moved new methods to public header
        * WebView.subproj/WebView.h: removed old, added new methods
        * WebView.subproj/WebView.m: moved methods around
        (-[WebView moveDragCaretToPoint:]): moved
        (-[WebView removeDragCaret]): moved
        (-[WebView _bridgeAtPoint:]): moved
        (-[WebView editableDOMRangeForPoint:]): moved
        * WebView.subproj/WebViewInternal.h: add new internal method
        * WebView.subproj/WebViewPrivate.h: moved new methods to public header

2004-06-14  Trey Matteson  <trey@apple.com>

	Use a different hack, as recommended by Kristin, to force the drag
	manager to exit a modal event wait it is in.  The hack is required
	to update the drag image on the fly.  Instead of posting a CG
	event we post at the AppKit level.

        Reviewed by Louch

        * WebCoreSupport.subproj/WebGraphicsBridge.m:
        (-[WebGraphicsBridge setDraggingImage:at:]):

2004-06-14  Chris Blumenberg  <cblu@apple.com>

	Fixed:
	<rdar://problem/3692668> REGRESSION: delay when images and links
	<rdar://problem/3692675> links should drag when dragging images that are links when drag source action is WebDragSourceActionLink

        Reviewed by trey.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _mayStartDragWithMouseDragged:]): cleaned up, only use selection delay for selections, allow links to be dragged when image dragging is disabled 

2004-06-12  Trey Matteson  <trey@apple.com>

	Small rearrangement to support dynamic changing of the drag
	image during DHTML dragging.

        Reviewed by John

        * WebCoreSupport.subproj/WebBridge.m:  Bridge glue moved to WebGraphicsBridge.
        * WebCoreSupport.subproj/WebGraphicsBridge.m:
        (FlipImageSpec):  Code moved from WebHTMLView.m.
        (-[WebGraphicsBridge setDraggingImage:at:]):  Ditto.  Plus, we've added a gross
	event posting hack to force CG drag manager to update the display when we set
	the drag image.
        * WebView.subproj/WebHTMLView.m:  Code moved to WebGraphicsBridge.
        * WebView.subproj/WebHTMLViewPrivate.h:

2004-06-11  Chris Blumenberg  <cblu@apple.com>

	Implemented the remainder of the drag & drop API.

        Reviewed by trey.

        * Misc.subproj/WebNSPasteboardExtras.h:
        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]): new
        * Misc.subproj/WebNSViewExtras.h:
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_dragImage:rect:event:pasteboard:source:]): simplified, this method now just creates a drag image and starts the drag
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge allowDHTMLDrag:UADrag:]): now calls _delegateDragSourceActionMask on WebHTMLView to interact with the delegate
        * WebView.subproj/WebDefaultUIDelegate.m:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): call new delegate method, cleaned-up a little
        (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): call drag caret methods on WebView instead of WebBridge so WebView can make sure only 1 HTML view has a drag cursor
        (-[WebHTMLView draggingCancelledWithDraggingInfo:]): ditto
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): ditto
        (-[WebHTMLView _delegateDragSourceActionMask]): new, gets drag source action mask from delegate
        * WebView.subproj/WebHTMLViewInternal.h:
        * WebView.subproj/WebImageView.h:
        * WebView.subproj/WebImageView.m:
        (-[WebImageView mouseDown:]): get the drag source action mask from the delegate
        (-[WebImageView mouseDragged:]): inform the delegate of the drag
        * WebView.subproj/WebView.m:
        (-[WebViewPrivate dealloc]): assert that dragCursorBridge is nil
        (-[WebView _close]): release dragCursorBridge
        (-[WebView _bridgeAtPoint:]): new
        (-[WebView editableDOMRangeForPoint:]): new API
        (-[WebView moveDragCaretToPoint:]): new API
        (-[WebView removeDragCaret]): new API
        (-[WebView _frameViewAtWindowPoint:]): moved so this can be called internally
        * WebView.subproj/WebViewInternal.h:
        * WebView.subproj/WebViewPrivate.h:

2004-07-10  Trey Matteson  <trey@apple.com>

	Prep work for latest delegate API for dragging.  In addition, I also straightened out all
	the cases of DHTML setting a drag image or setting pasteboard data, and how that would
	override WebKit's default behavior (which follows how WinIE does things).

        Reviewed by Chris.

        * Misc.subproj/WebNSViewExtras.h:
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_dragImage:archive:rect:URL:title:event:dragImage:dragLocation:writePasteboard:]):
	New args to allow WebCore override of dragImage and pasteboard data.
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge allowDHTMLDrag:UADrag:]):  New method to return the drag action info to WC.
        (-[WebBridge startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
	Pass along new args.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
	Allow WebCore to override drag image and pasteboard data for any type of drag.
        (-[WebHTMLView mouseDragged:]):  Pass NO for new args.
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebImageView.m:
        (-[WebImageView mouseDragged:]):  Pass NO/nil for new args.

=== Safari-144 ===

2004-06-10  Kevin Decker  <kdecker@apple.com>

        Reviewed by John.

        * WebView.subproj/WebResource.m:
        (-[WebResource description]):
            -added per request of cblu
        (-[WebResource _response]):
            -added this method to the header
        (-[WebResource _stringValue]):
            - gives the string value of the NSData representation
        * WebView.subproj/WebResourcePrivate.h:

2004-06-10  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        * WebCoreSupport.subproj/WebBridge.m: Removed undo-related methods.
        (-[WebBridge undoManager]): Added.

        * WebKit.pbproj/.cvsignore: Updated for new Xcode files.

2004-06-09  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        Fix for this bug:
        
        <rdar://problem/3672088>: "Editable WebViews should maintain a selection even when they're not firstResponder"

        Add some code to determine whether a WebHTMLView should maintain an
        inactive selection when the view is not first responder. Traditionally,
        these views have not maintained such selections, clearing them when the
        view was not first responder. However, for appls embedding this view as
        an editing widget, it is desirable to act more like an NSTextView. For
        now, however, the view only acts in this way when the web view is set to
        be editable with -[WebView setEditable:YES]. This will maintain
        traditional behavior for WebKit clients dating back to before this
        change, and will likely be a decent switch for the long term, since
        clients to ste the web view to be editable probably want it to act like
        a "regular" Cocoa view in terms of its selection behavior.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView updateTextBackgroundColor]): Add code to tell whether the view is resigning first responder,
        and if it is, use the inactive text background color.
        (-[WebHTMLView maintainsInactiveSelection]): New helper which does checks to see if the new selection
        behavior should be used, or whether we should continue with traditional WebKit behavior.
        (-[WebHTMLView resignFirstResponder]): Call new maintainsInactiveSelection helper. If true,
        do not clear the selection.
        * WebView.subproj/WebHTMLViewInternal.h: Add resigningFirstResponder flag.

2004-06-09  Chris Blumenberg  <cblu@apple.com>

	Implemented drag destination portion of the new drag & drop API.

        Reviewed by trey.

        * WebView.subproj/WebDefaultUIDelegate.m:
        (-[WebDefaultUIDelegate webView:dragDestinationActionMaskForDraggingInfo:]): new delegate implementation
        (-[WebDefaultUIDelegate webView:willPerformDragDestinationAction:forDraggingInfo:]): ditto
        * WebView.subproj/WebDocumentInternal.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): handle the action mask
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): ditto
        * WebView.subproj/WebUIDelegate.h:
        * WebView.subproj/WebUIDelegatePrivate.h:
        * WebView.subproj/WebView.m:
        (-[WebView _dragOperationForDraggingInfo:]): call new delegate methods
        (-[WebView performDragOperation:]): ditto
        * WebView.subproj/WebViewInternal.h:
        * WebView.subproj/WebViewPrivate.h:

2004-06-09  Richard Williamson   <rjw@apple.com>

        Implemented PDF rendering for the drawImage() function
        in Context2D.  This allows PDF files to be drawn in scaled
        or rotated context without rasterization artifacts.
        
        The PDF image is currently NOT cached.  Caching can/will be added
        as an optimization.  The hooks are already in place to flush
        the cache as necessary.
        
        Reviewed by John.

        * WebCoreSupport.subproj/WebImageRenderer.h:
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer dealloc]):
        (-[WebImageRenderer _needsRasterFlush]):
        (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
        (-[WebImageRenderer _PDFDocumentRef]):
        (-[WebImageRenderer _PDFDraw]):
        (-[WebImageRenderer _PDFDrawFromRect:toRect:operation:alpha:flipped:]):
        (-[WebImageRenderer MIMEType]):
        (ReleasePDFDocumentData):
        (-[WebPDFDocument initWithData:]):
        (-[WebPDFDocument dealloc]):
        (-[WebPDFDocument documentRef]):
        (-[WebPDFDocument mediaBox]):
        (-[WebPDFDocument bounds]):
        (-[WebPDFDocument adjustCTM:]):
        (-[WebPDFDocument setCurrentPage:]):
        (-[WebPDFDocument currentPage]):
        (-[WebPDFDocument pageCount]):

        Added back check for old plugin API.
        
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _reloadForPluginChanges]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView addSubview:]):
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge frameRequiredForMIMEType:URL:]):

2004-06-08  Trey Matteson  <trey@apple.com>

	In DHTML dragging there is no notion of registering for types, so we'd
	like to just pass all types down to WebCore.  It turns out that the per-type
	registration doesn't matter as far as the underlying drag service is
	concerned, so Cocoa is already getting called for any type.  We just hack and
	override a private method to ensure we accept any type.

        Reviewed by Chris.

        * WebView.subproj/WebView.m:
        (-[WebView _hitTest:dragTypes:]):  We accept any drag type if it is within
	our view, without overriding a subview's decision.

2004-06-08  Trey Matteson  <trey@apple.com>

	A DHTML drag source can now change the dragging image during the drag.  Currently
	it may only be set to a static image.

        Reviewed by John

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge setDraggingImage:at:]):  Typical bridge glue.
        * WebView.subproj/WebHTMLView.m:
        (FlipImageSpec):  New utility, copied from AppKit.
        (-[WebHTMLView _setDraggingImage:at:]):  Mostly copied from AppKit.  Sets the drag
	image using CG API.
        * WebView.subproj/WebHTMLViewPrivate.h:

2004-06-08  Chris Blumenberg  <cblu@apple.com>

	Fixed: <rdar://problem/3640423>: (REGRESSION: can't paste text copied from web page into Excel (due to HTML on the pasteboard?))

        Reviewed by darin.

        * WebView.subproj/WebHTMLView.m:
        (+[WebHTMLView _selectionPasteboardTypes]): don't include NSHTMLPboardType
        (-[WebHTMLView _selectedArchive]): removed markup string parameter
        (_selectionPasteboardTypes::if): don't put NSHTMLPboardType on the pasteboard
        * WebView.subproj/WebHTMLViewPrivate.h:

2004-06-07  Darin Adler  <darin@apple.com>

        Reviewed by Chris.

        - fixed <rdar://problem/3676761>: (REGRESSION: Text Bigger/Smaller commands are always disabled in TOT)

        * WebView.subproj/WebHTMLView.m: Add @interface declaration for WebTextSizing category
        on WebHTMLView. This must have gotten lost somewhere along the way.

2004-06-05  Trey Matteson  <trey@apple.com>

        WebKit no longer causes an endless stream of dragexit events to
        occur at the DHTML level when hovering over an element that is
        not accepting the drag.

        Reviewed by Chris

        * WebView.subproj/WebView.m:
        (-[WebView _dragOperationForDraggingInfo:]):  If the potential target refuses
        the item, don't turn around and immediately tell it to cancel the drag, which is
        what leads to the exit event happening at the DOM level.  If the target just
        refused the drag, it should not have anything it needs to cancel.

2004-06-03  Trey Matteson  <trey@apple.com>

        DHTML dragging uses the Cocoa NSDragOperation on both the source and dest ends.
        Most of the real work is in WebCore.

        Reviewed by rjw

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge startDraggingImage:at:operation:event:]):  Pass the drag op along.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:operation:event:]):  Remember drag op from WC.
        (-[WebHTMLView mouseDragged:]):  Pass None for the op (alternate code path that will
        be going away).
        (-[WebHTMLView draggingSourceOperationMaskForLocal:]):  Use the WC drag op.
        * WebView.subproj/WebHTMLViewInternal.h:
        * WebView.subproj/WebHTMLViewPrivate.h:

=== Safari-143 ===

2004-06-04  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3674921>: (can't drag an image from Desktop to Blot document)

        Reviewed by mjs.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _imageElementWithImageResource:]): factored out from _documentFragmentWithImageResource:
        (-[WebDataSource _documentFragmentWithImageResource:]): call _imageElementWithImageResource:
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _imageExistsAtPaths:]): new
        (-[WebHTMLView _documentFragmentWithPaths:]): new
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): handle NSFilenamesPboardType
        (+[WebHTMLView _insertablePasteboardTypes]): include NSFilenamesPboardType
        (-[WebHTMLView _canProcessDragWithDraggingInfo:]): check for NSFilenamesPboardType and check that the files are images

2004-06-04  Richard Williamson   <rjw@apple.com>

        Fixed crasher from last checkin.
        
        Reviewed by Ken.

        * Plugins.subproj/WebPluginDatabase.m:
        (+[WebPluginDatabase setAdditionalWebPlugInPaths:]):
        (pluginLocations):

2004-06-03  Richard Williamson   <rjw@apple.com>

        Add SPI to allow setting of plugin load path.
                Reviewed by Hyatt.

        * Plugins.subproj/WebPluginDatabase.h:
        * Plugins.subproj/WebPluginDatabase.m:
        (+[WebPluginDatabase setAdditionalWebPlugInPaths:]):
        (pluginLocations):

2004-06-03  Darin Adler  <darin@apple.com>

        Reviewed by Chris.

        - fixed <rdar://problem/3677038>: (Need SPI to get URL of favicon for a site)

        * Misc.subproj/WebIconDatabase.h: Add iconURLForURL: method.
        * Misc.subproj/WebIconDatabase.m: (-[WebIconDatabase iconURLForURL:]): Added.

2004-06-02  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Fix for these bugs:
        
        <rdar://problem/3675806>: "Make API name change for -webViewShouldBeginEditing:inDOMRange:"
        <rdar://problem/3675809>: "Make API name change for -webViewShouldEndEditing:inDOMRange:"

        New names are -webView:shouldBeginEditingInDOMRange: and -webView:shouldEndEditingInDOMRange:, 
        respectively.

        * WebView.subproj/WebDefaultEditingDelegate.m:
        (-[WebDefaultEditingDelegate webView:shouldBeginEditingInDOMRange:]):
        (-[WebDefaultEditingDelegate webView:shouldEndEditingInDOMRange:]):
        * WebView.subproj/WebEditingDelegate.h:
        * WebView.subproj/WebView.m:
        (-[WebView _shouldBeginEditingInDOMRange:]):
        (-[WebView _shouldEndEditingInDOMRange:]):

2004-06-02  Richard Williamson   <rjw@apple.com>

        conformsToProtocol:@protocol(WebPlugin) becomes
        respondsToSelector:@selector(webPlugInInitialize) because
        protocol was changed to an informal protocol.
                Reviewed by Kevin.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge frameRequiredForMIMEType:URL:]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView addSubview:]):

2004-06-01  Trey Matteson  <trey@apple.com>

        First cut at source side of DHTML dragging.  Most of the work is in WebCore.

        Reviewed by hyatt.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge startDraggingImage:at:event:]):  Added image and loc args for
        when WC tells WK to start a drag.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _startDraggingImage:at:event:]):  New image and loc args coming
        from WebCore.  Hysteresis is moved to WC.
        (-[WebHTMLView mouseDragged:]):  Call new _startDragging method.
        (-[WebHTMLView draggedImage:movedTo:]):  Pass event to WC.
        (-[WebHTMLView draggedImage:endedAt:operation:]):  Pass event to WC.
        (-[WebHTMLView mouseUp:]):  Reset firstMouseDownEvent.  Fixes bug where
        we would occasionally short-circuit WC event handling due to aliasing
        problem with this event.
        * WebView.subproj/WebHTMLViewPrivate.h:

2004-06-02  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed problem with timing of delegate callbacks in the back/forward cache case

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]): Move code to indicate page is done loading in the
        back/forward cache case from here ...
        (-[WebFrame _opened]): ... to here.

2004-06-01  Richard Williamson   <rjw@apple.com>

        Fixed deployment build warning.

        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):

2004-06-01  Richard Williamson   <rjw@apple.com>

        Added support for drawImage and drawImageFromRect to <CANVAS>
        Added support for composite attribute to <CANVAS>

        Reviewed by Trey.

        * WebCoreSupport.subproj/WebImageRenderer.h:
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageContext initWithBounds:context:]):
        (-[WebImageContext dealloc]):
        (-[WebImageContext saveGraphicsState]):
        (-[WebImageContext restoreGraphicsState]):
        (-[WebImageContext isDrawingToScreen]):
        (-[WebImageContext focusStack]):
        (-[WebImageContext setFocusStack:]):
        (-[WebImageContext bounds]):
        (-[WebImageContext isFlipped]):
        (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
        (-[WebImageRenderer dealloc]):
        (-[WebImageRenderer _beginRedirectContext:]):
        (-[WebImageRenderer _endRedirectContext:]):
        (-[WebImageRenderer _needsRasterFlush]):
        (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
        (-[WebImageRenderer drawImageInRect:fromRect:]):
        (-[WebImageRenderer flushRasterCache]):
        (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
        (-[WebImageRenderer tileInRect:fromPoint:context:]):
        * WebCoreSupport.subproj/WebImageRendererFactory.m:
        (-[WebImageRendererFactory imageRendererWithMIMEType:]):
        (-[WebImageRendererFactory imageRendererWithName:]):
        (-[WebImageRendererFactory CGCompositeOperationInContext:]):
        (-[WebImageRendererFactory setCGCompositeOperation:inContext:]):
        (-[WebImageRendererFactory setCGCompositeOperationFromString:inContext:]):

2004-06-01  John Sullivan  <sullivan@apple.com>

        Reviewed by Trey.
        
        Work on text-align API. Marked these bugs fixed:
        <rdar://problem/3655380>: (Editing: -alignCenter: method unimplemented (WebKit editing API))
        <rdar://problem/3655381>: (Editing: -alignJustified: method unimplemented (WebKit editing API))
        <rdar://problem/3655383>: (Editing: -alignLeft: method unimplemented (WebKit editing API))
        <rdar://problem/3655384>: (Editing: -alignRight: method unimplemented (WebKit editing API))        
        
        in favor of opening this bug:
        <rdar://problem/3675191>: (Editing: -alignLeft: and friends mostly implemented but not 
        yet working (WebKit editing API))        

        * English.lproj/StringsNotToBeLocalized.txt:
        updated for these changes
        
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView changeDocumentBackgroundColor:]):
        added a FIXME about why this is still not quite right
        (-[WebHTMLView _alignSelectionUsingCSSValue:]):
        new method, bottleneck for the various values
        (-[WebHTMLView alignCenter:]):
        call _alignSelectionUsingCSSValue:@"center"
        (-[WebHTMLView alignJustified:]):
        call _alignSelectionUsingCSSValue:@"justify"
        (-[WebHTMLView alignLeft:]):
        call _alignSelectionUsingCSSValue:@"left"
        (-[WebHTMLView alignRight:]):
        call _alignSelectionUsingCSSValue:@"right"

2004-06-01  John Sullivan  <sullivan@apple.com>

        Reviewed by Ken.
        
        - fixed <rdar://problem/3655378>: (Editing: -changeDocumentBackgroundColor: 
        method unimplemented (WebKit editing API))
        - made startSpeaking: actually work; previous implementation raised a DOMException

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]):
        added range parameter
        (-[WebHTMLView _entireDOMRange]):
        new convenience method
        (-[WebHTMLView changeDocumentBackgroundColor:]):
        now affects entire document, not just selected range, a la NSTextView
        (-[WebHTMLView changeColor:]):
        now passes in a range to _changeCSSColorUsingSelector:inRange:
        (-[WebHTMLView startSpeaking:]):
        now uses _entireDOMRange

2004-06-01  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3661505>: (REGRESSION (Safari-140) can't drag standalone images more than once)

        Reviewed by john.

        * WebView.subproj/WebImageView.m:
        (-[WebImageView mouseDown:]): set ignoringMouseDraggedEvents to NO. This line of code was deleted somehow.

2004-06-01  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.
        
        - fixed <rdar://problem/3657003>: (HTML Editing: Color panel doesn't work)

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _colorPanelColorAsStyleUsingSelector:]):
        new method, returns a DOMCSSStyleDeclaration *
        (-[WebHTMLView _changeCSSColorUsingSelector:]):
        new method, sets a color-related style attribute on the selection
        (-[WebHTMLView changeDocumentBackgroundColor:]):
        call _changeCSSColorUsingSelector: with @selector(setBackgroundColor:)
        (-[WebHTMLView changeColor:]):
        call _changeCSSColorUsingSelector: with @selector(setColor:); also added
        comments explaining why changeDocumentBackgroundColor: will never actually
        be called until an AppKit code-incest mess is straighted out.

2004-06-01  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _fontManagerOperationAsStyle]): Fixed typo in family-name code that caused
        family names to match when they should not.

2004-06-01  Chris Blumenberg  <cblu@apple.com>

        Made paste and drop ask the delegate before making any replacements.

        Reviewed by kocienda.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): renamed, now calls _shouldInsertFragment:replacingDOMRange:givenAction:
        (-[WebHTMLView _shouldInsertFragment:replacingDOMRange:givenAction:]): new, asks delegate
        (-[WebHTMLView concludeDragForDraggingInfo:]): now calls _shouldInsertFragment:replacingDOMRange:givenAction:
        (-[WebHTMLView paste:]): call renamed _pasteWithPasteboard:allowPlainText:
        (-[WebHTMLView pasteAsRichText:]): ditto

2004-05-28  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _fontManagerOperationAsStyle]):
        First cut at figuring out what operation the font manager is doing without
        digging into its private data structures.

2004-05-28  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - various editing-related improvements
        - fixed <rdar://problem/3655366>: (Editing: -selectParagraph: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655367>: (Editing: -selectLine: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655369>: (Editing: -selectWord: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655392>: (Editing: -uppercaseWord: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655393>: (Editing: -lowercaseWord: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655394>: (Editing: -capitalizeWord: method unimplemented (WebKit editing API))

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _alterCurrentSelection:direction:granularity:]): Removed the call to
        ensureCaretVisible. This is now handled on the other side of the bridge.
        (-[WebHTMLView moveDown:]): Changed to use WebSelectByLine granularity instead of
        WebSelectDown direction.
        (-[WebHTMLView moveDownAndModifySelection:]): Ditto.
        (-[WebHTMLView moveUp:]): Ditto.
        (-[WebHTMLView moveUpAndModifySelection:]): Ditto.
        (-[WebHTMLView _expandSelectionToGranularity:]): Added.
        (-[WebHTMLView selectParagraph:]): Implemented by calling _expandSelectionToGranularity.
        (-[WebHTMLView selectLine:]): Ditto.
        (-[WebHTMLView selectWord:]): Ditto.
        (-[WebHTMLView _fontManagerOperationAsStyle]): Added. Placeholder for the job of figuring
        out what style change to make based on NSFontManager.
        (-[WebHTMLView changeFont:]): Implemented, but not really tested because guts are still
        missing due to lack of above method.
        (-[WebHTMLView insertTab:]): Removed the call to ensureCaretVisible.
        (-[WebHTMLView insertNewline:]): Removed the call to ensureCaretVisible.
        (-[WebHTMLView insertParagraphSeparator:]): Made this insert a newline for now.
        (-[WebHTMLView _changeWordCaseWithSelector:]): Added.
        (-[WebHTMLView uppercaseWord:]): Implemented by calling _changeWordCaseWithSelector.
        (-[WebHTMLView lowercaseWord:]): Ditto.
        (-[WebHTMLView capitalizeWord:]): Ditto.
        (-[WebHTMLView deleteBackward:]): Removed the call to ensureCaretVisible.
        (-[WebHTMLView checkSpelling:]): Put a pile of AppKit code in here as a placeholder.
        (-[WebHTMLView startSpeaking:]): Use the new stringForRange: method instead of outerText.
        That way we can handle cases where the entire document is selected.
        (-[WebHTMLView insertText:]): Removed the call to ensureCaretVisible.

2004-05-28  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3672129>: (selection deselects when clicking editable WebView in background window)

        Fixed this problem by using NSTextView's approach of only allowing dragging on first mouse down.

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView acceptsFirstMouse:]): store the first mouse down
        (-[WebHTMLView mouseDown:]): Don't tell WebCore about the first mouse down event since only dragging can occur on the first mouse down.
        (-[WebHTMLView mouseDragged:]): Don't tell WebCore about the drags that occur after the first mouse down since only dragging can occur after the first mouse down.
        * WebView.subproj/WebHTMLViewInternal.h:

2004-05-28  Darin Adler  <darin@apple.com>

        * WebView.subproj/WebView.m: At Ken's suggestion, for better efficiency and safety,
        use _cmd rather than explicit selector names in the forwarding methods.

2004-05-28  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - implemented a few more editing operations, moved code from WebView to WebHTMLView

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge respondToChangedContents]): Call _updateFontPanel on the WebHTMLView, not the WebView.
        (-[WebBridge respondToChangedSelection]): Ditto.

        * WebView.subproj/WebHTMLView.m: Moved WebElementOrTextFilter class here from WebView and
        gave it a prefix so it won't conflict with developers' class names.
        (-[WebHTMLView _updateFontPanel]): Moved here from WebView.

        * WebView.subproj/WebView.m:
        (-[WebView toggleSmartInsertDelete:]): Added.
        (-[WebView toggleContinuousSpellChecking:]): Added.
        (-[WebView isContinuousGrammarCheckingEnabled]): Added.
        (-[WebView setContinuousGrammarCheckingEnabled:]): Added.
        (-[WebView toggleContinuousGrammarChecking:]): Added.
        (-[WebView setSmartInsertDeleteEnabled:]): Implemented. We have the flag now, although we
        still don't actually have smart insert and delete implemented.
        (-[WebView smartInsertDeleteEnabled]): Ditto.
        (-[WebView setContinuousSpellCheckingEnabled:]): Implemented.
        (-[WebView isContinuousSpellCheckingEnabled]): Implemented.
        (-[WebView spellCheckerDocumentTag]): Implemented.
        (-[WebView _preflightSpellCheckerNow:]): Added.
        (-[WebView _preflightSpellChecker]): Added.
        (-[WebView _continuousCheckingAllowed]): Added.

        * WebView.subproj/WebHTMLViewInternal.h: Added. We'll things here from WebHTMLViewPrivate so
        they are internal to the framework, rather than SPI.
        * WebKit.pbproj/project.pbxproj: Added WebHTMLViewInternal.h.
        * WebView.subproj/WebHTMLViewPrivate.h: Moved WebHTMLViewPrivate into the internal header.
        Despite its name, it's internal, not SPI.

        * WebView.subproj/WebViewPrivate.h: Moved WebViewPrivate into the internal header.
        Despite its name, it's internal, not SPI. Added a number of new operations which should
        be public API. We'll have to figure out what to do about API review and the WWDC deadline.
        * WebView.subproj/WebViewInternal.h: Removed _updateFontPanel method.

        * English.lproj/StringsNotToBeLocalized.txt: Update.

2004-05-27  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        The font panel now updates correctly, reflecting the current selection. There may
        still be some bugs and corner cases to handle, but this will work for a general
        implementation of the feature.

        * WebView.subproj/WebView.m:
        (+[ElementOrTextFilter filter]): Added. This filter will accept DOM elements and
        text nodes and skip everything else. This filter is used when walking a selection
        to determine the fonts in use.
        (-[ElementOrTextFilter acceptNode:]): DOM node filter implementation method.
        (-[WebView _fontFromStyle]): Removed, in lieu of new fontForCurrentPosition call on the bridge.
        (-[WebView _updateFontPanel]): Reworked to use a TreeWalker instead of a NodeIterator. This
        was done since the iterator must be rooted at the document root, but start iterating 
        at the start of the selection. TreeWalker's setCurrentNode allows this to be done.

2004-05-27  Kevin Decker  <kdecker@apple.com>

        * Plugins.subproj/WebScriptObject.h:

2004-05-27  Kevin Decker  <kdecker@apple.com>

        Reviewed by Ken.
        
        - error messages (eg. from JavaScriptCore) sent to the bridge now 
          get delievered to a new delegate method.  
    
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge addMessageToConsole:]):
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebUIDelegatePrivate.h:

=== Safari-142 ===

2004-05-27  Trey Matteson  <trey@apple.com>

        First cut at DHTML dragging, destination side.  Dragging text, files and URLs onto
        elements works.  Type conversion from NSPasteboard to MIME types is hardwired.
        No JS access yet to modifier keys, or operations mask.

        Reviewed by Chris.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): Call DHTML dragging via bridge.
        (-[WebHTMLView draggingCancelledWithDraggingInfo:]): Ditto.
        (-[WebHTMLView concludeDragForDraggingInfo:]): Ditto.
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebView.m:
        (-[WebView _setWebKitDragRespondsToDragging:]):  New SPI for finer grained control than the
        delegate currently has.
        (-[WebView _webKitDragRespondsToDragging]): Ditto.
        (-[WebView _commonInitializationWithFrameName:groupName:]):  Init new flag.
        (-[WebView _dragOperationForDraggingInfo:]):  Comment.
        * WebView.subproj/WebViewPrivate.h:

2004-05-27  Darin Adler  <darin@apple.com>

        * WebView.subproj/WebFrameView.m: (-[WebFrameView _scrollVerticallyBy:]): Added comment.

2004-05-27  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed <rdar://problem/3667948>: (REGRESSION: Page Down key goes down two pages when smooth scrolling is on)

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _scrollVerticallyBy:]): Added return value to indicate if any scrolling was done.
        This requires using secret AppKit methods; the public methods don't have a return value.
        (-[WebFrameView _pageVertically:]): Added return value to indicate if any scrolling was done.
        (-[WebFrameView scrollPageUp:]): Base call through to next responder on whether any scrolling was done,
        using return value, rather than looking at new scroll position. This was the cause of the bug,
        since with smooth scrolling no scrolling has happened yet when the function returns.
        (-[WebFrameView scrollPageDown:]): Ditto.

        - removed temporary DOMDocument method from WebView

        * WebView.subproj/WebView.m:
        (-[WebView computedStyleForElement:pseudoElement:]): Call getComputedStyle on the document that owns the
        element rather than on the document that currently contains the selection.
        (-[WebView _updateFontPanel]): Get the document from the DOM range rather than using the DOMDocument method.
        (-[WebView styleDeclarationWithText:]): Change this method to not use the DOMDocument method, but do the same
        job with inline code.

        * WebView.subproj/WebViewPrivate.h: Moved a recently-added category that is not SPI out of here.
        * WebView.subproj/WebViewInternal.h: Moved the category in here. And removed the DOMDocument method from it.

        - other changes

        * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.

        * copy-webcore-files-to-webkit: Change tabs to spaces. Quiet the script down by
        making it no longer echo each command or print messages about what it's doing by default.

2004-05-27  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - moved to new symlink technique for embedding frameworks

        * WebKit.pbproj/project.pbxproj: Get rid of embed-frameworks build step
        because we don't need it any more.

2004-05-27  Darin Adler  <darin@apple.com>

        - fixed Deployment build

        * WebView.subproj/WebView.m: (-[WebView concludeDragOperation:]):
        Got rid of ASSERT-only local variable.

2004-05-26  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Dave.

        - fix further problems with Emerson feed: redirection for RSS feeds

        This is done by removing removing the calls to defer callbacks
        while waiting for [... Maciej stopped typing here ...]

        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient continueAfterNavigationPolicy:formState:]):
        (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
        (-[WebMainResourceClient continueAfterContentPolicy:response:]):
        (-[WebMainResourceClient checkContentPolicyForResponse:]):

2004-05-26  Chris Blumenberg  <cblu@apple.com>

        Added and implemented proposed dragging API changes. These changes are necessary to make JS dragging work properly.

        Reviewed by trey.

        * WebView.subproj/WebDefaultUIDelegate.m:
        (-[WebDefaultUIDelegate webView:shouldDetermineDragOperationForDraggingInfo:dragOperation:]): instead of calling back to the WebView to get the default drag operation, return YES. Return NO in order to return a custom drag operation. Removed element parameter since another new API provides a way to get that.
        (-[WebDefaultUIDelegate webView:shouldProcessDragWithDraggingInfo:]): Removed element parameter since another new API provides a way to get that.
        * WebView.subproj/WebDocumentInternal.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): now returns a drag operation
        (-[WebHTMLView draggingCancelledWithDraggingInfo:]): moved
        * WebView.subproj/WebUIDelegatePrivate.h:
        * WebView.subproj/WebView.m:
        (-[WebView elementAtPoint:]): new proposed API
        (-[WebView dragOperationForDraggingInfo:]): removed code from this API that should be removed
        (-[WebView _dragOperationForDraggingInfo:]): call new API
        (-[WebView concludeDragOperation:]): call new API

2004-05-26  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - moved HTML editing operations from WebView to WebHTMLView, leaving only forwarding machinery
          at the WebView level

        - fixed <rdar://problem/3655412>: (Editing: -startSpeaking: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655414>: (Editing: -stopSpeaking: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655375>: (Editing: -pasteAsRichText: method unimplemented (WebKit editing API))

        * WebView.subproj/WebView.h: Added missing declaration of selectionAffinity. I think this
        omission was an editorial mistake.

        * WebView.subproj/WebView.m:
        (-[WebView searchFor:direction:caseSensitive:wrap:]): Use _frameForCurrentSelection directly,
        since it no longer returns nil.
        (-[WebView pasteboardTypesForSelection]): Use _frameForCurrentSelection instead of going through the bridge.
        (-[WebView _frameForCurrentSelection]): Renamed from _currentFrame and changed to return main frame
        rather than nil when called on WebView that has no current selection.
        (-[WebView _bridgeForCurrentSelection]): Moved in file.
        (-[WebView _updateFontPanel]): Removed the one call to _currentSelectionIsEditable here, since
        it was the only one left in this file. Eventually this code will move to WebHTMLView.
        (-[WebView _performResponderOperation:with:]): Name change.

        * WebView.subproj/WebDataSource.m: (-[WebDataSource _documentFragmentWithImageResource:]):
        Build document fragment using DOM instead of composing HTML text.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): Added allowPlainText boolean,
        moved method into new location in file so it can be in the right category, changed link pasting
        to use DOM instead of composing HTML text.
        (-[WebHTMLView _replaceSelectionWithPasteboard:selectReplacement:allowPlainText:]): Added allowPlainText
        boolean, moved method into new location in file so it can be in the right category.
        (-[WebHTMLView concludeDragForDraggingInfo:]): Pass YES for allowPlainText.
        (-[WebHTMLView keyDown:]): Set keyDownEvent field for use by workaround below.
        (-[WebHTMLView centerSelectionInVisibleArea:]): Moved here from WebView.
        (-[WebHTMLView _alterCurrentSelection:direction:granularity:]): Ditto.
        (-[WebHTMLView moveBackward:]): Ditto.
        (-[WebHTMLView moveBackwardAndModifySelection:]): Ditto.
        (-[WebHTMLView moveDown:]): Ditto.
        (-[WebHTMLView moveDownAndModifySelection:]): Ditto.
        (-[WebHTMLView moveForward:]): Ditto.
        (-[WebHTMLView moveForwardAndModifySelection:]): Ditto.
        (-[WebHTMLView moveLeft:]): Ditto.
        (-[WebHTMLView moveLeftAndModifySelection:]): Ditto.
        (-[WebHTMLView moveRight:]): Ditto.
        (-[WebHTMLView moveRightAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToBeginningOfDocument:]): Ditto.
        (-[WebHTMLView moveToBeginningOfLine:]): Ditto.
        (-[WebHTMLView moveToBeginningOfParagraph:]): Ditto.
        (-[WebHTMLView moveToEndOfDocument:]): Ditto.
        (-[WebHTMLView moveToEndOfLine:]): Ditto.
        (-[WebHTMLView moveToEndOfParagraph:]): Ditto.
        (-[WebHTMLView moveUp:]): Ditto.
        (-[WebHTMLView moveUpAndModifySelection:]): Ditto.
        (-[WebHTMLView moveWordBackward:]): Ditto.
        (-[WebHTMLView moveWordBackwardAndModifySelection:]): Ditto.
        (-[WebHTMLView moveWordForward:]): Ditto.
        (-[WebHTMLView moveWordForwardAndModifySelection:]): Ditto.
        (-[WebHTMLView moveWordLeft:]): Ditto.
        (-[WebHTMLView moveWordLeftAndModifySelection:]): Ditto.
        (-[WebHTMLView moveWordRight:]): Ditto.
        (-[WebHTMLView moveWordRightAndModifySelection:]): Ditto.
        (-[WebHTMLView pageDown:]): Ditto.
        (-[WebHTMLView pageUp:]): Ditto.
        (-[WebHTMLView selectParagraph:]): Ditto.
        (-[WebHTMLView selectLine:]): Ditto.
        (-[WebHTMLView selectWord:]): Ditto.
        (-[WebHTMLView copy:]): Moved down in file so it's in the right category.
        (-[WebHTMLView cut:]): Ditto.
        (-[WebHTMLView delete:]): Ditto.
        (-[WebHTMLView paste:]): Ditto.
        (-[WebHTMLView copyFont:]): Moved here from WebView.
        (-[WebHTMLView pasteFont:]): Ditto.
        (-[WebHTMLView pasteAsPlainText:]): Ditto.
        (-[WebHTMLView pasteAsRichText:]): Implemented this by calling the paste code with
        allowPlainText:NO; believe it or not, that's what this means in NSTextView.
        (-[WebHTMLView changeFont:]): Moved here from WebView.
        (-[WebHTMLView changeAttributes:]): Ditto.
        (-[WebHTMLView changeDocumentBackgroundColor:]): Ditto.
        (-[WebHTMLView changeColor:]): Ditto.
        (-[WebHTMLView alignCenter:]): Ditto.
        (-[WebHTMLView alignJustified:]): Ditto.
        (-[WebHTMLView alignLeft:]): Ditto.
        (-[WebHTMLView alignRight:]): Ditto.
        (-[WebHTMLView indent:]): Ditto.
        (-[WebHTMLView insertTab:]): Moved here from WebView, also call insertText rather than
        replaceSelectionWithText so it's undoable like a typed character.
        (-[WebHTMLView insertBacktab:]): Moved here from WebView.
        (-[WebHTMLView insertNewline:]): Moved here from WebView, also call insertText rather than
        replaceSelectionWithText so it's undoable like a typed character.
        (-[WebHTMLView insertParagraphSeparator:]): Moved here from WebView.
        (-[WebHTMLView changeCaseOfLetter:]): Ditto.
        (-[WebHTMLView uppercaseWord:]): Ditto.
        (-[WebHTMLView lowercaseWord:]): Ditto.
        (-[WebHTMLView capitalizeWord:]): Ditto.
        (-[WebHTMLView deleteForward:]): Ditto.
        (-[WebHTMLView deleteBackward:]): Ditto.
        (-[WebHTMLView deleteBackwardByDecomposingPreviousCharacter:]): Ditto.
        (-[WebHTMLView deleteWordForward:]): Ditto.
        (-[WebHTMLView deleteWordBackward:]): Ditto.
        (-[WebHTMLView deleteToBeginningOfLine:]): Ditto.
        (-[WebHTMLView deleteToEndOfLine:]): Ditto.
        (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto.
        (-[WebHTMLView deleteToEndOfParagraph:]): Ditto.
        (-[WebHTMLView complete:]): Ditto.
        (-[WebHTMLView checkSpelling:]): Ditto.
        (-[WebHTMLView showGuessPanel:]): Ditto.
        (-[WebHTMLView performFindPanelAction:]): Ditto.
        (-[WebHTMLView startSpeaking:]): Implemented this.
        (-[WebHTMLView stopSpeaking:]): Implemented this.
        (-[WebHTMLView insertText:]): Moved here from WebView.

        * WebView.subproj/WebHTMLViewPrivate.h: Removed declarations of methods that are neither
        SPI nor needed outside WebHTMLView.m.

        * WebView.subproj/WebViewInternal.h: Removed _currentFrame, and added _frameForCurrentSelection and
        _bridgeForCurrentSelection.

2004-05-25  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Richard.

        <rdar://problem/3652498>: new sniffing support is crashing
        
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient checkContentPolicyForResponse:]): Retain
        listener around call, in case delegate does something that ends up
        invalidating it, like navigating to a new URL.

2004-05-25  Chris Blumenberg  <cblu@apple.com>

        Fixed regression where undoing typing would undo character-by-character.

        Reviewed by kocienda.

        * WebView.subproj/WebView.m:
        (-[WebView insertText:]): call insertText: rather than replaceSelectionWithText:: since text insertion via insertText: is coalesced and this is the behavior we want here

2004-05-25  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Change postDidChangeSelectionNotification and postDidChangeNotification tp
        respondToChangedSelection and respondToChangedContents, respectively, to
        account for the fact that we do work in these calls other than post a
        notification. The need to clear the typing style on both kinds of changes
        inspired the name change.

        Add in support to set and access typing style. We don't do anything with it yet
        except store and return it. Using the typing style is still to come.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge respondToChangedContents]): Change name of functions as described.
        (-[WebBridge respondToChangedSelection]): Change name of functions as described.
        * WebView.subproj/WebView.m:
        (-[WebView dealloc:]): Dealloc typing style ivar.
        (-[WebView setTypingStyle:]): Change to set typing style ivar.
        (-[WebView typingStyle]): Return new typing style ivar.
        * WebView.subproj/WebViewPrivate.h: Add ivar for typing style.

2004-05-25  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John
        
        Improve _bridgeForCurrentSelection so that it is frame-savvy.
        Fixup setSelectedDOMRange:affinity: so that it uses the right bridge.

        * WebView.subproj/WebView.m:
        (-[WebView _bridgeForCurrentSelection]): Use _currentFrame not mainFrame. 
        (-[WebView _currentFrame]): Moved to WebView (WebInternal) category so _bridgeForCurrentSelection can use it.
        (-[WebView setSelectedDOMRange:affinity:]): Derive the bridge to use from the range passed in; _bridgeForCurrentSelection
        is not the right way to get at the document for the range.
        * WebView.subproj/WebViewInternal.h: Add _currentFrame declaration.

2004-05-24  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - fixed <rdar://problem/3666022>: (REGRESSION: crash from infinite regress in -[WebFrameView(WebPrivate) scrollPageDown:])

        * WebView.subproj/WebView.m:
        (-[WebView _performResponderOperation:sender:]): Helper method that knows how to pass on operations
        to the responder chain, allowing us to implement operations that will get passed to views inside
        us as necessary. Moved a few methods to this, and soon will move even more.
        (-[WebView scrollLineDown:]): Use the above method.
        (-[WebView scrollLineUp:]): Ditto.
        (-[WebView scrollPageDown:]): Ditto.
        (-[WebView scrollPageUp:]): Ditto.
        (-[WebView copy:]): Ditto.
        (-[WebView cut:]): Ditto.
        (-[WebView paste:]): Ditto.
        (-[WebView delete:]): Ditto.
        (-[WebView insertBacktab:]): Ditto.

2004-05-24  Chris Blumenberg  <cblu@apple.com>

        Improved editing via drag
 
        Reviewed by kocienda.

        * WebView.subproj/WebDataSource.m: 
        (-[WebDataSource _documentFragmentWithImageResource:]): made this method return a fragment instead of replace the selection so that the caller do other things with the fragment
        (-[WebDataSource _documentFragmentWithArchive:]): ditto
        (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): call renamed methods
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebDocumentInternal.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _documentFragmentFromPasteboard:]): made this method return a fragment instead of replace the selection so that the caller do other things with the fragment
        (-[WebHTMLView _replaceSelectionWithPasteboard:selectReplacement:]): new
        (-[WebHTMLView paste:]): call _replaceSelectionWithPasteboard:selectReplacement:
        (-[WebHTMLView dragOperationForDraggingInfo:]): handle the case where the destination is editable, but the source is not
        (-[WebHTMLView draggingCancelledWithDraggingInfo:]): new, removes drag caret
        (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): remove drag caret when we can't handle the drag
        (-[WebHTMLView concludeDragForDraggingInfo:]): instead of calling paste, move the selection when doing a move and replace the drag caret when doing a copy
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebView.m:
        (-[WebViewPrivate dealloc]):
        (-[WebView _setDraggingDocumentView:]): new
        (-[WebView _dragOperationForDraggingInfo:]): if the current dragging document view changes, tell the previous dragging document view that dragging cancelled 
        (-[WebView draggingExited:]): new, tell the previous dragging document view that dragging cancelled
        (-[WebView concludeDragOperation:]): release the dragging document view
        (-[WebView replaceSelectionWithNode:]): pass the selectReplacement BOOL to the bridge
        (-[WebView replaceSelectionWithText:]): ditto
        (-[WebView replaceSelectionWithMarkupString:]): ditto
        (-[WebView replaceSelectionWithArchive:]): ditto
        (-[WebView pasteAsPlainText:]): ditto
        (-[WebView insertTab:]): ditto
        (-[WebView insertText:]): ditto
        * WebView.subproj/WebViewPrivate.h: 

2004-05-24  John Sullivan  <sullivan@apple.com>

        Reviewed by Dave.
        
        - added private RSSFeedReferrer field to WebHistoryItem so RSS feeds in the
        back/forward list can remember what page (if any) they were initiated from.

        * History.subproj/WebHistoryItem.m:
        new RSSFeedReferrer ivar in private structure
        (-[WebHistoryItemPrivate dealloc]):
        release RSSFeedReferrer
        (-[WebHistoryItem copyWithZone:]):
        copy RSSFeedReferrer
        (-[WebHistoryItem RSSFeedReferrer]):
        return RSSFeedReferrer
        (-[WebHistoryItem setRSSFeedReferrer:]):
        set RSSFeedReferrer

        * History.subproj/WebHistoryItemPrivate.h:
        declare -RSSFeedReferrer and -setRSSFeedReferrer:

2004-05-22  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - implemented some of the trivial WebView editing operations; some had bug reports, to wit:
        - fixed <rdar://problem/3655342>: (Editing: -centerSelectionInVisibleArea: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655398>: (Editing: -deleteWordBackward: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655397>: (Editing: -deleteWordForward: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655387>: (Editing: -insertBacktab: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655386>: (Editing: -insertTab: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655351>: (Editing: -moveWordBackward: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655352>: (Editing: -moveWordBackwardAndModifySelection: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655353>: (Editing: -moveWordForward: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655354>: (Editing: -moveWordForwardAndModifySelection: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655374>: (Editing: -pasteAsPlainText: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655362>: (Editing: -scrollLineDown: method unimplemented (WebKit editing API))
        - fixed <rdar://problem/3655363>: (Editing: -scrollLineUp: method unimplemented (WebKit editing API))

        * WebView.subproj/WebView.m:
        (-[WebView centerSelectionInVisibleArea:]): Implemented. The implementation isn't perfect, but it's hooked
        up. It simply calls ensureCaretVisible for now.
        (-[WebView moveBackward:]): Implemented. The WebCore API already has a way to specify backward as opposed
        to left. A separate issue is the fact that these operations don't have bi-di-savvy implementations, but
        now this method is hooked up and will work at least for left-to-right text.
        (-[WebView moveBackwardAndModifySelection:]): Ditto.
        (-[WebView moveForward:]): Ditto.
        (-[WebView moveForwardAndModifySelection:]): Ditto.
        (-[WebView moveWordBackward:]): Ditto.
        (-[WebView moveWordBackwardAndModifySelection:]): Ditto.
        (-[WebView moveWordForward:]): Ditto.
        (-[WebView moveWordForwardAndModifySelection:]): Ditto.
        (-[WebView scrollLineDown:]): Forward to WebFrameView.
        (-[WebView scrollLineUp:]): Ditto.
        (-[WebView scrollPageDown:]): Ditto.
        (-[WebView scrollPageUp:]): Ditto.
        (-[WebView delete:]): Implemented. Follows pattern used in cut, copy, and paste.
        (-[WebView pasteAsPlainText:]): Implemented. Calls delegate, then replaceSelectionWithText: on the bridge.
        (-[WebView insertTab:]): Implemented. Calls delegate, then replaceSelectionWithText: on the bridge.
        (-[WebView insertBacktab:]): Implemented. Does nothing. If we ever change so that you can use a WebView as
        a field editor, then we might have to add code here.
        (-[WebView deleteWordForward:]): Implement by calling moveForwardAndModifySelection: and then delete:.
        Might not be a perfect implementation in the presence of delegates who refuse to delete because it will
        change the selection even if the delete is disallowed.
        (-[WebView deleteWordBackward:]): Implement by calling moveBackwardAndModifySelection: and then delete:.
        Same issue about about delegates as deleteWordForward:.

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _pasteFromPasteboard:]): Added a FIXME.

        * DOM.subproj/DOMViews.h: Updated from recent change to WebCore.

2004-05-21  Richard Williamson   <rjw@apple.com>

        Removed _bindObject:forFrame: SPI.

        Reviewed by Chris.

        * WebView.subproj/WebView.m:
        * WebView.subproj/WebViewPrivate.h:

=== Safari-141 ===

2004-05-21  Darin Adler  <darin@apple.com>

        Reviewed by Ken and Chris.

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _pasteFromPasteboard:]): Call replaceSelectionWithText:
        instead of replaceSelectionWithMarkupString: when pasting plain text.

        * WebView.subproj/WebDataSource.m: (-[WebDataSource _replaceSelectionWithMarkupString:baseURL:]):
        Remove bogus check for empty markup. There's nothing wrong with an empty string, and no reason
        that replacing with empty string should be a no-op instead of a delete.

2004-05-20  Darin Adler  <darin@apple.com>

        Reviewed by Chris.

        - fixed <rdar://problem/3662383>: (REGRESSION: drag slide-back sometimes causes link to load)

        * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge handleMouseDragged:]):
        Added BOOL result to handleMouseDragged:.
        * WebView.subproj/WebHTMLViewPrivate.h: Added BOOL result to _handleMouseDragged:.

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _handleMouseDragged:]): Added BOOL result,
        returning YES when the drag started, and no when the hysteresis has not yet been overcome.

2004-05-20  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

        Provide the methods to glue the WebView's editing delegate so that these methods work:
        
        <rdar://problem/3655316>: "Editing: -webViewShouldBeginEditing:inDOMRange: method unimplemented (WebKit editing API)"
        <rdar://problem/3655317>: "Editing: -webViewShouldEndEditing:inDOMRange: method unimplemented (WebKit editing API)"

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge shouldBeginEditing:]): New method used to glue delegate to focus shifts.
        (-[WebBridge shouldEndEditing:]): Ditto.
        * WebView.subproj/WebView.m:
        (-[WebView _shouldBeginEditingInDOMRange:]): Ditto.
        (-[WebView _shouldEndEditingInDOMRange:]): Ditto.
        * WebView.subproj/WebViewPrivate.h: Ditto.

2004-05-20  Richard Williamson   <rjw@apple.com>

        Fixed typo in header comment.

        Reviewed by Ken.

        * Plugins.subproj/WebScriptObject.h:

2004-05-19  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3462627>: (API: Need a way to disable/customize dragging)

        Reviewed by john.

        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_writeImage:URL:title:archive:types:]): fixed bug that caused exception
        * WebView.subproj/WebDefaultUIDelegate.m:
        (-[WebDefaultUIDelegate webView:shouldBeginDragForElement:dragImage:mouseDownEvent:mouseDraggedEvent:]): new, returns YES
        (-[WebDefaultUIDelegate webView:dragOperationForDraggingInfo:overElement:]): new, returns [WebView dragOperationForDraggingInfo:]
        (-[WebDefaultUIDelegate webView:shouldProcessDragWithDraggingInfo:overElement:]): new, returns YES
        * WebView.subproj/WebDocumentInternal.h: added WebDocumentDragging and WebDocumentElement for document dragging
        * WebView.subproj/WebDocumentPrivate.h: moved WebDocumentSelection to WebDocumentInternal.h
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _actionInformationForNavigationType:event:originalURL:]): 
        * WebView.subproj/WebHTMLView.h:
        * WebView.subproj/WebHTMLView.m:
        (+[WebHTMLView _insertablePasteboardTypes]): new 
        (-[WebHTMLView _handleMouseDragged:]): call shouldBeginDragForElement:::: delegate API
        (-[WebHTMLView _mayStartDragWithMouseDragged:]): call renamed elementAtPoint SPI
        (-[WebHTMLView initWithFrame:]): don't register for drag types since this is handled at the WebView
        (-[WebHTMLView menuForEvent:]): call renamed elementAtPoint SPI
        (-[WebHTMLView _isSelectionEvent:]): call renamed elementAtPoint SPI
        (-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]): rather than unregistering drag types on the WebView, just tell it that we're dragging
        (-[WebHTMLView draggedImage:endedAt:operation:]): ditto
        (-[WebHTMLView _canProcessDragWithDraggingInfo:]): new
        (-[WebHTMLView dragOperationForDraggingInfo:]): new WebDocumentDragging SPI
        (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): ditto
        (-[WebHTMLView concludeDragForDraggingInfo:]): ditto
        (-[WebHTMLView elementAtPoint:]): renamed from _elementAtPoint since this is part of the WebDocumentElement SPI
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebImageView.h:
        * WebView.subproj/WebImageView.m:
        (-[WebImageView elementAtPoint:]): new
        (-[WebImageView menuForEvent:]): call elementAtPoint
        (-[WebImageView mouseDragged:]): rather than unregistering drag types on the WebView, just tell it that we're dragging
        (-[WebImageView draggedImage:endedAt:operation:]): ditto
        * WebView.subproj/WebTextView.h:
        * WebView.subproj/WebTextView.m:
        (-[WebTextView _elementAtWindowPoint:]): new
        (-[WebTextView elementAtPoint:]): new
        (-[WebTextView menuForEvent:]): call _elementAtWindowPoint
        * WebView.subproj/WebView.h:
        * WebView.subproj/WebView.m:
        (-[WebViewPrivate dealloc]): removed draggedTypes ivar
        (+[WebView URLFromPasteboard:]): implemented
        (+[WebView URLTitleFromPasteboard:]): implemented
        (-[WebView _registerDraggedTypes]): moved
        (-[WebView _frameViewAtWindowPoint:]): new
        (-[WebView _draggingDocumentViewAtWindowPoint:]): new
        (-[WebView _elementAtWindowPoint:]): new
        (-[WebView dragOperationForDraggingInfo:]): updated this API to handle subviews that may want to handle drags
        (-[WebView _dragOperationForDraggingInfo:]): new, handles UI delegate for drag control
        (-[WebView draggingEntered:]): call _dragOperationForDraggingInfo:
        (-[WebView draggingUpdated:]): ditto
        (-[WebView concludeDragOperation:]): work with the UI delegate and the subview to handle what happens
        * WebView.subproj/WebViewPrivate.h:

2004-05-19  Richard Williamson   <rjw@apple.com>

        Removed extraneous tabs that were added (by XCode?).
        
        * DOM.subproj/DOM-compat.h:
        * Plugins.subproj/WebScriptObject.h:

2004-05-19  Richard Williamson   <rjw@apple.com>

        Updated header copy script to only copy if modified headers
        are different.

        * copy-webcore-files-to-webkit:

2004-05-19  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt and Darin

        Fix for this bug:
        
        <rdar://problem/3643230>: "can't tab out of contentEditable Elements"

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge interceptEditingKeyEvent:]): Renamed from _editingKeyDown. Also now returns
        a BOOL to report whether the event was handled or not.
        * WebView.subproj/WebView.m:
        (-[WebView _interceptEditingKeyEvent:]): Also renamed from _editingKeyDown. Now includes
        a check if the web view is editable and whether the event is a tab key event. If the former
        is not true and the latter is, the key is not intercepted. This causes the tab to shift once
        the key is processed by other non-editing key-handling mechanisms.
        * WebView.subproj/WebViewPrivate.h: Changed declaration due to name change.

2004-05-19  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge isEditable]): Return the isEditable value for the
        WebView which contains this bridge's frame.

2004-05-19  Darin Adler  <darin@apple.com>

        - fixed headers with licenses mangled by Xcode auto-indenting

        * DOM.subproj/DOMExtensions.h:
        * WebCoreSupport.subproj/WebGraphicsBridge.h:
        * WebCoreSupport.subproj/WebGraphicsBridge.m:

2004-05-18  David Hyatt  <hyatt@apple.com>

        Improve layout scheduling.
        Reviewed by kocienda

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToLayoutAcceptable]):
        (-[WebFrame _checkLoadCompleteForThisFrame]):
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation finishedLoadingWithDataSource:]):

2004-05-18  Richard Williamson   <rjw@apple.com>

        Finished implementation of windowScriptObject.
                Reviewed by Maciej.

        * WebView.subproj/WebView.m:
        (-[WebView windowScriptObject]):

2004-05-18  Richard Williamson   <rjw@apple.com>

        Added WebKit portion of webView:windowScriptObjectAvailable:
        implementation.  Still need to implement creating the WebScriptObject
        wrapper on the WebCore side.
        
        Reviewed by Maciej.

        Removed "_" from _setPageWidthForPrinting:.  This method facilitates
        a work-around for carbon printing.  At some point we may make this
        method public API.
                Reviewed by Chris.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge overrideMediaType]):
        (-[WebBridge windowObjectCleared]):
        * WebView.subproj/WebDefaultFrameLoadDelegate.m:
        (-[WebDefaultFrameLoadDelegate webView:windowScriptObjectAvailable:]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView setPageWidthForPrinting:]):

2004-05-18  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3520322>: "can't use <WebKit/HIWebView.h> or <WebKit/CarbonUtils.h> from non-Objective C"

        * Carbon.subproj/CarbonUtils.h: Added ifdefs so file compiles when included from non-Objective-C.
        Changed style to match other Carbon headers a bit more closely. Also remove unnecessary includes.
        * Carbon.subproj/HIWebView.h: Ditto.

        - fixed <rdar://problem/3648505>: "this text file scrolls to the second line instead of first when pressing home"

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _scrollToTopLeft]): Scroll to origin.y instead of assuming that top is 0; can be non-0 for text view.
        (-[WebFrameView _scrollToBottomLeft]): Use NSMaxY instead of height for the same reason.

2004-05-17  David Hyatt  <hyatt@apple.com>

        Fix for performance regression in PLT caused by not setting _timeOfLastCompletedLoad, causing
        page cache to release during the benchmark.
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _setState:]):

2004-05-17  Chris Blumenberg  <cblu@apple.com>

        Implemented new WebView pasteboard methods. Made a lot of factoring changes related to pasteboard management.

        Reviewed by john.

        * Misc.subproj/WebNSPasteboardExtras.h:
        * Misc.subproj/WebNSPasteboardExtras.m:
        (+[NSPasteboard _web_writableTypesForURL]): renamed to not include "drag" these types are also used for copying
        (+[NSPasteboard _web_writableTypesForImage]): new
        (-[NSPasteboard _web_bestURL]): tweak
        (-[NSPasteboard _web_writeURL:andTitle:types:]): take an array of types that this method should write, don't declare the types since this complicates things for the caller
        (-[NSPasteboard _web_writeImage:URL:title:archive:types:]): ditto
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_dragImage:archive:rect:URL:title:event:]): call renamed methods
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate copyLinkToClipboard:]): call code factored out to WebView
        (-[WebDefaultUIDelegate copyImageToClipboard:]): ditto
        * WebView.subproj/WebDocumentPrivate.h:
        * WebView.subproj/WebHTMLView.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _selectedRTFData]): new factored out method
        (-[WebHTMLView _writeSelectionToPasteboard:]): factored code out to writeSelectionWithPasteboardTypes:toPasteboard:
        (-[WebHTMLView _dragImageForLinkElement:]): tweak
        (-[WebHTMLView _handleMouseDragged:]): call renamed methods
        (-[WebHTMLView pasteboardTypesForSelection]): new
        (-[WebTextView writeSelectionWithPasteboardTypes:toPasteboard:]): new, code moved from _writeSelectionToPasteboard:
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebImageView.h:
        * WebView.subproj/WebImageView.m:
        (-[WebImageView writeImageToPasteboard:types:]): call renamed methods
        (-[WebImageView copy:]):
        (-[WebImageView writeSelectionToPasteboard:types:]): call renamed methods
        * WebView.subproj/WebTextView.h:
        * WebView.subproj/WebTextView.m:
        (-[WebTextView pasteboardTypesForSelection]): new
        (-[WebTextView writeSelectionWithPasteboardTypes:toPasteboard:]): new
        * WebView.subproj/WebView.m:
        (-[WebView _writeImageElement:withPasteboardTypes:toPasteboard:]): new
        (-[WebView _writeLinkElement:withPasteboardTypes:toPasteboard:]): mew
        (-[WebView dragOperationForDraggingInfo:]): implemented API
        (-[WebView draggingEntered:]): call API
        (-[WebView draggingUpdated:]): ditto
        (-[WebView concludeDragOperation:]): ditto
        (-[WebView pasteboardTypesForSelection]): implemented API
        (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]): ditto
        (-[WebView pasteboardTypesForElement:]): ditto
        (-[WebView writeElement:withPasteboardTypes:toPasteboard:]): ditto
        * WebView.subproj/WebViewPrivate.h:

2004-05-17  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Remove overrides in WebView for scrollPageDown and scrollPageUp.
        NSView behavior gives us just what we want, and there is no
        special behavior required for editing.

        <rdar://problem/3655364>: "Editing: -scrollPageDown: method unimplemented (WebKit editing API)"
        <rdar://problem/3655365>: "Editing: -scrollPageUp: method unimplemented (WebKit editing API)"

        * WebView.subproj/WebView.h: Comment methods out and add a note about why.
        * WebView.subproj/WebView.m: Remove stubbed out implementation.

2004-05-14  Vicki Murley  <vicki@apple.com>

        Reviewed by mjs.
 
        <rdar://problem/3642427>: framework marketing number should be 2.0 for DoubleBarrel release

        * WebKit.pbproj/project.pbxproj: change CFBundleShortVersionString to 2.0

2004-05-14  David Hyatt  <hyatt@apple.com>

        Eliminate timedLayout.
        Reviewed by darin

        * WebView.subproj/WebFrame.m:
        (-[WebFramePrivate dealloc]):
        (-[WebFrame _detachFromParent]):
        (-[WebFrame _transitionToLayoutAcceptable]):
        (-[WebFrame _setState:]):
        (-[WebFrame _checkLoadCompleteForThisFrame]):
        (-[WebFrame stopLoading]):
        * WebView.subproj/WebFramePrivate.h:

=== Safari-140 ===

2004-05-14  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3655495>: (exception loading applets)

        Reviewed by kocienda.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge pluginViewWithPackage:attributes:baseURL:]): when calling old cocoa plug-ins, use old keys

2004-05-14  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3655204>: (repro assertion failure and crash loading java applets)

        Reviewed by kocienda.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge pluginViewWithPackage:attributes:baseURL:]): call pluginViewWithArguments: for old Cocoa plug-ins

2004-05-14  Chris Blumenberg  <cblu@apple.com>

        Copied headers from WebCore.

        * DOM.subproj/DOMCore.h:
        * DOM.subproj/DOMEvents.h:

2004-05-14  Ken Kocienda  <kocienda@apple.com>

        Reviewed by me

        * Plugins.subproj/WebPluginController.m:
        (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]): Fixed a compile error: undeclared identifier. 
        Looked like a typo.

2004-05-13  Richard Williamson   <rjw@apple.com>

        Backed out mistaken change that I didn't mean to checkin.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):

2004-05-13  Richard Williamson   <rjw@apple.com>

        Updated to reflect new API.

        Reviewed by Chris.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge setIsSelected:forView:]):
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _reloadForPluginChanges]):

2004-05-13  Chris Blumenberg  <cblu@apple.com>

        Fixed some indenting issues in public headers.

        * Plugins.subproj/WebJavaPlugIn.h:
        * Plugins.subproj/WebPlugin.h:
        * Plugins.subproj/WebScriptObject.h:
        * WebView.subproj/WebEditingDelegate.h:
        * WebView.subproj/WebFrameView.h:
        * WebView.subproj/WebPolicyDelegate.h:
        * WebView.subproj/WebResourceLoadDelegate.h:
        * WebView.subproj/WebView.h:

2004-05-13  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Chris

        Moved -DOMDocument convenience back to private header.
        I mistakenly moved it to the public header earlier today.

        * WebView.subproj/WebView.h: Removed
        * WebView.subproj/WebViewPrivate.h: Re-added

2004-05-13  Richard Williamson   <rjw@apple.com>

        Updated to implementation to reflect new API.  Left old SPI
        in place for compatibility.  Can remove when the Java plug-in
        updates.

        Reviewed by Chris.

        * Plugins.subproj/WebPlugin.h:
        * Plugins.subproj/WebPluginContainer.h:
        * Plugins.subproj/WebPluginController.h:
        * Plugins.subproj/WebPluginController.m:
        (-[WebPluginController startAllPlugins]):
        (-[WebPluginController stopAllPlugins]):
        (-[WebPluginController addPlugin:]):
        (-[WebPluginController destroyAllPlugins]):
        (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
        (-[WebPluginController showURL:inFrame:]):
        (-[WebPluginController webPlugInContainerShowStatus:]):
        (-[WebPluginController showStatus:]):
        (-[WebPluginController webPlugInContainerSelectionColor]):
        (-[WebPluginController selectionColor]):
        (-[WebPluginController webFrame]):

2004-05-13  Chris Blumenberg  <cblu@apple.com>

        - Added stubs for WebView action and drag & drop customization API's
        - Fixed: <rdar://problem/3616555>: (API: Make DOM extensions and WebKit DOM operations public)

        Reviewed by rjw.

        * DOM.subproj/WebDOMOperations.h: added remaining DOM operations
        * DOM.subproj/WebDOMOperationsPrivate.h:
        * Misc.subproj/WebKit.h: added new public headers
        * WebKit.pbproj/project.pbxproj:
        * WebKit.exp: added symbol for WebElementDOMNodeKey
        * WebView.subproj/WebUIDelegate.h: added new UI delegate methods
        * WebView.subproj/WebView.h: added new pasteboard related methods
        * WebView.subproj/WebView.m:
        (+[WebView URLFromPasteboard:]): new stub
        (+[WebView URLTitleFromPasteboard:]): new stub
        (-[WebView dragOperationForDraggingInfo:]): new stub
        (-[WebView pasteboardTypesForSelection]): new stub
        (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]): new stub
        (-[WebView pasteboardTypesForElement:]): new stub
        (-[WebView writeElement:withPasteboardTypes:toPasteboard:]): new stub
        * WebView.subproj/WebViewPrivate.h:

2004-05-13  Richard Williamson   <rjw@apple.com>

        Changed imports of all DOM headers.  DOM headers
        should be imported using the normal #import <WebCore/foo.h>,
        they import is modified when copied to WebKit.

        Other approved API changes.  Currently unimplemented.

        Reviewed by Chris.

        * ChangeLog:
        * DOM.subproj/DOM.h:
        * DOM.subproj/DOMCSS.h:
        * DOM.subproj/DOMCore.h:
        * DOM.subproj/DOMEvents.h:
        * DOM.subproj/DOMExtensions.h:
        * DOM.subproj/DOMHTML.h:
        * DOM.subproj/DOMRange.h:
        * DOM.subproj/DOMStylesheets.h:
        * DOM.subproj/DOMTraversal.h:
        * DOM.subproj/DOMViews.h:
        * Plugins.subproj/WebPlugin.h:
        * Plugins.subproj/WebPluginContainer.h:
        * Plugins.subproj/WebPluginPackage.m:
        * Plugins.subproj/WebPluginViewFactory.h:
        * Plugins.subproj/WebScriptObject.h:
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
        (-[WebBridge pluginViewWithPackage:attributes:baseURL:]):
        * WebKit.exp:
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebFrameLoadDelegate.h:
        * WebView.subproj/WebView.h:
        * WebView.subproj/WebView.m:
        (-[WebView windowScriptObject]):
        * copy-webcore-files-to-webkit:

2004-05-13  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Kevin

        Move WebKit editing APIs to public API files.

        * WebCoreSupport.subproj/WebBridge.m: Add WebEditingDelegate include.
        * WebKit.pbproj/project.pbxproj: Go Xcode!
        * WebView.subproj/WebDefaultEditingDelegate.m: Remove WebViewPrivate include; add WebEditingDelegate include.
        * WebView.subproj/WebEditingDelegate.h: Added. New file.
        * WebView.subproj/WebView.h: Move API-approved interfaces to this file.
        * WebView.subproj/WebView.m: Add WebEditingDelegate include.
        * WebView.subproj/WebViewPrivate.h: Move API-approved interfaces from this file.

2004-05-12  Chris Blumenberg  <cblu@apple.com>

        Fixed: 
        <rdar://problem/3633296>: (Japanese input is not working properly in Carbon Web Kit applications (including CarbonWeb))
        <rdar://problem/3631390>: (can't toggle between Input Methods (IMEs) using cmd-space in Carbon Web Kit applications)

        Reviewed by rjw.

        * Carbon.subproj/CarbonWindowAdapter.m:
        (-[CarbonWindowAdapter sendSuperEvent:]): call [NSInputContext processInputKeyBindings:inEvent] just as NSApp does
        * Carbon.subproj/HIWebView.m:
        (HIWebViewEventHandler): [NSApp setWindowsNeedUpdate:YES] must be called before events so that ActivateTSMDocument is called to set an active document. Without an active document, TSM will use a default document which uses a bottom-line input window which we don't want.

2004-05-11  Chris Blumenberg  <cblu@apple.com>

        Fixed:
        <rdar://problem/3616537>: (API: Make WebResource, WebArchive and related API's public)
        <rdar://problem/3616471>: (API: provide way to get from WebFrame to DOMDocument and vice versa)

        Reviewed by rjw.

        * DOM.subproj/WebDOMOperations.h:
        * DOM.subproj/WebDOMOperations.m:
        (-[DOMHTMLFrameElement contentFrame]): new
        (-[DOMHTMLIFrameElement contentFrame]): new
        (-[DOMHTMLObjectElement contentFrame]): new
        * DOM.subproj/WebDOMOperationsPrivate.h:
        * Misc.subproj/WebNSImageExtras.m:
        (-[NSImage _web_saveAndOpen]): fixed leak
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebDataSource.h:
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _addSubresources:]): made private
        (-[WebDataSource _archiveWithMarkupString:nodes:]): handle object tags with frame content
        (-[WebDataSource _archiveWithCurrentState:]): renamed from _archive, now takes flag
        (-[WebDataSource _replaceSelectionWithArchive:]): call renamed _addSubresources
        (-[WebDataSource webArchive]): new
        (-[WebDataSource mainResource]): new
        (-[WebDataSource subresources]): made public
        (-[WebDataSource subresourceForURL:]): made public
        (-[WebDataSource addSubresource:]): made public
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebDocumentPrivate.h:
        * WebView.subproj/WebFrame.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _loadRequest:subresources:subframeArchives:]): call renamed _addSubresources
        (-[WebFrame DOMDocument]): new
        (-[WebFrame frameElement]): new
        (-[WebFrame loadArchive:]): made public
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation loadArchive]): call renamed _addSubresources
        * WebView.subproj/WebImageRepresentation.m:
        (-[WebImageRepresentation archive]): call webArchive on WebDataSource

2004-05-10  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

        - avoid redecoding animated images that are only used once for
        ~2.5% iBench speedup (WebCore part of fix)

        * WebCoreSupport.subproj/WebImageRenderer.h:
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer increaseUseCount]):
        (-[WebImageRenderer decreaseUseCount]):
        (-[WebImageRenderer retainOrCopyIfNeeded]):

2004-05-10  Maciej Stachowiak  <mjs@apple.com>

        Fix build.

        * WebView.subproj/WebFrame.m:

2004-05-09  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Ken.

        - avoid messing with undo manager needlessly for ~1% HTML iBench speedup

        * WebCoreSupport.subproj/WebBridge.h:
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge registerCommandForUndo:]): mark undo/redo item flag
        (-[WebBridge registerCommandForRedo:]): ditto
        (-[WebBridge clearUndoRedoOperations]): check flag before removing items,
        and clear it after removing them

2004-05-08  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

        - -[WebFrame childFrames] is so hot that a special internal
        version which avoids the copy and autorelease results in a .75%
        performance improvement on HTML iBench.

        * WebView.subproj/WebFramePrivate.h: Prototype new method.
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _internalChildFrames]): New method, just returns
        internal value instead of copying.

        (-[WebFrame _descendantFrameNamed:]): Use it
        (-[WebFrame _textSizeMultiplierChanged]): likewise
        (-[WebFrame _viewWillMoveToHostWindow:]): likewise
        (-[WebFrame _viewDidMoveToHostWindow]): likewise
        (-[WebFrame _saveDocumentAndScrollState]): likewise
        (-[WebFrame _numPendingOrLoadingRequests:]): likewise
        (-[WebFrame _checkLoadComplete]): Refactored this and it's two
        helpers a little so we could get away with using
        _internalChildFrames.
        (-[WebFrame _checkLoadCompleteForThisFrame]): Renamed from
        _isLoadComplete
        (-[WebFrame _recursiveCheckLoadComplete]): renamed from (class
        method) _recursiveCheckCompleteFromFrame:
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _defersCallbacksChanged]): Use it
        (-[WebDataSource isLoading]): likewise
        * WebView.subproj/WebView.m:
        (-[WebView _frameForDataSource:fromFrame:]): likewise
        (-[WebView _frameForView:fromFrame:]): likewise

2004-05-10  Chris Blumenberg  <cblu@apple.com>

        Forgot to commit this copied header.

        * DOM.subproj/DOMExtensions.h:

=== Safari-139 ===

2004-05-06  Chris Blumenberg  <cblu@apple.com>

        * DOM.subproj/WebDOMOperations.h: improved a header doc comment

2004-05-05  Chris Blumenberg  <cblu@apple.com>

        - DOM Extensions API tweaks

        Reviewed by kocienda.

        * DOM.subproj/DOMExtensions.h: copied from WebCore
        * DOM.subproj/WebDOMOperations.h: added header doc comments
        * DOM.subproj/WebDOMOperations.m:
        (-[DOMNode _URLsFromSelectors:]): use renamed URLWithAttributeString
        (-[DOMDocument URLWithAttributeString:]): renamed
        (-[DOMHTMLTableElement _web_background]): new private method
        (-[DOMHTMLTableElement _subresourceURLs]): use new private method
        (-[DOMHTMLTableCellElement _web_background]): new private method
        (-[DOMHTMLTableCellElement _subresourceURLs]): use new private method

2004-05-04  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

        * DOM.subproj/DOMTraversal.h: File coppied from WebCore

2004-05-02  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - fixed <rdar://problem/3640419>: "_webkit_stringByReplacingValidPercentEscapes does not handle %00 properly"

        * Misc.subproj/WebNSURLExtras.m: (-[NSString _webkit_stringByReplacingValidPercentEscapes]):
        Use the function in NSURL instead of implementing our own here.

2004-04-30  John Sullivan  <sullivan@apple.com>

        * WebView.subproj/WebView.m:
        fixed deployment build breakage
        
2004-04-30  John Sullivan  <sullivan@apple.com>

        - more work on getting the font panel to work with editable HTML.
        The font panel in Blot now correctly reflects the first selected font when the
        selection is at least one character long.

        Reviewed by Ken.

        * WebView.subproj/WebView.m:
        removed unfinished plumbing to support reflecting selected attributes (e.g. text color,
        underline) in font panel, since this doesn't work in Mail or TextEdit either.
        (_fontFromStyle):
        removed assertion for now
        (-[WebView _updateFontPanel]):
        now uses new bridge method to get the NSFont from the node, instead of trying
        to create an NSFont from a DOMCSSStyleDeclaration

2004-04-29  John Sullivan  <sullivan@apple.com>

        - more work on getting the font panel to work with editable HTML

        Reviewed by Ken.

        * WebView.subproj/WebView.m:
        (-[WebView computedStyleForElement:pseudoElement:]):
        convert nil pseudoElement to empty string because lower level chokes on nil
        (_fontFromStyle):
        I tried to implement this, but was thwarted by missing API, so I added a
        bunch of FIXMEs instead
        (_stylesRepresentSameFont):
        new function, not yet implementable
        (_stylesRepresentSameAttributes):
        new function, not yet implementable
        (-[WebView _updateFontPanel]):
        added code to get first and last element in selection, and to use
        NodeIterator to walk through the entire selection to see if more than one
        font or set of attributes is in use. However, createNodeIterator is declared
        in DOMTraversal.h but not actually defined anywhere, so I had to prevent this
        code from actually being called.

2004-04-28  Chris Blumenberg  <cblu@apple.com>

        - Made WebArchive and WebResource conform to NSCoding and NSCopying.

        Reviewed by rjw.

        * DOM.subproj/WebDOMOperations.h: added header doc comment for WebArchive methods
        * WebView.subproj/WebArchive.h:
        * WebView.subproj/WebArchive.m:
        (-[WebArchive initWithCoder:]): new
        (-[WebArchive encodeWithCoder:]): new
        (-[WebArchive copyWithZone:]): new
        * WebView.subproj/WebResource.h:
        * WebView.subproj/WebResource.m:
        (-[WebResource init]): new
        (-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]): call [self init]
        (-[WebResource initWithCoder:]): new
        (-[WebResource encodeWithCoder:]): new
        (-[WebResource copyWithZone:]): new

2004-04-28  John Sullivan  <sullivan@apple.com>

        A little bit more progress in wiring up the font panel.

        Reviewed by Ken.

        * WebView.subproj/WebViewInternal.h:
        put _updateFontPanel here. Also moved _isLoading here, since it was
        already in a category named WebInternal

        * WebView.subproj/WebView.m:
        (-[WebView _isLoading]):
        moved into WebInternal category implementation
        (_textAttributesFromStyle):
        changed from method to function
        (_fontFromStyle):
        added, guts not filled in yet
        (-[WebView _updateFontPanel]):
        now calls these two functions (but results are always nil)
        (-[WebView setSelectedDOMRange:affinity:]):
        remove call to _updateFontPanel here since it's now called in
        the proper bottleneck

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge postDidChangeNotification]):
        call -[WebView _updateFontPanel] in addition to sending notification
        (-[WebBridge postDidChangeSelectionNotification]):
        ditto

2004-04-28  John Sullivan  <sullivan@apple.com>

        - fixed these bugs:
        <rdar://problem/3636570>: "API: [WebPreferences tabsToLinks] should be public API"        
        <rdar://problem/3610597>: "API: could turn "stealth browsing" preference into API"

        Reviewed by Darin.
        
        I just moved the declarations and implementations from one place to another.
        (No clients in WebKit needed their #imports updated.) This confused cvs diff quite a bit.

        * WebView.subproj/WebPreferences.h:
        * WebView.subproj/WebPreferences.m:
        (-[WebPreferences setTabsToLinks:]):
        (-[WebPreferences tabsToLinks]):
        (-[WebPreferences setPrivateBrowsingEnabled:]):
        (-[WebPreferences privateBrowsingEnabled]):
        (-[WebPreferences _pageCacheSize]):
        (-[WebPreferences _objectCacheSize]):
        (-[WebPreferences _backForwardCacheExpirationInterval]):
        * WebView.subproj/WebPreferencesPrivate.h:

2004-04-27  David Hyatt  <hyatt@apple.com>

        Cut the time spent on an operation inside widthForNextCharacter from 17% of the function time down to less than 
        5% merely by adding a check for non-zero letter-spacing (thus avoiding double precision math in the 
        common case where we just add 0 between letters).
        Reviewed by rjw

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (widthForNextCharacter):

2004-04-28  John Sullivan  <sullivan@apple.com>

        Initial plumbing to get the font panel to be updated from an editable
        WebView.

        Reviewed by Ken.

        * WebView.subproj/WebView.m:
        (-[WebView _textAttributesFromStyle:]):
        new dummy method, will need implementation
        (-[WebView _updateFontPanel]):
        new method, sets the font shown in the font panel from the current
        selection. Lots of placeholder stuff.
        (-[WebView setSelectedDOMRange:affinity:]):
        call _updateFontPanel here for now.

2004-04-28  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge postDidChangeNotification]): Posts Cocoa notification when the document changes
        due to editing.
        (-[WebBridge postDidChangeSelectionNotification]): Posts Cocoa notification when the document selection
        changes.
        * WebKit.exp: Export editing notification string constants.
        * WebView.subproj/WebView.m: Define editing notification string constants.
        (-[WebView computedStyleForElement:pseudoElement:]): Add implementation.
        (-[WebView setEditingDelegate:]): Do work to set up delegate to receive notification callbacks.
        (-[WebView DOMDocument]): Simplify to just call the bridge DOMDocument. No need to jump through hoops here.
        (-[WebView insertNewline:]): Consult delegate before taking action.
        (-[WebView deleteBackward:]): Ditto.
        (-[WebView insertText:]): Ditto.

2004-04-27  John Sullivan  <sullivan@apple.com>

        Fixed broken development build.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToLayoutAcceptable]):
        updated bad variable name used only in LOG statement to match
        recent change.

2004-04-27  Richard Williamson   <rjw@apple.com>

        Fixes for:

        <rdar://problem/3279301>: API: WebKitErrorCannotFindPlugin and WebKitErrorCannotLoadPlugin should use PlugIn
        <rdar://problem/3278513>: API: Need API to control the size of WebHistory
        <rdar://problem/3564519>: API: please add a way to set the media type for a WebView
        <rdar://problem/3565642>: API: allow a way to extend the MIME types that a WebView will display
        <rdar://problem/3577693>: API: add ability to subclass WebView but still use it with Carbon
        
        Reviewed by Chris.

        * Carbon.subproj/HIWebView.h:
        * Carbon.subproj/HIWebView.m:
        (HIWebViewCreate):
        (HIWebViewCreateWithClass):
        (HIWebViewConstructor):
        * History.subproj/WebHistory.h:
        * History.subproj/WebHistory.m:
        (-[WebHistoryPrivate setHistoryAgeInDaysLimit:]):
        (-[WebHistoryPrivate historyAgeInDaysLimit]):
        (-[WebHistoryPrivate setHistoryItemLimit:]):
        (-[WebHistoryPrivate historyItemLimit]):
        (-[WebHistoryPrivate _ageLimitDate]):
        (-[WebHistoryPrivate arrayRepresentation]):
        (-[WebHistory setHistoryItemLimit:]):
        (-[WebHistory historyItemLimit]):
        (-[WebHistory setHistoryAgeInDaysLimit:]):
        (-[WebHistory historyAgeInDaysLimit]):
        * History.subproj/WebHistoryPrivate.h:
        * Misc.subproj/WebKitErrors.h:
        * Misc.subproj/WebKitErrors.m:
        (registerErrors):
        * Plugins.subproj/WebNetscapePluginDocumentView.m:
        (-[WebNetscapePluginDocumentView setDataSource:]):
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge isViewSelected:]):
        (-[WebBridge overrideMediaType]):
        * WebView.subproj/WebView.h:
        * WebView.subproj/WebView.m:
        (-[WebViewPrivate dealloc]):
        (+[WebView MIMETypesShownAsHTML]):
        (+[WebView setMIMETypesShownAsHTML:]):
        (-[WebView customUserAgent]):
        (-[WebView setMediaStyle:]):
        (-[WebView mediaStyle]):
        * WebView.subproj/WebViewPrivate.h:

2004-04-27  David Hyatt  <hyatt@apple.com>

        Eliminate the preferences for timed/resource layouts.  Accessing them is now taking 0.5% on the cvs-base
        test, so we're just going to hardcode the values instead.
        Reviewed by mjs

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToLayoutAcceptable]):
        (-[WebFrame _isLoadComplete]):
        * WebView.subproj/WebPreferences.m:
        (+[WebPreferences initialize]):
        (-[WebPreferences _objectCacheSize]):
        * WebView.subproj/WebPreferencesPrivate.h:
        * WebView.subproj/WebView.m:
        (-[WebView _mainReceivedBytesSoFar:fromDataSource:complete:]):

2004-04-27  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt
        
        Make selections draw in a more Cocoa-like way, where
        fully-selected lines draw out to the ends of lines, and
        spaces between lines are drawn with the selection color as well.

        * Misc.subproj/WebKitNSStringExtras.m: Use new WebCoreTextGeometry struct. No change in functionality.
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer drawRun:style:geometry:]): Use new WebCoreTextGeometry struct. No change in functionality.
        (-[WebTextRenderer drawHighlightForRun:style:geometry:]): Ditto.
        (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]): Many changes to add the new selection drawing behavior.
        (-[WebTextRenderer _CG_drawRun:style:geometry:]):  Use new WebCoreTextGeometry struct. No change in functionality.
        (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]): Many changes to add the new selection drawing behavior.
        (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):  Use new WebCoreTextGeometry struct. No change in functionality.

2004-04-26  Richard Williamson   <rjw@apple.com>

        Added support for specifying composite operation on an
        image element, i.e.:

        <img composite="source-over" src="triangle.png">
        <img style="position:relative; left:-200px;" composite="destination-in" src="circle.png">

        This feature was requested by the dashboard guys.  They can use it to apply
        transparency masks to widgies.


        Reviewed by Ken.

        * WebCoreSupport.subproj/WebImageRenderer.h:
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer initWithMIMEType:]):
        (-[WebImageRenderer initWithData:MIMEType:]):
        (-[WebImageRenderer initWithContentsOfFile:]):
        (-[WebImageRenderer copyWithZone:]):
        (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
        (-[WebImageRenderer drawImageInRect:fromRect:]):
        (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:]):

2004-04-26  Chris Blumenberg  <cblu@apple.com>

        More header doc changes after John's review.
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebResource.h:

2004-04-26  Chris Blumenberg  <cblu@apple.com>

        * WebView.subproj/WebDataSourcePrivate.h: added some header doc comments
        * WebView.subproj/WebFramePrivate.h: fixed header doc typo

2004-04-24  Darin Adler  <darin@apple.com>

        Reviewed by Dave.

        * Misc.subproj/WebNSURLExtras.m: (hexDigit): Use capitalized hex, not lowercase, for consistency
        with similar functions in WebCore and what other web browsers do.

2004-04-23  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed <rdar://problem/3627362>: "bad access with libgmalloc in -[_WebCoreHistoryProvider containsItemForURLUnicode:length:]"

        * History.subproj/WebHistory.m:
        (-[_WebCoreHistoryProvider containsItemForURLUnicode:length:]): Add range checks so we
        don't overrun the buffer while looking for slashes.

2004-04-23  Chris Blumenberg  <cblu@apple.com>

        Reviewed by John

        Added header doc comments to proposed API's.

        * WebView.subproj/WebArchive.h:
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebResource.h:

=== Safari-138 ===

2004-04-23  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Added some plumbing for applying styles.

        * DOM.subproj/DOMExtensions.h: Copied from WebCore.
        * WebView.subproj/WebView.m:
        (-[WebView DOMDocument]): Added new helper.
        (-[WebView styleDeclarationWithText:]): Added new helper.
        * WebView.subproj/WebViewPrivate.h: Declare above methods.

2004-04-22  Richard Williamson   <rjw@apple.com>

        Updates to plugin binding APIs.
        Updates to Java plugin APIs.
        Transparency fix for Dashboard.
        Reviewed by John and Greg Bolsinga.

        * Plugins.subproj/WebPluginJava.h: Added.
        New API for Java plugin.        

        * Plugins.subproj/npfunctions.h:
        * Plugins.subproj/npruntime.h:
        (_NPString::):
        (_NPString::_NPVariant::):
        * Plugins.subproj/npsap.h: Added.
        New API for plugin bindings.        

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView drawRect:]):
        Update for Dashboard.  View must fill with transparency when not
        drawing background.        

        * copy-webcore-files-to-webkit:

2004-04-22  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

        More work to bring code up to date with the latest API proposal. Note that
        all of the replaceXXX methods below now operate on the current selection, so
        the method implementations have been simplifed accordingly.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _replaceSelectionWithArchive:]): New name for _replaceSelectionWithWebArchive.
        * WebView.subproj/WebDataSourcePrivate.h: Ditto.
        * WebView.subproj/WebDefaultEditingDelegate.m:
        (-[WebDefaultEditingDelegate webViewShouldBeginEditing:inDOMRange:]): Added inDOMRange: parameter.
        (-[WebDefaultEditingDelegate webViewShouldEndEditing:inDOMRange:]): Ditto.
        (-[WebDefaultEditingDelegate webView shouldChangeSelectedDOMRange:toDOMRange:proposedRange affinity:stillSelecting:]):
        Missed adding affinity in last patch.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _pasteFromPasteboard:]): Call old method with new name: _replaceSelectionWithArchive
        * WebView.subproj/WebView.m:
        (-[WebView replaceSelectionWithNode:]): New version of insertNode:replacingDOMRange:
        (-[WebView replaceSelectionWithText:]): New version of insertText:replacingDOMRange:
        (-[WebView replaceSelectionWithMarkupString:]): New version of insertMarkupString:replacingDOMRange:
        (-[WebView replaceSelectionWithArchive:]): New version of insertWebArchive:replacingDOMRange:
        (-[WebView deleteSelection]): New version of deleteDOMRange:
        (-[WebView applyStyle:]): New version of applyStyle:toElementsInDOMRange:
        * WebView.subproj/WebViewPrivate.h:

2004-04-22  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Adds the notion of selection affinity to the editing API, bringing it up to
        date with the latest proposal.

        * WebView.subproj/WebView.m:
        (-[WebView _alterCurrentSelection:direction:granularity:]): Pass selection affinity
        to the delegate. We can just pass the current one since this does not change with arrow keys.
        (-[WebView setSelectedDOMRange:affinity:]): Set the affinity on the selection.
        (-[WebView selectionAffinity]): New accessor.
        (-[WebView insertNode:replacingDOMRange:]): Change to pass selection affinity to call
        to set selection. This is just to get the code to compile for now, since this method
        will soon be removed in place of a similar one from the latest proposal that always
        works on the current selection.
        (-[WebView insertText:replacingDOMRange:]): Ditto.
        (-[WebView insertMarkupString:replacingDOMRange:]): Ditto.
        (-[WebView insertWebArchive:replacingDOMRange:]): Ditto.
        (-[WebView deleteDOMRange:]): Ditto.
        (-[WebView applyStyle:toElementsInDOMRange:]): Ditto.
        * WebView.subproj/WebViewPrivate.h: Add selection affinity to API declarations as needed.

2004-04-22  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        Work around this bug:
        <rdar://problem/3630640>: "Calling interpretKeyEvents: in a custom text view can fail to process keys right after app startup"

        * WebView.subproj/WebView.m:
        (-[WebView _editingKeyDown:]): The issue is with a message to nil in AppKit
        key binding manager code. Add call to [NSKeyBindingManager sharedKeyBindingManager] to make
        sure the not-supposed-to-be-nil object is created before calling interpretKeyEvents:.

2004-04-22  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

        Added calls to ensure caret visibility after the editing action is done.

        * WebView.subproj/WebView.m:
        (-[WebView _alterCurrentSelection:direction:granularity:]):
        (-[WebView insertNewline:]):
        (-[WebView deleteBackward:]):
        (-[WebView insertText:]):

2004-04-20  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3605209>: "HITLIST: REGRESSION (131-132): iframes/frames no longer dump on layout tests"

        Reviewed by hyatt.

        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation finishedLoadingWithDataSource:]): the encoding was not being set in the about:blank case. Call receivedData:textEncodingName: as we did in the past to set it.

2004-04-20  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

         Added implementations for these methods.

        * WebView.subproj/WebView.m:
        (-[WebView moveUpAndModifySelection:]):
        (-[WebView moveWordLeft:]):
        (-[WebView moveWordLeftAndModifySelection:]):
        (-[WebView moveWordRight:]):
        (-[WebView moveWordRightAndModifySelection:]):

2004-04-20  John Sullivan  <sullivan@apple.com>

        - fixed <rdar://problem/3622393>: When in stealth mode, visited webpage 
        contents should not be cached to disk

        Reviewed by Ken.

        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate willCacheResponse:]):
        if will cache to disk and in stealth mode, replace cache response with
        an identical one that won't cache to disk.

2004-04-19  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

        * WebView.subproj/WebView.m:
        (-[WebView moveDown:]): Added implementation.
        (-[WebView moveUp:]): Added implementation.

2004-04-19  Chris Blumenberg  <cblu@apple.com>

        Added support for pasting frames via WebArchives.

        Reviewed by kocienda.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _addSubframeArchives:]): renamed, now allows subframe archives to be added at anytime
        (-[WebDataSource _popSubframeArchiveWithName:]): renamed, now deletes the returned subframe to consume less memory
        (-[WebDataSource _replaceSelectionWithWebArchive:]): added support for subframes
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _loadRequest:subresources:subframeArchives:]): call renamed methods
        (-[WebFrame _loadURL:intoChild:]): ditto
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation loadArchive]): ditto

=== Safari-137 ===

2004-04-16  Richard Williamson   <rjw@apple.com>

        Added an SPI to allow ObjC instances to be easily bound to 
        JS.  This is needed by the dashboard guys for their prototyping.
        Eventually they will use new API.

        Reviewed by Chris.

        * WebView.subproj/WebView.m:
        (-[WebView _bindObject:withName:toFrame:]):
        * WebView.subproj/WebViewPrivate.h:

2004-04-16  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3587599>: Mail Page, Web Archives don't preserve subframes
        Moved code that assembled subresource URLs from DOM nodes from WebCore to WebKit.

        Reviewed by rjw.

        * DOM.subproj/DOMExtensions.h: copied from WebCore
        * DOM.subproj/WebDOMOperations.h:
        * DOM.subproj/WebDOMOperations.m:
        (-[DOMNode webArchive]): call renamed methods
        (-[DOMNode markupString]): ditto
        (-[DOMNode _URLsFromSelectors:]): new, returns array of URLs given selectors
        (-[DOMNode _subresourceURLs]): new, base class does nothing, subclasses call _URLsFromSelectors with URL selectors
        (-[DOMDocument webFrame]): new
        (-[DOMRange webArchive]): call renamed methods
        (-[DOMRange markupString]): ditto
        (-[DOMHTMLBodyElement _subresourceURLs]): new
        (-[DOMHTMLInputElement _subresourceURLs]): new
        (-[DOMHTMLLinkElement _subresourceURLs]): new
        (-[DOMHTMLScriptElement _subresourceURLs]): new
        (-[DOMHTMLImageElement _subresourceURLs]): new
        (-[DOMHTMLEmbedElement _subresourceURLs]): new
        (-[DOMHTMLObjectElement _subresourceURLs]): new
        (-[DOMHTMLParamElement _subresourceURLs]): new
        (-[DOMHTMLTableElement _subresourceURLs]): new
        (-[DOMHTMLTableCellElement _subresourceURLs]): new
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebArchive.h:
        * WebView.subproj/WebArchive.m:
        (-[WebArchivePrivate dealloc]): release new subframeArchives ivar
        (-[WebArchive initWithMainResource:subresources:subframeArchives:]): take subframeArchives
        (-[WebArchive _initWithPropertyList:]): new, recursively creates WebArchives
        (-[WebArchive initWithData:]): call _initWithPropertyList
        (-[WebArchive subframeArchives]): new
        (-[WebArchive _propertyListRepresentation]): new, recursively creates property lists of WebArchives
        (-[WebArchive data]): call _propertyListRepresentation
        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate saveResource]): call renamed methods
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSourcePrivate dealloc]): release new pendingSubframeArchives ivar
        (-[WebDataSource _archiveWithMarkupString:nodes:]): renamed and reimplemented, handles subframes
        (-[WebDataSource _archive]): new
        (-[WebDataSource _setPendingSubframeArchives:]): new
        (-[WebDataSource _archiveForFrameName:]): new
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame loadArchive:]): handle subframes
        (-[WebFrame _loadRequest:subresources:subframeArchives:]): ditto
        (-[WebFrame _loadURL:intoChild:]): use the subframe archive if we have it
        (-[WebFrame loadRequest:]): call renamed methods
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation loadWebArchive]): call renamed methods and handle subframes
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _selectedArchive:]): call renamed methods
        (-[WebHTMLView _pasteFromPasteboard:]): call renamed methods
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebImageRepresentation.h:
        * WebView.subproj/WebImageRepresentation.m: instead of storing some items from the data source, just store the data source
        (-[WebImageRepresentation dealloc]): removed use of deleted ivars
        (-[WebImageRepresentation URL]): use dataSource instead of ivar
        (-[WebImageRepresentation doneLoading]): use new boolean ivar
        (-[WebImageRepresentation setDataSource:]): store the data source
        (-[WebImageRepresentation receivedData:withDataSource:]): use dataSource instead of ivar
        (-[WebImageRepresentation receivedError:withDataSource:]): ditto
        (-[WebImageRepresentation finishedLoadingWithDataSource:]): ditto
        (-[WebImageRepresentation title]): ditto
        (-[WebImageRepresentation data]): ditto
        (-[WebImageRepresentation filename]): ditto
        (-[WebImageRepresentation archive]): ditto
        * WebView.subproj/WebResource.h:
        * WebView.subproj/WebResource.m:
        (-[WebResourcePrivate dealloc]): release new frame name ivar
        (-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]): take a frame name
        (-[WebResource frameName]): new
        (-[WebResource _initWithPropertyList:]): handle frame name
        (-[WebResource _initWithCachedResponse:originalURL:]): call renamed methods
        (-[WebResource _propertyListRepresentation]):
        * WebView.subproj/WebResourcePrivate.h: handle frame name

2004-04-15  David Hyatt  <hyatt@apple.com>

        Make sure isOpaque returns NO when the WebHTMLVIew doesn't draw its background.
        Reviewed by darin

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView isOpaque]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView isOpaque]):

2004-04-15  John Sullivan  <sullivan@apple.com>

        * WebView.subproj/WebPreferencesPrivate.h:
        added comments

2004-04-14  Richard Williamson   <rjw@apple.com>

        Updated fix for 3576315.  Don't hardcode 22 as the titlebar
        height.  (Note, other places in CarbonWindowFrame DO hardcode
        window geometry information, yuck!).

        Reviewed by Hyatt.

        * Carbon.subproj/CarbonWindowFrame.m:

2004-04-14  John Sullivan  <sullivan@apple.com>

        - changed stealth mode preference name from "historyIsFrozen"
        to "privateBrowsingEnabled"

        Reviewed by Darin.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]):
        updated for method name change
        
        * WebView.subproj/WebPreferences.m:
        changed preference key name
        (+[WebPreferences initialize]):
        updated for preference key name change
        (-[WebPreferences setPrivateBrowsingEnabled:]):
        changed name from setHistoryIsFrozen:
        (-[WebPreferences privateBrowsingEnabled]):
        changed name from historyIsFrozen:
        
        * WebView.subproj/WebPreferencesPrivate.h:
        changed declared method names

        * English.lproj/StringsNotToBeLocalized.txt:
        updated for this and other recent changes

2004-04-13  Chris Blumenberg  <cblu@apple.com>

        - Added WebElementDOMNodeKey as a potential API so that clients can get the node from an element dictionary.
        - Removed WebElementIsEditableKey. This functionality is available via [DOMNode isContentEditable].

        Reviewed by rjw.

        * DOM.subproj/WebDOMOperations.h:
        * DOM.subproj/WebDOMOperations.m:
        (-[DOMDocument URLWithRelativeString:]): new potential API
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): indenting tweak
        (-[WebDefaultUIDelegate copyImageToClipboard:]): use WebElementDOMNodeKey
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _handleMouseDragged:]): use WebElementDOMNodeKey
        (-[WebHTMLView _dragOperationForDraggingInfo:]): use isContentEditable
        * WebView.subproj/WebView.h:
        * WebView.subproj/WebView.m:
        * WebView.subproj/WebViewPrivate.h:

2004-04-13  Chris Blumenberg  <cblu@apple.com>

        Fixed deployment build failure.

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _handleMouseDragged:]): removed use of fileWrapper variable

2004-04-12  Chris Blumenberg  <cblu@apple.com>

        Factored out WebArchive to DOM code so that it could be used by both [WebHTMLView _pasteFromPasteboard:] and [WebView insertWebArchive:replacingDOMRange:].

        Reviewed by kocienda.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _replaceSelectionWithMarkupString:baseURL:]): moved from WebHTMLView
        (-[WebDataSource _replaceSelectionWithImageResource:]): ditto
        (-[WebDataSource _replaceSelectionWithWebArchive:]): ditto
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _replaceSelectionWithMarkupString:]): renamed
        (-[WebHTMLView _pasteFromPasteboard:]): call renamed methods
        * WebView.subproj/WebView.m:
        (-[WebView insertMarkupString:replacingDOMRange:]): call renamed methods
        (-[WebView insertWebArchive:replacingDOMRange:]): have data source handle the archive instead of the bridge

2004-04-12  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Dave
        
        Added execCommand support for cut/copy/paste.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge issueCutCommand]): Glue for calling from WebCore to do a cut in Cocoa.
        (-[WebBridge issueCopyCommand]): Same as above, but for copy.
        (-[WebBridge issuePasteCommand]): Same as above, but for paste.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView copy:]): Move this to private implementation category so the bridge can see it.
        (-[WebHTMLView cut:]): Ditto.
        (-[WebHTMLView paste:]): Ditto.
        * WebView.subproj/WebHTMLViewPrivate.h: Move copy;, cut:, and paste: to private implementation 
        category so the bridge can see it.
        * WebView.subproj/WebView.m:
        (-[WebView copy:]): Implemented by calling WebHTMLView to do the work.
        (-[WebView cut:]): Ditto.
        (-[WebView paste:]): Ditto.
        * WebView.subproj/WebViewPrivate.h: Added all the NSReponder methods we plan to implement as
        part of the WebKit editing API.

2004-04-09  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        Stubbed in the entire WebKit editing API, improving some
        methods already present in minor ways, and adding those 
        methods not yet present.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge editingKeyDown:]):
        * WebView.subproj/WebDefaultEditingDelegate.m:
        (-[WebDefaultEditingDelegate webView:shouldChangeSelectedDOMRange:toDOMRange:stillSelecting:]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _pasteMarkupString:]):
        * WebView.subproj/WebView.m:
        (-[WebView _alterCurrentSelection:direction:granularity:]):
        (-[WebView _currentSelectionIsEditable]):
        (-[WebView computedStyleForElement:pseudoElement:]):
        (-[WebView _editingKeyDown:]):
        (-[WebView setEditable:]):
        (-[WebView isEditable]):
        (-[WebView setTypingStyle:]):
        (-[WebView typingStyle]):
        (-[WebView setSmartInsertDeleteEnabled:]):
        (-[WebView smartInsertDeleteEnabled]):
        (-[WebView setContinuousSpellCheckingEnabled:]):
        (-[WebView isContinuousSpellCheckingEnabled]):
        (-[WebView spellCheckerDocumentTag]):
        (-[WebView undoManager]):
        (-[WebView insertNode:replacingDOMRange:]):
        (-[WebView insertText:replacingDOMRange:]):
        (-[WebView insertMarkupString:replacingDOMRange:]):
        (-[WebView insertWebArchive:replacingDOMRange:]):
        (-[WebView deleteDOMRange:]):
        (-[WebView applyStyle:toElementsInDOMRange:]):
        (-[WebView centerSelectionInVisibleArea:]):
        (-[WebView moveBackward:]):
        (-[WebView moveBackwardAndModifySelection:]):
        (-[WebView moveDown:]):
        (-[WebView moveDownAndModifySelection:]):
        (-[WebView moveForward:]):
        (-[WebView moveForwardAndModifySelection:]):
        (-[WebView moveLeft:]):
        (-[WebView moveLeftAndModifySelection:]):
        (-[WebView moveRight:]):
        (-[WebView moveRightAndModifySelection:]):
        (-[WebView moveToBeginningOfDocument:]):
        (-[WebView moveToBeginningOfLine:]):
        (-[WebView moveToBeginningOfParagraph:]):
        (-[WebView moveToEndOfDocument:]):
        (-[WebView moveToEndOfLine:]):
        (-[WebView moveToEndOfParagraph:]):
        (-[WebView moveUp:]):
        (-[WebView moveUpAndModifySelection:]):
        (-[WebView moveWordBackward:]):
        (-[WebView moveWordBackwardAndModifySelection:]):
        (-[WebView moveWordForward:]):
        (-[WebView moveWordForwardAndModifySelection:]):
        (-[WebView moveWordLeft:]):
        (-[WebView moveWordLeftAndModifySelection:]):
        (-[WebView moveWordRight:]):
        (-[WebView moveWordRightAndModifySelection:]):
        (-[WebView pageDown:]):
        (-[WebView pageUp:]):
        (-[WebView scrollLineDown:]):
        (-[WebView scrollLineUp:]):
        (-[WebView scrollPageDown:]):
        (-[WebView scrollPageUp:]):
        (-[WebView selectAll:]):
        (-[WebView selectParagraph:]):
        (-[WebView selectLine:]):
        (-[WebView selectWord:]):
        (-[WebView copy:]):
        (-[WebView cut:]):
        (-[WebView paste:]):
        (-[WebView copyFont:]):
        (-[WebView pasteFont:]):
        (-[WebView delete:]):
        (-[WebView pasteAsPlainText:]):
        (-[WebView pasteAsRichText:]):
        (-[WebView changeFont:]):
        (-[WebView changeAttributes:]):
        (-[WebView changeDocumentBackgroundColor:]):
        (-[WebView changeColor:]):
        (-[WebView alignCenter:]):
        (-[WebView alignJustified:]):
        (-[WebView alignLeft:]):
        (-[WebView alignRight:]):
        (-[WebView indent:]):
        (-[WebView insertTab:]):
        (-[WebView insertBacktab:]):
        (-[WebView insertNewline:]):
        (-[WebView insertParagraphSeparator:]):
        (-[WebView changeCaseOfLetter:]):
        (-[WebView uppercaseWord:]):
        (-[WebView lowercaseWord:]):
        (-[WebView capitalizeWord:]):
        (-[WebView deleteForward:]):
        (-[WebView deleteBackward:]):
        (-[WebView deleteBackwardByDecomposingPreviousCharacter:]):
        (-[WebView deleteWordForward:]):
        (-[WebView deleteWordBackward:]):
        (-[WebView deleteToBeginningOfLine:]):
        (-[WebView deleteToEndOfLine:]):
        (-[WebView deleteToBeginningOfParagraph:]):
        (-[WebView deleteToEndOfParagraph:]):
        (-[WebView complete:]):
        (-[WebView checkSpelling:]):
        (-[WebView showGuessPanel:]):
        (-[WebView performFindPanelAction:]):
        (-[WebView startSpeaking:]):
        (-[WebView stopSpeaking:]):
        (-[WebView insertText:]):
        * WebView.subproj/WebViewPrivate.h:

2004-04-09  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - added "transparent mode"

        * WebView.subproj/WebFrameInternal.h: Added. Contains _updateDrawsBackground.
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _makeDocumentView]): Call _updateDrawsBackground to tell the newly created
        KHTMLView whether to draw a background or not.
        (-[WebFrame _setState:]): Don't tell the scroll view to start drawing background if the
        WebView is not supposed to draw a background.
        (-[WebFrame _updateDrawsBackground]): Call setDrawsBackground: on the bridge, and do the
        same for all subframes.

        * WebView.subproj/WebFrameView.m: (-[WebFrameView setFrameSize:]): Only call setDrawsBackground:YES
        on the scroll view if the WebView has drawsBackground set to YES.

        * WebView.subproj/WebViewPrivate.h: Added new proposed API, setDrawsBackground and drawsBackground.
        Also added drawsBackground boolean to private structure.
        * WebView.subproj/WebView.m:
        (-[WebView _commonInitializationWithFrameName:groupName:]): Set drawsBackground to YES by default.
        (-[WebView setDrawsBackground:]): Added. Sets boolean and calls _updateDrawsBackground to update
        the flag for each frame.
        (-[WebView drawsBackground]): Added. Returns value of boolean.
        (-[WebView _bridgeForCurrentSelection]): Tweaked comment for no good reason.

        * WebView.subproj/WebViewInternal.h: Added, but empty for the moment.
        * WebView.subproj/WebFramePrivate.h: Tweaked a bit.

2004-04-08  Chris Blumenberg  <cblu@apple.com>

        Fixed:
        <rdar://problem/3616873>: support for pasting and drag and dropping of URLS to editable WebViews
        <rdar://problem/3546417>: support for pasting and drag and dropping of images to editable WebViews

        Reviewed by rjw.

        * DOM.subproj/WebDOMOperations.h:
        * DOM.subproj/WebDOMOperations.m:
        (-[DOMNode webArchive]): renamed from "archive" because "archive" collides with DOMHTMLObjectElement's method
        (-[DOMRange webArchive]): ditto
        * Misc.subproj/WebNSPasteboardExtras.h:
        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_writeImage:URL:title:archive:]): take just an archive instead of an HTML string and file wrapper
        * Misc.subproj/WebNSViewExtras.h:
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_dragImage:archive:rect:URL:title:event:]): take just an archive instead of an HTML string and file wrapper
        * WebView.subproj/WebDataProtocol.h:
        * WebView.subproj/WebDataProtocol.m:
        (+[NSURL _web_uniqueWebDataURL]): new
        (+[NSURL _web_uniqueWebDataURLWithRelativeString:]): new
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate copyImageToClipboard:]): call renamed _web_writeImage
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _webDataRequestForData:MIMEType:textEncodingName:baseURL:unreachableURL:]): use _web_uniqueWebDataURL for creating a URL
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _pasteImageResource:]): new
        (-[WebHTMLView _pasteFromPasteboard:]): renamed, now handles images and URLs
        (-[WebHTMLView _handleMouseDragged:]): call renamed _web_dragImage
        (-[WebHTMLView paste:]): call renamed _pasteFromPasteboard
        (-[WebHTMLView concludeDragOperation:]): call renamed _pasteFromPasteboard
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebImageRepresentation.h:
        * WebView.subproj/WebImageRepresentation.m:
        (-[WebImageRepresentation archive]): new
        * WebView.subproj/WebImageView.m:
        (-[WebImageView writeImageToPasteboard:]): call renamed _web_writeImage
        (-[WebImageView mouseDragged:]): call renamed _web_dragImage

=== Safari-136 ===

2004-04-08  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3548274>: API: DOM API for WebKit clients

        Reviewed by kocienda.

        * DOM.subproj/DOM.h: copied from WebCore
        * WebKit.pbproj/project.pbxproj: made our DOM headers public!

2004-04-08  Chris Blumenberg  <cblu@apple.com>

        Moved WebArchive to its own file.

        Reviewed by kocienda.

        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebArchive.h: Added.
        * WebView.subproj/WebArchive.m: Added.
        (-[WebArchive data]): renamed from dataRepresentation
        * WebView.subproj/WebDataSource.m:
        * WebView.subproj/WebFrame.m:
        * WebView.subproj/WebHTMLRepresentation.m:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _writeSelectionToPasteboard:]): call renamed [WebArchive data]
        * WebView.subproj/WebResource.h:
        * WebView.subproj/WebResource.m:

2004-04-07  Chris Blumenberg  <cblu@apple.com>

        Created WebDOMOperations which are WebKit-specific categories on DOM objects.

        Reviewed by rjw.

        * DOM.subproj/DOMExtensions.h:
        * DOM.subproj/WebDOMOperations.h: Added.
        * DOM.subproj/WebDOMOperations.m: Added.
        (-[DOMNode _bridge]): new
        (-[DOMNode archive]): new
        (-[DOMNode markupString]): new
        (-[DOMRange _bridge]): new
        (-[DOMRange archive]): new
        (-[DOMRange markupString]): new
        (-[DOMHTMLImageElement image]):
        * WebCoreSupport.subproj/WebBridge.h:
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge webFrame]): new
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _archiveWithMarkupString:subresourceURLStrings:]): moved from WebHTMLRepresentation
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate copyImageToClipboard:]): call markupString on the node
        * WebView.subproj/WebDocumentPrivate.h:
        * WebView.subproj/WebFrame.m:
        (+[WebFrame frameForDOMDocument:]): new
        (-[WebFrame loadArchive:]): renamed
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebHTMLRepresentation.h:
        * WebView.subproj/WebHTMLRepresentation.m:
        * WebView.subproj/WebHTMLRepresentationPrivate.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _selectedArchive:]): renamed
        (-[WebHTMLView _handleMouseDragged:]): called renamed methods

2004-04-07  Darin Adler  <darin@apple.com>

        Reviewed by Chris.

        * DOM.subproj/DOMCSS.h: Updated from WebCore.

2004-04-07  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin and Dave (many weeks ago....I am so ashamed for not landing)

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge expiresTimeForResponse:]): Now adds in the difference between
        the Mac OS X epoch and the "standard" unix epoch when passing back a time
        that WebCore will use for its cache expiration determinations. 

2004-04-07  Richard Williamson   <rjw@apple.com>

        Fix for 3604388.  The runtime version check (_CFExecutableLinkedOnOrAfter) used by many of
        our frameworks doesn't work for CFM apps.  So, conditional panther bugs fixes aren't
        being pickup by CFM apps that use WebKit, specifically Contribute.  This particular radar
        describes a problem that was conditionally fixed in the AppKit for panther.  The work-around
        is to force NSBitmapImageRep to execute to conditional code.

        Reviewed by Maciej.

        * Carbon.subproj/CarbonUtils.m:
        (WebInitForCarbon):

2004-04-06  Richard Williamson   <rjw@apple.com>

        Fixed 3510805.  Only release pool in timer if the current nesting level of the
        pool matches the nesting level when the pool was created.

        Reviewed by Chris.

        * Carbon.subproj/CarbonUtils.m:
        (getNumPools):
        (WebInitForCarbon):
        (PoolCleaner):

2004-04-06  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3613974>: remove "to Clipboard" from context menus because it is redundant

        Reviewed by john.

        * English.lproj/Localizable.strings:
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate menuItemWithTag:]):

2004-04-06  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Dave

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge issueUndoCommand]): New method. Forwards call to the undo manager. Added
        to support undo called via Javascript execCommand.
        (-[WebBridge issueRedoCommand]): Ditto.

2004-04-05  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3612580>: SPI: WebPlugin selection

        Reviewed by kocienda.

        * Plugins.subproj/WebPlugin.h: extended SPI for selection
        * Plugins.subproj/WebPluginContainer.h: ditto
        * Plugins.subproj/WebPluginController.m:
        (-[WebPluginController selectionColor]): new, calls [WebCoreBridge selectionColor]
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge setIsSelected:forView:]): new, calls [WebPlugin setIsSelected:]
        (-[WebBridge isViewSelected:]): new, calls [WebPlugin isSelected]

2004-04-02  Chris Blumenberg  <cblu@apple.com>

        Forgot to add the WebKit copy of DOMExtensions.h.

        * DOM.subproj/DOMExtensions.h: Added.

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

        Reviewed by Dave.
        
        * WebView.subproj/WebPreferences.m:
        (-[WebPreferences historyIsFrozen]):
        take out OMIT_TIGER_FEATURES ifdeffing, since if we turn this into API
        then we'll probably want it to work in Panther also. To protect Safari users,
        Safari now explicitly sets historyIsFrozen to NO when starting up in Panther.

        * English.lproj/StringsNotToBeLocalized.txt:
        updated for recent changes

2004-04-02  Chris Blumenberg  <cblu@apple.com>

        Moved the DOM extensions to their own headers

        Reviewed by kocienda.

        * DOM.subproj/DOM.h: changed from WebCore
        * DOM.subproj/DOMHTML.h: ditto
        * WebKit.pbproj/project.pbxproj: added DOMExtensions.h
        * copy-webcore-files-to-webkit: copy DOMExtensions.h

=== Safari-135 ===

2004-04-01  Richard Williamson   <rjw@apple.com>

        Fixed 3609493.  Don't remove the plugin's view until after
        sending pluginDestroy.  This change was requested by Greg
        and is needed in the Lavender update.

        Reviewed by Greg Bolsinga.

        * Plugins.subproj/WebPluginController.m:
        (-[WebPluginController destroyAllPlugins]):
        * Plugins.subproj/npruntime.h:

2004-03-31  John Sullivan  <sullivan@apple.com>

        - fixed <rdar://problem/3577917>: API: mechanism for displaying error 
        page for failed page load
        
        This was not commented on for a week in macosx-api-reviewers, so it
        has the silent rubber stamp of approval.
        
        Note that it isn't guarded by "Tiger only" availability macros because
        we (probably) want to use it in Panther for Safari. Maybe what we should
        do is guard the API with "Tiger only" macros but add an SPI version
        that Safari uses?

        Reviewed by Dave.

        * WebView.subproj/WebDataSource.h:
        moved unreachableURL to here
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource unreachableURL]):
        moved this from private category to main section
        
        * WebView.subproj/WebDataSourcePrivate.h:
        removed unreachableURL from here
        
        * WebView.subproj/WebFrame.h:
        moved loadAlternateHTMLString... to here
        * WebView.subproj/WebFrame.m:
        (-[WebFrame loadAlternateHTMLString:baseURL:forUnreachableURL:]):
        moved this from private category to main section
        
        * WebView.subproj/WebFramePrivate.h:
        removed unreachableURL from here

2004-03-31  Richard Williamson   <rjw@apple.com>

        Changed to reflect NP_runtime.h to npruntime.h.

        * copy-webcore-files-to-webkit:

2004-03-31  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.

        * WebView.subproj/WebPreferences.m:
        (-[WebPreferences historyIsFrozen]):
        always return NO on Panther and older, so you can't get into a state
        where the WebKit pref is invisibly set and affecting Safari.

2004-03-31  Darin Adler  <darin@apple.com>

        * WebView.subproj/WebHTMLView.m: Whitespace tweaks.

2004-03-30  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3604391>: Plug-in context menus (Flash) don't work in Carbon WebKit applications (e.g., CarbonWeb)

        Reviewed by rjw.

        * Carbon.subproj/HIWebView.m:
        (ContextMenuClick): instead of calling menuForEvent (which is not implemented on our plug-in view) call rightMouseDown and let AppKit handle the rest

2004-03-29  John Sullivan  <sullivan@apple.com>

        - some support for "Stealth Browsing"; add a preference that
        controls whether a history item is added when a page is visited.
        This is called "historyIsFrozen" for now, but I wouldn't be
        surprised to see this name change.

        Reviewed by Dave.

        * WebView.subproj/WebPreferencesPrivate.h:
        new historyIsFrozen, setHistoryIsFrozen: methods
        
        * WebView.subproj/WebPreferences.m:
        new WebKitHistoryIsFrozenPreferenceKey
        (+[WebPreferences initialize]):
        set initial value of WebKitHistoryIsFrozenPreferenceKey
        (-[WebPreferences setHistoryIsFrozen:]):
        set value of WebKitHistoryIsFrozenPreferenceKey
        (-[WebPreferences historyIsFrozen]):
        read value of WebKitHistoryIsFrozenPreferenceKey

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]):
        don't add item to history if history is frozen

2004-03-29  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3559178>: navigator.language always returns "en"

        * WebCoreSupport.subproj/WebViewFactory.m: (-[WebViewFactory defaultLanguageCode]):
        Call +[NSUserDefaults _web_preferredLanguageCode] rather than returning "en".

        * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.

2004-03-26  John Sullivan  <sullivan@apple.com>

        - fixed <rdar://problem/3576334>: Printing "empty" page gives print error, 
        leaves browser window UI broken

        Reviewed by Dave.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView knowsPageRange:]):
        AppKit printing mechanism can't handle the case where you tell it there is
        nothing at all to print, so when we hit that case we give it a degenerate
        1-pixel rect to print. This prints a blank page (with correctly-placed
        header & footer if so configured), which matches other browsers' behavior for
        this page.

        * Plugins.subproj/npruntime.h:
        cvs keeps thinking I've removed a blank line from this auto-copied file.
        Richard said to just check it in to see if it stops doing this.
        
=== Safari-134 ===

2004-03-26  John Sullivan  <sullivan@apple.com>

        - fixed the following bugs:
        
        <rdar://problem/3601630>: command-modified keypresses that would activate links are ignored by WebKit
        <rdar://problem/3601604>: WebActionModifierFlagsKey not set correctly for modified keypresses that activate links
        <rdar://problem/3544946>: cmd-return should open a link in a new tab

        Reviewed by Darin.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _actionInformationForNavigationType:event:originalURL:]):
        Pass modifier flags always, not just for mouse events. This fixes 3601604.
        
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView performKeyEquivalent:]):
        Give the bridge a chance to intercept command-modified keypresses. This fixes 3601630.
        
        Together these two changes fix 3544946.

2004-03-25  David Hyatt  <hyatt@apple.com>

        Implement the rest of the search field.

        Implement onscroll at the document level.
        Reviewed by darin

        * English.lproj/Localizable.strings:
        * WebCoreSupport.subproj/WebBridge.m:
        * WebCoreSupport.subproj/WebViewFactory.m:
        (-[NSMenu addItemWithTitle:action:tag:]):
        (-[WebViewFactory submitButtonDefaultLabel]):
        (-[WebViewFactory cellMenuForSearchField]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _frameOrBoundsChanged]):
        (-[WebHTMLView viewDidMoveToWindow]):
        * WebView.subproj/WebHTMLViewPrivate.h:

2004-03-25  Richard Williamson   <rjw@apple.com>

        Netscape plugin API header cleanup.

        Replaced our hacked up version of npapi.h with the
        "official SDK"  npapi.h.  Moved our changes to the new
        npfunctions.h.  npfunctions.h really replaces what was defined in
        the Netscape npupp.h header.  However, rather than use the "official SDK"
        npupp.h I think the cleaner npfunctions.h is better. npupp.h actually
        has a bunch of Mac classic specific stuff that is no longer needed.

        Copied npruntime.h to WebKit using Ken's copy-o-matic mechanism.

        Made npapi.h, npruntime.h, and npfunctions.h SPI.  With a bit
        more consideration they will become API.  They will also eventually be made
        available for other platforms/vendors are mozilla.org.

        Reviewed by Ken.

        * Plugins.subproj/WebBaseNetscapePluginStream.h:
        * Plugins.subproj/WebBaseNetscapePluginStream.m:
        (-[WebBaseNetscapePluginStream dealloc]):
        (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]):
        * Plugins.subproj/WebBaseNetscapePluginView.h:
        * Plugins.subproj/WebNetscapePluginPackage.h:
        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage load]):
        * Plugins.subproj/npapi.h:
        * Plugins.subproj/npruntime.h: Added.
        * WebKit.pbproj/project.pbxproj:
        * copy-webcore-files-to-webkit:

2004-03-24  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3566805>: REGRESSION: When the subject of mailto is 2 byte Safari failed to send mail address and subject to Mail.app

        * Misc.subproj/WebNSURLExtras.m: (applyHostNameFunctionToMailToURLString): Update to handle hostnames
        that end just before a '?' since a '?' ends the entire part of the URL that can contain hostnames.
        Also change the logic so that the '?' will successfully end the search.

2004-03-24  Ken Kocienda  <kocienda@apple.com>

        Reviewed by me

        * DOM.subproj/DOMHTML.h: Checking in copied over version of
        modified file.

2004-03-23  David Hyatt  <hyatt@apple.com>

        Fix for 3513627, HTML mail prints upside down occasionally.  Change printing so that it never resizes the
        WebHTMLView when formatting for printing.  When computing page rects, instead of using the view's bounds,
        use the root layer's width instead.
        Reviewed by darin

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView knowsPageRange:]):

=== Safari-133 ===

2004-03-17  David Hyatt  <hyatt@apple.com>

        Expose ageLimitDate so that the autocomplete code can access it.
        Reviewed by john

        * History.subproj/WebHistory.m:
        (-[WebHistory ageLimitDate]):
        * History.subproj/WebHistoryPrivate.h:

2004-03-17  Richard Williamson   <rjw@apple.com>

        Fixed 3591667.  Plugin view is added to view hierarchy before calling init.

        Reviewed by Ken.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView addSubview:]):

2004-03-16  Darin Adler  <darin@apple.com>

        * DOM.subproj/DOMHTML.h: Updated from WebCore.
        * DOM.subproj/DOMRange.h: Ditto.

2004-03-16  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - update for new DOM namespacing and header organization

        * DOM.subproj/DOM.h: Changed to include the other DOM headers.
        * DOM.subproj/DOMCSS.h: Added.
        * DOM.subproj/DOMCore.h: Added.
        * DOM.subproj/DOMEvents.h: Added.
        * DOM.subproj/DOMHTML.h: Added.
        * DOM.subproj/DOMRange.h: Added.
        * DOM.subproj/DOMStylesheets.h: Added.
        * DOM.subproj/DOMTraversal.h: Added.
        * DOM.subproj/DOMViews.h: Added.        
        * WebKit.pbproj/project.pbxproj: Added new files.

        * WebView.subproj/WebDefaultEditingDelegate.m:
        (-[WebDefaultEditingDelegate webView:shouldApplyStyle:toElementsInDOMRange:]):
        (-[WebDefaultEditingDelegate webView:shouldChangeTypingStyle:toStyle:]):
        Change class names from CSS to DOMCSS.
        * WebView.subproj/WebViewPrivate.h: Ditto.

        * copy-webcore-files-to-webkit: Add new files.

2004-03-15  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Fix for this bug:
        
        <rdar://problem/3588717>: REGRESSION (125-131u): Tabbing to links and tabbing in bookmarks view no longer works

        WebView can't lay claim to -keyDown: just for editing events, as
        this gets in the way of tab processing. The solution is to give
        WebView a private method for processing editing key events fed to
        it from over the bridge, and leave -keyDown: unimplemented. 

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge editingKeyDown:]): Changed from -keyDown: to keep 
        terminology consistent with renamed WebView -editingKeyDown: method.
        * WebView.subproj/WebView.m:
        (-[WebView editingKeyDown:]): Give WebView a method to handle
        editing key events in a way that does not interfere with other key down
        events it processes.
        * WebView.subproj/WebViewPrivate.h: Declare -editingKeyDown: method.

=== Safari-132 ===

2004-03-15  Darin Adler  <darin@apple.com>

        * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.

2004-03-12  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - fixed <rdar://problem/3433887>: copied &nbsp; characters remain non-breaking spaces; other browsers give normal spaces

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _writeSelectionToPasteboard:]):
        Convert non-breaking spaces to the normal kind in the plain text part of the pasteboard.

2004-03-12  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Chris

        * WebView.subproj/WebView.m:
        (-[WebView _alterCurrentSelection:direction:granularity:]): Changed name from
        _alterSelection:direction:granularity: to give a little extra clarity. Also, the
        body calls through to renamed rangeByAlteringCurrentSelection:direction:granularity:
        in WebCore.
        (-[WebView moveRight:]): Now calls renamed _alterCurrentSelection:direction:granularity:.
        (-[WebView moveRightAndModifySelection:]): Ditto.
        (-[WebView moveLeft:]): Ditto.
        (-[WebView moveLeftAndModifySelection:]): Ditto.

2004-03-11  Richard Williamson   <rjw@apple.com>

        Workaround for 3585644.  Force the window number of the
        mouse moved event to be correct.

        Reviewed by Chris.

        * Carbon.subproj/CarbonWindowFrame.m:
        * Carbon.subproj/HIWebView.m:
        (MouseMoved):
        (MouseDragged):

2004-03-11  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Dave

        Various changes to begin implementing the draft API proposal. 

        * DOM.subproj/DOM.h: Checking in generated file.
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge registerCommandForUndo:]): Now takes an id, a wrapped
        WebCore EditCommand implementation object.
        (-[WebBridge registerCommandForRedo:]): Ditto.
        (-[WebBridge clearUndoRedoOperations]): Use the web view's undo manager.
        (-[WebBridge keyDown:]): Pass keyDown events through to the web view.
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebDefaultEditingDelegate.h: Added.
        * WebView.subproj/WebDefaultEditingDelegate.m: Added. Stubbed in default
        implementations declared in the draft editing API.
        * WebView.subproj/WebFrame.m:
        (-[WebFramePrivate dealloc]): WebFrame no longer has an undo manager.
        * WebView.subproj/WebFramePrivate.h: Ditto.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _selectedWebArchive:]): selectedRange method 
        is now selectedDOMRange.
        * WebView.subproj/WebView.m:
        (-[WebViewPrivate dealloc]): Dealloc new editingDelegateForwarder.
        (-[WebView _editingDelegateForwarder]): Added. 
        (-[WebView keyDown:]): Added. 
        (-[WebView _bridgeForCurrentSelection]): Added. 
        (-[WebView setSelectedDOMRange:]): Added. 
        (-[WebView selectedDOMRange]): Added. 
        (-[WebView insertText:]): Added. 
        (-[WebView _alterSelection:direction:granularity:]): Added. 
        (-[WebView selectWord:]): Added. 
        (-[WebView moveRight:]): Added. 
        (-[WebView moveRightAndModifySelection:]): Added. 
        (-[WebView moveLeft:]): Added. 
        (-[WebView moveLeftAndModifySelection:]): Added. 
        (-[WebView deleteBackward:]): Added. 
        (-[WebView insertNewline:]): Added. 
        (-[WebView insertParagraphSeparator:]): Added. 
        (-[WebView setEditingDelegate:]): Added. 
        (-[WebView editingDelegate]): Added. 
        (-[WebView undoManager]): Added. 
        (-[WebView insertText:replacingDOMRange:]): Added. 
        * WebView.subproj/WebViewPrivate.h: Added a collection of editing API 
        declarations that will be public some day, but are still under review.

2004-03-11  John Sullivan  <sullivan@apple.com>

        - fixed <rdar://problem/3585056>: Assertion failure if error page is loaded from 
        webView:unableToImplementPolicyWithError:
        - also added HeaderDoc comments to could-be-API-soon methods and fixed a
        conceptual problem with said methods

        Reviewed by Darin.

        * WebView.subproj/WebDataSourcePrivate.h:
        added HeaderDoc comment for -unreachableURL
        
        * WebView.subproj/WebFramePrivate.h:
        added HeaderDoc comment for -loadAlternateHTMLString:baseURL:forUnreachableURL:;
        also added boolean delegateIsHandlingUnimplementablePolicy ivar to WebFramePrivate
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _shouldReloadToHandleUnreachableURLFromRequest:]):
        treat delegateIsHandlingUnimplementablePolicy like delegateIsDecidingNavigationPolicy.
        Safari serves up error pages during the latter but clients are equally or more likely
        to do so during the former.
        (-[WebFrame _handleUnimplementablePolicyWithErrorCode:forURL:]):
        set delegateIsHandlingUnimplementablePolicy during delegate callback
        (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
        tweaked assertion so it doesn't erroneously fire for clients that call
        loadAlternateHTML:baseURL:forUnreachableURL: while processing
        webView:unableToImplementPolicyWithError:

2004-03-11  Chris Blumenberg  <cblu@apple.com>

        Made WebArchive a class instead of a data object. This allows clients to easily get the main resource and subresources from a WebArchive.

        Reviewed by kocienda.

        * WebKit.exp:
        * WebView.subproj/WebDocumentPrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame loadWebArchive:]):
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation loadWebArchive]):
        (-[WebHTMLRepresentation _webArchiveWithMarkupString:subresourceURLStrings:]):
        (-[WebHTMLRepresentation webArchiveFromNode:]):
        (-[WebHTMLRepresentation webArchiveFromRange:]):
        * WebView.subproj/WebHTMLRepresentationPrivate.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _selectedWebArchive:]):
        (-[WebHTMLView _writeSelectionToPasteboard:]):
        (-[WebHTMLView _pasteMarkupFromPasteboard:]):
        * WebView.subproj/WebResource.h:
        * WebView.subproj/WebResource.m:
        (-[WebArchivePrivate dealloc]):
        (-[WebResource _response]):
        (-[WebArchive init]):
        (-[WebArchive initWithMainResource:subresources:]):
        (-[WebArchive initWithData:]):
        (-[WebArchive dealloc]):
        (-[WebArchive mainResource]):
        (-[WebArchive subresources]):
        (-[WebArchive dataRepresentation]):
        * WebView.subproj/WebResourcePrivate.h:

2004-03-10  Chris Blumenberg  <cblu@apple.com>

        Made dragging of web archives work.

        Reviewed by rjw.

        * English.lproj/StringsNotToBeLocalized.txt: updated
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient connection:didReceiveResponse:]): added a FIXME about working around old Foundations that don't know about web archive files
        * WebView.subproj/WebView.m:
        (+[WebView canShowFile:]): tweak
        (+[WebView suggestedFileExtensionForMIMEType:]): tweak
        (+[WebView _MIMETypeForFile:]): handle web archive files since Foundation may be too old to know about them

2004-03-09  Chris Blumenberg  <cblu@apple.com>

        Made web archives use NSPropertyListBinaryFormat_v1_0 instead of NSPropertyListXMLFormat_v1_0 because NSPropertyListBinaryFormat_v1_0 is 3-5 times faster to serialize and parse.

        Reviewed by rjw.

        * WebView.subproj/WebResource.m:
        (+[WebResource _parseWebArchive:mainResource:subresources:]): add timing code
        (+[WebResource _webArchiveWithMainResource:subresources:]): add timing code, use NSPropertyListBinaryFormat_v1_0

2004-03-09  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3577508>: API: web archive related API's
        Implemented WebKit side of: <rdar://problem/3144033>: ability to save web sites (images and all)

        Reviewed by rjw.

        * WebCoreSupport.subproj/WebBridge.h:
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge receivedData:textEncodingName:]): renamed to take a textEncodingName instead of data source. The data source argument is only needed for the textEncodingName.
        * WebKit.exp:
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _subresourcesDictionary]): new
        (+[WebDataSource _repTypesAllowImageTypeOmission:]): include "application/x-webarchive"
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebDocumentInternal.h:
        * WebView.subproj/WebDocumentPrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame loadWebArchive:]): renamed, code factored out to [WebResource _parseWebArchive:mainResource:subresources:]
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebFrameView.m:
        (+[WebFrameView _viewTypesAllowImageTypeOmission:]): include "application/x-webarchive"
        * WebView.subproj/WebHTMLRepresentation.h:
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentationPrivate dealloc]):
        (-[WebHTMLRepresentation _isDisplayingWebArchive]): new
        (-[WebHTMLRepresentation receivedData:withDataSource:]): don't feed data to WebCore if we're displaying a web archive since web archive can't be progressively loaded
        (-[WebHTMLRepresentation loadWebArchive]): new, feeds web archive data to WebCore
        (-[WebHTMLRepresentation finishedLoadingWithDataSource:]): call loadWebArchive if necessary
        (-[WebHTMLRepresentation documentSource]): if displaying a web archive, return the HTML source from within the archive
        (-[WebHTMLRepresentation _webArchiveWithMarkupString:subresourceURLStrings:]): new
        (-[WebHTMLRepresentation markupStringFromNode:]): implementation of new API
        (-[WebHTMLRepresentation markupStringFromRange:]): ditto
        (-[WebHTMLRepresentation webArchiveFromNode:]): ditto
        (-[WebHTMLRepresentation webArchiveFromRange:]): ditto
        * WebView.subproj/WebHTMLRepresentationPrivate.h:
        * WebView.subproj/WebHTMLView.m:
        (+[WebHTMLView _selectionPasteboardTypes]): use renamed WebArchivePboardType
        (-[WebHTMLView _selectedWebArchive:]): renamed, call renamed methods
        (-[WebHTMLView _writeSelectionToPasteboard:]): call renamed methods
        (-[WebHTMLView _haveSelection]): indentation tweak
        (-[WebHTMLView _canDelete]): ditto
        (-[WebHTMLView _canPaste]): ditto
        (-[WebHTMLView _pasteMarkupFromPasteboard:]): renamed, call [WebResource _webArchiveWithMainResource:subresources:]
        (-[WebHTMLView initWithFrame:]): use renamed WebArchivePboardType
        (-[WebHTMLView paste:]): call renamed _pasteMarkupFromPasteboard
        (-[WebHTMLView concludeDragOperation:]): call renamed _pasteMarkupFromPasteboard
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient connection:didReceiveResponse:]): modify the MIME type for web archives since Foundation is not yet web archive aware. This is ifdef'd pre-Tiger code.
        * WebView.subproj/WebResource.h:
        * WebView.subproj/WebResource.m:
        (+[WebResource _parseWebArchive:mainResource:subresources:]): new
        (+[WebResource _webArchiveWithMainResource:subresources:]): new
        * WebView.subproj/WebResourcePrivate.h:

2004-03-09  John Sullivan  <sullivan@apple.com>

        - fixed the following bugs:
        <rdar://problem/3579715>: Going to an error page in back/forward list doesn't work 
        correctly in some cases
        <rdar://problem/3581031>: REGRESSION (130+): World Leak of WebFrame after trying 
        to load page with unknown scheme

        Reviewed by Darin.

        * WebView.subproj/WebDataSourcePrivate.h:
        renamed __setRequest -> __adoptRequest
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _URLForHistory]): 
        updated comment
        (-[WebDataSource __adoptRequest:]):
        Renamed from __setRequest; now takes an NSMutableURLRequest and uses it as-is.
        (-[WebDataSource _setRequest:]):
        now saves a mutable copy, instead of relying on the caller to do so. The
        (only) caller wasn't doing so in all cases, leading to trouble in River City.
        Also, special-case unreachable URL handling to allow alternate content to 
        replace a URL in a redirect-like way without sending a redirect callback.
        
        * WebView.subproj/WebFrame.m:
        (-[WebFrame loadAlternateHTMLString:baseURL:forUnreachableURL:]):
        renamed after discussion with Richard (was loadPlaceholderHTMLString:baseURL:unreachableURL:)
        (-[WebFrame _shouldReloadToHandleUnreachableURLFromRequest:]):
        new helper method, returns YES only if we receive a load request for alternate
        content from a delegate for an unreachable URL while we are going back or forward.
        That's a lot of prepositions!
        (-[WebFrame _loadRequest:subresources:]):
        if _shouldReloadToHandleUnreachableURLFromRequest: returns YES, change load type
        to WebFrameLoadTypeReload so b/f list is preserved appropriately.
        (-[WebFrame _transitionToCommitted:]):
        Update currentItem in the unreachableURL case.
        (-[WebFrame _isLoadComplete]):
        Don't reset b/f list before calling provisionalLoadDidFail delegate; instead, determine 
        where to reset b/f list beforehand, and then actually reset list afterwards only if we 
        didn't start an alternate content load in the delegate. Also, set new boolean ivar so we
        know when we're processing a provisionalLoadDidFail delegate callback.
        (-[WebFrame _loadItem:withLoadType:]):
        don't make extra copy before calling __adoptRequest; just pass it the one we made here.
        (-[WebFrame _checkNavigationPolicyForRequest:dataSource:formState:andCall:withSelector:]):
        If we're loading alternate content for an unreachableURL, don't ask the decision listener,
        just do it. (This avoids problem with nested calls to checking the navigation policy that
        led to a WebFrame leak, and is conceptually the right thing to do also.) Also added some
        asserts that helped me track down the WebFrame leak. Set new boolean ivar so we know
        when we're processing a navigation policy delegate decision.
        (-[WebFrame _currentBackForwardListItemToResetTo]):
        new method, replaces _resetBackForwardListToCurrent. Does the same test as the
        latter but returns a boolean rather than actually resetting.
        (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
        save dataSource in a local var before calling stopLoading, and use it for
        _setProvisionalDataSource, because otherwise stopLoading was clobbering the dataSource
        for an unreachable URL handling case.
        
        * WebView.subproj/WebFramePrivate.h:
        two new boolean ivars
        
        * WebView.subproj/WebView.m:
        (+[WebView _canHandleRequest:]):
        return YES when we're loading alternate content for an unreachable URL

=== Safari-131 ===

2004-03-08  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        * WebKit.pbproj/project.pbxproj: Added CFBundleName to Info.plist

2004-03-05  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3560132>: REGRESSION: Safari crashed in -[NSPasteboard setData:forType:] dragging a map out of Mapquest.com

        Reviewed by john.

        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_writeImage:URL:title:fileWrapper:HTMLString:]): declare the pboard types by calling _web_writeURL:::: before calling setData::

2004-03-05  John Sullivan  <sullivan@apple.com>

        First cut at WebKit support for showing error pages for unreachable URLs.
        This doesn't work quite right with the back/forward list yet, but is
        good enough for demos.

        Reviewed by Darin.

        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate didReceiveResponse:]):
        use new _webDataRequextExternalURL to share code
        
        * WebView.subproj/WebDataProtocol.h:
        Three new methods (all internal to WebKit):
        -[NSURLRequest _webDataRequestUnreachableURL], -[NSURLRequest _webDataRequestExternalURL],
        -[NSURLRequest _webDataRequestSetUnreachableURL]
        * WebView.subproj/WebDataProtocol.m:
        new unreachableURL field of WebDataRequestParameters
        (-[WebDataRequestParameters copyWithZone:]):
        copy new field
        (-[WebDataRequestParameters dealloc]):
        release new field
        (-[NSURLRequest _webDataRequestUnreachableURL]):
        read new field
        (-[NSURLRequest _webDataRequestExternalURL]):
        new method, returns baseURL or "about:blank" for webdata protocol requests. This
        was done in multiple places previously.
        (-[NSURLRequest _webDataRequestExternalRequest]):
        now calls _webDataRequestExternalURL to share code
        (-[NSMutableURLRequest _webDataRequestSetUnreachableURL:]):
        write new field
        
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource unreachableURL]):
        new method, might become API; returns the unreachable URL, if any, for which this datasource
        holds placeholder content
        (-[WebDataSource _URLForHistory]):
        new method, returns the URL to be stored in History for this dataSource. This returns nil
        for run-of-the-mill WebDataProtocol URLs (replacing code elsewhere that checked for this
        case) but returns the unreachableURL for the case where this datasource holds placeholder
        content.
        (-[WebDataSource _setTitle:]):
        now calls _URLForHistory
        
        * WebView.subproj/WebDataSourcePrivate.h:
        added unreachableURL in the should-become-API section, and _URLForHistory elsewhere
        
        * WebView.subproj/WebFrame.m:
        (-[WebFrame loadPlaceholderHTMLString:baseURL:unreachableURL:]):
        new should-become-API method for displaying an error page for an unreachable URL
        (-[WebFrame loadPropertyList:]):
        updated to pass nil for unreachableURL
        (-[WebFrame _webDataRequestForData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
        added unreachableURL parameter, which gets set on the data request
        (-[WebFrame _addBackForwardItemClippedAtTarget:]):
        use _URLForHistory instead of just checking for WebDataProtocol
        (-[WebFrame _createItem:]):
        use unreachableURL if there is one
        (-[WebFrame _transitionToCommitted:]):
        use _URLForHistory instead of just checking for WebDataProtocol
        (-[WebFrame _isLoadComplete]):
        check whether a new load has started in the delegate callback and if so, don't
        reset the loading state here
        (-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
        added unreachableURL parameter, which gets passed through
        (-[WebFrame loadData:MIMEType:textEncodingName:baseURL:]):
        send nil unreachableURL parameter
        (-[WebFrame _loadHTMLString:baseURL:unreachableURL:]):
        new bottleneck method for loadHTMLString:baseURL: and loadPlaceholderHTMLString:baseURL:unreachableURL:;
        this is the guts of loadHTMLString:baseURL: with the new unreachableURL parameter passed through
        (-[WebFrame loadHTMLString:baseURL:]):
        now calls new bottleneck method
        
        * WebView.subproj/WebFramePrivate.h:
        added loadPlaceholderString:baseURL:unreachableURL: to should-be-API section; added unreachableURL
        parameter to _webDataRequestForData:MIMEType:textEncodingName:baseURL:

2004-03-04  Chris Blumenberg  <cblu@apple.com>

        - Made image dragging and copying always work without needing to re-download by using the data source's WebResource of the image instead of relying on the Foundation cache.
        - Fixed a "drag to self" problem I introduced in my last check-in. You could drag a URL from a WebHTMLView and drop it on its own WebView which we shouldn't allow.

        Reviewed by rjw.

        * ChangeLog:
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge fileWrapperForURL:]): call _fileWrapperForURL on WebDataSource
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _fileWrapperForURL:]): moved from WebView, creates a wrapper from a WebResource
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate copyImageToClipboard:]): call [WebDataSource _fileWrapperForURL:]
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _handleMouseDragged:]): call [WebDataSource _fileWrapperForURL:]
        (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): call [WebDataSource _fileWrapperForURL:]
        (-[WebHTMLView _dragOperationForDraggingInfo:]): new, factored out from draggingUpdated:
        (-[WebHTMLView draggingEntered:]): call _dragOperationForDraggingInfo:, if NSDragOperationNone, forward to WebView to it can handle the drag
        (-[WebHTMLView draggingUpdated:]): ditto
        (-[WebHTMLView concludeDragOperation:]): ditto
        * WebView.subproj/WebResource.m:
        (-[WebResource _fileWrapperRepresentation]): new
        * WebView.subproj/WebResourcePrivate.h:
        * WebView.subproj/WebView.m:
        (-[WebViewPrivate dealloc]): release draggedTypes, a new ivar that keeps track of drag types that we're currently registered for
        (-[WebView _setDraggedTypes:]): new
        (-[WebView unregisterDraggedTypes]): new, calls _setDraggedTypes then super
        (-[WebView registerForDraggedTypes:]): ditto 
        (-[WebView _dragOperationForDraggingInfo:]): new, compares the types on the pasteboard against the types we are currently registered for. Normally the AppKit handles this for us, but since these messages can be forwarded from WebHTMLView, we need to do this comparison ourselves. 
        (-[WebView draggingEntered:]): calls _dragOperationForDraggingInfo:
        (-[WebView draggingUpdated:]): ditto
        (-[WebView concludeDragOperation:]): ditto
        * WebView.subproj/WebViewPrivate.h: define new draggedTypes ivar

2004-03-03  Chris Blumenberg  <cblu@apple.com>

        Fixed a typo.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView concludeDragOperation:]):

2004-03-03  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3576070>: REGRESSION: web view won't accept drag of webloc file

        Reviewed by rjw.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView draggingUpdated:]): if we're not handling the drag, forward this message to the WebView since it may want to handle it
        (-[WebHTMLView concludeDragOperation:]): if we're not handling the drag, forward this message to the WebView since it may want to handle it

2004-03-03  Darin Adler  <darin@apple.com>

        Reviewed by Vicki.

        * English.lproj/InfoPlist.strings: Removed. No need to localize the version and
        copyright string, and that's all that was in here.
        * WebKit.pbproj/project.pbxproj: Removed InfoPlist.strings from build.

2004-03-03  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Chris

        * copy-webcore-files-to-webkit: Fixed up this script so that
        it does not fail if it is running "non-locally", like for
        B&I. The idiom is to check these files into WebKit after
        copying them from WebCore, hence this script is merely
        a convenience to keep the files in sync.

2004-03-02  Ken Kocienda  <kocienda@apple.com>

        Reviewed by me

        * DOM.subproj/DOM.h: Checked in header copied over
        from WebCore.

2004-03-02  Richard Williamson   <rjw@apple.com>

        Added WebJavaScriptObject API.  The location of this file may
        change.

        Reviewed by Chris.

        * Plugins.subproj/NP_objc.h: Added.
        * WebKit.pbproj/project.pbxproj:

2004-03-02  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3575598>: REGRESSION: Safari crashes at IS&T website

        Reviewed by darin.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSourcePrivate dealloc]): don't stop the icon loader here because that can cause an infinite loop
        (-[WebDataSource _stopLoadingInternal]): always stop the icon loader here instead of just when the data source is loading as well.

=== Safari-130 ===

2004-03-02  Ken Kocienda  <kocienda@apple.com>

        Reviewed by me

        * DOM.subproj/DOM.h: Rollout last night's checkin.
        The tree was closed.

2004-03-01  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3574979>: REGRESSION (129-TOT): crash loading macromedia.com

        deliverResource was being called after it had already been called in setDefersCallbacks:.

        Reviewed by rjw.

        * WebView.subproj/WebBaseResourceHandleDelegate.h:
        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate deliverResource]): set deliveredResource to YES
        (-[WebBaseResourceHandleDelegate deliverResourceAfterDelay]): new, calls deliverResource after a delay
        (-[WebBaseResourceHandleDelegate loadWithRequest:]): call deliverResourceAfterDelay
        (-[WebBaseResourceHandleDelegate setDefersCallbacks:]): call deliverResourceAfterDelay

2004-03-01  Ken Kocienda  <kocienda@apple.com>

        Reviewed by me

        * DOM.subproj/DOM.h: Checked in header copied over
        from WebCore.

2004-03-01  Ken Kocienda  <kocienda@apple.com>

        Reviewed by me

        * DOM.subproj/DOM.h: Oh, it's like the Keystone Cops this afternoon...
        Backed out an unintended change to thsi file.

2004-03-01  Ken Kocienda  <kocienda@apple.com>

        Reviewed by me

        * copy-webcore-files-to-webkit: Dumb typing error on my part in making
        my previous quick fix. This quick fix works. 

2004-03-01  Chris Blumenberg  <cblu@apple.com>

        Updated the WebKit project file to 1.1 because a previous check-in reverted to 1.01.

        * WebKit.pbproj/project.pbxproj:

2004-03-01  Ken Kocienda  <kocienda@apple.com>

        Reviewed by me

        * copy-webcore-files-to-webkit: Made this file buildit-compliant

2004-03-01  Chris Blumenberg  <cblu@apple.com>

        Found a bug in my last check-in. If a load that originates from a WebResource is cancelled before the data from the WebResource is delivered, callbacks are sent anyway. 

        Reviewed by rjw.

        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate cancelWithError:]): cancel the perform request for deliverResource

2004-03-01  Chris Blumenberg  <cblu@apple.com>

        Reviewed by darin.

        * Misc.subproj/WebIconLoader.m:
        (-[WebIconLoader didFinishLoading]): rejigger handle code to avoid Deployment failure
        * WebKit.pbproj/project.pbxproj:

2004-03-01  Chris Blumenberg  <cblu@apple.com>

        - Made WebResource loading not use Foundation at all. This allows "Mail Page" and paste to more directly load subresources without any indirection involving NSURLConnection and the Foundation cache.
        - Made WebIconLoader a subclass of WebBaseResourceHandleDelegate. This makes favicons appear in the activity window among other things.

        Reviewed by kocienda.

        * Misc.subproj/WebIconLoader.h:
        * Misc.subproj/WebIconLoader.m: removed connection and data ivars since WebBaseResourceHandleDelegate holds these 
        (-[WebIconLoaderPrivate dealloc]): removed calls to deleted ivars
        (-[WebIconLoader URL]): call renamed request ivar
        (-[WebIconLoader startLoading]): call loadWithRequest
        (-[WebIconLoader stopLoading]): call cancel
        (-[WebIconLoader didFinishLoading]):
        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginConnectionDelegate didReceiveResponse:]): renamed to be connection-less since callbacks may came from a WebResource and not an NSURLConnection
        (-[WebNetscapePluginConnectionDelegate didReceiveData:lengthReceived:]): ditto
        (-[WebNetscapePluginConnectionDelegate didFinishLoading]): ditto
        (-[WebNetscapePluginConnectionDelegate didFailWithError:]): ditto
        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (-[WebSubresourceClient didReceiveResponse:]): ditto
        (-[WebSubresourceClient didReceiveData:lengthReceived:]): ditto
        (-[WebSubresourceClient didFinishLoading]): ditto
        (-[WebSubresourceClient didFailWithError:]): ditto
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebBaseResourceHandleDelegate.h:
        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate loadWithRequest:]): instead of storing the resource in the Foundation cache in order to later load it from the cache, deliver the callbacks ourselves after a delay
        (-[WebBaseResourceHandleDelegate setDefersCallbacks:]): call deliverResource if callbacks are turned back on
        (-[WebBaseResourceHandleDelegate deliverResource]): new, calls didReceiveResponse:, didReceiveData:lengthReceived:, and didFinishLoading
        (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]): renamed to be connection-less since callbacks may came from a WebResource and not an NSURLConnection
        (-[WebBaseResourceHandleDelegate didReceiveAuthenticationChallenge:]): ditto
        (-[WebBaseResourceHandleDelegate didCancelAuthenticationChallenge:]): ditto
        (-[WebBaseResourceHandleDelegate didReceiveResponse:]): ditto
        (-[WebBaseResourceHandleDelegate didReceiveData:lengthReceived:]): ditto
        (-[WebBaseResourceHandleDelegate didFinishLoading]): ditto
        (-[WebBaseResourceHandleDelegate didFailWithError:]): ditto
        (-[WebBaseResourceHandleDelegate willCacheResponse:]): ditto
        (-[WebBaseResourceHandleDelegate connection:willSendRequest:redirectResponse:]): calls connection-less version of this method
        (-[WebBaseResourceHandleDelegate connection:didReceiveAuthenticationChallenge:]): ditto
        (-[WebBaseResourceHandleDelegate connection:didCancelAuthenticationChallenge:]): ditto
        (-[WebBaseResourceHandleDelegate connection:didReceiveResponse:]): ditto
        (-[WebBaseResourceHandleDelegate connection:didReceiveData:lengthReceived:]): ditto
        (-[WebBaseResourceHandleDelegate connectionDidFinishLoading:]): ditto
        (-[WebBaseResourceHandleDelegate connection:didFailWithError:]): ditto
        (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]): ditto
        (-[WebBaseResourceHandleDelegate cancelWithError:]): call renamed _completeProgressForConnectionDelegate on WebView
        (-[WebBaseResourceHandleDelegate cancelledError]): tweak
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _loadIcon]): set the data source on the icon loader so it can callback
        * WebView.subproj/WebResource.m:
        (-[WebResource _response]): new, factored out from _cachedResponseRepresentation
        (-[WebResource _cachedResponseRepresentation]): call _response
        * WebView.subproj/WebResourcePrivate.h:
        * WebView.subproj/WebView.m:
        (-[WebView _incrementProgressForConnectionDelegate:response:]): renamed to be connection-less
        (-[WebView _incrementProgressForConnectionDelegate:data:]): ditto
        (-[WebView _completeProgressForConnectionDelegate:]): ditto
        * WebView.subproj/WebViewPrivate.h:

2004-03-01  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin
        
        Changed all Objective-C DOM classes from protocols to classes. 

        * DOM.subproj/DOM-compat.h:
        * DOM.subproj/DOM.h:
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge loadURL:referrer:reload:onLoadEvent:target:triggeringEvent:form:formValues:]):
        (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
        * WebView.subproj/WebFormDelegate.h:
        * WebView.subproj/WebFormDelegate.m:
        (-[WebFormDelegate frame:sourceFrame:willSubmitForm:withValues:submissionListener:]):
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
        (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
        (-[WebFormState initWithForm:values:sourceFrame:]):
        (-[WebFormState form]):
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebHTMLRepresentation.h:
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation DOMDocument]):
        (-[WebHTMLRepresentation setSelectionFrom:startOffset:to:endOffset:]):
        (-[WebHTMLRepresentation attributedStringFrom:startOffset:to:endOffset:]):
        (-[WebHTMLRepresentation elementWithName:inForm:]):
        (-[WebHTMLRepresentation elementForView:]):
        (-[WebHTMLRepresentation elementDoesAutoComplete:]):
        (-[WebHTMLRepresentation elementIsPassword:]):
        (-[WebHTMLRepresentation formForElement:]):
        (-[WebHTMLRepresentation controlsInForm:]):
        (-[WebHTMLRepresentation searchForLabels:beforeElement:]):
        (-[WebHTMLRepresentation matchLabels:againstElement:]):

2004-02-27  John Sullivan  <sullivan@apple.com>

        - WebKit changes to allow performance improvements to bookmarks 

        Reviewed by Darin.

        * History.subproj/WebHistoryItemPrivate.h:
        added notificationsSuppressed/setNotificationsSuppressed, and setURLString
        * History.subproj/WebHistoryItem.m:
        (-[WebHistoryItem setNotificationsSuppressed:]):
        setter for new flag. When this flag is set, making changes to the WebHistoryItem
        will not cause WebHistoryChanged notifications to be sent. This is a big speedup
        for reading bookmarks from disk, since currently each WebBookmarkLeaf object
        keeps around a WebHistoryItem object that isn't really part of history and thus
        doesn't need to send notifications about history changing.
        (-[WebHistoryItem notificationsSuppressed]):
        getter for new flag
        (-[WebHistoryItem setURLString:]):
        new method, extracted from guts of setURL:; this allows callers (though
        currently only callers at Apple) that have a URL string in hand to set
        it directly on the WebHistoryItem rather than converting to a URL and
        back, both relatively slow operations. Also, doesn't sent a notification
        if notifications are suppressed.
        (-[WebHistoryItem setURL:]):
        now calls extracted method
        (-[WebHistoryItem setAlternateTitle:]):
        doesn't send notification if notifications are suppressed
        (-[WebHistoryItem setOriginalURLString:]):
        ditto
        (-[WebHistoryItem setTitle:]):
        ditto
        (-[WebHistoryItem _setLastVisitedTimeInterval:]):
        ditto

2004-02-26  Chris Blumenberg  <cblu@apple.com>

        WebKit side of:
        <rdar://problem/3056566>: mail a link to this page
        <rdar://problem/2961206>: implement ability to e-mail entire page

        Reviewed by john.

        * English.lproj/StringsNotToBeLocalized.txt:
        * Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase _createFileDatabase]): tweaks
        (-[WebIconDatabase _loadIconDictionaries]): fixed an assertion failure I found in Blot. Keep the original list of icon URLs as a separate list when doing the initial clean-up so we don't over release any icons.
        (-[WebIconDatabase _updateFileDatabase]): tweaks
        (-[WebIconDatabase _setIcon:forIconURL:]): tweaks
        (-[WebIconDatabase _releaseIconForIconURLString:]): tweaks
        (-[WebIconDatabase _retainOriginalIconsOnDisk]): use the original list of icons on disk instead of the current list
        (-[WebIconDatabase _releaseOriginalIconsOnDisk]): use the original list of icons on disk instead of the current list
        * Misc.subproj/WebIconDatabasePrivate.h:
        * WebKit.exp:
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _propertyListWithData:subresourceURLStrings:]): new, code moved from [WebHTMLView _selectedPropertyList:], creates property list rep of data and subresources
        (-[WebDataSource propertyList]): does the above with all the data source data, this is what "Mail Page" uses
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame loadPropertyList:]): renamed from loadHTMLPropertyList because the property list may contain non-HTML data
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _selectedPropertyList:]): renamed, code moved to [WebDataSource _propertyListWithData:subresourceURLStrings:]
        (-[WebHTMLView _writeSelectionToPasteboard:]): call renamed _selectedPropertyList

2004-02-26  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Chris

        Updated usage of DOM SPI to use new names and conventions. 

        Unless indicated otherwise, the changes were to update protocol names for, which
        changed from using a "WebDOM" prefix to a "DOM" prefix, and changing now need 
        only include the DOM.h header from WebKit to get everything.

        * DOM.subproj/DOM-compat.h: Added. This header contains some compatibility declarations
        to work with older clients of our DOM SPI. Though this file is checked into WebKit, 
        it really lives and should be updated in WebCore. It is copied into WebKit by the build 
        system as needed.
        * DOM.subproj/DOM.h: Added. This file includes the new "guts" of the DOM SPI. As above,
        this file is checked into WebKit, it really lives and should be updated in WebCore.
        It is copied into WebKit by the build system as needed.
        * DOM.subproj/WebDOMDocument.h: Removed declarations. Now just includes DOM.h and DOM-compat.h
        * DOM.subproj/WebDOMDocument.m: Removed.
        * DOM.subproj/WebDOMElement.h: Removed declarations. Now just includes DOM.h and DOM-compat.h
        * DOM.subproj/WebDOMElement.m: Removed.
        * DOM.subproj/WebDOMNode.h: Removed declarations. Now just includes DOM.h and DOM-compat.h
        * DOM.subproj/WebDOMNode.m: Removed.
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge loadURL:referrer:reload:onLoadEvent:target:triggeringEvent:form:formValues:])
        (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:])
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        * WebView.subproj/WebFormDelegate.h:
        * WebView.subproj/WebFormDelegate.m:
        (-[WebFormDelegate frame:sourceFrame:willSubmitForm:withValues:submissionListener:])
        * WebView.subproj/WebFrame.h: Unrelated change. Removed -undoManager accessor from public header. Moved to private header.
        * WebView.subproj/WebFrame.m: 
        (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:])
        (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:])
        (-[WebFrame undoManager]): Moved -undoManager accessor to private category implementation.
        (-[WebFormState initWithForm:values:sourceFrame:])
        (-[WebFormState form])
        (-[WebFrame childFrames])
        * WebView.subproj/WebFramePrivate.h: Moved in -undoManager accessor.
        * WebView.subproj/WebHTMLRepresentation.h:
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation DOMDocument])
        (-[WebHTMLRepresentation setSelectionFrom:startOffset:to:endOffset:])
        (-[WebHTMLRepresentation attributedStringFrom:startOffset:to:endOffset:])
        (-[WebHTMLRepresentation elementWithName:inForm:])
        (-[WebHTMLRepresentation elementForView:])
        (-[WebHTMLRepresentation elementDoesAutoComplete:])
        (-[WebHTMLRepresentation elementIsPassword:])
        (-[WebHTMLRepresentation formForElement:])
        (-[WebHTMLRepresentation controlsInForm:])
        (-[WebHTMLRepresentation searchForLabels:beforeElement:])
        (-[WebHTMLRepresentation matchLabels:againstElement:])
        * WebView.subproj/WebHTMLView.m:
        * copy-webcore-files-to-webkit: Added. Copies DOM.h and DOM-compat.h from WebCore when they
        have been updated there.

2004-02-25  John Sullivan  <sullivan@apple.com>

        WebKit part of fix for <rdar://problem/3546370>: add a way to tab to menus, 
        checkmarks, and buttons without turning on Full Keyboard Acceess

        Reviewed by Ken.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
        turn on WebCoreKeyboardAccessFull bit whenever we turn on
        WebCoreKeyboardAccessTabsToLinks bit

2004-02-24  Chris Blumenberg  <cblu@apple.com>

        I forgot to add these files in my last check-in.

        * WebView.subproj/WebResource.h: Added.
        * WebView.subproj/WebResource.m: Added.
        (-[WebResourcePrivate dealloc]):
        (-[WebResource initWithData:URL:MIMEType:textEncodingName:]):
        (-[WebResource dealloc]):
        (-[WebResource data]):
        (-[WebResource URL]):
        (-[WebResource MIMEType]):
        (-[WebResource textEncodingName]):
        (+[WebResource _resourcesFromPropertyLists:]):
        (+[WebResource _propertyListsFromResources:]):
        (-[WebResource _initWithPropertyList:]):
        (-[WebResource _initWithCachedResponse:originalURL:]):
        (-[WebResource _propertyListRepresentation]):
        (-[WebResource _cachedResponseRepresentation]):
        * WebView.subproj/WebResourcePrivate.h: Added.

2004-02-24  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3565476>: design/implement new pasteboard type for HTML that includes subresources

        Reviewed by rjw.

        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginConnectionDelegate initWithStream:view:]): don't manage buffer, WebBaseResourceHandleDelegate does this now
        (-[WebNetscapePluginConnectionDelegate releaseResources]): ditto
        (-[WebNetscapePluginConnectionDelegate connection:didReceiveData:lengthReceived:]): ditto
        (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): ditto
        * WebKit.exp:
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebBaseResourceHandleDelegate.h:
        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate releaseResources]): release resourceData and resource
        (-[WebBaseResourceHandleDelegate loadWithRequest:]): check the dataSource for a resource, load that if we have one
        (-[WebBaseResourceHandleDelegate addData:]): new, adds data to resourceData
        (-[WebBaseResourceHandleDelegate saveResource]): new, saves data as a resource on the dataSource
        (-[WebBaseResourceHandleDelegate saveResourceWithCachedResponse:]): new, replaces the resource on the dataSource to save memory
        (-[WebBaseResourceHandleDelegate resourceData]): new
        (-[WebBaseResourceHandleDelegate connection:didReceiveData:lengthReceived:]): call addData:
        (-[WebBaseResourceHandleDelegate connectionDidFinishLoading:]): call saveResource
        (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]): new, calls saveResourceWithCachedResponse:
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSourcePrivate dealloc]): release subresources
        (-[WebDataSource subresources]): new, returns the subresources of the data source
        (-[WebDataSource subresourceForURL:]): new, returns a resource for a URL
        (-[WebDataSource addSubresource:]): new
        (-[WebDataSource addSubresources:]): new
        (-[WebDataSource _receivedData:]): added an assert
        (-[WebDataSource _setData:]): replaces the data of the data source
        (-[WebDataSource initWithRequest:]): create subresources
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame loadHTMLPropertyList:]): new, loads a frame from an HTML plist
        (-[WebFrame _webDataRequestForData:MIMEType:textEncodingName:baseURL:]): new, factored out from loadData:MIMEType:textEncodingName:baseURL:
        (-[WebFrame _loadRequest:subresources:]): new, factored out from loadRequest:, handles subresources
        (-[WebFrame loadRequest:]): now just calls _loadRequest:subresources:
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _dataSource]): new internal convenience
        (+[WebHTMLView _selectionPasteboardTypes]): renamed from _pasteboardTypes to be more precise
        (-[WebHTMLView _selectedHTMLPropertyList:]): new, constructs an HTML plist from the selection
        (-[WebHTMLView _writeSelectionToPasteboard:]): calls _selectedHTMLPropertyList to support WebHTMLPboardType
        (-[WebHTMLView _pasteHTMLFromPasteboard:]): added support for pasting WebHTMLPboardType
        (+[WebHTMLView initialize]): call renamed _selectionPasteboardTypes 
        (-[WebHTMLView initWithFrame:]): allow WebHTMLPboardType to be dragged in
        (-[WebHTMLView validRequestorForSendType:returnType:]): call renamed _selectionPasteboardTypes 
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient addData:]): override since the main resource does it's own buffering
        (-[WebMainResourceClient saveResource]): override to do nothing since the main resource is not saved as a subresource
        (-[WebMainResourceClient saveResourceWithCachedResponse:]): override, calls _setData on the data source to 
        (-[WebMainResourceClient connection:didReceiveData:lengthReceived:]):
        * WebView.subproj/WebResource.h: Added.
        * WebView.subproj/WebResource.m: Added. New class the represents the data, URL, MIME type and textEncodingName of a resource.
        (-[WebResourcePrivate dealloc]):
        (-[WebResource initWithData:URL:MIMEType:textEncodingName:]):
        (-[WebResource dealloc]):
        (-[WebResource data]):
        (-[WebResource URL]):
        (-[WebResource MIMEType]):
        (-[WebResource textEncodingName]):
        (-[WebResource description]):
        (+[WebResource _resourcesFromPropertyLists:]):
        (+[WebResource _propertyListsFromResources:]):
        (-[WebResource _initWithPropertyList:]):
        (-[WebResource _propertyListRepresentation]):
        (-[WebResource _initWithCachedResponse:originalURL:]):
        (-[WebResource _cachedResponseRepresentation]):
        * WebView.subproj/WebResourcePrivate.h: Added.
        * WebView.subproj/WebView.m:

=== Safari-129 ===

2004-02-20  Darin Adler <darin@apple.com>

        Reviewed by mjs.

        - fix build breakage caused by removal of kWindowNoBufferingAttribute.  

        * Carbon.subproj/CarbonWindowAdapter.m:
        (-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:disableOrdering:carbon:]):
        always used a retained backing store type

2004-02-20  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3563402>: when copying HTML, relative URLs should be made absolute

        Reviewed by dave.

        * WebView.subproj/WebHTMLRepresentation.h:
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation HTMLString]): renamed from reconstructed source to be more analogous with other data get methods
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _writeSelectionToPasteboard:]): call renamed selectedHTML on the bridge

2004-02-19  John Sullivan  <sullivan@apple.com>

        - WebKit part of fix for <rdar://problem/3292380>: Cycle Tabs keyboard shortcut 
        (cmd-shift-arrows) conflicts with text editing

        Reviewed by Chris.

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView keyDown:]):
        If shift key is down along with an arrow key, call super rather than eating
        event since we don't handle any shifted events here.

2004-02-15  Darin Adler  <darin@apple.com>

        Reviewed by John and Don.

        - discovered that jaguar.com doesn't need spoofing any more, so removed
          the spoofing machinery entirely; if we ever have to bring it back we
          can, but I doubt we will

        * WebView.subproj/WebView.m: Removed include of WebUserAgentSpoofTable.c.
        (-[WebViewPrivate dealloc]): Release the new single userAgent rather than
        the array and userAgentOverride we used to.
        (-[WebView _preferencesChangedNotification:]): Release the single user agent,
        rather than the entire cache. Also only do it when the user agent is not
        overridden.
        (-[WebView setApplicationNameForUserAgent:]): Ditto.
        (-[WebView setCustomUserAgent:]): Set the new userAgentOverridden boolean,
        and also set userAgent itself.
        (-[WebView customUserAgent]): Return userAgent, but only if userAgentOverridden
        is true.
        (-[WebView userAgentForURL:]): Simplify, now that there's no automatic spoofing
        to do. Made even simpler by the fact that custom and computed user agents both
        share the same field now.

        * WebView.subproj/WebViewPrivate.h: Got rid of UserAgentStringType, turned the
        userAgent field into a single item instead of an array, and replaced the
        userAgentOverride field with a boolean userAgentOverridden field.

        * Makefile.am: Removed the rule to build WebUserAgentSpoofTable.c.
        * WebView.subproj/WebUserAgentSpoofTable.c: Removed.
        * WebView.subproj/WebUserAgentSpoofTable.gperf: Removed.

2004-02-15  Darin Adler  <darin@apple.com>

        Reviewed by Dave.

        * WebKit.pbproj/project.pbxproj: Tweak build styles a bit, fixing OptimizedWithSymbols,
        and removing redundant settings of things that match defaults in other build styles.

2004-02-12  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John.

        - redo visited link history checking for a 2% speed improvement

        * History.subproj/WebHistory.m:
        (-[_WebCoreHistoryProvider containsItemForURLString:]): Removed.
        (-[_WebCoreHistoryProvider containsItemForURLLatin1:length:]): Implemented.
        For https and http URLs with empty path, add a slash. Make a CFString
        using the passed-in latin1 buffer without copying.
        (-[_WebCoreHistoryProvider containsItemForURLUnicode:length:]): Ditto
        for unicode.
        (matchLetter): New static helper function.
        (matchUnicodeLetter): Ditto.

=== Safari-128 ===

2004-02-10  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge registerCommandForUndo]): Some cleanup. Cookie for events no longer needed.
        (-[WebBridge registerCommandForRedo]): Ditto.
        (-[WebBridge clearUndoRedoOperations]): Tells the Cocoa undo manager to clear
        steps targeted at the bridge.
        * WebView.subproj/WebFrame.h: Declare undo manager accessor.
        * WebView.subproj/WebFrame.m:
        (-[WebFramePrivate dealloc]): Release undo manager
        (-[WebFrame undoManager]): Allocate and return an undo manager. This helps
        undo in a browser to be per tab.
        * WebView.subproj/WebFramePrivate.h: Declare undo manager ivar.

2004-02-08  Darin Adler  <darin@apple.com>

        Reviewed by Dave.

        - fixed things seen in the profile, for a total speedup of 4% on cvs-base
        - fixed some layout regressions from my last speedup due to text measurement inconsistencies by adding
          a flag to control whether word rounding is done or not
        - fixed text measurement to be used with AppKit to match AppKit again, as it did at some point in the past

        * WebCoreSupport.subproj/WebTextRenderer.h: Remove some unused fields, and added a field to say whether we
        treat this font as fixed pitch.
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (getUncachedWidth): Remove space width hack from this level. There was already a width hack up at the higher
        level for space itself, so there's not a significant speed benefit, and the higher level can make a more
        intelligent choice based on the current rounding setting since it's not cached.
        (-[WebTextRenderer _computeWidthForSpace]): Don't store so many widths; just the adjusted width we will
        actually use.
        (widthForNextCharacter): Use two different rules for when to adjust space widths, based on whether this is
        a fixed pitch font or not. Also, don't do any adjusting of space widths if applyWordRounding is false.

        * Misc.subproj/WebKitNSStringExtras.m:
        (-[NSString _web_drawAtPoint:font:textColor:]): Turn off rounding, so we get the kind of spacing AppKit would normally give.
        (-[NSString _web_widthWithFont:]): Ditto.
        * Misc.subproj/WebStringTruncator.m: (stringWidth): Ditto.

2004-02-08  Darin Adler  <darin@apple.com>

        - fixed things seen in the profile, for a total speedup of 3.7% on cvs-base

        * Misc.subproj/WebNSURLExtras.m: (-[NSURL _web_userVisibleString]): Check for "xn--" as we
        walk the string instead of in a separate call to strcasestr. Faster this way.

2004-02-07  Darin Adler  <darin@apple.com>

        * WebKit.pbproj/project.pbxproj: Get rid of the DEPLOYMENT_LOCATION and DEPLOYMENT_POSTPROCESSING
        flags that were in the Deployment build style. These were causing the need to chmod all the time
        after building WebCore successfully, and were doing us no good.

2004-02-06  Darin Adler  <darin@apple.com>

        * Resources/missing_image.tiff: Compressed with compress-tiffs; saved 15890 bytes.

=== Safari-127 ===

2004-02-05  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

        Added so that editing can hook into Cocoa undo architecture. 

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge registerCommandForUndo:]):

2004-02-04  David Hyatt  <hyatt@apple.com>

        Fix deployment build bustage.
        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (ConsoleConnectionChangeNotifyProc):

2004-02-04  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3546028>: Safari should not give plug-ins any time, thus use 0% CPU, when not in the currently active session


        Reviewed by john.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (+[WebBaseNetscapePluginView initialize]): observe CG changes
        (-[WebBaseNetscapePluginView addWindowObservers]): observe user switch notifications
        (-[WebBaseNetscapePluginView removeWindowObservers]): stop observing user switch notifications
        (-[WebBaseNetscapePluginView viewHasMoved:]): tweak
        (-[WebBaseNetscapePluginView windowWillClose:]): tweak 
        (-[WebBaseNetscapePluginView windowBecameKey:]): tweak
        (-[WebBaseNetscapePluginView windowResignedKey:]): tweak
        (-[WebBaseNetscapePluginView windowDidMiniaturize:]): tweak
        (-[WebBaseNetscapePluginView windowDidDeminiaturize:]): tweak
        (-[WebBaseNetscapePluginView loginWindowDidSwitchFromUser:]): new, stop null events
        (-[WebBaseNetscapePluginView loginWindowDidSwitchToUser:]): new, restart null events
        (ConsoleConnectionChangeNotifyProc): new, post user switch notifications

2004-02-02  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin.

        * Misc.subproj/WebNSURLExtras.h:
        * Misc.subproj/WebNSURLExtras.m:
        (-[NSURL _web_URLWithLowercasedScheme]):
        new method, returns a URL whose scheme has been tolower'ed

        * English.lproj/StringsNotToBeLocalized.txt:
        Updated for recent changes.

2004-02-02  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3546924>: REGRESSION: dragging text or images over a WebView is jerky

        Reviewed by mjs.

        * DOM.subproj/WebDOMNode.h: added HTMLString to the protocol
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate copyImageToClipboard:]): get the HTML representation via the DOM node
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _handleMouseDragged:]): get the HTML representation via the DOM node
        * WebView.subproj/WebView.h: removed the HTML string element key constant
        * WebView.subproj/WebView.m: removed the HTML string element key constant

2004-02-02  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3546426>: when copying images via context menus, only some data is added to the pasteboard

        Reviewed by john.

        * Misc.subproj/WebNSPasteboardExtras.h:
        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_writeImage:URL:title:fileWrapper:HTMLString:]): new, writes and image, URL and other optional arguments to the pasteboard
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_dragImage:fileWrapper:rect:URL:title:HTMLString:event:]): factored code out to _web_writeImage, call _web_writeImage
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate copyImageToClipboard:]): call _web_writeImage
        * WebView.subproj/WebImageView.m:
        (-[WebImageView writeImageToPasteboard:]): call _web_writeImage

2004-02-02  Darin Adler  <darin@apple.com>

        - fixed build failure on Merlot

        * Misc.subproj/WebNSPasteboardExtras.m: Import just CoreTranslationFlavorTypeNames.h rather than all of
        ApplicationServicesPriv.h; should compile faster and avoid build failure.

2004-02-02  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3546379>: support for editing via drag & drop

        Reviewed by kocienda.

        * Misc.subproj/WebNSViewExtras.h:
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_dragImage:fileWrapper:rect:URL:title:HTMLString:event:]): added a HTMLString argument so that we retain all attributes when dragging images
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _canDelete]): call renamed isSelectionEditable
        (-[WebHTMLView _canPaste]): call renamed isSelectionEditable
        (-[WebHTMLView _pasteHTMLFromPasteboard:]): new, factored out from paste:
        (-[WebHTMLView _handleMouseDragged:]): removed code that returned early if we were loading, this kind of protection is no longer needed since we now retain the view while dragging, call renamed _web_dragImage
        (-[WebHTMLView initWithFrame:]): register for drop types
        (-[WebHTMLView paste:]): call _pasteHTMLFromPasteboard
        (-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]): set new isDragging BOOL to YES
        (-[WebHTMLView draggedImage:endedAt:operation:]): set new isDragging BOOL to NO
        (-[WebHTMLView draggingEntered:]): new
        (-[WebHTMLView draggingUpdated:]): new, handle caret movement during the drag
        (-[WebHTMLView prepareForDragOperation:]): new
        (-[WebHTMLView performDragOperation:]): new
        (-[WebHTMLView concludeDragOperation:]): new, paste in the drag
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebImageView.m:
        (-[WebImageView mouseDragged:]): call renamed _web_dragImage
        * WebView.subproj/WebView.h:
        * WebView.subproj/WebView.m:

=== Safari-126 ===

2004-01-30  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3536126>: REGRESSION (Merlot): WebKit dragging is in strange location

        Reviewed by kocienda.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _handleMouseDragged:]): use the proper offset when dragging text

2004-01-28  John Sullivan  <sullivan@apple.com>

        More header/footer work: refactored the header/footer code so it could
        be easily reused by other WebDocument classes; used it from WebImageView
        and WebTextView; removed the page count parameters because it's possible
        (though currently nasty, see 3543078) to determine this in the client.

        Reviewed by Dave.

        * Misc.subproj/WebNSPrintOperationExtras.h Added.
        * Misc.subproj/WebNSPrintOperationExtras.m Added.
        (-[NSPrintOperation _web_pageSetupScaleFactor]):
        new convenience method.
                
        * WebView.subproj/WebUIDelegatePrivate.h:
        Removed page index and page count parameters from delegate methods.
        
        * WebView.subproj/WebViewPrivate.h:
        New private category for header/footer printing methods so that different
        WebDocument methods can share almost all of the code.
        
        * WebView.subproj/WebView.m:
        (-[WebView _headerHeight]):
        (-[WebView _footerHeight]):
        (-[WebView _drawHeaderInRect:]):
        (-[WebView _drawFooterInRect:]):
        (-[WebView _adjustPrintingMarginsForHeaderAndFooter]):
        (-[WebView _drawHeaderAndFooter]):
        Moved all of these methods here, formerly in WebHTMLView. Removed the
        page index and page count parameters.

        * WebView.subproj/WebHTMLView.m:
        Removed all the header/footer code that's now in WebView.m, and the
        method that's now -[NSPrintOperation _web_pageSetupScaleFactor]
        (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
        call methods differently that have now been moved
        (-[WebHTMLView _scaleFactorForPrintOperation:]):
        ditto
        (-[WebHTMLView knowsPageRange:]):
        ditto
        (-[WebHTMLView drawPageBorderWithSize:]):
        now just turns around and calls -[WebView _drawHeaderAndFooter]
        
        * WebView.subproj/WebImageView.m:
        (-[WebImageView drawPageBorderWithSize:]):
        new method, just calls -[WebView _drawHeaderAndFooter]
        (-[WebImageView beginDocument]):
        now calls -[WebView _adjustPrintMarginsForHeaderAndFooter], also moved in file.
        (-[WebImageView endDocument]):
        just moved in file.

        * WebView.subproj/WebTextView.m:
        (-[WebTextView drawPageBorderWithSize:]):
        new method, just calls -[WebView _drawHeaderAndFooter]        
        (-[WebTextView knowsPageRange:]):
        overridden to call -[WebView _adjustPrintMarginsForHeaderAndFooter]
        
        * WebKit.pbproj/project.pbxproj:
        updated for added files


2004-01-28  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3197222>: need context menu items for back, forward, refresh.

        Reviewed by rjw.

        * English.lproj/Localizable.strings:
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate menuItemWithTag:]): added support for WebMenuItemTagGoBack, WebMenuItemTagGoForward, WebMenuItemTagStop and WebMenuItemTagReload tags
        (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): added support for Back, Forward, Stop and Reload
        * WebView.subproj/WebUIDelegate.h: added WebMenuItemTagGoBack, WebMenuItemTagGoForward, WebMenuItemTagStop and WebMenuItemTagReload tags

2004-01-27  John Sullivan  <sullivan@apple.com>

        WebKit part of fixes for:
        <rdar://problem/3123975>: ER: please list the source URL in the header 
        or footer when printing the contents of a page
        <rdar://problem/3184091>: Safari - Configurable printing header/footer
        <rdar://problem/3306826>: Please allow printing the date (as well as URL) 
        in the header or footer

        Reviewed by Dave.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _headerHeight]):
        new method, gets result from WebView's UI delegate or returns 0
        (-[WebHTMLView _footerHeight]):
        new method, gets result from WebView's UI delegate or returns 0
        (-[WebHTMLView _drawHeaderInRect:]):
        new method, gives WebView's UI delegate a chance to draw header
        (-[WebHTMLView _drawFooterInRect:]):
        new method, gives WebView's UI delegate a chance to draw footer
        (-[WebHTMLView _adjustPrintingMarginsForHeaderAndFooter]):
        new method, adds header and footer heights into page margins so
        AppKit printing code will compute and use the right area
        (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
        now calls _adjustPrintingMarginsForHeaderAndFooter if starting to print
        (-[WebHTMLView drawPageBorderWithSize:]):
        new method, computes rects for header and footer and calls new drawing methods
        
        * WebView.subproj/WebUIDelegatePrivate.h:
        add header and footer-related delegate methods

2004-01-27  Chris Blumenberg  <cblu@apple.com>

        Fixed:
        <rdar://problem/3541812>: Implement Paste menu item
        <rdar://problem/3541814>: Implement Delete menu item
        <rdar://problem/3541811>: Implement Cut menu item

        Reviewed by dave.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _haveSelection]): new, renamed from hasSelection, calls haveSelection on the bridge, quicker than generating string rep of selection
        (-[WebHTMLView _canDelete]): new
        (-[WebHTMLView _canPaste]): new
        (-[WebHTMLView takeFindStringFromSelection:]): call renamed _haveSelection
        (-[WebHTMLView cut:]): new
        (-[WebHTMLView delete:]): new
        (-[WebHTMLView paste:]): new
        (-[WebHTMLView validateUserInterfaceItem:]): updated for new methods
        (-[WebHTMLView validRequestorForSendType:returnType:]): call renamed _haveSelection
        * WebView.subproj/WebHTMLViewPrivate.h:

2004-01-27  Chris Blumenberg  <cblu@apple.com>

        Fixed build breakage.

        Reviewed by darin.

        * WebKit.pbproj/project.pbxproj: Use full path instead of -L to get at WebKitSecurity.a

2004-01-27  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3536624>: Webkit 1.2 links against SecurityNssAsn1.framework

        Reviewed by Darin.

        * WebCoreSupport.subproj/WebKeyGeneration.h: Set DISABLE_WEB_KEY_GENERATION on Merlot for now.
        Then don't include anything if that's set.
        * WebCoreSupport.subproj/WebKeyGeneration.cpp: Don't compile anything if DISABLE_WEB_KEY_GENERATION
        is set.
        * WebCoreSupport.subproj/WebKeyGenerator.m:
        (-[WebKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]):
        Always return nil if DISABLE_WEB_KEY_GENERATION is set.
        (-[WebKeyGenerator addCertificatesToKeychainFromData:]): Always return failure if
        DISABLE_WEB_KEY_GENERATION is set.

        * WebKit.pbproj/project.pbxproj: Added shell build step to make library with security
        libraries in it. On Merlot, makes empty library. Also added library to link options.
        * WebKitSecurityDummy.c: Added. Used to make empty version of library for build on Merlot.

2004-01-26  Darin Adler  <darin@apple.com>

        * Makefile.am: Switch from pbxbuild to xcodebuild.

2004-01-26  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed <rdar://problem/3521379>: image dimensions uses lowercase x instead of multiplication sign

        * WebView.subproj/WebImageRepresentation.m: (-[WebImageRepresentation title]):
        Change string to use multiplication sign instead of x.
        * English.lproj/Localizable.strings: Updated.

2004-01-23  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Richard

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView updateShowsFirstResponder]): Renamed from updateFocusRing:
        since it is now used to kill caret blink timer.
        (-[WebHTMLView windowDidBecomeKey:]): Now calls new updateShowsFirstResponder
        method.
        (-[WebHTMLView windowDidResignKey:]): Ditto.

2004-01-22  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3537542>: support for copying HTML

        Reviewed by dave.

        * WebView.subproj/WebHTMLRepresentation.h:
        * WebView.subproj/WebHTMLRepresentation.m:
        (-[WebHTMLRepresentation reconstructedSource]): for BLOT's eventual use
        * WebView.subproj/WebHTMLView.m:
        (+[WebHTMLView _pasteboardTypes]): provide NSHTMLPboardType 
        (-[WebHTMLView _writeSelectionToPasteboard:]): add HTML to the pasteboard

2004-01-22  John Sullivan  <sullivan@apple.com>

        Reviewed by Chris.

        * English.lproj/StringsNotToBeLocalized.txt:
        brought this file back up to date

2004-01-22  Darin Adler  <darin@apple.com>

        - fixed 3536624: Webkit 1.2 links against SecurityNssAsn1.framework

        * WebKit.pbproj/project.pbxproj: Remove SecurityNssAsn1.framework from the list we link against.
        It's still included in the list for places to find headers.

=== Safari-125 ===

=== Safari-124 ===

2004-01-15  Vicki Murley  <vicki@apple.com>

        Reviewed by Darin.

        * WebKit.pbproj/project.pbxproj: Update copyright date to 2004.
        * English.lproj/InfoPlist.strings: Update copyright date to 2004.

=== Safari-122 ===

=== Safari-121 ===

2004-01-10  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed 3524906: REGRESSION (114-115): page with plug-in content never stops loading (travelking.com.tw)

        Put the plug-in streams clients into their own separate set. Now a plug-in client is not considered part
        of "loading", but it does participate in the callback deferral mechanism, which was the real goal of the
        change I made that introduced this regression. Also remove the plug-in client in one case I had missed
        before (cancel).

        * WebView.subproj/WebDataSourcePrivate.h: Added a new set of plugInStreamClients.
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSourcePrivate dealloc]): Release the set.
        (-[WebDataSource _addPlugInStreamClient:]): Added. Adds to the set.
        (-[WebDataSource _removePlugInStreamClient:]): Added. Removes from the set.
        (-[WebDataSource _defersCallbacksChanged]): Added code to loop through plugInStreamClients too.

        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream start]): Use _add/removePlugInStreamClient instead of _add/removeSubresourceClient.
        (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): Ditto.
        (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): Ditto.
        (-[WebNetscapePluginConnectionDelegate cancelWithError:]): Override to call _removePlugInStreamClient and
        then call super.

2004-01-09  Darin Adler  <darin@apple.com>

        - rolled out most of Dave's change for 3510669 and 3515442; it is not working yet

        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebHTMLView.m:

2004-01-09  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Chris.

        <rdar://problem/3514446>: cert downloaded from BofA or MIT is rejected (ACL issue on private key?)
        
        * WebCoreSupport.subproj/WebKeyGeneration.cpp:
        (createPair): Cut & paste hunk of code from Security framework.
        (Safari_SecKeyCreatePair): Ditto.
        (signedPublicKeyAndChallengeString): Instead of creating a normal ACL,
        use our hacked version of the SecKeyCreatePair call that doesn't put in
        any kind of ACL. This works around a SecureTransport bug.

2004-01-09  David Hyatt  <hyatt@apple.com>

        Fixes for 3510669 and 3515442, blank frame problems caused by WebKit's resizing not scheduling actual
        layouts via WebCore.
        Reviewed by darin

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _web_layoutIfNeededRecursive:testDirtyRect:]):
        (-[WebHTMLView initWithFrame:]):
        (-[WebHTMLView layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
        (-[WebHTMLView setNeedsLayout:]):
        * WebView.subproj/WebHTMLViewPrivate.h:

2004-01-09  Darin Adler  <darin@apple.com>

        Reviewed by Chris.

        - fixed 3510805: "PoolCleaner" in Carbon WebKit leads to overrelease and crash using color picker in BBEdit

        * Carbon.subproj/CarbonUtils.m: (PoolCleaner): Only do the autorelease
        pool stuff in the default run loop mode. If we're in another run loop
        mode that means we are in some Cocoa code that sets up its own autorelease
        pool; it's important that we don't release ours in that case.

2004-01-08  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John.

        <rdar://problem/3522298>: Error on MIT's x509 certificate site

        * WebCoreSupport.subproj/WebKeyGeneration.cpp:
        (addCertificatesToKeychainFromData): Sign the freshly minted public key
        using RSA/MD5 instead of RSA/SHA-1, because MIT only supports MD5.

2004-01-08  Richard Williamson   <rjw@apple.com>

        Fixed 3524430.  This was a regression introduced when we added '-' and '?' to the word boundary detection.

        Also backed out workaround for 3521759 as it's no longer needed with correct argument passing to ATSUPositionToOffset.

        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):
        (widthForNextCharacter):

2004-01-08  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3522900>: REGRESSION (100-117): Java plug-in description is garbled when displaying Plug-ins.html

        Reviewed by darin.

        * Misc.subproj/WebKitNSStringExtras.h:
        * Misc.subproj/WebKitNSStringExtras.m:
        (+[NSString _web_encodingForResource:]): new method, returns the encoding for a resource handle given its file system path
        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage stringForStringListID:andIndex:]): call _web_encodingForResource when creating the NSString

=== Safari-120 ===

2004-01-06  Richard Williamson   <rjw@apple.com>

        Fixed 3513660.  Make ATSU layout and draw with integer glyph boundaries.  This fix should be removed if/when we convert WebCore to use floats for measuring/positioning (3521781).

        Reviewed by John.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _createATSUTextLayoutForRun:]):

2004-01-05  Richard Williamson   <rjw@apple.com>

        Fix for 3514454.  Work-around added for 3521759.

        Filed 3521781 to cover deeper problem.

        Reviewed by Kocienda.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _ATSU_drawHighlightForRun:style:atPoint:]):
        (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):

2003-12-22  John Sullivan  <sullivan@apple.com>

        - WebKit part of fix for <rdar://problem/3515706>: 
        REGRESSION (100-118): Web Kit printing does not honor Page Setup scale factor

        Reviewed by Darin.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _userScaleFactorForPrintOperation:]):
        new method, extracts the scale factor provided by the user in
        the Page Setup dialog
        (-[WebHTMLView _scaleFactorForPrintOperation:]):
        take user scale factor into account
        (-[WebHTMLView knowsPageRange:]):
        renamed local var scaleFactor -> totalScaleFactor for clarity;
        take user scale factor into account for print width; now assumes
        computePageRects returns autoreleased result.

        * WebKit.pbproj/project.pbxproj:
        Xcode version wars; Darin says these don't affect the build.

2003-12-21  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed a storage leak

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
        Move the release of the request out of an if statement, since it's always needed.

2003-12-19  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3515255>: Standalone image drag makes ocassionally makes 2 copies

        Reviewed by john.

        * WebKit.pbproj/project.pbxproj: Xcode 1.1 file format change
        * WebView.subproj/WebImageView.h:
        * WebView.subproj/WebImageView.m: copied double-drag protection code from WebHTMLView
        (-[WebImageView mouseDown:]): set ignoringMouseDraggedEvents to NO
        (-[WebImageView mouseDragged:]): if ignoringMouseDraggedEvents, return
        (-[WebImageView draggedImage:endedAt:operation:]): set ignoringMouseDraggedEvents to YES

=== Safari-119 ===

2003-12-18  Richard Williamson   <rjw@apple.com>

        Fixed 3511415.  We have to un-visually order visually ordered text
        before passing to ATSU.

        Reviewed by John.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (reverseCharactersInRun):
        (-[WebTextRenderer _ATSU_drawHighlightForRun:style:atPoint:]):
        (-[WebTextRenderer _ATSU_drawRun:style:atPoint:]):
        (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):

2003-12-17  Richard Williamson   <rjw@apple.com>

        Fixed 3503011 (really, this time).  Always use integer width for '-' and '?', as we do for spaces, to ensure
        that 'words' (as defined by out rounding hack) start on integer boundaries.

        Reviewed by John.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (widthForNextCharacter):

2003-12-17  Chris Blumenberg  <cblu@apple.com>

        Fixed:
        <rdar://problem/3393758>: REGRESSION (85-100): Flash onKeyUp event non-functional
        <rdar://problem/3479020>: REGRESSION (85-100): Safari sends plug-in key events to wrong instance of plug-in

        Reviewed by darin.

        * Plugins.subproj/WebBaseNetscapePluginView.h:
        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView sendEvent:]): set suspendKeyUpEvents to NO
        (-[WebBaseNetscapePluginView keyMessageForEvent:]): copied from CVS
        (-[WebBaseNetscapePluginView keyUp:]): if !suspendKeyUpEvents, send the keyUp event
        (-[WebBaseNetscapePluginView keyDown:]): set suspendKeyUpEvents to YES
        (-[WebBaseNetscapePluginView windowBecameKey:]): call SetUserFocusWindow

2003-12-17  Darin Adler  <darin@apple.com>

        Reviewed by Richard.

        - fixed 3513274: REGRESSION: anchor navigation within frames with "Back" is broken at tivofaq.com

        * WebView.subproj/WebDataSource.m: (-[WebDataSource _setURL:]):
        Since this method is only used when you do a fragment scroll, we need to update
        the original request as well as the request. This ensure that the fragment gets
        recorded in the history item (which goes in the back/forward history).

=== Safari-118 ===

2003-12-17  John Sullivan  <sullivan@apple.com>

        - fixed <rdar://problem/3512801>: REGRESSION (Safari 100-116): 
        Mike Hay's Magic 8-ball game ignores slow clicks

        Reviewed by Darin.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _handleAutoscrollForMouseDragged:]):
        start the autoscroll timer here, so the timer only runs when KHTML is
        handling the event.
        (-[WebHTMLView mouseDown:]):
        don't start the autoscroll timer here.

2003-12-16  Ken Kocienda  <kocienda@apple.com>

        * WebCoreSupport.subproj/WebBridge.m: ObjC runtime needs a declaration for new
        _calculatedExpiration SPI in NSURLResponse in Foundation

2003-12-16  Richard Williamson   <rjw@apple.com>

        Fixed 3512348:  Rewrote _CG_drawHighlightForRun:style:atPoint: to use width
        iterators.  Much faster, better cheaper, etc.

        Reviewed by Dave.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _CG_drawHighlightForRun:style:atPoint:]):

2003-12-16  Richard Williamson   <rjw@apple.com>

        Fixed 3503011.  Added '-' and '?' to rounding hack.

        Reviewed by John.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (isRoundingHackCharacter):
        (widthForNextCharacter):

2003-12-16  Darin Adler  <darin@apple.com>

        Reviewed by Richard.

        - finished fix to 3109132: can't open movie file via open panel

        * WebView.subproj/WebView.m: (+[WebView _supportedFileExtensions]):
        Include all the extensions for each MIME type, not jus the preferred one.

2003-12-16  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        Fix for this bug:

        <rdar://problem/3512199>: WebBridge expiresTimeForResponse can be 
        improved to use better expiration calculations

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge expiresTimeForResponse:]): Switch to use new 
        _calculatedExpiration SPI method on NSURLResponse.

2003-12-15  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3505546>: always get keychain prompt when sending mail using cert downloaded with Safari

        Reviewed by john.

        * WebCoreSupport.subproj/WebKeyGeneration.cpp:
        (signedPublicKeyAndChallengeString): set up the SecAccessRef with "everything goes" restrictions

2003-12-14  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed 3311205: click() on a file input type form element does not work bring up the file chooser as it does in IE

        * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton performClick]):
        Add method for clicking, now part of the WebCoreFileButton protocol.
        The rest of the fix is in WebCore.

2003-12-13  Darin Adler  <darin@apple.com>

        Fixed by Ed Voas, reviewed by me.

        - fixed 3278443: CARBON: grow box obscures scroll bar knob

        * Carbon.subproj/CarbonWindowAdapter.m: (-[CarbonWindowAdapter _growBoxRect]):
        Return the grow box so AppKit's scroll bar code will know where it is.

2003-12-12  Ken Kocienda  <kocienda@apple.com>

        * WebCoreSupport.subproj/WebKeyGeneration.cpp:
        (signedPublicKeyAndChallengeString): Fix build-bustin' typo.

2003-12-12  Chris Blumenberg  <cblu@apple.com>

        Fixed:
        <rdar://problem/3396936>: can't obtain a digital ID from Verisign, form submission fails
        <rdar://problem/3505208>: keys added to keychain from KEYGEN need better UI names

        Reviewed by rjw.

        * English.lproj/Localizable.strings:
        * WebCoreSupport.subproj/WebKeyGeneration.cpp:
        (signedPublicKeyAndChallengeString): take a key description arg and use it, take and return CFStrings, handle the empty string case
        (addCertificatesToKeychainFromData): return a WebCertificateParseResult so WB knows how to handle the cert
        * WebCoreSupport.subproj/WebKeyGeneration.h:
        * WebCoreSupport.subproj/WebKeyGenerator.h:
        * WebCoreSupport.subproj/WebKeyGenerator.m:
        (-[WebKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]): take a page URL so we can use its host name in the key description
        * WebKit.pbproj/project.pbxproj:

2003-12-12  Vicki Murley  <vicki@apple.com>

        * WebKit.pbproj/project.pbxproj:

2003-12-12  Vicki Murley  <vicki@apple.com>

        * WebKit.pbproj/project.pbxproj:

2003-12-12  Vicki Murley  <vicki@apple.com>

        * WebKit.pbproj/project.pbxproj:

2003-12-11  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        Fix for this bug:

        <rdar://problem/3489280>: redirect via post blows cache, causing everything to get reloaded

        Now POST requests reload the main document by default, but will not reload 
        all subresources.

        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (+[WebSubresourceClient startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
        Take the cache policy for subresources from the original request, rather than
        the data source's current request. 
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient _isPostOrRedirectAfterPost:redirectResponse:]): New helper.
        (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
        Call new helper to set the cache policy on the main resource load.

=== Safari-117 ===

2003-12-11  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        * WebCoreSupport.subproj/WebBridge.m: time_t is a signed type, so
        casting -1 to a time_t does not work to make a max value.
        We'll go with INT_MAX.

2003-12-11  Ken Kocienda  <kocienda@apple.com>

        Reviewed and C++ heavy-lifting by Darin

        Fix warnings in C++ files.

        * WebCoreSupport.subproj/WebKeyGeneration.cpp:
        (signedPublicKeyAndChallengeString): Add cast to remove warning.
        (addCertificatesToKeychainFromData): Add cast to remove warning.
        * WebKit.pbproj/project.pbxproj: Add back warnings to C++ files.
        * WebKitPrefix.h: Add define for NULL that works for C++.

2003-12-09  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin
        
        <rdar://problem/3505444>: WebCore cache does not use expiration dates on cache items
        
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge expiresTimeForResponse:]): New method. Call response
        freshness lifetime method and add it to the current time to yield
        an expiration time.

2003-12-10  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Richard.

        WebKit part of fix for:

        <rdar://problem/3487160>: Implement synchronous loading for XMLHttpRequest

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):

2003-12-10  Richard Williamson   <rjw@apple.com>

        Added method to get to the bridge from a view.  This is
        used to ultimately get the part and KJS::Window for a
        particular applet.

        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebViewFactory.m:
        (-[WebViewFactory refreshPlugins:]):
        (-[WebViewFactory bridgeForView:]):

2003-12-10  John Sullivan  <sullivan@apple.com>

        - WebKit part of fix for:
        <rdar://problem/3505231>: REGRESSION (100-114): Some sites autoscroll to bottom of page when loading

        Reviewed by Darin

        * Misc.subproj/WebNSViewExtras.h:
        * Misc.subproj/WebNSViewExtras.m:
        removed _web_scrollPointToVisible:fromView:
        
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView scrollPoint:]):
        removed call to _web_scrollPointToVisible:fromView:

2003-12-10  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3505537>: certificates downloaded from Verisign are multipart/mixed, must be parsed out

        Reviewed by kocienda.

        * WebCoreSupport.subproj/WebKeyGeneration.cpp:
        (signedPublicKeyAndChallengeString): tweak
        (addCertificateToKeychainFromData): renamed to use lowercase "c" in "keychain"
        (addCertificatesToKeychainFromData): take data instead of a path to a file
        * WebCoreSupport.subproj/WebKeyGeneration.h:
        * WebCoreSupport.subproj/WebKeyGenerator.h:
        * WebCoreSupport.subproj/WebKeyGenerator.m:
        (-[WebKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:]): added temporary workaround for 3396936

2003-12-09  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3504237>: add downloaded certificates to keychain

        Reviewed by darin.

        * WebCoreSupport.subproj/WebKeyGeneration.cpp:
        (signedPublicKeyAndChallengeString):
        (addCertificateToKeyChainFromData): new
        (addCertificateToKeyChainFromFile): new
        * WebCoreSupport.subproj/WebKeyGeneration.h:
        * WebCoreSupport.subproj/WebKeyGenerator.h:
        * WebCoreSupport.subproj/WebKeyGenerator.m:
        (-[WebKeyGenerator addCertificateToKeyChainFromFileAtPath:]): new
        * WebKit.exp:
        * WebKit.pbproj/project.pbxproj: made WebKeyGenerator.h private

2003-12-09  John Sullivan  <sullivan@apple.com>

        - fixed <rdar://problem/3504907>: REGRESSION (100-116): 
        Clicking QuickTime-requiring link twice crashes (wholenote.com)

        I found the bug; Darin wrote the fix; I reviewed and tested.

        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage stringForStringListID:andIndex:]):
        Rewrote this method to not use GetIndString, because GetIndString looks
        at all open resource files and in this case was reading information from
        the wrong plugin file.

2003-12-08  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3234676>: Support for KEYGEN tag (ie 509 email certificates from www.thawte.com)

        Reviewed by mjs.

        * WebCoreSupport.subproj/WebKeyGeneration.cpp: Added.
        (gnrAddContextAttribute): new
        (gnrGetSubjPubKey): new
        (gnrNullAlgParams): new
        (gnrSign): new
        (gnrFreeCssmData): new
        (signedPublicKeyAndChallengeString): new
        * WebCoreSupport.subproj/WebKeyGeneration.h: Added.
        * WebCoreSupport.subproj/WebKeyGenerationFactory.h: Added. Renamed from WebLocalizedStringFactory.
        * WebCoreSupport.subproj/WebKeyGenerationFactory.m: Added.
        (+[WebKeyGenerationFactory createSharedFactory]): no change
        (-[WebKeyGenerationFactory dealloc]): no change
        (-[WebKeyGenerationFactory strengthMenuItemTitles]): new
        (-[WebKeyGenerationFactory signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:]): new
        * WebCoreSupport.subproj/WebLocalizedStringFactory.h: Removed.
        * WebCoreSupport.subproj/WebLocalizedStringFactory.m: Removed.
        * WebCoreSupport.subproj/WebNetscapeTemplates.cpp: Added.
        * WebCoreSupport.subproj/WebNetscapeTemplates.h: Added.
        * WebKit.pbproj/project.pbxproj:
        * WebKitPrefix.h:
        * WebView.subproj/WebFrameView.m:

2003-12-05  John Sullivan  <sullivan@apple.com>

        - fixed <rdar://problem/3491427>: REGRESSION (100-114): multi-page HTML 
        content in Mail is blank when printed

        Darin and I figured this one out.

        Reviewed by Ken.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
        Don't call setNeedsDisplay:NO when we're turning printing on, as doing so prevents
        anything from drawing in the case where this is called from 
        adjustPageHeightsNew:top:bottom:limit

2003-12-05  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed regression in small caps with substituted fonts my patch from yesterday caused
        - fixed 3463599: if Lucida font is installed, you see bad glyphs on pages that use it (advogato.org)
        - fixed storage leak if a renderer is ever deallocated (I don't think we ever do that)
        - fixed some small leaks in various error cases by adding appropriate free and dispose calls

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer dealloc]): Free the Unicode glyph map too.
        (fontContainsString): Moved inline function up here so it will be inlined.
        (-[WebTextRenderer _setupFont]): Free the glyph map and set it back to zero if we fail after
        extending the glyph map to include space. This fixes the "wrong glyph codes" bug with Lucida above.
        (-[WebTextRenderer _extendUnicodeCharacterToGlyphMapToInclude:]): Add free calls needed to avoid
        storage leaks in failure cases.
        (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]): Ditto.
        (-[WebTextRenderer _initializeATSUStyle]): Add ATSUDisposeStyle to fix storage leak.
        (freeWidthMap): Use a loop instead of recursion.
        (freeGlyphMap): Use a loop instead of recursion.
        (freeUnicodeGlyphMap): Added.
        (widthForNextCharacter): Don't use the original characters or cluster length, because the
        character may have been capitalized for use in small caps rendering. So check the character
        for <= 0xFFFF instead of looking at clusterLength, and break the character into a local array
        instead of using the original character pointer.

2003-12-04  Darin Adler  <darin@apple.com>

        Reviewed by Richard.

        - fixed 3497879: REGRESSION (100-115): all non-BMP characters (including Deseret) are broken

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:]): Bump offset by getting it from
        the iterator; don't assume we can just bump it by one each time. It would be even nicer to have
        a bit more abstraction.
        (initializeCharacterWidthIterator): Remove call to initializeCharacterShapeIterator.
        (widthForNextCharacter): Move handling of surrogate pairs (non-BMP) in here and unify it with
        the handling of BMP characters; this removes the broken code that was returning the wrong font,
        and changes us to use the code that was already doing the right thing for the surrogate pair case.
        Also get rid of the use of 0 width to mean "no glyph", which fixes the doubled glyph problem.
        Also got rid of remnants of use of the shape iterator.

        * Misc.subproj/WebUnicode.h: Remove obsolete shape iterator.
        * Misc.subproj/WebUnicode.m: Ditto.

=== Safari-116 ===

2003-12-04  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - fixed 3498426: assertion failure in tooltip code at macosx.apple.com

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _setToolTip:]): Work around
        the apparent bug in AppKit (3500217) that causes it to return 0 for the tool tip
        tag by using removeAllToolTips and not storing the tag at all. Besides the assertion
        failure there may also be a symptom of a "stuck" tool tip and a small memory
        leak until the window is closed.
        * WebView.subproj/WebHTMLViewPrivate.h: Remove unused toolTipTag.

2003-12-02  Chris Blumenberg  <cblu@apple.com>

        Fixed:
        <rdar://problem/3439222>: always hangs opening plain text file on a particular machine due to missing font, no UI to detect
        <rdar://problem/3492983>: Certain fonts cause Safari to hang on text/plain pages

        Reviewed by rjw.

        * WebView.subproj/WebTextView.m:
        (-[WebTextView setFixedWidthFont]): Use [[WebTextRendererFactory sharedFactory] fontWithFamilies:traits:size:] to get the font since it takes the font family which is what we store in WebPreferences and it does fallback work. Only set the font if 


non-nil is returned.

2003-11-21  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Richard.

        <rdar://problem/3487185>: implement security checks for XMLHttpRequest
        
        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (-[WebSubresourceClient connection:willSendRequest:redirectResponse:]): Let
        WebCore know about redirects.

2003-12-01  Richard Williamson   <rjw@apple.com>

        Moved grungy polling code from WebKit to the JavaPlugin.

        Reviewed by Chris.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge pollForAppletInView:]):

2003-12-01  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Fix for this bug:

        <rdar://problem/3496873>: Move key event helper functions to WebKit

        * Misc.subproj/WebNSEventExtras.h: Add declarations for new key event
        helpers.
        * Misc.subproj/WebNSEventExtras.m:
        (-[NSEvent _web_isKeyEvent:]): Added.
        (-[NSEvent _web_isDeleteKeyEvent]): Added.
        (-[NSEvent _web_isEscapeKeyEvent]): Added.
        (-[NSEvent _web_isOptionTabKeyEvent]): Added.
        (-[NSEvent _web_isReturnOrEnterKeyEvent]): Added.
        (-[NSEvent _web_isTabKeyEvent]): Added.
        * WebKit.pbproj/project.pbxproj: Made WebNSEventExtras.h a private header
        so WebBrowser can use the new helpers.

=== Safari-115 ===

2003-11-21  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Ken.

        WebKit part of fix for:
        <rdar://problem/3487134>: Implement http request/response status and headers for XMLHttpRequest
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge startLoadingResource:withURL:customHeaders:]): Added customHeaders
        parameter.
        (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]): Ditto.
        * WebCoreSupport.subproj/WebSubresourceClient.h:
        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (+[WebSubresourceClient startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]): Add the custom headers.
        (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:referrer:forDataSource:]): Pass along the custom headers.
        (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]): Pass along the custom headers.

2003-11-21  John Sullivan  <sullivan@apple.com>

        - WebKit part of fix for <rdar://problem/3333744>: Safari prints page with 
        very, very long line very, very small

        Reviewed by Ken.

        * WebView.subproj/WebHTMLView.m:
        renamed PrintingExtraWidthFactor to PrintingMinimumShrinkFactor, added
        PrintingMaximumShrinkFactor of 2.0, which matches IE
        (-[WebHTMLView layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
        now takes a min and max page width; passes them along to bridge
        (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
        now takes a min and max page width; passes them along to layoutTo...
        (-[WebHTMLView _scaleFactorForPrintOperation:]):
        now takes PrintingMaximumScaleFactor into account
        (-[WebHTMLView knowsPageRange:]):
        now takes PrintingMaximumScaleFactor into account

        (-[WebHTMLView layout]):
        pass 0 for maximumPageWidth when passing 0 for minimumPageWidth
        (-[WebHTMLView adjustPageHeightNew:top:bottom:limit:]):
        ditto
        (-[WebHTMLView _web_setPrintingModeRecursive]):
        ditto
        (-[WebHTMLView _web_clearPrintingModeRecursive]):
        ditto
        (-[WebHTMLView endDocument]):
        ditto

2003-11-20  John Sullivan  <sullivan@apple.com>

        - WebKit part of <rdar://problem/3183124>: Support page-break-before/after with a value of "always"

        Dave and I wrote and reviewed this.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _setPrinting:pageWidth:adjustViewSize:]):
        reset page rects when printing status changes
        (-[WebHTMLView _availablePaperWidthForPrintOperation:]):
        new helper method to compute paper width taking margins into account
        (-[WebHTMLView _scaleFactorForPrintOperation:]):
        new helper method to compute how much we need to shrink to fit one page across
        (-[WebHTMLView _provideTotalScaleFactorForPrintOperation:]):
        we overrode this secret internal AppKit method to make shrink-to-fit work;
        we wrote bug 3491344 about the need for this to be public.
        (-[WebHTMLView knowsPageRange:]):
        new method, computes rects and returns YES
        (-[WebHTMLView rectForPage:]):
        new method, returns rect computed above
        (-[WebHTMLView _calculatePrintHeight]):
        new method, used by knowsPageRange
        
        * WebView.subproj/WebHTMLViewPrivate.h:
        new pageRects ivar

2003-11-20  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Ken.

        - fixed 3490086 - support http post for XMLHttpRequest
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge startLoadingResource:withURL:postData:]):
        * WebCoreSupport.subproj/WebSubresourceClient.h:
        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (+[WebSubresourceClient startLoadingResource:withRequest:referrer:forDataSource:]):
        (+[WebSubresourceClient startLoadingResource:withURL:referrer:forDataSource:]):
        (+[WebSubresourceClient startLoadingResource:withURL:postData:referrer:forDataSource:]):

2003-11-20  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3491229>: Need UI and localized strings for <KEYGEN> support

        Reviewed by john.

        * ChangeLog:
        * English.lproj/Localizable.strings:
        * WebCoreSupport.subproj/WebLocalizedStringFactory.h: Added.
        * WebCoreSupport.subproj/WebLocalizedStringFactory.m: Added.
        (+[WebLocalizedStringFactory createSharedFactory]): new
        (-[WebLocalizedStringFactory dealloc]): new
        (-[WebLocalizedStringFactory keyGenerationMenuItemTitles]): new
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebFrameView.m: call [WebLocalizedStringFactory createSharedFactory]

2003-11-20  Richard Williamson   <rjw@apple.com>

        Added spin of event loop during applet lookup poll.  This
        is necessary to allow timers and performOnMainThread: methods
        a chance to fire.  The plugin depends on these mechanisms during
        initialization.

        Reviewed by Chris.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge pollForAppletInView:]):

2003-11-20  Ken Kocienda  <kocienda@apple.com>

        John and I decided to apply the _web_ prefix to the tab key 
        event method in the extras file, but I neglected to do this
        before checking in. Fixed now.

        * Misc.subproj/WebNSEventExtras.h:
        * Misc.subproj/WebNSEventExtras.m:
        (-[NSEvent _web_isTabKeyEvent])
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView keyDown:])

2003-11-20  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Fix for this bug:

        <rdar://problem/3482159>: Tabbing to links gets "stuck" in "style switcher" on zeldman.com

        * Misc.subproj/WebNSEventExtras.h: Added.
        * Misc.subproj/WebNSEventExtras.m: Added.
        (-[NSEvent _isTabKeyEvent]): New helper.
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebHTMLView.m: 
        (-[WebHTMLView keyDown:]): Pass the key event to super unconditionally
        if it is a tab key. This fixes the bug.

2003-11-19  John Sullivan  <sullivan@apple.com>

        - WebKit part of fix for:
        <rdar://problem/3305671>: Web pages print with 1.25" border without regard to Page 
        Setup margin settings

        Reviewed by Dave.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView beginDocument]):
        Lay out the page into a width 25% wider than there's room for on the printed page.
        This will make pages that can fit into a thin area be scaled down a little when printed,
        which lets them fit on fewer pages. This closely matches what IE and Camino (at least)
        do; I used Google as my test page, and the Google logo is now precisely the same size
        when printed from Safari as when printed from IE. Pages that don't fit into a thin
        area are already causing the printed page to be scaled horizontally to fit, and this
        won't affect them.

2003-11-19  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3489935>: Mentioning "to Disk" in context menus such as "Download Linked File To Disk..." is redundant

        Reviewed by john.

        * English.lproj/Localizable.strings:
        * English.lproj/StringsNotToBeLocalized.txt:
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate menuItemWithTag:]): use "Download Linked File" and "Download Image"

2003-11-19  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3488783>: Flash at http://www.sjwilson.net/reef/ does not load photos
        Reviewed by rjw.

        * Misc.subproj/WebKitNSStringExtras.h:
        * Misc.subproj/WebKitNSStringExtras.m:
        (-[NSString _web_stringByStrippingReturnCharacters]): new
        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView requestWithURLCString:]): call _web_stringByStrippingReturnCharacters on the relative string

2003-11-19  Richard Williamson   <rjw@apple.com>

        More LiveConnect stuff.  Horrible polling hack that
        blocks main thread waiting for applet to fully initialize.

        Reviewed by Ken.

        * Plugins.subproj/WebPluginController.m:
        (-[WebPluginController addPlugin:]):
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge pollForAppletInView:]):

2003-11-19  David Hyatt  <hyatt@apple.com>

        Make updateScrollers guard non-static, so that it applies only to the view whose scrollers are being
        updated.
        Reviewed by darin

        * WebView.subproj/WebDynamicScrollBarsView.h:
        * WebView.subproj/WebDynamicScrollBarsView.m:
        (-[WebDynamicScrollBarsView reflectScrolledClipView:]):

2003-11-18  Richard Williamson   <rjw@apple.com>

        More live connect stubs.  We're getting close.

        Reviewed by Chris.

        * Plugins.subproj/WebPluginController.m:
        (-[WebPluginController addPlugin:]):
        (-[WebPluginController _delayedGetApplet:]):
        * WebView.subproj/WebView.m:
        (-[WebView _goToItem:withLoadType:]):

2003-11-17  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed 3487335: REGRESSION (112-113): "a:b" error message does not cite the URL properly

        * Misc.subproj/WebKitErrors.m:
        (+[NSError _webKitErrorWithCode:failingURL:]): Call _webKitErrorWithDomain:code:URL:.
        (+[NSError _webKitErrorWithDomain:code:URL:]): Call _web_errorWithDomain:code:URL:, instead of using
        the deprecated failingURL: flavor.
        (-[NSError _initWithPluginErrorCode:contentURLString:pluginPageURLString:pluginName:MIMEType:]):
        Change this method to call the other one.
        (-[NSError _initWithPluginErrorCode:contentURL:pluginPageURL:pluginName:MIMEType:]): Implement this one,
        and put in the NSErrorFailingURLKey, as well as the NSErrorFailingURLStringKey, to match what Foundation
        now does for other errors.

        * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge viewForPluginWithURL:attributes:baseURL:MIMEType:]):
        Change to use the non-deprecated flavor of the NSError call above.

        * English.lproj/StringsNotToBeLocalized.txt: Updated for above changes and other recent changes.

2003-11-16  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Dave.

        WebKit part of fix for:

        <rdar://problem/3131664>: add support for the window.print() command used for "print this page" buttons
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge print]): Call delegate.
        * WebView.subproj/WebDefaultUIDelegate.m:
        (-[WebDefaultUIDelegate webViewPrint:]): Implemented (do nothing).
        * WebView.subproj/WebUIDelegatePrivate.h: Added. Add extra SPI method webViewPrint:
        for UI delegate.
        * WebKit.pbproj/project.pbxproj: Install WebUIDelegatePrivate.h as private header

2003-11-15  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixes 3457162 -- selecting text during a page load that blows the text field away causes a crash
        - fixes 3160035 -- crash or hang if you hold down a button while "go to about:blank soon" test runs
        - without causing 3484608 -- REGRESSION: Flash broken at http://www.macromedia.com/

        The WebKit part of this fix is making setDefersCallbacks: work. It had succumbed to bit rot.
        This has a side effect of not considering a page load done until all the plug-in streams are loaded.
        If that's not a good idea, we'll have to keep two separate lists in WebDataSource.

        * WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate setDataSource:]):
        Set the defersCallbacks state from the WebView here so that clients don't have to do it.

        * WebView.subproj/WebDataSource.m: (-[WebDataSource _addSubresourceClient:]): Remove call to
        set the defersCallbacks state on the subresource client, because the above change obviates it.
        (the client/delegate terminology makes it confusing, but it's a subclass). Also loosen the type
        so we can call this on clients for plug-in streams too.
        (-[WebDataSource _removeSubresourceClient:]): Loosen type here too.
        (-[WebDataSource _defersCallbacksChanged]): And here.
        * WebView.subproj/WebDataSourcePrivate.h: Loosen type of subresource client so we can pass in the
        delegates for plug-in streams too.

        * WebView.subproj/WebMainResourceClient.h: Added an _initialRequest field so we can defer the very
        first callback, which does not rely on NSURLConnection.
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient dealloc]): Release the initial request.
        (-[WebMainResourceClient loadWithRequestNow:]): Moved the guts of loadWithRequest in here; to be
        used when the request is no longer deferred. Also removed the code to call setDefersCallbacks:
        on the connection, and assert that we are only called when callbacks are not deferred. Because
        the very first callback was not deferred, we would end up calling setDefersCallbacks:NO on the
        WebView, so nothing would be deferred.
        (-[WebMainResourceClient loadWithRequest:]): If callbacks are not deferred, then call the
        loadWithRequestNow: method, otherwise simply store the request in _initialRequest.
        (-[WebMainResourceClient setDefersCallbacks:]): If there is an _initialRequest and we are
        ceasing deferral of callbacks, then call the loadWithRequestNow: method.

        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream start]): Call _addSubresourceClient, and then _removeSubresourceClient
        if the load fails to even start.
        (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): Call _removeSubresourceClient.
        (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): Call _removeSubresourceClient.

        * Plugins.subproj/WebBaseNetscapePluginStream.h: Removed unneeded import.
        * Plugins.subproj/WebPluginDatabase.m: Add import needed now that WebBaseNetscapePluginStream.h
        imports less than before.

2003-11-16  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by John.

        - fixed 3362841 - javascript History Object length property is always 0
        
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge historyLength]): Add one to the length to match other browsers.

2003-11-14  John Sullivan  <sullivan@apple.com>
        
        - WebKit part of fix for <rdar://problem/3474757>: Safari on-screen text needs review

        Reviewed by Ken.

        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate menuItemWithTag:]):
        change "Download Link to Disk" to "Download Linked File to Disk"

        * English.lproj/Localizable.strings:
        updated for these changes

2003-11-14  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Fix for this bug:

        <rdar://problem/3481701>: Crashes before loading page/no error msg
        (forums.pelicanparts.com) Works in IE and Netscape

        This fix is really a workaround for this bug:

        <rdar://problem/3484937>: Horribly malformed URL crashes when call
        is made to CFURLCopyHostName

        The fix is to avoid all usages of [NSURL host] by replacing all
        such calls with a private URL method added to WebNSURLExtras.

        I copied a number of URL methods from the private NSURL
        extras file in Foundation to the WebKit URL extras file.

        * Misc.subproj/WebNSDataExtras.h: Added. Helper for new URL extras.
        * Misc.subproj/WebNSDataExtras.m: Ditto.
        (-[NSData _web_isCaseInsensitiveEqualToCString:]): New helper.
        * Misc.subproj/WebNSURLExtras.h:
        * Misc.subproj/WebNSURLExtras.m:
        (-[NSURL _web_hasQuestionMarkOnlyQueryString]): Added.
        (-[NSURL _web_schemeSeparatorWithoutColon]): Added.
        (-[NSURL _web_dataForURLComponentType:]): Added.
        (-[NSURL _web_schemeData]): Added.
        (-[NSURL _web_hostData]): Added.
        (-[NSURL _web_hostString]): Added.
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebView.m:
        (-[WebView userAgentForURL:]): Replace call to [NSURL host] with new
        extras _web_hostString method.

=== Safari-114 ===

2003-11-14  Vicki Murley <vicki@apple.com>

        - rolled out Darin's fixes for 3457162 and 3160035, since these changes broke plugins on macromedia.com and disney.go.com

        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate setDataSource:]):
        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _addSubresourceClient:]):
        * WebView.subproj/WebMainResourceClient.h:
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient dealloc]):
        (-[WebMainResourceClient loadWithRequest:]):
        (-[WebMainResourceClient setDefersCallbacks:]):

2003-11-14  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixes 3457162 -- selecting text during a page load that blows the text field away causes a crash
        - fixes 3160035 -- crash or hang if you hold down a button while "go to about:blank soon" test runs

        The WebKit part of this fix is making setDefersCallbacks: work. It had succumbed to bit rot.

        * WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate setDataSource:]):
        Set the defersCallbacks state from the WebView here so that clients don't have to do it.
        * WebView.subproj/WebDataSource.m: (-[WebDataSource _addSubresourceClient:]): Remove call to
        set the defersCallbacks state on the subresource client, because the above change obviates it.
        (the client/delegate terminology makes it confusing, but it's a subclass).

        * WebView.subproj/WebMainResourceClient.h: Added an _initialRequest field so we can defer the very
        first callback, which does not rely on NSURLConnection.
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient dealloc]): Release the initial request.
        (-[WebMainResourceClient loadWithRequestNow:]): Moved the guts of loadWithRequest in here; to be
        used when the request is no longer deferred. Also removed the code to call setDefersCallbacks:
        on the connection, and assert that we are only called when callbacks are not deferred. Because
        the very first callback was not deferred, we would end up calling setDefersCallbacks:NO on the
        WebView, so nothing would be deferred.
        (-[WebMainResourceClient loadWithRequest:]): If callbacks are not deferred, then call the
        loadWithRequestNow: method, otherwise simply store the request in _initialRequest.
        (-[WebMainResourceClient setDefersCallbacks:]): If there is an _initialRequest and we are
        ceasing deferral of callbacks, then call the loadWithRequestNow: method.

2003-11-13  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Fix for this bug:

        <rdar://problem/3483284>: Tabbing to links needs to honor new 
        WebKit tab-to-links preference

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge dealloc]): Remove self from notification center.
        (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]): Now
        checks for WebCoreKeyboardAccessTabsToLinks preference.
        (-[WebBridge keyboardUIMode]): Adds self to notification center
        to pick up changes to WebPreferences.

2003-11-13  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John

        Fix for this bug:

        <rdar://problem/3481719>: WebKit needs preference for tabbing to links

        * WebView.subproj/WebPreferences.m:
        (+[WebPreferences initialize]): Add initialization of new 
        WebKitTabToLinksPreferenceKey.
        (-[WebPreferences setTabsToLinks:]): Added preference setter.
        (-[WebPreferences tabsToLinks]): Added preference getter.
        * WebView.subproj/WebPreferencesPrivate.h: Declared new methods as
        SPI on WebPreferences.

2003-11-12  Richard Williamson   <rjw@apple.com>

        Fixed 3475082.  Remove unnecessary orderKey before showKey.

        Written by Ed Voas.

        Reviewed by Richard.

        * Carbon.subproj/CarbonWindowAdapter.m:
        (-[CarbonWindowAdapter makeKeyWindow]):

2003-11-12  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3482147>: replace _releaseFutureIconForURL assertion with a log statement

        Reviewed by rjw.

        * Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase _releaseFutureIconForURL:]):

2003-11-10  Richard Williamson   <rjw@apple.com>

        Fixed 3478765.  Use ICU to access unicode properties.
        Fixed 3478831.  Unicode property/conversion functions should be 32 bit savvy.
        Fixed 3478885.  Remove dead arabic shaping code

        Reviewed by Darin.

        * Misc.subproj/WebUnicode.h:
        * Misc.subproj/WebUnicode.m:
        (_unicodeDigitValue):
        (_unicodeDirection):
        (_unicodeMirrored):
        (_unicodeMirroredChar):
        (_unicodeLower):
        (_unicodeUpper):
        (WebKitInitializeUnicode):
        (shapeForNextCharacter):
        (initializeCharacterShapeIterator):
        * Misc.subproj/WebUnicodeTables.m:
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (widthForNextCharacter):
        (fontContainsString):

2003-11-10  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3478351>: Safari: URL Alias on Dock failed to open the 2byte URL

        Reviewed by dave.

        * Misc.subproj/WebNSURLExtras.m:
        (-[NSString _web_mapHostNameWithRange:encode:makeString:]): if the host name is percent-escaped, use CFURLCreateStringByReplacingPercentEscapes

2003-11-10  Richard Williamson   <rjw@apple.com>

        Use ICU for upper/lower conversion.  Fixed 3477157, 3478455, 3478456, 3478457, 3478486.
        Remaining issues with surrogates (3477159) and Turkish I (3478482).

        Reviewed by Ken.

        * Misc.subproj/WebUnicode.m:
        (_unicodeLower):
        (_unicodeUpper):

2003-11-07  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3240778>: add "save" menu item to contextual menu for text pages

        Reviewed by darin.

        * WebView.subproj/WebTextView.m:
        (-[WebTextView menuForEvent:]): Made WebTextView's context menu behavior like WebHTMLView's context menu behavior with regards to selection. If the control-click was on a selection, show menu options for the selection like copy. If it was not on a


 selection, show menu options such as save and print. Don't select anything when control-clicking.

2003-11-08  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3478022>: assertion failure while loading WMP content

        Reviewed by darin.

        * ChangeLog:
        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginConnectionDelegate connection:didReceiveResponse:]): Don't continue if the stream is cancelled in startStreamWithResponse.

2003-11-07  Richard Williamson   <rjw@apple.com>

        Fixed 3477067.  Use our case unicode conversion routines.

        Reviewed by Ken.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (toUpper):

2003-11-06  Richard Williamson   <rjw@apple.com>

        Fixed 3476393.  Call scrollPoint: recursively up the view hierarchy to ensure point is visible.

        Reviewed by Ken.

        * Misc.subproj/WebNSViewExtras.h:
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_scrollPointToVisible:fromView:]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView scrollPoint:]):

=== Safari-113 ===

2003-11-05  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed 3473913 -- host names in simple mailto URLs are not getting encoded/decoded correctly yet

        * Misc.subproj/WebNSURLExtras.m:
        (applyHostNameFunctionToMailToURLString): Handle case where host name is at the end of the string.
        (applyHostNameFunctionToURLString): Add the # character to the set of characters that can end
        a domain name.

2003-11-05  Richard Williamson   <rjw@apple.com>

        Fixed 3413067, 3405797, 3456877
        Use ATSUI to render Arabic and Hebrew.

        Reviewed by John.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (shouldUseATSU):

2003-11-05  John Sullivan  <sullivan@apple.com>

        - fixed <rdar://problem/3469791>: Bigger/Smaller commands are 
        disabled for HTML Mail in separate window (w/WebKit-111)

        Reviewed by Darin.

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView acceptsFirstResponder]):
        always be willing to become first responder, even if no page
        has yet been loaded.
        (-[WebFrameView becomeFirstResponder]):
        if no page has yet been loaded (so our scrollview refuses
        first responder-ness), don't do any special becoming-first-
        responder shenanigans.

        Also removed obsolete overrides for nextKeyView, nextValidKeyView,
        previousKeyView, and previousValidKeyView that are no longer
        required now that we handle the key loop more like NSScrollView.

        * WebView.subproj/WebFrameViewPrivate.h:
        removed now-unused ivar inNextValidKeyView

2003-11-05  Richard Williamson   <rjw@apple.com>

        Fixed 3029966.  Animated backgrounds specified in <BODY> don't animate
        Fixed 3474824.  Tiled animated GIFs don't animate.
        Fixed 3029966.  Animated backgrounds specified with CSS don't animate.

        Reviewed by Chris.

        * WebCoreSupport.subproj/WebImageRenderer.h:
        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer nextFrame:]):
        (-[WebImageRenderer drawImageInRect:fromRect:]):
        (-[WebImageRenderer startAnimationIfNecessary]):
        (-[WebImageRenderer tileInRect:fromPoint:]):
        * WebView.subproj/WebImageView.m:
        (-[WebImageView drawRect:]):

2003-11-05  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3201364>: Safari crashes when hosting carbon plug-in using drag and drop

        Reviewed by rjw.

        * WebView.subproj/WebView.m:
        (-[WebView draggingUpdated:]): return NSDragOperationNone if we're over a plug-in view so the plug-in can handle the drag

2003-11-05  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3474360>: should attempt to resolve symbolic links when choosing "Save Link As..."

        Reviewed by kocienda.

        * WebView.subproj/WebView.m:
        (-[WebView _fileWrapperForURL:]): follow sym links

2003-11-05  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        Fix for this bug:

        <rdar://problem/3455910>: hitting up or down arrows when focus 
        is on a pop-up menu should pop the menu

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView keyDown:]): Call super with the event if focus 
        is on a pop up button.

2003-11-05  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Maciej

        Fix for these bugs:

        <rdar://problem/3467558>: Cannot tab to form file input widgets
        <rdar://problem/3473631>: WebFileButton sends notifications to communicate with WebCore

        Tabbing now works for these widgets. While I was in the neighborhood,
        I improved the communication mechanism between the WebKit and WebCore
        sides of the file button implementation, replacing notifications
        with a callback object.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge fileButtonWithDelegate:]): Method now takes a 
        delegate object.
        * WebCoreSupport.subproj/WebFileButton.h:
        * WebCoreSupport.subproj/WebFileButton.m:
        (-[WebFileButton initWithBridge:delegate:]):
        (-[WebFileButton initWithFrame:]):
        (-[WebFileButton dealloc]):
        (-[WebFileButton chooseFilename:]): Sends callback rather than posting
        a notification.
        (-[WebFileButton chooseButtonPressed:]): Ditto.
        (-[WebFileButton mouseDown:]):
        (-[WebFileButton acceptsFirstResponder]):
        (-[WebFileButton becomeFirstResponder]): Make the button subview
        first responder.
        (-[WebFileButton nextKeyView]): Hook up to WebBridge key view machinery.
        (-[WebFileButton previousKeyView]): Ditto.
        (-[WebFileButton nextValidKeyView]): Ditto.
        (-[WebFileButton previousValidKeyView]): Ditto.
        (-[WebFileChooserButton initWithDelegate:]):
        (-[WebFileChooserButton nextValidKeyView]): Ditto.
        (-[WebFileChooserButton previousValidKeyView]): Ditto.
        (-[WebFileChooserButton resignFirstResponder]): Sends a focus change 
        callback.

2003-11-04  Darin Adler  <darin@apple.com>

        Reviewed by John, except for one bit reviewed by Maciej.

        - first step for IDNA support; helper functions for Safari

        * Misc.subproj/WebNSURLExtras.h: Add six new methods to manipulate host names directly.
        * Misc.subproj/WebNSURLExtras.m:
        (applyHostNameFunctionToMailToURLString): Added. Finds host names within a mailto URL.
        (applyHostNameFunctionToURLString): Added. Finds host names within a URL.
        (collectRangesThatNeedMapping): Added. Builds a list of host name ranges that need mapping.
        (collectRangesThatNeedEncoding): Added. Calls the above for encoding.
        (collectRangesThatNeedDecoding): Added. Calls the above for decoding.
        (mapHostNames): Added. Helper function that does the entire mapping process for a URL.
        (+[NSURL _web_URLWithUserTypedString:]): Call mapHostNames to encode after trimming whitespace.
        (-[NSURL _web_userVisibleString]): Call mapHostNames to decode after decoding escape sequences.
        (-[NSURL _webkit_URLByRemovingFragment]): Removed unneeded redundant NULL check.
        (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Added. Workhorse function to call
        the IDN functions in the Unicode library.
        (-[NSString _web_hostNameNeedsDecodingWithRange:]): Added.
        (-[NSString _web_hostNameNeedsEncodingWithRange:]): Added.
        (-[NSString _web_decodeHostNameWithRange:]): Added.
        (-[NSString _web_encodeHostNameWithRange:]): Added.
        (-[NSString _web_decodeHostName]): Added.
        (-[NSString _web_encodeHostName]): Added.

        * WebKit.pbproj/project.pbxproj: Added libicucore.dylib.
        * English.lproj/StringsNotToBeLocalized.txt: Updated for above changes.

2003-11-04  John Sullivan  <sullivan@apple.com>

        - a little optimization I noticed when looking at 3125137

        Reviewed by Chris.

        * Misc.subproj/WebStringTruncator.m:
        (truncateString):
        if incoming string has length 0, bail out right away

2003-11-04  Chris Blumenberg  <cblu@apple.com>

        Fixed:
        <rdar://problem/3472403>: RTFD of copied text and images should use original image data not tiffs
        <rdar://problem/3472435>: dragging local image file downloads it instead of copies it
        <rdar://problem/3472450>: copied and dragged local image files are TIFF, not original image data
        Reviewed by john.

        * Misc.subproj/WebNSPasteboardExtras.h:
        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]): new
        * Misc.subproj/WebNSViewExtras.h:
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_dragImage:fileWrapper:rect:URL:title:event:]): take a file wrapper instead of data so [NSPasteboard _web_writeFileWrapperAsRTFDAttachment:] can be called
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge fileWrapperForURL:]): call fileWrapperForURL on the WebView
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate copyImageToClipboard:]): call [NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _handleMouseDragged:]): when calling _web_dragImage, pass a file wrapper from fileWrapperForURL
        (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): call fileWrapperForURL
        * WebView.subproj/WebImageRepresentation.h:
        * WebView.subproj/WebImageRepresentation.m:
        (-[WebImageRepresentation fileWrapper]): new
        * WebView.subproj/WebImageView.m:
        (-[WebImageView writeImageToPasteboard:]): call [NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]
        (-[WebImageView mouseDragged:]): pass the file wrapper to _web_dragImage
        * WebView.subproj/WebView.m:
        (-[WebView _fileWrapperForURL:]): new, returns a file wrapper from a local file or from the cache
        * WebView.subproj/WebViewPrivate.h:

2003-11-04  John Sullivan  <sullivan@apple.com>

        - fixed <rdar://problem/3472813>: REGRESSION (100-111): Some tabs start 
        out scrolled down to focused text field

        Reviewed by Ken.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView acceptsFirstResponder]):
        The logic to avoid accepting first responder on clicks was too broad;
        it was rejecting first-responder-ness even for clicks outside of this
        view. Clicking a tab item was going through some logic in NSTabView
        looking for the first valid key view starting with the web view, but the
        web view was returning NO due to this faulty click logic. Thus the
        first subview text field was becoming first responder, and causing scroll.

2003-11-03  Chris Blumenberg  <cblu@apple.com>

        Fixed:
        <rdar://problem/3472377>: Provide NSRTFDPboardType on pasteboard when copying or dragging images
        <rdar://problem/3470809>: REGRESSION (111-112): Can't copy & paste image into Photoshop 7

        Reviewed by hyatt.

        * Misc.subproj/WebNSPasteboardExtras.h:
        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_writeFileDataAsRTFDAttachment:withFilename:]): renamed, now writes file data as an RTF attachment
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_dragImage:originalData:rect:URL:title:event:]): call renamed _web_writeFileDataAsRTFDAttachment
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate copyImageToClipboard:]): call renamed _web_writeFileDataAsRTFDAttachment
        * WebView.subproj/WebImageView.m:
        (-[WebImageView writeImageToPasteboard:]): call renamed _web_writeFileDataAsRTFDAttachment

2003-11-03  Vicki Murley <vicki@apple.com>

        Reviewed by kocienda.

        - fixed <rdar://problem/3471096>: non-B&I builds should not use order files, because they cause false "regressions" in perf.

        * WebKit.pbproj/project.pbxproj: added empty SECTORDER_FLAGS variables to the Development and Deployment build styles

2003-11-03  Ken Kocienda  <kocienda@apple.com>

        Reviewed by John
        
        Fix for this bug:
        
        <rdar://problem/3470342>: focus rings are shown for links in         
        web pages even in non-frontmost windows

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView updateFocusRing]): New method. Uses the "keyness"
        of the view's window to toggle focus ring drawing.
        (-[WebHTMLView windowDidBecomeKey:]): Calls updateFocusRing.
        (-[WebHTMLView windowDidResignKey:]): Ditto.

2003-11-01  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

        - remove use of obsolete HTTLCookiePolicyBaseURL SPI
        
        * WebCoreSupport.subproj/WebSubresourceClient.m:
        startLoadingResource:withURL:referrer:forDataSource:]): Use
        setMainDocumentURL, not setHTTPCookiePolicyBaseURL.
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _addExtraFieldsToRequest:alwaysFromRequest:]): Likewise.
        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]): Likewise.

2003-11-01  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - fixed 3470882 -- storage leaks in WebDownload code
        - fixed 3470884 -- download is always nil in downloadWindowForAuthenticationSheet: call from WebDownload

        * Misc.subproj/WebDownload.m:
        (-[WebDownloadInternal initWithDownload:]): Removed this method, which was never called.
        (-[WebDownloadInternal dealloc]): Added missing call to [super dealloc] to fix one cause
        of a leak of the WebDownloadInternal object itself. Removed the release of webDownload,
        which was always nil, and if it wasn't would end up causing a leak due to a reference cycle.
        (-[WebDownloadInternal download:didReceiveAuthenticationChallenge:]): Remove the use of
        webDownload, which was always nil, and instead use the download parameter passed to us,
        casting it to WebDownload, since it's guaranteed to be one.
        (-[WebDownload _setRealDelegate:]): Added. Shared by the methods below to set up the real
        delegate before calling init. The old code called init twice, causing an second call to the
        superclass's init method, which caused it to create an extra copy of its internal structure,
        as well as causing us to create two WebDownloadInternal objects.
        (-[WebDownload init]): Don't allocate a second WebDownloadInternal if _setRealDelegate already
        allocated it for us. Before we would allocate and leak an extra one each time.
        (-[WebDownload dealloc]): Added. Releases the WebDownloadInternal. This is the second cause
        of the leak of the WebDownloadInternal object.
        (-[WebDownload initWithRequest:delegate:]): Call [self _setRealDelegate:] instead of calling
        [self init] and then [_webInternal setRealDelegate:], avoiding the leaks caused by doing it
        the other way.
        (-[WebDownload _initWithLoadingConnection:request:response:delegate:proxy:]): Ditto.
        (-[WebDownload _initWithLoadingResource:request:response:delegate:proxy:]): Ditto.
        (-[WebDownload _initWithRequest:delegate:directory:]): Ditto.

2003-10-31  David Hyatt  <hyatt@apple.com>

        Fix for 3466542, add a real minimum font size setting.
        Reviewed by john

        * WebView.subproj/WebPreferences.h:
        * WebView.subproj/WebPreferences.m:
        (+[WebPreferences initialize]):
        (-[WebPreferences setMinimumFontSize:]):
        (-[WebPreferences minimumLogicalFontSize]):
        (-[WebPreferences setMinimumLogicalFontSize:]):
        * WebView.subproj/WebView.m:
        (-[WebView _updateWebCoreSettingsFromPreferences:]):

2003-10-31  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        Fix for this bug:

        <rdar://problem/3469088>: focus not removed from text link         
        when user hits cmd-L or clicks in window chrome

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView deselectText]): Added new method just to deselect text.
        (-[WebHTMLView resignFirstResponder]): Just deseclect text if we
        are doing a programmatic setting of focus. Deselect all otherwise.

2003-10-30  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3458368>: drawing to the screen while window hidden: http://www.bhphotovideo.com/

        Reviewed by john.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]): clip out the plug-in when the window is miniaturized or hidden
        (-[WebBaseNetscapePluginView restartNullEvents]): don't restart null events if the window is miniaturized, this allows restartNullEvents to be called in start and viewDidMoveToWindow without needing to make the check
        (-[WebBaseNetscapePluginView start]): just call restartNullEvents instead of checking if the window is miniaturized

2003-10-30  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Hyatt

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge documentView]): Added.
        * WebCoreSupport.subproj/WebGraphicsBridge.h: Added.
        * WebCoreSupport.subproj/WebGraphicsBridge.m: Added.
        (+[WebGraphicsBridge createSharedBridge]): Added.
        (-[WebGraphicsBridge setFocusRingStyle:radius:color:]): Added.
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebFrameView.m: Create a WebGraphicsBridge
        when creating a WebFrameView.

=== Safari-112 ===

2003-10-29  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

        - fixed 3467632 - Leak of plugin info visiting http://www.ebay.com
        * Plugins.subproj/WebBasePluginPackage.m:
        (-[WebBasePluginPackage dealloc]): Release lastModifiedDate.

2003-10-29  Chris Blumenberg  <cblu@apple.com>

        WebKit part of fix for:
        <rdar://problem/3467744>: Photoshop files (.psd) don't show up in Open dialog in Safari, but can be viewed
        <rdar://problem/3109132>: Can't open movie file via open panel even though it can be dropped in browser window

        Reviewed by john.

        * WebView.subproj/WebView.m:
        (+[WebView _supportedMIMETypes]): new
        (+[WebView _supportedFileExtensions]): new
        * WebView.subproj/WebViewPrivate.h:

2003-10-29  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3438716>: jpg and gif images copied from Safari and placed in mail are sent as tiff

        Reviewed by john.

        * Misc.subproj/WebNSPasteboardExtras.h:
        * Misc.subproj/WebNSPasteboardExtras.m:
        (-[NSPasteboard _web_writeFileContents:withFilename:]): new
        * Misc.subproj/WebNSViewExtras.h:
        * Misc.subproj/WebNSViewExtras.m:
        (-[NSView _web_dragImage:originalData:rect:URL:title:event:]): now takes originalData and calls _web_fileContents:withFilename:
        * WebView.subproj/WebDefaultContextMenuDelegate.m:
        (-[WebDefaultUIDelegate copyImageToClipboard:]): call _web_writeFileContents:withFilename:
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _handleMouseDragged:]): call renamed _web_dragImage and [WebView _cachedResponseForURL:]
        (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): call [WebView _cachedResponseForURL:]
        * WebView.subproj/WebImageView.m:
        (-[WebImageView writeImageToPasteboard:]): call _web_writeFileContents:withFilename:
        (-[WebImageView mouseDragged:]): call renamed _web_dragImage
        * WebView.subproj/WebView.m:
        (-[WebView _cachedResponseForURL:]): new
        * WebView.subproj/WebViewPrivate.h:

2003-10-28  John Sullivan  <sullivan@apple.com>

        - fixed <rdar://problem/3466082>: 7B85/111: Crash viewing web page ([WebView setNextKeyView:])

        Reviewed by Chris.

        * WebView.subproj/WebView.m:
        (-[WebView dealloc]):
        set _private to nil after releasing, because [super dealloc] can dispatch to it
        (-[WebView mainFrame]):
        fixed spelling error in comment

2003-10-28  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3465383>: REGRESSION: Text field progress bar goes to 100% after error or stop
        Reviewed by john.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _isLoadComplete]): call _progressCompleted after we deliver the didFailLoadWithError or didFinishLoadForFrame message as we do in other places. This allows to be aware of the error (if there is one), when they get the WebViewProgressFi


nishedNotification notification.

2003-10-27  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

        - fixed 3083264 - frame names changed by JavaScript are not reflected in WebFrame at the WebKit level

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge didSetName:]): Tell the WebFrame about its new name.

2003-10-28  John Sullivan  <sullivan@apple.com>

        - fixed 3465613 -- REGRESSION (111): Crash creating nib that 
        contains WebView

        Reviewed by Chris.

        * WebView.subproj/WebView.m:
        (-[WebView mainFrame]):
        check for nil _private before dereferencing.

2003-10-28  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3465591>: Security: Netscape plug-ins can execute JavaScript in other frames

        Reviewed by mjs.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): renamed, no need to pass the target frame since the target is either the plug-in itself or the frame that contains the plug-in
        (-[WebBaseNetscapePluginView loadPluginRequest:]): call renamed evaluateJavaScriptPluginRequest
        (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): if this is a JS request that is targeted at a frame, return NPERR_INVALID_PARAM if the frame is not the frame that contains the plugin

2003-10-28  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3437959>: javascript: URLs don't work from Java (and other Cocoa plugins, if any)

        Reviewed by mjs.

        * Plugins.subproj/WebPluginController.m:
        (-[WebPluginController showURL:inFrame:]): support JS requests targeted only to the plug-in's frame.

2003-10-27  John Sullivan  <sullivan@apple.com>

        - fixed 3441258 -- hysteresis to start dragging a link is too small; too easy to start drag

        Reviewed by Chris.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _handleMouseDragged:]):
        Split DragHysteresis into two values, one for links and one for images. Make
        the link one much larger than the image one (since dragging an image doesn't
        occur accidentally in the ways that dragging a link does).

2003-10-27  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3462523>: Safari Sometimes Destroys Applets When Going "Back"

        Reviewed by darin.

        * History.subproj/WebHistoryItem.m:
        (+[WebHistoryItem _destroyAllPluginsInPendingPageCaches]): Don't destroy plug-ins that are currently being viewed.

2003-10-27  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3463144>: assertion failure when viewing jpeg with SoundPix installed

        Reviewed by john.

        * WebView.subproj/WebDataSource.m:
        (+[WebDataSource _repTypesAllowImageTypeOmission:]): don't allow image types to override types that are already registered as we do in [WebFrameView _viewTypesAllowImageTypeOmission:]

2003-10-24  Chris Blumenberg  <cblu@apple.com>

        Fixed:
        <rdar://problem/3462977>: ER: Nice if images dragged from web pages didn't redownload
        <rdar://problem/3031582>: Dragging an image to the desktop doesn't leave the file where I dropped it
        <rdar://problem/3061371>: "CFURLGetFSRef failed" log when dragging image to Finder

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): attempt to fetch the image data from the cache, if that works, write out the file

2003-10-26  Darin Adler  <darin@apple.com>

        * WebKitPrefix.h: Add a definition of NULL here so we get the stricter type checking
        even on pre-Merlot systems.

=== Safari-111 ===

2003-10-24  Richard Williamson   <rjw@apple.com>

        Fixed 3425358.  Don't try to create page cache for pages that
        have a nil view().

        Reviewed by Hyatt.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _createPageCacheForItem:]):
        (-[WebFrame _setState:]):

2003-10-24  Chris Blumenberg  <cblu@apple.com>
        Fixed: <rdar://problem/3424039>: standalone plug-in content occasionaly redirects to blank page

        Reviewed by john.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): don't honor JS requests from standalone plug-ins to workaround 3462628 which is a deeper issue.

2003-10-24  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3462256>: REGRESSION: Plain text is downloaded

        Reviewed by john.

        * WebView.subproj/WebView.m:
        (+[WebView _viewClass:andRepresentationClass:forMIMEType:]): use _web_objectForMIMEType when getting an object for a MIME. Removed unnecessary code that checked for the document classes after loading the plug-in DB since it is not an optimization because


 the plug-in DB calls _viewTypesAllowImageTypeOmission:NO.

2003-10-23  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3364036>: ER: Allow plug-ins to override built-in types such as image/jpeg

        Reviewed by john.

        * Plugins.subproj/WebPluginDatabase.m:
        (-[WebPluginDatabase refresh]): Allow plug-ins to override built-in types except for our core HTML types and don't allow the QT plug-in to override any types because it handles many types that we already handle
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge viewForPluginWithURL:attributes:baseURL:MIMEType:): instead of asserting, handle the case where we ask a plug-in to map from an extension to a MIME type, but nil is returned 
        (-[WebBridge frameRequiredForMIMEType:URL:]): no need to start up the plug-in DB because this is now handled by [WebView _viewClass:andRepresentationClass:forMIMEType:]
        * WebView.subproj/WebDataSource.m:
        (+[WebDataSource _representationClassForMIMEType:]): call [WebView _viewClass:andRepresentationClass:forMIMEType:]
        (-[WebDataSource _makeRepresentation]): call _representationClassForMIMEType
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _makeDocumentViewForDataSource:]): tweak
        (+[WebFrameView _viewClassForMIMEType:]): call [WebView _viewClass:andRepresentationClass:forMIMEType:]
        * WebView.subproj/WebView.m:
        (+[WebView _viewClass:andRepresentationClass:forMIMEType:]): new, central place for mapping from a MIME to the document classes. We now load the plug-in DB when a non-HTML MIME type is encountered instead of loading the plug-in DB when the class for the 


MIME type is not found. This is required to fully fix 3364036.
        (+[WebView canShowMIMEType:]): call [WebView _viewClass:andRepresentationClass:forMIMEType:]
        (+[WebView registerViewClass:representationClass:forMIMEType:]): tweak
        * WebView.subproj/WebViewPrivate.h:

2003-10-23  John Sullivan  <sullivan@apple.com>

        - fixed 3459272 -- Can't set up keyboard loop inside a 
        WebDocumentView without subclassing views
        - fixed 3179062 -- can't tab back to address bar from image-only 
        page
        - fixed 3252009 -- tabbing from address bar to content area does 
        not work with WebTextView
        - fixed 3461398 -- Can't click on a standalone image to focus it 
        (for later keyboard scrolling)

        I redid the way WebView and WebFrameView splice themselves into
        the keyview loop in a way very similar to what NSScrollView and
        NSClipView do. This means that contained and sibling views won't 
        need to do anything special to put themselves into the key loop.

        Reviewed by Chris.

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _scrollView]):
        check for nil pointer before dereferencing; this can happen
        during [super dealloc]'s keyview-loop-fixup code
        (-[WebFrameView initWithFrame:]):
        wire our nextKeyView link to the contained scrollview (so
        previousKeyView will work correctly from scrollview)
        (-[WebFrameView acceptsFirstResponder]):
        return what the contained scrollview says
        (-[WebFrameView becomeFirstResponder]):
        in previous direction, use previousValidKeyView (follows normal
        NSView keyview links); in forward direction, hand first
        responder-ness to contained scrollview (which will in turn hand
        it down to clipview, which will in turn hand it down to document)
        (-[WebFrameView setNextKeyView:]):
        wire up scrollview instead of self, if it exists

        * WebView.subproj/WebImageView.m:
        (-[WebImageView acceptsFirstResponder]):
        overridden to return YES; this fixes 3461398 and puts the finishing
        touches on 3179062

        * WebView.subproj/WebView.m:
        (-[WebView _commonInitializationWithFrameName:groupName:]):
        wire our nextKeyView link to the contained webframeview (so
        previousKeyView will work correctly from webframeview). Also,
        if there's a nextKeyView already set (in a nib, e.g.), wire
        it to our contained webframeview.
        (-[WebView acceptsFirstResponder]):
        return what the contained webframeview says
        (-[WebView becomeFirstResponder]):
        in previous direction, use previousValidKeyView (follows normal
        NSView keyview links); in forward direction, hand first
        responder-ness to contained webframeview (which will in turn hand
        it down to scrollview, etc.)
        (-[WebView setNextKeyView:]):
        wire up webframeview instead of self, if it exists

2003-10-22  Richard Williamson   <rjw@apple.com>

        Match WebCore's notion of distributing linegap between top and bottom of 
        line.  WebKit used to put it all at the bottom of the line.

        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebTextRenderer.h:
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer initWithFont:usingPrinterFont:]):
        (-[WebTextRenderer _CG_drawHighlightForRun:style:atPoint:]):

2003-10-21  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Dave.

        Finished exception blocking changes, so now I can finally say:

        - fixed 3137084 - Many non-reproducible crashers in ContextImp::mark / ScopeChain::mark
        - fixed 3308848 - nil-deref in KHTMLView::topLevelWidget
        - fixed 3311511 - nil deref inside KJS::Screen
        - fixed 3397422 - 7B51: Safari crashed in KJS::ObjectImp::mark()
        - fixed 3408373 - Panther7B58 : Safari Crashed in KJS::ObjectImp::mark
        - fixed 3409307 - 7B55: safari crashed in KJS::Interpreter::globalExec() (idle, nothing particular going on)
        - fixed 3410160 - 7B60 Safari crashed in KHTMLPart::parentPart called from JS while in the background
        - fixed 3413224 - unrepro crash in KJS::Window::mark
        - fixed 3419940 - unrepro crash in KJS::Collector::allocate trying to access http://www.lindyinthepalms.com
        - fixed 3420123 - Panther7B66: Safari crashed while going to http://www.tangents.co.uk/index2.html
        - fixed 3423225 - Safari crash in vtable for KWQMapImpl (vtable for KWQMapImpl + 8).
        - fixed 3437190 - nil-deref on quit in calling marked() from ScopeChain::mark()

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer ascent]):
        (-[WebTextRenderer descent]):
        (-[WebTextRenderer lineSpacing]):
        (-[WebTextRenderer xHeight]):
        (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
        (-[WebTextRenderer _smallCapsRenderer]):
        (-[WebTextRenderer _initializeATSUStyle]):
        (-[WebTextRenderer _createATSUTextLayoutForRun:]):
        (-[WebTextRenderer _trapezoidForRun:style:atPoint:]):
        (-[WebTextRenderer _ATSU_drawHighlightForRun:style:atPoint:]):
        (-[WebTextRenderer _ATSU_drawRun:style:atPoint:]):
        (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):

2003-10-22  Richard Williamson   <rjw@apple.com>

        Fixed 3458715.  Reset to 0, not .1 when done.

        Reviewed by Chris.

        * WebView.subproj/WebView.m:
        (-[WebView _resetProgress]):
        (-[WebView _progressStarted:]):

2003-10-21  Richard Williamson   <rjw@apple.com>

        Don't use small caps font for characters that don't have an
        uppercase counterpart (i.e. punctuation marks).

        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (widthForNextCharacter):

2003-10-21  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3176170>: OBJECT tag with no or empty TYPE is mishandled
        Reviewed by rjw.

        * Plugins.subproj/WebPluginDatabase.m:
        (-[WebPluginDatabase pluginForExtension:]): If no plug-in is found from the extension, attempt to map from the extension to a MIME type using our mappings and find a plug-in from the MIME type. This improves our chances of finding a plug-in when n


o MIME type is specified.
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge viewForPluginWithURL:attributes:baseURL:MIMEType:]): If the passed MIME is empty, nil it out so that clients only need to check for nil. This avoids error sheets complaining about "" MIME types.
        (-[WebBridge frameRequiredForMIMEType:URL:]): Renamed to include URL. If no MIME is specified, only create a plug-in view if we can map from the extension.

2003-10-20  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3457627>: empty Flash plugin at tvguide.com
        Fixed issues with plug-in stream error handling.
        Improved plug-in logging.

        Reviewed by kocienda.

        * Misc.subproj/WebKitLogging.h: added WebKitLogPluginEvents
        * Misc.subproj/WebKitLogging.m:
        * Plugins.subproj/WebBaseNetscapePluginStream.h:
        * Plugins.subproj/WebBaseNetscapePluginStream.m:
        (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]): improved logging
        (-[WebBaseNetscapePluginStream destroyStream]): improved logging
        (-[WebBaseNetscapePluginStream destroyStreamWithFailingReason:]): renamed from cancelWithReason to avoid confusion
        (-[WebBaseNetscapePluginStream receivedError:]): calls destroyStreamWithFailingReason after determining a reason from the NSError
        (-[WebBaseNetscapePluginStream cancelWithReason:]): calls destroyStreamWithFailingReason, this method is overriden by subclasses to cancel the actual load
        (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): call destroyStreamWithFailingReason, not cancelWithReason because the loaded has already ended here
        (-[WebBaseNetscapePluginStream deliverData]): improved logging
        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView sendActivateEvent:]): use even logging
        (-[WebBaseNetscapePluginView sendUpdateEvent]): ditto
        (-[WebBaseNetscapePluginView becomeFirstResponder]): ditto
        (-[WebBaseNetscapePluginView resignFirstResponder]): ditto
        (-[WebBaseNetscapePluginView mouseDown:]): ditto
        (-[WebBaseNetscapePluginView mouseUp:]): ditto
        (-[WebBaseNetscapePluginView mouseEntered:]): ditto
        (-[WebBaseNetscapePluginView mouseExited:]): ditto
        (TSMEventHandler): ditto
        (-[WebBaseNetscapePluginView destroyStream:reason:]): call cancelWithReason so the reason is passed back to the plug-in
        * Plugins.subproj/WebNetscapePluginDocumentView.m:
        (-[WebNetscapePluginDocumentView setDataSource:]): tweak
        * Plugins.subproj/WebNetscapePluginRepresentation.m:
        (-[WebNetscapePluginRepresentation receivedError:withDataSource:]): call receivedError
        (-[WebNetscapePluginRepresentation cancelWithReason:]): override, cancel the load, call super
        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream cancelWithReason:]): override, cancel the load, call super
        (-[WebNetscapePluginConnectionDelegate connection:didReceiveResponse:]): be sure to call the stream before calling super because the stream can be cleared out when calling super 
        (-[WebNetscapePluginConnectionDelegate connection:didReceiveData:lengthReceived:]): ditto
        (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): ditto
        (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): ditto

2003-10-20  Richard Williamson   <rjw@apple.com>

        Conditionally excluded fix for 3446192.  We'll enable the fix once 3446669
        has been fixed.  This patch switches to the new UTI typing API for pasteboard types.
 
        Reviewed by Ken.

        * Misc.subproj/WebNSPasteboardExtras.m:
        (+[NSPasteboard initialize]):

2003-10-20  Richard Williamson   <rjw@apple.com>

        Fixed 3456103.  Don't assert, just check for inappropriate state.
        Reviewed by Hyatt

        Add a debug menu item to always use ATSU text drawing.  This will be helpful
        to the ATSU folks in performance tuning there API.  Right now I see approx.
        2X slowdown using ATSU.

        Also did some shuffling around of inline related stuff.

              Reviewed by Chris.

        * WebCoreSupport.subproj/WebTextRenderer.h:
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (isControlCharacter):
        (isAlternateSpace):
        (isSpace):
        (getUncachedWidth):
        (widthFromMap):
        (widthForGlyph):
        (+[WebTextRenderer _setAlwaysUseATSU:]):
        (glyphForCharacter):
        (glyphForUnicodeCharacter):
        (shouldUseATSU):
        * WebView.subproj/WebView.m:
        (+[WebView _setAlwaysUseATSU:]):
        (-[WebView _progressCompleted:]):
        * WebView.subproj/WebViewPrivate.h:

2003-10-19  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3442218>: crash due to infinite recursion trying to load standalone plug-in content

        Reviewed by darin.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame stopLoading]): manage the isStoppingLoad ivar, return if isStoppingLoad is YES
        * WebView.subproj/WebFramePrivate.h: added the isStoppingLoad ivar

2003-10-19  Darin Adler  <darin@apple.com>

        Reviewed by Dave and Ken.

        - fixed 3457066 -- REGRESSION (91-92): command-left-arrow causes a scroll to the left before going back

        * WebView.subproj/WebFrameView.m: (-[WebFrameView keyDown:]): Add an else so that we don't fall into the
        scrolling code when the command key is down for right and left arrow.

2003-10-18  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3229530>: Dragging standalone image to desktop should save it, not re-download it

        Reviewed by darin.

        * English.lproj/Localizable.strings:
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebDocumentPrivate.h: Added.
        * WebView.subproj/WebImageRepresentation.h:
        * WebView.subproj/WebImageRepresentation.m:
        (-[WebImageRepresentation dealloc]): release new filename and data ivars
        (-[WebImageRepresentation doneLoading]): return YES if data is non-nil
        (-[WebImageRepresentation setDataSource:]): store the filename
        (-[WebImageRepresentation receivedError:withDataSource:]): store the data
        (-[WebImageRepresentation finishedLoadingWithDataSource:]): store the data
        (-[WebImageRepresentation data]): new
        (-[WebImageRepresentation filename]): new
        * WebView.subproj/WebImageView.m:
        (-[WebImageView namesOfPromisedFilesDroppedAtDestination:]): just save the image, don't download it
        (-[WebImageView image]): new

2003-10-17  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3456176>: Assertion failure when loading atomfilms.com

        Reviewed by kocienda.

        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginConnectionDelegate connection:didReceiveData:lengthReceived:]): call super before calling plug-in code as we do in other callbacks
        (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): ditto
        (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): ditto

2003-10-16  Richard Williamson   <rjw@apple.com>

        Fixed 3455306.  Ensure that progress is correctly ended when a load is interupted (i.e. becomes a download).

        Reviewed by mjs.

        * WebView.subproj/WebFrame.m:
        (-[WebFrame _isLoadComplete]):

2003-10-16  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3455176>: Assertion failure when loading non-existant plug-in content

        Reviewed by rjw.

        * Misc.subproj/WebDownload.m: fixed build failure when using new Foundation. We are overriding and calling a renamed method. Continue to override the old method, override the new method and declare their interfaces to avoid build failures. 
        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginConnectionDelegate connection:didReceiveResponse:]): cancel the load before telling the plug-in about the error so plug-in code doesn't attempt to cancel the load twice

2003-10-16  Richard Williamson   <rjw@apple.com>

        Fixed 3453991.  We weren't setting the array cursor correctly after changing
        capacity.

        Reviewed by John.

        * ChangeLog:
        * History.subproj/WebBackForwardList.m:
        (-[WebBackForwardList setCapacity:]):

=== Safari-110 ===

2003-10-16  Richard Williamson   <rjw@apple.com>

        Tweaked the progress behavior and factored cleanup of progress
        related ivars.

        Reviewed by Hyatt.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _startLoading:]):
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _isLoadComplete]):
        * WebView.subproj/WebView.m:
        (-[WebView _resetProgress]):
        (-[WebView _progressStarted:]):
        (-[WebView _finalProgressComplete]):
        (-[WebView _progressCompleted:]):
        (-[WebView _incrementProgressForConnection:data:]):
        * WebView.subproj/WebViewPrivate.h:

2003-10-14  Richard Williamson   <rjw@apple.com>

        Added logging for estimated progress.
        
        Added a time delta to the throttler, so we now send notifications
        if a delta amount has been exceeded OR a delta between notifications
        has been exceeded.

        Reviewed by Chris.

        * Misc.subproj/WebKitLogging.h:
        * Misc.subproj/WebKitLogging.m:
        * WebView.subproj/WebView.m:
        (-[WebViewPrivate init]):
        (-[WebView _progressStarted]):
        (-[WebView _progressCompleted]):
        (-[WebView _incrementProgressForConnection:data:]):
        * WebView.subproj/WebViewPrivate.h:

2003-10-14  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        Fix for this bug:

        <rdar://problem/3450449>: assertion failure in WebBridge 
        _retrieveKeyboardUIModeFromPreferences

        Can't assert that the preference always exists and is valid as I
        thought you could. This could just mean that the a preference for full
        keyboard access has not been specified by the user yet. If this is so,
        just return the default keyboard access mode.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge _retrieveKeyboardUIModeFromPreferences:])

2003-10-13  Richard Williamson  <rjw@apple.com>

        Added support for small-caps.

        Reworked drawing and measuring to use new iterators.  Position checking was already using
        the new iterator code, but I was reluctant to switch the mainline drawing and measuring
        code over to the new approach until now.

        Lots of other code cleanup.

        Reviewed by John.

        * Misc.subproj/WebUnicode.m:
        (initializeCharacterShapeIterator):
        * WebCoreSupport.subproj/WebTextRenderer.h:
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (+[WebTextRenderer shouldBufferTextDrawing]):
        (+[WebTextRenderer initialize]):
        (-[WebTextRenderer initWithFont:usingPrinterFont:]):
        (-[WebTextRenderer dealloc]):
        (-[WebTextRenderer widthForCharacters:length:]):
        (-[WebTextRenderer widthForString:]):
        (-[WebTextRenderer ascent]):
        (-[WebTextRenderer descent]):
        (-[WebTextRenderer lineSpacing]):
        (-[WebTextRenderer xHeight]):
        (-[WebTextRenderer drawRun:style:atPoint:]):
        (-[WebTextRenderer floatWidthForRun:style:widths:]):
        (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
        (-[WebTextRenderer drawHighlightForRun:style:atPoint:]):
        (-[WebTextRenderer pointToOffset:style:position:reversed:]):
        (-[WebTextRenderer _setIsSmallCapsRenderer:]):
        (-[WebTextRenderer _isSmallCapsRenderer]):
        (-[WebTextRenderer _smallCapsRenderer]):
        (-[WebTextRenderer _smallCapsFont]):
        (-[WebTextRenderer _substituteFontForString:families:]):
        (-[WebTextRenderer _substituteFontForCharacters:length:families:]):
        (-[WebTextRenderer _convertCharacters:length:toGlyphs:skipControlCharacters:]):
        (-[WebTextRenderer _convertUnicodeCharacters:length:toGlyphs:]):
        (-[WebTextRenderer _computeWidthForSpace]):
        (-[WebTextRenderer _setupFont]):
        (_drawGlyphs):
        (-[WebTextRenderer _CG_drawHighlightForRun:style:atPoint:]):
        (-[WebTextRenderer _CG_drawRun:style:atPoint:]):
        (-[WebTextRenderer _floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
        (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
        (-[WebTextRenderer _extendUnicodeCharacterToGlyphMapToInclude:]):
        (-[WebTextRenderer _updateGlyphEntryForCharacter:glyphID:font:]):
        (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]):
        (-[WebTextRenderer _extendGlyphToWidthMapToInclude:font:]):
        (-[WebTextRenderer _trapezoidForRun:style:atPoint:]):
        (-[WebTextRenderer _ATSU_floatWidthForRun:style:]):
        (-[WebTextRenderer _ATSU_drawHighlightForRun:style:atPoint:]):
        (-[WebTextRenderer _ATSU_drawRun:style:atPoint:]):
        (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):
        (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:]):
        (freeWidthMap):
        (freeGlyphMap):
        (glyphForCharacter):
        (glyphForUnicodeCharacter):
        (mapForSubstituteFont):
        (widthFromMap):
        (widthForGlyph):
        (initializeCharacterWidthIterator):
        (widthAndGlyphForSurrogate):
        (ceilCurrentWidth):
        (widthForNextCharacter):
        (fillStyleWithAttributes):
        (findLengthOfCharacterCluster):
        (shouldUseATSU):
        (isControlCharacter):
        (isAlternateSpace):
        (isSpace):
        (fontContainsString):
        (GetScratchUniCharString):
        (toUpper):
        (isUpper):

2003-10-10  Maciej Stachowiak  <mjs@apple.com>

        * English.lproj/StringsNotToBeLocalized.txt: Fixed for Private
        change from a while back.

2003-10-10  David Hyatt  <hyatt@apple.com>

        Patch to move widgets during layout instead of waiting until paint time.
        Reviewed by darin

        * WebView.subproj/WebDataSource.m:
        * WebView.subproj/WebDataSourcePrivate.h:
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _isLoadComplete]):
        * WebView.subproj/WebHTMLView.m:
        * WebView.subproj/WebHTMLViewPrivate.h:

2003-10-09  Richard Williamson   <rjw@apple.com>

        Ensure that the autoscroll timer is always stopped if a mouse up event is lost.

        Reviewed by John.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLViewPrivate dealloc]):
        (-[WebHTMLView _startAutoscrollTimer:]):
        (-[WebHTMLView _stopAutoscrollTimer]):
        (-[WebHTMLView _autoscroll]):
        (-[WebHTMLView mouseDown:]):
        * WebView.subproj/WebHTMLViewPrivate.h:

2003-10-09  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3333897>: should support navigator.plugins.refresh as a way to add a plugin without restarting Safari

        Reviewed by rjw.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView dealloc]): release the plug-in object
        * Plugins.subproj/WebBasePluginPackage.h:
        * Plugins.subproj/WebBasePluginPackage.m:
        (-[WebBasePluginPackage initWithPath:]): store the last mod date
        (-[WebBasePluginPackage dealloc]): release the last mod date
        (-[WebBasePluginPackage lastModifiedDate]): new
        (-[WebBasePluginPackage isEqual:]): new
        (-[WebBasePluginPackage hash]): new
        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage load]): convert the NPP_Shutdown proc pointer so that we can use it later
        (-[WebNetscapePluginPackage unload]): added log message
        * Plugins.subproj/WebPluginDatabase.h:
        * Plugins.subproj/WebPluginDatabase.m:
        (-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]): tweak
        (-[WebPluginDatabase plugins]): tweak
        (-[WebPluginDatabase init]): call refresh
        (-[WebPluginDatabase refresh]): new
        (-[WebPluginDatabase loadPluginIfNeededForMIMEType:]): tweak
        * WebCoreSupport.subproj/WebViewFactory.m:
        (-[WebViewFactory refreshPlugins:]): new
        * WebView.subproj/WebControllerSets.h:
        * WebView.subproj/WebControllerSets.m:
        (+[WebViewSets makeWebViewsPerformSelector:]): new
        * WebView.subproj/WebFrame.m:
        (-[WebFrame _reloadForPluginChanges]): new
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebView.m:
        (-[WebView _reloadForPluginChanges]): new
        * WebView.subproj/WebViewPrivate.h:

=== Safari-109 ===

2003-10-03  Richard Williamson <rjw@apple.com>

        Fix part of 3438071.  Creating an instance of WebPreferences using init
        will do the expected thing:  that is, create a new instance!  We used to
        always return standardPreferences.

        Reviewed by Chris.

        * WebView.subproj/WebPreferences.m:
        (-[WebPreferences init]):
        (+[WebPreferences standardPreferences]):

2003-10-03  David Hyatt  <hyatt@apple.com>

        Fix for numerous regressions caused by an inadvertent renaming of the recursiveDisplay
        override method.
        Reviewed by darin

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):

2003-10-03  Richard Williamson (Home0  <rjw@apple.com>

        Fixed some edge case issue (control characters after end of word) with our rounding hack.

        Reviewed by Darin.

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startGlyph:endGlyph:numGlyphs:]):

2003-10-03  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin, with much help from Maciej and Hyatt

        Fix for this bug:

        <rdar://problem/3441321>: Form buttons do not respond to key events when focused

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _firstResponderIsControl]): Added to tell if the focus
        is on a form control.
        (-[WebFrameView keyDown:]): Call new _firstResponderIsControl method to see
        whether space bar key events should propagate. Adding this check keeps us
        from blocking the event here and allows AppKit to handle it.
        * WebView.subproj/WebFrameViewPrivate.h: Add new _firstResponderIsControl 
        method.

2003-10-02  Maciej Stachowiak  <mjs@apple.com>

        Folded Private implementation files into the regular ones as the
        first step towards pulling in our SPI exposure and other code
        cleanup.

        * History.subproj/WebHistory.m:
        * History.subproj/WebHistoryPrivate.m: Removed.
        * Misc.subproj/WebIconDatabasePrivate.h:
        * WebKit.pbproj/project.pbxproj:
        * WebView.subproj/WebDataSource.m:
        * WebView.subproj/WebDataSourcePrivate.m: Removed.
        * WebView.subproj/WebFrame.m:
        * WebView.subproj/WebFramePrivate.m: Removed.
        * WebView.subproj/WebFrameView.m:
        * WebView.subproj/WebFrameViewPrivate.m: Removed.
        * WebView.subproj/WebHTMLView.m:
        * WebView.subproj/WebHTMLViewPrivate.m: Removed.
        * WebView.subproj/WebView.m:
        * WebView.subproj/WebViewPrivate.m: Removed.

2003-10-02  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3440063>: Safari 1.1 won't load new pages after visiting adultswim.com, assertion failure on debug build

        Reviewed by rjw.

        * Plugins.subproj/WebBaseNetscapePluginStream.m:
        (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): if not data was received for a stream, create the temp file anyway. Plug-ins expect this.

=== Safari-108 ===

2003-10-02  Darin Adler  <darin@apple.com>

        * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.

2003-10-01  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

        - fixed 3441466 - REGRESSION: http://www.meyerweb.com/eric/css/edge/complexspiral/glassy.html broken on scroll
        * WebView.subproj/WebFramePrivate.m:
        (-[WebFrame _setState:]): Don't turn on scroll-blitting here when the page is done...
        (-[WebFrame _transitionToCommitted:]): Instead do it here, when the page is committed.

2003-10-02  Darin Adler  <darin@apple.com>

        Reviewed by Ken.

        - in preparation for a WebCore whitespace-handling change, made WebTextRenderer draw and measure
          newline characters as if they are spaces (just as we already do with non-breaking spaces)
        - removed some unused stuff from WebTextRenderer
        - other unimportant tweaks (e.g. unsigned int -> unsigned)

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (kFixedOne), (fixed1), (FixToFloat), (FloatToFixed): Removed these. We can use the standard ones
        from <FixMath.h> instead of defining our own.
        (isControlCharacter): Added. Inline function that we can use instead of the macro we had before.
        (isAlternateSpace): Added. Returns YES for newlines and non-breaking spaces.
        (isSpace): Added. Returns YES for real spaces and the two alternate spaces as well.
        (initializeCharacterWidthIterator): Use isSpace.
        (-[WebTextRenderer convertCharacters:length:toGlyphs:skipControlCharacters:]): Use isAlternateSpace
        and isControlCharacter.
        (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startGlyph:endGlyph:numGlyphs:]):
        Use isControlCharacter, isAlternateSpace, and isSpace. Also fix a small bug where numGlyphs would
        not get set up properly when the run length is 0, and used local variables when possible instead
        of going back at the run structure.
        (-[WebTextRenderer _ATSU_floatWidthForRun:style:]): Use the standard FixedToFloat instead of our
        own FixToFloat.
        (-[WebTextRenderer _ATSU_drawHighlightForRun:style:atPoint:]): Ditto.

2003-10-02  David Hyatt  <hyatt@apple.com>

        Work on exposing elements to the Acc API.  This patch gets us to the point where text
        under the mouse is voiced.
        Reviewed by darin

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView accessibilityAttributeValue:]):
        (-[WebHTMLView accessibilityHitTest:]):

2003-10-01  John Sullivan  <sullivan@apple.com>

        Reviewed by Darin

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView viewDidMoveToSuperview]):
        skip some work when when we've been removed. This wasn't
        causing any trouble before, but was at least conceptually
        inefficient.

2003-10-01  John Sullivan  <sullivan@apple.com>

        - fixed 3441372: REGRESSION (107+): Plain text document is 
        initially drawn with proportional font

        Reviewed by Hyatt

        * WebView.subproj/WebTextView.m:
        (-[WebTextView setDataSource:]):
        Changed a != to an ==

2003-10-01  Richard Williamson   <rjw@apple.com>

        Fixed 3438441.  If a load is triggered by a onload handling, don't add an entry for it into the b/f or history.  The new Google ads use this technique.

        Reviewed by Ken.

        * Misc.subproj/WebKitLogging.h:
        * Misc.subproj/WebKitLogging.m:
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge loadURL:referrer:reload:onLoadEvent:target:triggeringEvent:form:formValues:]):
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebFramePrivate.m:
        (-[WebFrame _addBackForwardItemClippedAtTarget:]):
        (-[WebFrame _transitionToCommitted:]):
        (-[WebFrame _isLoadComplete]):
        (-[WebFrame _loadItem:withLoadType:]):
        (-[WebFrame _itemForRestoringDocState]):

2003-10-01  Darin Adler  <darin@apple.com>

        Reviewed by John.

        * WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView _webView]):
        Fixed problem where we'd get a nil WebView and pass crazy values for subframe
        text multipliers.

2003-10-01  David Hyatt  <hyatt@apple.com>

        Fix for 3440804, broken scrollbars in downloads window.  Make Auto be the default
        value in the enum, so that all scrollviews will be automatically initialized to be
        auto.
        Reviewed by cblu

        * WebView.subproj/WebDynamicScrollBarsView.m:

2003-09-30  Richard Williamson   <rjw@apple.com>

        Attempt to find a reasonable font using a simple string matching heuristic if 
        none of the fonts actually specified are found.  In particular we will use
        Geeza Pro if "arabic", "urdu", or "pashto" is contained (case-insensitive) in
        any of the requested font family names.  Geeza Pro is a much better fallback
        font for Arabic (and variant languages) than Helvetica.

        Reviewed by Chris.

        * WebCoreSupport.subproj/WebTextRendererFactory.m:
        (-[WebTextRendererFactory fontWithFamilies:traits:size:]):

2003-09-30  John Sullivan  <sullivan@apple.com>

        - fixed 3045617 -- Make Text Bigger/Smaller doesn't affect non-html documents.
        
        I added an internal protocol inside WebKit to make this work, and implemented
        it for plain text and RTF. I also slightly shuffled the existing code to
        handle this for HTML so that it goes through the new protocol in that case
        also.

        * WebView.subproj/WebDocumentInternal.h: Added.
               New header file, holds definition of 
        _web_WebDocumentTextSizing protocol.

        * WebView.subproj/WebFramePrivate.m:
        (-[WebFrame _textSizeMultiplierChanged]):
        if the document view conforms to the new protocol,
        tell it that the multiplier has changed. Also, don't
        tell the bridge here anymore; let WebHTMLView do that.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _updateTextSizeMultiplier]):
        tell the bridge here instead of having WebFrame do so
        (-[WebHTMLView viewDidMoveToSuperview]):
        call _updateTextSizeMultiplier (in case it changed while we were switched out)
        (-[WebHTMLView _web_textSizeMultiplierChanged]):
        call _updateTextSizeMultiplier
        
        * WebView.subproj/WebTextRepresentation.m:
        (-[WebTextRepresentation receivedData:withDataSource:]):
        
        * WebView.subproj/WebTextView.h:
        now implements _web_WebDocumentTextSizing protocol;
        new ivar for holding local copy of text size multiplier;
        new public method appendReceivedData:fromDataSource:
        
        * WebView.subproj/WebTextView.m:
        (-[WebTextView initWithFrame:]):
        set local copy of text size multiplier to 1.0
        (-[WebTextView _textSizeMultiplierFromWebView]):
        new method, asks the webview's opinion of the text size multiplier
        (-[WebTextView setFixedWidthFont]):
        use the text size multiplier when setting font size
        (-[WebTextView _adjustRichTextFontSizeByRatio:]):
        new method, borrowed from Mail and tweaked, that walks through
        the rich text and adjusts the font sizes
        (-[WebTextView _updateTextSizeMultiplier]):
        new method, updates local copy of text size multiplier to
        match webview's opinion
        (-[WebTextView setDataSource:]):
        set the text size multiplier appropriately before setting the
        fixed-width font; this is too early for the RTF case though
        since the fonts are embedded in the data
        (-[WebTextView appendReceivedData:fromDataSource:]):
        new method. Most of this logic was in WebTextRepresentation, but
        it's a little better encapsulated here, plus now it handles the
        text multiplier for RTF.
        (-[WebTextView defaultsChanged:]):
        added comment
        (-[WebTextView _web_textSizeMultiplierChanged]):
        call updateTextSizeMultiplier
        
        * WebView.subproj/WebView.m:
        (-[WebView canMakeTextSmaller]):
        (-[WebView canMakeTextLarger]):
        return NO if the main frame doesn't support the text sizing protocol. This means
        that if the main frame doesn't support it but a subframe does, you can't adjust
        the text size. This seems fine for now since the only case with subframes is
        HTML, where the main frame does support changing text size.
        
        * WebKit.pbproj/project.pbxproj:
        updated for new file

2003-09-30  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3428262>: Plugin loads for static files, but not PHP scripts

        Reviewed by rjw.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge frameRequiredForMIMEType:]): load the plug-in DB so this method returns reliable results.

2003-09-30  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3006869>: show image dimensions in title bar when single image is loaded

        Reviewed by rjw.

        * English.lproj/Localizable.strings:
        * WebView.subproj/WebImageRepresentation.m:
        (-[WebImageRepresentation title]): return "foo.jpg 50x50 pixels"

2003-09-30  Richard Williamson   <rjw@apple.com>

        Fixed 3420396.  If a frame targets _top and a URL that contains a fragment (very unusual, it's meaningless for a frameset to contain a named anchor point) the frameset won't be reloaded.  Our normal path is to just scroll to the anchor point.  This is on


ly important because our Help folks oddly depend on the behavior.

        Reviewed by Chris.

        * WebView.subproj/WebFramePrivate.m:
        (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):

2003-09-30  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Maciej
        
        Fix for this bug:
        
        <rdar://problem/3439688>: WebKit needs to retrieve full keyboard access preference
        
        * WebCoreSupport.subproj/WebBridge.h: Add two ivars: one to track the keyboard
        UI mode, the other a flag we use to register for notifications.
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge dealloc]): Remove the notification observer to keyboard UI mode changes.
        (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]): New method. Accesses the
        preferences to get the current keyboard UI mode.
        (-[WebBridge keyboardUIMode]): Returns the current keyboard UI mode. Registers for
        notifications of keyboard UI mode changes when called the first time.
        
2003-09-30  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Ken.

        - fixed 3375281 - Keyboard event handlers not fired if focus not in form field
        - fixed 3242927 - KeyPressed Event in Javascript don't work
        - fixed 3375353 - keyboard event.target not updated when blurring from form items
        - fixed 3183754 - returning false from key press handlers does not prevent typing or form submission

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView keyDown:]): Ask the bridge before passing the event along.
        (-[WebHTMLView keyUp:]): Likewise.
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebHTMLViewPrivate.m: Remove dead code.

2003-09-30  Richard Williamson   <rjw@apple.com>

        Fixed 3422138.  We weren't sending a didChange call for isLoading until the load was complete!  Also [WebView isLoading] wasn't accounting for provisional datasources.

        Reviewed by Chris.

        * WebView.subproj/WebView.m:
        (-[WebView isLoading]):
        * WebView.subproj/WebViewPrivate.h:
        * WebView.subproj/WebViewPrivate.m:
        (-[WebView _didStartProvisionalLoadForFrame:]):
        (-[WebView _didCommitLoadForFrame:]):
        (-[WebView _didFinishLoadForFrame:]):
        (-[WebView _didFailLoadWithError:forFrame:]):
        (-[WebView _didFailProvisionalLoadWithError:forFrame:]):

2003-09-30  David Hyatt  <hyatt@apple.com>

        Improvements to scrolling and layout.  Also fixing 3264346, body overflow should
        apply to document's scrollbars.
        Reviewed by darin

        * WebView.subproj/WebDynamicScrollBarsView.h:
        * WebView.subproj/WebDynamicScrollBarsView.m:
        (-[WebDynamicScrollBarsView initWithFrame:]):
        (-[WebDynamicScrollBarsView setScrollBarsSuppressed:repaintOnUnsuppress:]):
        (-[WebDynamicScrollBarsView updateScrollers]):
        (-[WebDynamicScrollBarsView reflectScrolledClipView:]):
        (-[WebDynamicScrollBarsView setAllowsScrolling:]):
        (-[WebDynamicScrollBarsView allowsScrolling]):
        (-[WebDynamicScrollBarsView setAllowsHorizontalScrolling:]):
        (-[WebDynamicScrollBarsView setAllowsVerticalScrolling:]):
        (-[WebDynamicScrollBarsView allowsHorizontalScrolling]):
        (-[WebDynamicScrollBarsView allowsVerticalScrolling]):
        (-[WebDynamicScrollBarsView horizontalScrollingMode]):
        (-[WebDynamicScrollBarsView verticalScrollingMode]):
        (-[WebDynamicScrollBarsView setHorizontalScrollingMode:]):
        (-[WebDynamicScrollBarsView setVerticalScrollingMode:]):
        (-[WebDynamicScrollBarsView setScrollingMode:]):

2003-09-29  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3422739>: Plug-in streams not cancelled when plug-in returns error from NPP_NewStream

        Reviewed by mjs.

        * Plugins.subproj/WebBaseNetscapePluginStream.h: renamed receivedError to cancelWithReason
        * Plugins.subproj/WebBaseNetscapePluginStream.m:
        (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]): call cancelWithReason if NPP_NewStream returns an error
        (-[WebBaseNetscapePluginStream cancelWithReason:]): renamed
        (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): tweak
        * Plugins.subproj/WebNetscapePluginRepresentation.m:
        (-[WebNetscapePluginRepresentation receivedError:withDataSource:]): call renamed cancelWithReason
        (-[WebNetscapePluginRepresentation cancelWithReason:]): new override, stop load then call super
        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream cancelWithReason:]): new override, stop load then call super
        (-[WebNetscapePluginStream stop]): call cancelWithReason
        (-[WebNetscapePluginConnectionDelegate connection:didReceiveResponse:]): call renamed cancelWithReason
        (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): call renamed cancelWithReason

2003-09-25  Maciej Stachowiak  <mjs@apple.com>

        Roll out build system change since it did not actually work. :-(
        * WebKit.pbproj/project.pbxproj:

2003-09-25  David Hyatt  <hyatt@apple.com>

        Change layout so that it is called from the private _recursive functions instead of
        inside drawRect.
        Reviewed by kocienda

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView layoutToPageWidth:adjustingViewSize:]):
        (-[WebHTMLView drawRect:]):
        * WebView.subproj/WebHTMLViewPrivate.m:
        (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:testDirtyRect:]):
        (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
        (-[WebHTMLView _web_setPrintingModeRecursive]):
        (-[WebHTMLView _web_clearPrintingModeRecursive]):
        (-[WebHTMLView _web_layoutIfNeededRecursive:testDirtyRect:]):
        (-[NSView _web_setPrintingModeRecursive]):
        (-[NSView _web_clearPrintingModeRecursive]):
        (-[NSView _web_layoutIfNeededRecursive:testDirtyRect:]):

2003-09-25  Richard Williamson   <rjw@apple.com>

        Fixed 3433802.  Written by Ed.  Carbon WebView doesn't detach native view when removed.

        Reviewed by Richard.

        * Carbon.subproj/HIWebView.m:
        (OwningWindowChanged):

2003-09-25  Richard Williamson   <rjw@apple.com>

        Fixed 3433488.  Written by Ed.  WebKit doesn't sync window visibility when new webview added to visible window.

        Reviewed by Richard.

        * Carbon.subproj/CarbonWindowAdapter.m:
        (-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:disableOrdering:carbon:]):

2003-09-25  Richard Williamson   <rjw@apple.com>

        Fixed 3434854.  Written by Ed.  Correctly handle window modality in carbon.

        Reviewed by Richard.

        * Carbon.subproj/CarbonWindowAdapter.m:
        (-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:disableOrdering:carbon:]):

2003-09-25  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

        Updated setup for engineering builds. Don't embed the framework
        into Safari or hack the install name. However, do copy WebCore and
        JavaScriptCore into the proper sub-umbrella locations.
        * WebKit.pbproj/project.pbxproj:
        * embed-frameworks.sh: Added.

=== Safari-107 ===

2003-09-25  Ken Kocienda  <kocienda@apple.com>

        Reviewed by Darin

        Fix for this bug:
        
        <rdar://problem/3341222>: WebView doesn't follow AppKit default nextKeyView pattern
        
        * WebCoreSupport.subproj/WebBridge.h: Added a variable to guard against recursion
        in -[WebBridge inNextKeyViewOutsideWebFrameViews].
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge inNextKeyViewOutsideWebFrameViews]): Accessor for recursion guard.
        (-[WebBridge nextKeyViewOutsideWebFrameViews]): Do not ask webView for its
        next key view, but rather, ask it for the next key view of the last view in
        its key view loop. This is what will get us to the next view outside of the
        webView.
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView nextKeyView]): Ask AppKit, rather than khtml, for the next key
        key view if -[WebBridge inNextKeyViewOutsideWebFrameViews] returns YES. Doing
        so gives us the correct answer as calculated by AppKit, and makes HTML views
        behave like other views. This check also heads off an infinite recursion 
        through -[WebBridge nextKeyViewOutsideWebFrameViews].

        Also did some cleanup of some code that was marked for removal "some day".
        That "some day" is today.
        
2003-09-25  Darin Adler  <darin@apple.com>

        Reviewed by John.

        - fixed 3176853 -- can't attach files that have no extensions with Yahoo mail (bad Content-Type headers)

        * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge MIMETypeForPath:]):
        Return @"application/octet-stream" rather than nil or empty string when the type is not known.

2003-09-24  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]):
        Added one more call to _stopAutoscrollTimer for when drags begin.

2003-09-24  Richard Williamson   <rjw@apple.com>

        Fixed 3420736.  Clear renderer caches when get an ATS font changed notification.  This fix may be moot depending on progress toward fixing 2695906.  Also 3428451 needs to should be resolved.

        Also added code to get and log entry point for the function used to get a Java class from plugins.  That class is used for LiveConnect support.

        Reviewed by John.

        * Misc.subproj/WebKitLogging.h:
        * Misc.subproj/WebKitLogging.m:
        * Plugins.subproj/WebNetscapePluginPackage.h:
        * Plugins.subproj/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage load]):
        * Plugins.subproj/npapi.h:
        * WebCoreSupport.subproj/WebTextRenderer.m:
        (FillStyleWithAttributes):
        * WebCoreSupport.subproj/WebTextRendererFactory.m:
        (-[WebTextRendererFactory clearCaches]):
        (fontsChanged):
        (+[WebTextRendererFactory createSharedFactory]):
        (-[WebTextRendererFactory fontWithFamily:traits:size:]):
        (-[WebTextRendererFactory cachedFontFromFamily:traits:size:]):

2003-09-23  Darin Adler  <darin@apple.com>

        Reviewed by John and Richard.

        - fixed 3127833 -- autoscroll only works when mouse is moving

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView viewDidMoveToWindow]): Stop the auto-scroll timer. This covers
        the case where a view is removed from the view hierarchy while the mouse is down.
        (-[WebHTMLView mouseDown:]): Start the auto-scroll timer.
        (-[WebHTMLView mouseUp:]): Stop the auto-scroll timer.
        * WebView.subproj/WebHTMLViewPrivate.h: Add an auto-scroll timer, and methods
        to start and stop it.
        * WebView.subproj/WebHTMLViewPrivate.m:
        (-[WebHTMLView _startAutoscrollTimer]): Create and schedule a timer. It uses the
        same 1/10 second interval that NSTextView uses for its scrolling timer.
        (-[WebHTMLView _stopAutoscrollTimer]): Invalidate and release the timer.
        (-[WebHTMLView _autoscroll]): Check for a mouse up event in the queue; if one is
        there, then no autoscrlling. But if not, then create a fake mouse dragged event
        and dispatch it; that will lead to autoscrolling.

2003-09-22  Darin Adler  <darin@apple.com>

        Reviewed by Dave.

        - worked around 3429631 -- window stops getting mouse moved events after first tooltip appears

        * WebView.subproj/WebHTMLViewPrivate.m: (-[NSToolTipPanel setAcceptsMouseMovedEvents:]):
        Do nothing, preventing the real setAcceptsMouseMovedEvents: (in class NSWindow) from being called.

2003-09-22  Darin Adler  <darin@apple.com>

        Reviewed by Dave.

        - fixed 3431033 -- crash in -[NSToolTipManager _shouldInstallToolTip:]

        * WebView.subproj/WebHTMLViewPrivate.m:
        (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]):
        Override this alternate version of addTrackingRect. If I don't do this, we might
        create a real tracking rect, which we would then never remove.
        (-[WebHTMLView removeTrackingRect:]): Added assertions.

2003-09-22  Darin Adler  <darin@apple.com>

        * WebKit.pbproj/project.pbxproj: Rename Mixed build style to OptimizedWithSymbols.

2003-09-21  Darin Adler  <darin@apple.com>

        * WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView removeTrackingRect:]): Remove bogus assert.

2003-09-21  Darin Adler  <darin@apple.com>

        Reviewed by Dave.

        - fixed 3106411 -- show title attribute for page elements in tooltip on mouseover (important for PeopleSoft)

        * WebView.subproj/WebHTMLViewPrivate.h: Added fields needed for tool tip implementation.
        * WebView.subproj/WebHTMLViewPrivate.m:
        (-[WebHTMLViewPrivate dealloc]): Release the tool tip string.
        (-[WebHTMLView addTrackingRect:owner:userData:assumeInside:]): Override the default NSView
        tracking rectangle implementation so we can trick the tool tip manager into trusting us about
        when you leave and enter the rectangle for each element.
        (-[WebHTMLView removeTrackingRect:]): The other half of the above stuff.
        (-[WebHTMLView _sendToolTipMouseExited]): Added. Makes an event just good enough to fool the tool tip
        manager, and send it on.
        (-[WebHTMLView _sendToolTipMouseEntered]): Ditto.
        (-[WebHTMLView _setToolTip:]): Added. Manages the new and old tool tips in a way that fools the tool
        tip manager into working even though we don't know the rectangles of the tool tips beforehand. The
        advantage of using AppKit tool tips is that they have all sorts of nice little features, like wrapping
        to a nice rectangular shape and fading out when you move away.
        (-[WebHTMLView view:stringForToolTip:point:userData:]): This is how the tool tip manager gets the actual
        tool tip text.
        (-[WebHTMLView _updateMouseoverWithEvent:]): Call _setToolTip method, using the value passed along with the
        WebCoreElementTitleKey in the dictionary.

        - unrelated code cleanup

        * WebView.subproj/WebFramePrivate.h: Don't define WebCorePageCacheStateKey here; instead use
        a definition exported from WebCore.
        * WebView.subproj/WebFramePrivate.m: Ditto.
        * English.lproj/StringsNotToBeLocalized.txt: Update for above changes.

2003-09-19  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

        Roll out old fix for 3410980.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge goBackOrForward:]):

2003-09-19  Darin Adler  <darin@apple.com>

        Reviewed by Dave.

        - do the prep work for the mini controls feature; Dave will finish this

        * WebCoreSupport.subproj/WebFileButton.m:
        (-[WebFileButton isFlipped]): Make this flipped, easier to understand coordinates that way.
        (-[WebFileButton drawRect:]): Update for flipped-ness.
        (-[WebFileButton visualFrame]): Update for flipped-ness.
        (-[WebFileButton setVisualFrame:]): Update for flipped-ness.
        (-[WebFileButton baseline]): Update for flipped-ness.

2003-09-19  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

        - fixed 3410980 - FileMaker: going forward with an empty forward list makes a frame come out blank sometimes

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge backOrForwardItemWithDistance:]): Factored out from goBackOrForward.
        (-[WebBridge canGoBackOrForward:]): Use the new method.
        (-[WebBridge goBackOrForward:]): Likewise.

2003-09-17  John Sullivan  <sullivan@apple.com>

        - WebKit part of fix for 3157018 -- Would like option to
        not print backgrounds
        Reviewed by Darin

        * WebView.subproj/WebPreferences.h:
        new accessor methods for new shouldPrintBackgrounds preference
        * WebView.subproj/WebPreferences.m:
        (+[WebPreferences initialize]):
        set initial value for WebKitShouldPrintBackgroundsPreferenceKey
        to NO
        (-[WebPreferences shouldPrintBackgrounds]):
        new method, read NSUserDefaults value
        (-[WebPreferences setShouldPrintBackgrounds:]):
        new method, write NSUserDefault value

        * WebView.subproj/WebViewPrivate.m:
        (-[WebView _updateWebCoreSettingsFromPreferences:]):
        tell WebCore about value of shouldPrintBackgrounds

        * English.lproj/StringsNotToBeLocalized.txt:
        Updated for these and other recent changes

2003-09-17  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        * Plugins.subproj/WebBasePluginPackage.m:
        (-[WebBasePluginPackage pathByResolvingSymlinksAndAliasesInPath:]): Pass the
        "no UI" flag, so we don't prompt the user when we're trying to load plug-ins.
        Also use OSStatus rather than OSErr so we don't miss error codes that just
        happen to have zeroes in the low 16 bits.

2003-09-17  Darin Adler  <darin@apple.com>

        Reviewed by John.

        * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton setFilename:]):
        Don't call -[NSWorkspace iconForFile:] on a path that does not start with a '/'.
        This can happen if JavaScript or the web page sets the path explicitly, and
        adding this check avoids an unpleasant warning on the console.

=== WebKit-106 ===

2003-09-16  Richard Williamson   <rjw@apple.com>

        Backed out fix to 3412062 to resolve 3424197.

        Many sites use a technique of posting forms the same URL to generate content server side.  The fix to 3412062 broke those sites.

        Reviewed by Darin.

        * WebView.subproj/WebFramePrivate.m:
        (-[WebFrame _transitionToCommitted:]):

=== WebKit-105 ===

=== WebKit-104 ===

2003-09-12  Richard Williamson   <rjw@apple.com>

        Fixed 3420097.  If redirects are cancelled during a pending load don't reset the quickRedirect flag.

        Reviewed by Darin.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge reportClientRedirectCancelled:]):
        * WebView.subproj/WebFramePrivate.h:
        * WebView.subproj/WebFramePrivate.m:
        (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:formState:]):
        (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
        (-[WebFrame _clientRedirectedTo:delay:fireDate:lockHistory:isJavaScriptFormAction:]):
        (-[WebFrame _clientRedirectCancelled:]):

=== WebKit-103 ===

2003-09-12  Richard Williamson   <rjw@apple.com>

        Fixed 3412062.  Don't allow pages with the same URL as the current URL to enter b/f or history.

        Reviewed by Maciej.

        * WebView.subproj/WebFramePrivate.m:
        (-[WebFrame _transitionToCommitted:]):

2003-09-11  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin.

        - fixed 3413463 - QuickTime plug-in content doesn't load in Safari (NPP_Write not called)
        * Plugins.subproj/npapi.h: Fix erroneous function pointer
        declarations that led to an int16/int32 mismatch.

2003-09-12  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3420112>: Reproducible Safari crash in in -[WebBaseNetscapePluginView sendEvent:]

        Reviewed by darin.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView sendEvent:]): temporarily retain self in case the plug-in view is released while sending an event. 
        (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:targetFrame:]): don't deliver the return value of the JS evaluation if stringByEvaluatingJavaScriptFromString caused the plug-in to stop.

=== WebKit-102 ===

2003-09-11  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Ken.

        - fixed 3417486 - after logging off from secure Etrade website, going back returns you to secure page

        * WebView.subproj/WebFramePrivate.m:
        (-[WebFrame _loadItem:withLoadType:]): Don't request stale data
        for https pages, as this could be a security risk.

2003-09-11  Richard Williamson   <rjw@apple.com>

        Fixed 3406671.  Added a private method for Mail to get selection
        rect.

        Reviewed by Darin Adler.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView updateTextBackgroundColor]):
        * WebView.subproj/WebHTMLViewPrivate.h:
        * WebView.subproj/WebHTMLViewPrivate.m:
        (-[WebHTMLView _handleMouseDragged:]):
        (-[WebHTMLView _pluginController]):
        (-[WebHTMLView _selectionRect]):

2003-09-10  Richard Williamson   <rjw@apple.com>

        Fixed 3231031.  Use the normal methodology for displaying each frame of a GIF.  That is,
        just call setNeedsDisplayInRect, rather than drawing directly.  Drawing directly violates
        layering/clipping.

        Reviewed by Dave Hyatt.

        * WebCoreSupport.subproj/WebImageRenderer.m:
        (-[WebImageRenderer nextFrame:]):

=== Safari-100 ===

2003-09-09  Richard Williamson   <rjw@apple.com>

        Fixed 3414988.  Don't store absolute path to home directory.
        Reviewed by Chris Blumenberg.

        Fixed 3414319.  Send correct WebView back as parameter to webViewShow:
        Review by Darin.

        Fixed 3095029.  Draw a frame's border in WebFrameView, instead of WebHTMLView, and correctly inset the frame's scrollview to account for the border.  Mostly written by Darin.
        Reviewed by Darin (and Richard).

        * Misc.subproj/WebIconDatabase.m:
        (-[WebIconDatabase _createFileDatabase]):
        Store @"~/Library/Icon" instead of absolute path, and always try to tilde expand stored path.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge setHasBorder:]):
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView drawRect:]):
        (-[WebFrameView setFrameSize:]):
        * WebView.subproj/WebFrameViewPrivate.h:
        * WebView.subproj/WebFrameViewPrivate.m:
        (-[WebFrameView _isMainFrame]):
        (-[WebFrameView _tile]):
        (-[WebFrameView _drawBorder]):
        (-[WebFrameView _shouldDrawBorder]):
        (-[WebFrameView _setHasBorder:]):
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView drawRect:]):
        Changes to correct draw border in WebFrameView instead of WebHTMLView.

        * WebView.subproj/WebViewPrivate.m:
        (-[WebView _openNewWindowWithRequest:]):
        Send correct parameter (returned from webView:createWebViewWithRequest:), rather than self, to webViewShow:.

2003-09-09  Chris Blumenberg  <cblu@apple.com>

        Fixed: <rdar://problem/3412380>: REGRESSION (85-98): www.minoltan.com is decoded incorrectly on Japanese system

        The default encoding that Safari uses is latin1 regardless of the current system encoding. This is how it's always been. The problem is that the UI is displaying shift JIS for the default text encoding instead of latin1. This is happening because WebKit 


is using "l