2002-11-13 Maciej Stachowiak Pass mime type instead of full response to content policy delegate method, in preparation for merging it with the file URL policy. * WebView.subproj/WebControllerPolicyDelegate.h: * WebView.subproj/WebDefaultPolicyDelegate.m: * WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient handle:didReceiveResponse:]): 2002-11-13 Darin Adler - fixed 3083982 -- Logging into AOL gives null view Turns out AOL was using a refresh header, which we were not supporting. * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _commitIfReady]): Call openURL: and pass headers in. * WebView.subproj/WebFramePrivate.m: (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:isFormSubmission:]): Pass nil for headers in this case, since we know it's just an anchor change. - other things * WebCoreSupport.subproj/WebBridge.h: Remove dataSourceChanged and dataSource methods. We try to keep the bridge methods down to actual bridging. * WebCoreSupport.subproj/WebBridge.m: Remove dataSourceChanged altogether, and move dataSource up in the file. * WebView.subproj/WebHTMLRepresentation.m: (-[WebHTMLRepresentation setDataSource:]): Keep the data source around, so we don't need to ask the bridge for it. (-[WebHTMLRepresentation documentSource]): Use it here. 2002-11-13 Trey Matteson Fixed 3100084 - REGRESSION: web page is not first responder after visiting web page * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _commitIfReady]): Make the rep before _transitionToCommitted. This is the way it used to be. (-[WebDataSource _makeRepresentation]): Don't make the docView here. * WebView.subproj/WebFramePrivate.m: (-[WebFrame _transitionToCommitted]): Make the docView here, after we save the scroll state but before notifying the delegate. 2002-11-13 Darin Adler - fixed 3100013 -- REGRESSION: Can't get results from i-Bench anymore * WebView.subproj/WebFramePrivate.m: (-[WebFrame _isLoadComplete]): Don't set the state to WebFrameStateComplete if it has already been set to WebFrameStateProvisional. If it has, that means we already began a new load; that one is not yet complete. 2002-11-13 John Sullivan - fixed 3099922 -- REGRESSION: Back button always pops up menu * Misc.subproj/WebNSViewExtras.h: * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_dragShouldBeginFromMouseDown:withExpiration:xHysteresis:yHysteresis:]: Fixed a copy/paste error I made yesterday -- this method was never noticing the mouse-up events because it was checking the event type against the wrong number. Also changed the hysteresis values from unsigneds to floats (unsigned was just wrong). 2002-11-13 Maciej Stachowiak - fixed 3050447 - Policy handlers have no way of telling client that the proposed navigation is a form post Now we pass form submissions through all the normal policy steps. * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge loadURL:reload:triggeringEvent:isFormSubmission:]): (-[WebBridge postWithURL:data:contentType:triggeringEvent:]): (-[WebBridge createChildFrameNamed:withURL:renderPart:allowsScrolling:marginWidth:marginHeight:]): * WebView.subproj/WebDataSourcePrivate.h: * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSourcePrivate dealloc]): (-[WebDataSource _setTriggeringAction:]): (-[WebDataSource _triggeringAction]): (-[WebDataSource _lastCheckedRequest]): (-[WebDataSource _setLastCheckedRequest:]): * WebView.subproj/WebFrame.m: (-[WebFrame setProvisionalDataSource:]): * WebView.subproj/WebFramePrivate.h: * WebView.subproj/WebFramePrivate.m: (-[WebFrame _shouldShowRequest:]): (-[WebFrame _loadRequest:triggeringAction:]): (-[WebFrame _actionInformationForNavigationType:event:]): (-[WebFrame _continueAfterNavigationPolicyForRequest:dataSource:]): (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:isFormSubmission:]): (-[WebFrame _loadURL:intoChild:]): (-[WebFrame _postWithURL:data:contentType:triggeringEvent:]): 2002-11-12 Maciej Stachowiak Combine click policy and URL policy into navigation policy. * WebView.subproj/WebControllerPolicyDelegate.h: * WebView.subproj/WebDefaultPolicyDelegate.h: * WebView.subproj/WebDefaultPolicyDelegate.m: (-[WebDefaultPolicyDelegate navigationPolicyForAction:andRequest:inFrame:]): * WebView.subproj/WebFramePrivate.h: * WebView.subproj/WebFramePrivate.m: (-[WebFrame _shouldShowRequest:]): (-[WebFrame _actionInformationForNavigationType:event:]): (-[WebFrame _continueAfterFileURLPolicyForRequest:]): (-[WebFrame _continueAfterNavigationPolicyForRequest:event:]): (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:]): 2002-11-12 Trey Matteson fixed 3096030 - Crash in -[WebBackForwardList goToEntry:] when playing with SnapBack and dictionary.com * WebView.subproj/WebFramePrivate.m: (-[WebFrame _isLoadComplete]): Set state=completed only after we tell the bridge to end the load. This allows client redirects to be processed before we think we're complete. (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:]): Only process client redirects as such if we are not already complete. This makes JS driven navigations after load-time work like the user would expect, as normal navigations. 2002-11-12 Maciej Stachowiak - fixed 3099487 - REGRESSION: dragging an image always puts it in the download directory * WebView.subproj/WebControllerPrivate.h: * WebView.subproj/WebControllerPrivate.m: (-[WebController _downloadURL:]): Call _downloadURL:toPath: with nil path. (-[WebController _downloadURL:toPath:]): New method that predetermines the path to download to (needed for DnD). * WebView.subproj/WebHTMLView.m: (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): Use _downloadURL:toPath: * WebView.subproj/WebImageView.m: (-[WebImageView namesOfPromisedFilesDroppedAtDestination:]): Use _downloadURL:toPath: * WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient handle:didReceiveResponse:]): Don't ask delegate for download path if we already have one. 2002-11-12 Richard Williamson Fixed likely cause of 3099047 (and others). Width buffer could underrun in some situations. * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:letterSpacing:wordSpacing:]): 2002-11-12 John Sullivan * Misc.subproj/WebNSViewExtras.h: * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_dragShouldBeginFromMouseDown:withExpiration:xHysteresis:yHysteresis:]): new method (-[NSView _web_dragShouldBeginFromMouseDown:withExpiration:]): now calls the new method, passing the default hysteresis values 2002-11-12 Richard Williamson Implemented letter-spacing and word-spacing CSS properties. * Misc.subproj/WebStringTruncator.m: (+[WebStringTruncator rightTruncateString:toWidth:withFont:]): (+[WebStringTruncator centerTruncateString:toWidth:withFont:]): * WebCoreSupport.subproj/WebTextRenderer.h: * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer widthForCharacters:length:]): (-[WebTextRenderer drawCharacters:stringLength:fromCharacterPosition:toCharacterPosition:atPoint:withPadding:withTextColor:backgroundColor:rightToLeft:letterSpacing:wordSpacing:]): (-[WebTextRenderer floatWidthForCharacters:stringLength:characterPosition:]): (-[WebTextRenderer floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:]): (-[WebTextRenderer floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:letterSpacing:wordSpacing:]): (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:letterSpacing:wordSpacing:]): 2002-11-12 Maciej Stachowiak Removed policy classes and instead use the policy enums directly, since we no longer hold the path in the enum. * Downloads.subproj/WebDownloadHandler.m: * WebKit.exp: * WebKit.pbproj/project.pbxproj: * WebView.subproj/WebControllerPolicyDelegate.h: * WebView.subproj/WebControllerPolicyDelegate.m: * WebView.subproj/WebControllerPolicyDelegatePrivate.h: Removed. * WebView.subproj/WebControllerPrivate.m: * WebView.subproj/WebDefaultPolicyDelegate.h: * WebView.subproj/WebDefaultPolicyDelegate.m: (+[WebDefaultPolicyDelegate defaultURLPolicyForRequest:]): (-[WebDefaultPolicyDelegate URLPolicyForRequest:inFrame:]): (-[WebDefaultPolicyDelegate fileURLPolicyForMIMEType:andRequest:inFrame:]): (-[WebDefaultPolicyDelegate unableToImplementPolicy:error:forURL:inFrame:]): (-[WebDefaultPolicyDelegate clickPolicyForAction:andRequest:inFrame:]): * WebView.subproj/WebFramePrivate.m: (-[WebFrame handleUnimplementablePolicy:errorCode:forURL:]): (-[WebFrame _shouldShowRequest:]): (-[WebFrame _continueAfterClickPolicyForEvent:request:]): * WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient handle:didReceiveResponse:]): 2002-11-12 Maciej Stachowiak Keep the triggering event around on the data source, so it can be used with redirects. * WebView.subproj/WebFramePrivate.m: (-[WebFrame _loadRequest:triggeringEvent:]): (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:]): (-[WebFrame _postWithURL:data:contentType:]): 2002-11-12 Darin Adler - improved the code that manages observing the window and superview * WebView.subproj/WebHTMLView.m: (-[WebHTMLView addSuperviewObservers]): Added. (-[WebHTMLView removeSuperviewObservers]): Added. (-[WebHTMLView addWindowObservers]): Added. (-[WebHTMLView removeWindowObservers]): Added. (-[WebHTMLView viewWillMoveToSuperview:]): Call removeSuperviewObservers. (-[WebHTMLView viewDidMoveToSuperview]): Call addSuperviewObservers. (-[WebHTMLView viewWillMoveToWindow:]): Call removeWindowObservers and removeSuperviewObservers. (-[WebHTMLView viewDidMoveToWindow]): Call addWindowObservers and addSuperviewObservers. 2002-11-11 Maciej Stachowiak Remove contentPolicy parameter from _downloadURL, and remove remaining traces of path from policy object. * WebView.subproj/WebControllerPolicyDelegate.h: * WebView.subproj/WebControllerPolicyDelegate.m: (-[WebPolicyPrivate dealloc]): (+[WebURLPolicy webPolicyWithURLAction:]): (+[WebFileURLPolicy webPolicyWithFileAction:]): (+[WebContentPolicy webPolicyWithContentAction:]): (+[WebClickPolicy webPolicyWithClickAction:]): * WebView.subproj/WebControllerPolicyDelegatePrivate.h: * WebView.subproj/WebControllerPrivate.h: * WebView.subproj/WebControllerPrivate.m: (-[WebController _downloadURL:]): * WebView.subproj/WebDefaultContextMenuDelegate.m: (-[WebDefaultContextMenuDelegate downloadURL:]): * WebView.subproj/WebDefaultPolicyDelegate.m: (-[WebDefaultPolicyDelegate clickPolicyForAction:andRequest:inFrame:]): * WebView.subproj/WebFramePrivate.m: (-[WebFrame _continueAfterClickPolicyForEvent:request:]): * WebView.subproj/WebHTMLView.m: (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): * WebView.subproj/WebImageView.m: (-[WebImageView namesOfPromisedFilesDroppedAtDestination:]): * WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient handle:didReceiveResponse:]): 2002-11-11 Darin Adler * Plugins.subproj/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage load]): Use fileSystemRepresentationWithPath, not cString, to turn a path into something to pass to FSPathMakeRef. * English.lproj/StringsNotToBeLocalized.txt: Update. 2002-11-11 Darin Adler - tighten up cursor handling a bit more * WebView.subproj/WebDynamicScrollBarsView.m: * WebView.subproj/WebHTMLView.m: (-[WebHTMLView addMouseMovedObserver]): Call _frameOrBoundsChanged so we emit a mouse moved event right away. (-[WebHTMLView viewWillMoveToSuperview:]): Remove the colon since I removed the parameter from _frameOrBoundsChanged. * WebView.subproj/WebHTMLViewPrivate.h: Declare _frameOrBoundsChanged. * WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView _frameOrBoundsChanged]): Remove parameter. 2002-11-11 Trey Matteson Fixed 3015884 - Reloading a page should remember the scroll position * WebView.subproj/WebFramePrivate.m: (-[WebFrame _transitionToCommitted]): Save scroll position on reload (-[WebFrame _isLoadComplete]): Restore position on reload 2002-11-11 Trey Matteson * History.subproj/WebBackForwardList.m: (-[WebBackForwardList addEntry:]): Yank code to avoid adding a duplicate entry, to catch the refresh case. That's dealt with in WebFramePrivate now. (-[WebBackForwardList description]): Enhanced to print more info. * History.subproj/WebHistoryItem.h: History items now hold an array of subitems to mirror the frame tree. One item in the tree is designated the target of the navigation. * History.subproj/WebHistoryItem.m: (-[WebHistoryItem dealloc]): Release new ivars. (-[WebHistoryItem isTargetItem]): (-[WebHistoryItem setIsTargetItem:]): New setter and setter. (-[WebHistoryItem _recurseToFindTargetItem]): (-[WebHistoryItem targetItem]): Search the tree to find the target item. (-[WebHistoryItem children]): (-[WebHistoryItem addChildItem:]): (-[WebHistoryItem childItemWithName:]): Maintain and search new child item list. (-[WebHistoryItem description]): Enhanced to print out the tree of items. (-[WebHistoryItem dictionaryRepresentation]): (-[WebHistoryItem initFromDictionaryRepresentation:]): Save and load the new state. * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge generateFrameName]): New call from KWQ, just forwards to Frame. (-[WebBridge createChildFrameNamed:withURL:renderPart:allowsScrolling:marginWidth:marginHeight:]): Call new frame method dedicated to this case. (-[WebBridge saveDocumentState:]): (-[WebBridge documentState]): Call frame methods to get the right item to save/restore to/from. * WebView.subproj/WebController.m: (-[WebController _goToItem:withLoadType:]): Stop any current loading before going to a new item. (-[WebController goBack]): (-[WebController goForward]): (-[WebController goBackOrForwardToItem:]): Name change of private method (for consistency) * WebView.subproj/WebDataSourcePrivate.h: ProvisionalItem and PreviousItem are moved back up to WebFrame, where we know more about the state transitions that happen during loading. * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSourcePrivate dealloc]): Don't release removed ivars. (-[WebDataSource _commitIfReady]): Make the view representations -after- the transition to committed. This allows us to save away the scroll location successfully, since making the view was resetting it. * WebView.subproj/WebFrame.h: * WebView.subproj/WebFrame.m: (-[WebFrame setProvisionalDataSource:]): Saving the scroll location has moved elsewhere to handle frames. (-[WebFrame stopLoading]): Skip all the work if we're already state=complete. * WebView.subproj/WebFramePrivate.h: The frame now holds a ref to the current, previous and provisional back-forward items. * WebView.subproj/WebFramePrivate.m: (-[WebFramePrivate dealloc]): Release new state. (-[WebFramePrivate setProvisionalItem:]): (-[WebFramePrivate setPreviousItem:]): (-[WebFramePrivate setCurrentItem:]): New setters (1 line getters were missed by script) (-[WebFrame _addBackForwardItemClippedAtTarget:]): Adds a BF item to the top of the BF list. (-[WebFrame _createItem]): Create a single BF item. (-[WebFrame _createItemTreeWithTargetFrame:clippedAtTarget:]): Create a tree of BF items, which mirror the frame tree. (-[WebFrame _immediateChildFrameNamed:]): New frame search utility (doesn't recurse) (-[WebFrame _detachFromParent]): Save the scroll position when detaching a frame. (-[WebFrame _transitionToCommitted]): Maintain new item ivars. Save scroll position when appropriate. Hook up items for child frames to their parent, as they are created. (-[WebFrame _setState:]): Clear previousItem whenever we reach committed. (-[WebFrame _isLoadComplete]): Clear previousItem if we are committed. (-[WebFrame _childFramesMatchItem:]): Does the frame's frame tree match the one held by the item? (-[WebFrame _loadItem:fromItem:withLoadType:]): Only do simple anchor navigation if the frame has no children (fixes oddball corner case with a frame reloading itself). Set provisional item. (-[WebFrame _recursiveGoToItem:fromItem:withLoadType:]): Heart of returning to an item that had frames. We either find that the existing content is good, or initiate a load. (-[WebFrame _goToItem:withLoadType:]): Adjust the BF list cursor, and recurse to do the work. (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:]): Only do anchor-style nav if the destination URL has a fragment. Save scroll position. (-[WebFrame _loadURL:intoChild:]): If returning to an item with frames, possibly replace the new content with the stuff that was there at the time, substituting the URL. (-[WebFrame _saveScrollPositionToItem:]): Don't croak on nil item or view. (-[WebFrame _restoreScrollPosition]): Do croak (ASSERT) on nil item. (-[WebFrame _scrollToTop]): Nit cleanup. (-[WebFrame _addFramePathToString:]): Add a component for our frame to the frame name we're generating. (-[WebFrame _generateFrameName]): Generate a frame name that is repeatable. (-[WebFrame _itemForSavingDocState]): Returns correct item to use for formstate save. (-[WebFrame _itemForRestoringDocState]): Returns correct item to use for formstate restore 2002-11-11 Maciej Stachowiak Store path and the fact that we're downloading in the data source, instead of storing the content policy. * Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler cleanUpAfterFailure]): (-[WebDownloadHandler createFileIfNecessary]): (-[WebDownloadHandler finishedLoading]): * WebView.subproj/WebControllerPrivate.m: (-[WebController _downloadURL:withContentPolicy:]): * WebView.subproj/WebDataSource.h: * WebView.subproj/WebDataSource.m: (+[WebDataSource registerRepresentationClass:forMIMEType:]): (-[WebDataSource isDownloading]): (-[WebDataSource downloadPath]): * WebView.subproj/WebDataSourcePrivate.h: * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSourcePrivate dealloc]): (-[WebDataSource _commitIfReady]): (-[WebDataSource _setIsDownloading:]): (-[WebDataSource _setDownloadPath:]): * WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient receivedError:]): (-[WebMainResourceClient handle:didReceiveResponse:]): (-[WebMainResourceClient handleDidFinishLoading:]): 2002-11-11 Maciej Stachowiak Don't ask for the content policy any more if the previous policies said to save - in effect this means to ask only if the previous policies said to use the content policy. Also, remove now-useless previous content policy parameter from content policy delegate. * WebView.subproj/WebControllerPolicyDelegate.h: * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _setContentPolicy:]): Retain new policy before releasing the old one. * WebView.subproj/WebDefaultPolicyDelegate.m: * WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient handle:didReceiveResponse:]): Don't ask for content policy if the delegate already decided to save. 2002-11-11 Maciej Stachowiak Added new policy delegate callback to get the filename - this won't be up to the content policy any more. * WebView.subproj/WebControllerPolicyDelegate.h: * WebView.subproj/WebDefaultPolicyDelegate.m: (-[WebDefaultPolicyDelegate saveFilenameForResponse:andRequest:]): * WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient handle:didReceiveResponse:]): 2002-11-11 Darin Adler - made some improvements to cursor setting for greater speed and correctness * WebView.subproj/WebDynamicScrollBarsView.m: (-[WebDynamicScrollBarsView setCursor:]): Just use setDocumentCursor: instead of our own logic. This allows us to remove code and may fix some bugs or anomalies as well. (-[WebDynamicScrollBarsView dealloc]): Release the cursor. I think we were leaking before. * WebView.subproj/WebHTMLView.m: (-[WebHTMLView viewWillMoveToSuperview:]): Use _frameOrBoundsChanged: method now, which has been moved into the private file. (-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]): Don't bother finding topmost WebHTMLView to call _updateMouseoverWithEvent: on; now it works fine no matter which level it's called at. * WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView _frameOrBoundsChanged:]): Moved the code here that was formerly in the _setNeedsLayoutIfSizeChanged method, also added code that does _updateMouseoverWithEvent: so that we get properly updated cursor when we scroll. (-[WebHTMLView _updateMouseoverWithEvent:]): Remove unneeded assert. This method works equally well no matter which WebHTMLView calls it; everything is done at the window and controller level. * WebView.subproj/WebControllerPrivate.h: Added lastElementWasNotNil field and _mouseDidMoveOverElement:modifierFlags: method. * WebView.subproj/WebControllerPrivate.m: (-[WebController _mouseDidMoveOverElement:modifierFlags:]): Call through to the delegate, but don't do multiple calls if they are all nil. * WebCoreSupport.subproj/WebBridge.m: Remove unused modifierTrackingEnabled method. * WebView.subproj/WebHTMLViewPrivate.h: Remove unused _setModifierTrackingEnabled and _modifierTrackingEnabled methods. 2002-11-10 Darin Adler * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes. 2002-11-10 Chris Blumenberg Fixed: 3021681 - downloaded files' creation and modification dates are not set * Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler createFileIfNecessary]): call [response creationDate] and [response lastModifiedDate] when setting file attributes. * Plugins.subproj/WebBaseNetscapePluginStream.m: (-[WebBaseNetscapePluginStream setResponse:]): call [response lastModifiedDate] when giving content to plug-ins. 2002-11-10 Darin Adler * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes. 2002-11-09 Darin Adler - fixed 3095156 -- reproducible leak of WebDataSource due to bad URL in stylesheet * WebCoreSupport.subproj/WebSubresourceClient.m: (+[WebSubresourceClient startLoadingResource:withURL:referrer:forDataSource:]): Check for errors by looking at the return value from loadWithRequest: rather than making a separate call to canInitWithRequest. * WebView.subproj/WebBaseResourceHandleDelegate.h: Add boolean success/failure result loadWithRequest:. * WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate loadWithRequest:]): Return NO if we fail to make a handle. * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _startLoading]): Check result of loadWithRequest: and complain if it's NO. * WebView.subproj/WebMainResourceClient.m: Tweak whitespace. 2002-11-09 Chris Blumenberg Fixed: 2991610 - Alexander should support services, including Speech * WebView.subproj/WebHTMLView.m: (+[WebHTMLView initialize]): register for service types (-[WebHTMLView dealloc]): moved to top of file (-[WebHTMLView copy:]): call _writeSelectionToPasteboard (-[WebHTMLView writeSelectionToPasteboard:types:]): call _writeSelectionToPasteboard (-[WebHTMLView validRequestorForSendType:returnType:]): return self for our pboard types * WebView.subproj/WebHTMLViewPrivate.h: * WebView.subproj/WebHTMLViewPrivate.m: (+[WebHTMLView _pasteboardTypes]): new, returns the array of supported pboard types (-[WebHTMLView _writeSelectionToPasteboard:]): new, adds data to pboard * WebView.subproj/WebImageView.m: (-[WebImageView initialize]): register for service types (-[WebImageView validateUserInterfaceItem:]): respond to copy (-[WebImageView validRequestorForSendType:returnType:]): return self for images (-[WebImageView writeImageToPasteboard:]): writes image data to pboard (-[WebImageView copy:]): calls writeImageToPasteboard (-[WebImageView writeSelectionToPasteboard:types:]): calls writeImageToPasteboard 2002-11-08 Darin Adler * History.subproj/WebHistoryItem.m: (-[WebHistoryItem setTitle:]): Use display title if it matches, so we don't end up with two identical strings, as when reading from the property list. (-[WebHistoryItem setDisplayTitle:]): The same thing, the other way round. 2002-11-08 Darin Adler - fixed 3095078 -- image loop counts still not handled right * WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer blockHasGIFExtensionSignature:length:]): Look for the tag "NETSCAPE2.0", not "NETSCAPE1.0". (-[WebImageRenderer nextFrame:]): Remove special handling for last frames with a duration of 0. That was just a misunderstanding. 2002-11-08 Darin Adler * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _setRequest:]): Slightly better fix. Essentially just take out the assert. 2002-11-08 Darin Adler - fixed an assert I am seeing a lot * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _setRequest:]): Oops. 2002-11-08 Richard Williamson Solved missing glyph problem, but it's very slow, so it's disabled for now. I'll turn back on after extending the character to glyph map in each renderer to include substituted font. * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer substituteFontForString:]): (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:]): 2002-11-08 Darin Adler - separate WebBaseNetscapePluginStream more cleanly from its subclasses by making most fields private * Plugins.subproj/WebBaseNetscapePluginStream.m: (-[WebBaseNetscapePluginStream setResponse:]): * Plugins.subproj/WebNetscapePluginStream.h: * Plugins.subproj/WebNetscapePluginStream.m: (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:]): (-[WebNetscapePluginStream dealloc]): (-[WebNetscapePluginStream start]): (-[WebNetscapePluginStream handle:didReceiveData:]): (-[WebNetscapePluginStream handle:didFailLoadingWithError:]): * WebCoreSupport.subproj/WebSubresourceClient.m: (-[WebSubresourceClient handle:didReceiveResponse:]): (-[WebSubresourceClient handle:didReceiveData:]): (-[WebSubresourceClient handleDidFinishLoading:]): (-[WebSubresourceClient handle:didFailLoadingWithError:]): (-[WebSubresourceClient cancel]): * WebView.subproj/WebBaseResourceHandleDelegate.h: * WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate handle:willSendRequest:]): (-[WebBaseResourceHandleDelegate handle:didFailLoadingWithError:]): (-[WebBaseResourceHandleDelegate _cancelWithError:]): (-[WebBaseResourceHandleDelegate cancel]): (-[WebBaseResourceHandleDelegate cancelQuietly]): (-[WebBaseResourceHandleDelegate cancelledError]): (-[WebBaseResourceHandleDelegate notifyDelegatesOfInterruptionByPolicyChange]): * WebView.subproj/WebMainResourceClient.h: * WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient cancel]): (-[WebMainResourceClient handle:willSendRequest:]): (-[WebMainResourceClient notifyDelegatesOfInterruptionByPolicyChange]): (-[WebMainResourceClient handle:didReceiveResponse:]): (-[WebMainResourceClient handle:didReceiveData:]): (-[WebMainResourceClient handleDidFinishLoading:]): 2002-11-08 Darin Adler - changed persistent dictionaries to use NSString instead of NSURL because of impact on memory footprint Also changed WebIconDatabase code to verify what it reads from disk, and ignore it if it can't verify the format. * Misc.subproj/WebIconDatabase.m: (-[WebIconDatabase iconForSiteURL:withSize:cache:]): (-[WebIconDatabase retainIconForSiteURL:]): (-[WebIconDatabase releaseIconForSiteURL:]): (-[WebIconDatabase _iconDictionariesAreGood]): (-[WebIconDatabase _loadIconDictionaries]): (-[WebIconDatabase _updateFileDatabase]): (-[WebIconDatabase _hasIconForSiteURL:]): (-[WebIconDatabase _iconsForIconURLString:]): (-[WebIconDatabase _setIcon:forIconURL:]): (-[WebIconDatabase _setIconURL:forSiteURL:]): (-[WebIconDatabase _setBuiltInIconAtPath:forHost:]): (-[WebIconDatabase _retainIconForIconURLString:]): (-[WebIconDatabase _releaseIconForIconURLString:]): (-[WebIconDatabase _retainFutureIconForSiteURL:]): (-[WebIconDatabase _releaseFutureIconForSiteURL:]): (-[WebIconDatabase _retainOriginalIconsOnDisk]): (-[WebIconDatabase _releaseOriginalIconsOnDisk]): (-[NSEnumerator _web_isAllStrings]): * Panels.subproj/WebStandardPanels.m: (-[WebStandardPanels didStartLoadingURL:inWindow:]): (-[WebStandardPanels didStopLoadingURL:inWindow:]): (-[WebStandardPanels _didStartLoadingURL:inController:]): (-[WebStandardPanels _didStopLoadingURL:inController:]): (-[WebStandardPanels frontmostWindowLoadingURL:]): 2002-11-08 Darin Adler - fixed crash on boot that Don was seeing * History.subproj/WebHistoryItem.m: (-[WebHistoryItem URL]): Make this work when _URLString is nil. (-[WebHistoryItem initFromDictionaryRepresentation:]): Make this work for nil URL. - my own private war on the cString method * Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler initWithDataSource:]): Use %@ in LOG to avoid cString. (-[WebDownloadHandler finishedLoading]): Ditto. * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _commitIfReady]): Ditto. * WebView.subproj/WebFramePrivate.m: (-[WebFrame _timedLayout:]): Ditto. (-[WebFrame _setState:]): More of the same. (-[WebFrame _isLoadComplete]): Ditto. 2002-11-08 Ken Kocienda Fix deployment build breaker: a variable was used only in a LOG statement, causing the variable to become usused when building with the Deployment build style. * Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler finishedLoading]) 2002-11-07 Darin Adler * History.subproj/WebHistoryItem.h: Replace _URL with _URLString. * History.subproj/WebHistoryItem.m: (-[WebHistoryItem _retainIconInDatabase:]): Get the URL with [self URL]. (-[WebHistoryItem initWithURL:target:parent:title:]): Set up _URLString. (-[WebHistoryItem dealloc]): Release _URLString. (-[WebHistoryItem URL]): Make a URL from _URLString. (-[WebHistoryItem icon]): Use [self URL] instead of _URL. (-[WebHistoryItem setURL:]): Store a URL string. (-[WebHistoryItem hash]): Use the URL string's hash. (-[WebHistoryItem isEqual:]): Compare the URL strings. (-[WebHistoryItem description]): Use _URLString. (-[WebHistoryItem dictionaryRepresentation]): Use _URLString. (-[WebHistoryItem initFromDictionaryRepresentation:]): Call through to the other init functions so we have only one designated initializer. Leave the date as nil if there's no date in the dictionary instead of setting the date to 0. 2002-11-07 Maciej Stachowiak Removed SaveAndOpenExternally policy. * Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler finishedLoading]): * WebView.subproj/WebControllerPolicyDelegate.h: * WebView.subproj/WebFramePrivate.m: (-[WebFrame _continueAfterClickPolicyForEvent:request:]): * WebView.subproj/WebMainResourceClient.m: (-[WebMainResourceClient receivedError:]): (-[WebMainResourceClient handle:didReceiveResponse:]): (-[WebMainResourceClient handleDidFinishLoading:]): 2002-11-07 Chris Blumenberg * WebKit.pbproj/project.pbxproj: 2002-11-07 Richard Williamson * WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer stopAnimation]): 2002-11-07 Maciej Stachowiak - fixed 3095628 - REGRESSION: exception when clicking on link to load content into iframe * WebView.subproj/WebFramePrivate.m: (-[WebFrame _actionInformationForNavigationType:event:]): Get the element info from the HTML view where the click originally happened, not the current document view. Add some asserts to make sure this is working. 2002-11-07 Richard Williamson Tweaks * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer convertCharacters:length:toGlyphs:skipControlCharacters:]): (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:]): === Alexander-31 === 2002-11-07 Maciej Stachowiak - fixed 3094778 - REGRESSION: Assert on logout from schwab.com (probably fixed it anyway - I'm flying blind on this one) * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge createWindowWithURL:frameName:]): Use a nil request if the URL was nil, instead of making a request that contains a nil URL. 2002-11-07 Maciej Stachowiak Changed things so that creating a window takes a request rather than a URL and referrer. * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge createWindowWithURL:frameName:]): * WebView.subproj/WebControllerPrivate.h: * WebView.subproj/WebControllerPrivate.m: (-[WebController _openNewWindowWithRequest:behind:]): * WebView.subproj/WebDataSourcePrivate.h: * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSourcePrivate dealloc]): (-[WebDataSource _setTriggeringEvent:]): (-[WebDataSource _triggeringEvent]): * WebView.subproj/WebDefaultContextMenuDelegate.m: (-[WebDefaultContextMenuDelegate openNewWindowWithURL:]): * WebView.subproj/WebFrame.m: (-[WebFrame setProvisionalDataSource:]): (-[WebFrame findOrCreateFramedNamed:]): * WebView.subproj/WebFramePrivate.m: (-[WebFrame _continueAfterClickPolicyForEvent:request:]): * WebView.subproj/WebWindowOperationsDelegate.h: 2002-11-06 Darin Adler - fixed problem where files small enough to fit entirely in the buffer (8K or less) would not be decoded * Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler decodeData:]): Added. Moved most of the code from receivedData into here. (-[WebDownloadHandler receivedData:]): Changed to call decodeData. (-[WebDownloadHandler finishedLoading]): Call decodeData on any remaining bytes rather than writing them straight out to the data fork. 2002-11-06 Richard Williamson More work on rendering scripts. Now most complex scripts render correctly. Working new features include: bidi, diacriticals, cursive forms, and arabic ligatures. Selection of text rendered in these scripts, is however, not working. Also, line height is incorrect when renderering combined below glyphs. ajami is, sadly, horrendously broken. * Misc.subproj/WebUnicode.m: (glyphVariantLogical): (shapedString): * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer drawCharacters:stringLength:fromCharacterPosition:toCharacterPosition:atPoint:withPadding:withTextColor:backgroundColor:rightToLeft:]): (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:]): 2002-11-06 John Sullivan * Bookmarks.subproj/WebBookmark.m: (+[WebBookmark bookmarkOfType:]): made this handle WebBookmarkTypeProxy 2002-11-06 Darin Adler - fixed bug that affected BinHex-encoded files with no resource fork * Downloads.subproj/WebBinHexDecoder.m: (-[WebBinHexDecoder decodeData:dataForkData:resourceForkData:]): Don't decode the resource fork unless done with the data fork. * Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler receivedData:]): Set the forks to nil before calling through. 2002-11-06 Darin Adler * Downloads.subproj/WebMacBinaryDecoder.m: (+[WebMacBinaryDecoder canDecodeHeaderData:]): Fix == 129 check that was supposed to be <= 129. * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes. 2002-11-06 Darin Adler * Downloads.subproj/WebBinHexDecoder.m: (-[WebBinHexDecoder decodeIntoBuffer:size:]): Fix an off-by-one error handling repeat counts. * WebKit.pbproj/project.pbxproj: Fix group name I accidentally mangled. 2002-11-06 Darin Adler - added a BinHex decoder and did a little work on the MacBinary decoder I'm not supposed to be working on this, but I didn't feel like doing "real" work. * Downloads.subproj/WebBinHexDecoder.h: Added. * Downloads.subproj/WebBinHexDecoder.m: Added. * WebKit.pbproj/project.pbxproj: Added WebBinHexDecoder. * Downloads.subproj/WebDownloadDecoder.h: Added WEB_DOWNLOAD_DECODER_MINIMUM_HEADER_LENGTH. * Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler closeFile]): Check to be sure we don't close the same file twice. * Downloads.subproj/WebMacBinaryDecoder.h: Added _scriptCode. * Downloads.subproj/WebMacBinaryDecoder.m: (+[WebMacBinaryDecoder canDecodeHeaderData:]): Added check of MacBinary version field. (-[WebMacBinaryDecoder decodeData:dataForkData:resourceForkData:]): Added MacBinary III part that gets the script code. (-[WebMacBinaryDecoder filename]): Use the script code. 2002-11-06 Maciej Stachowiak Took URL field out of click policy - open in new window policy will always open the request URL. * WebView.subproj/WebControllerPolicyDelegate.h: * WebView.subproj/WebControllerPolicyDelegate.m: (-[WebPolicyPrivate dealloc]): (+[WebURLPolicy webPolicyWithURLAction:]): (+[WebFileURLPolicy webPolicyWithFileAction:]): (+[WebContentPolicy webPolicyWithContentAction:andPath:]): * WebView.subproj/WebDefaultPolicyDelegate.m: (-[WebDefaultPolicyDelegate clickPolicyForAction:andRequest:inFrame:]): * WebView.subproj/WebFramePrivate.m: (-[WebFrame _continueAfterClickPolicyForEvent:request:]): 2002-11-06 Chris Blumenberg Support MacBinary I by checking that bytes 99-127 are 0. Also check byte 82 for all formats. * Downloads.subproj/WebMacBinaryDecoder.m: (+[WebMacBinaryDecoder canDecodeHeaderData:]): 2002-11-06 Ken Kocienda Call new WebHTTPResourceRequest method to set the amount of time to cache a 404 response when trying to fetch a favicon. This change helps to fix this bug: Radar 3004422 (Loader should cache misses) * Misc.subproj/WebIconLoader.m: (-[WebIconLoader startLoading]) 2002-11-05 Maciej Stachowiak Reworked clickPolicy arguments to be closer to proposed version. * WebKit.exp: * WebView.subproj/WebControllerPolicyDelegate.h: * WebView.subproj/WebControllerPolicyDelegate.m: * WebView.subproj/WebDefaultPolicyDelegate.m: (-[WebDefaultPolicyDelegate clickPolicyForAction:andRequest:inFrame:]): * WebView.subproj/WebFramePrivate.h: * WebView.subproj/WebFramePrivate.m: (-[WebFrame _actionInformationForNavigationType:event:]): (-[WebFrame _continueAfterClickPolicyForEvent:request:]): 2002-11-05 Darin Adler * WebCoreSupport.subproj/WebTextRenderer.m: Made a slightly simpler and faster version of the new "lose precision" CEIL_TO_INT macro. 2002-11-05 Richard Williamson Fixed a couple of issues that Dave highlighted w/ his whitespace fixes. CG sometimes introduces very small 'error' in metrics, specifically we saw character widths of 20.0000019 that should have been 20. As a work-around we loose precision beyond the 1000th place. Also, always ceil spaces. * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:]): 2002-11-05 Darin Adler - fixed 3084704 -- crash in HTMLTokenizer on page with JavaScript HTMLDocument::Close inside a