WebCore:
[WebKit-https.git] / WebKit / ChangeLog
1 2004-03-16  Darin Adler  <darin@apple.com>
2
3         Reviewed by Ken.
4
5         - update for new DOM namespacing and header organization
6
7         * DOM.subproj/DOM.h: Changed to include the other DOM headers.
8         * DOM.subproj/DOMCSS.h: Added.
9         * DOM.subproj/DOMCore.h: Added.
10         * DOM.subproj/DOMEvents.h: Added.
11         * DOM.subproj/DOMHTML.h: Added.
12         * DOM.subproj/DOMRange.h: Added.
13         * DOM.subproj/DOMStylesheets.h: Added.
14         * DOM.subproj/DOMTraversal.h: Added.
15         * DOM.subproj/DOMViews.h: Added.        
16         * WebKit.pbproj/project.pbxproj: Added new files.
17
18         * WebView.subproj/WebDefaultEditingDelegate.m:
19         (-[WebDefaultEditingDelegate webView:shouldApplyStyle:toElementsInDOMRange:]):
20         (-[WebDefaultEditingDelegate webView:shouldChangeTypingStyle:toStyle:]):
21         Change class names from CSS to DOMCSS.
22         * WebView.subproj/WebViewPrivate.h: Ditto.
23
24         * copy-webcore-files-to-webkit: Add new files.
25
26 2004-03-15  Ken Kocienda  <kocienda@apple.com>
27
28         Reviewed by John
29
30         Fix for this bug:
31         
32         <rdar://problem/3588717>: REGRESSION (125-131u): Tabbing to links and tabbing in bookmarks view no longer works
33
34         WebView can't lay claim to -keyDown: just for editing events, as
35         this gets in the way of tab processing. The solution is to give
36         WebView a private method for processing editing key events fed to
37         it from over the bridge, and leave -keyDown: unimplemented. 
38
39         * WebCoreSupport.subproj/WebBridge.m:
40         (-[WebBridge editingKeyDown:]): Changed from -keyDown: to keep 
41         terminology consistent with renamed WebView -editingKeyDown: method.
42         * WebView.subproj/WebView.m:
43         (-[WebView editingKeyDown:]): Give WebView a method to handle
44         editing key events in a way that does not interfere with other key down
45         events it processes.
46         * WebView.subproj/WebViewPrivate.h: Declare -editingKeyDown: method.
47
48 === Safari-132 ===
49
50 2004-03-15  Darin Adler  <darin@apple.com>
51
52         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
53
54 2004-03-12  Darin Adler  <darin@apple.com>
55
56         Reviewed by Ken.
57
58         - fixed <rdar://problem/3433887>: copied &nbsp; characters remain non-breaking spaces; other browsers give normal spaces
59
60         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _writeSelectionToPasteboard:]):
61         Convert non-breaking spaces to the normal kind in the plain text part of the pasteboard.
62
63 2004-03-12  Ken Kocienda  <kocienda@apple.com>
64
65         Reviewed by Chris
66
67         * WebView.subproj/WebView.m:
68         (-[WebView _alterCurrentSelection:direction:granularity:]): Changed name from
69         _alterSelection:direction:granularity: to give a little extra clarity. Also, the
70         body calls through to renamed rangeByAlteringCurrentSelection:direction:granularity:
71         in WebCore.
72         (-[WebView moveRight:]): Now calls renamed _alterCurrentSelection:direction:granularity:.
73         (-[WebView moveRightAndModifySelection:]): Ditto.
74         (-[WebView moveLeft:]): Ditto.
75         (-[WebView moveLeftAndModifySelection:]): Ditto.
76
77 2004-03-11  Richard Williamson   <rjw@apple.com>
78
79         Workaround for 3585644.  Force the window number of the
80         mouse moved event to be correct.
81
82         Reviewed by Chris.
83
84         * Carbon.subproj/CarbonWindowFrame.m:
85         * Carbon.subproj/HIWebView.m:
86         (MouseMoved):
87         (MouseDragged):
88
89 2004-03-11  Ken Kocienda  <kocienda@apple.com>
90
91         Reviewed by Dave
92
93         Various changes to begin implementing the draft API proposal. 
94
95         * DOM.subproj/DOM.h: Checking in generated file.
96         * WebCoreSupport.subproj/WebBridge.m:
97         (-[WebBridge registerCommandForUndo:]): Now takes an id, a wrapped
98         WebCore EditCommand implementation object.
99         (-[WebBridge registerCommandForRedo:]): Ditto.
100         (-[WebBridge clearUndoRedoOperations]): Use the web view's undo manager.
101         (-[WebBridge keyDown:]): Pass keyDown events through to the web view.
102         * WebKit.pbproj/project.pbxproj:
103         * WebView.subproj/WebDefaultEditingDelegate.h: Added.
104         * WebView.subproj/WebDefaultEditingDelegate.m: Added. Stubbed in default
105         implementations declared in the draft editing API.
106         * WebView.subproj/WebFrame.m:
107         (-[WebFramePrivate dealloc]): WebFrame no longer has an undo manager.
108         * WebView.subproj/WebFramePrivate.h: Ditto.
109         * WebView.subproj/WebHTMLView.m:
110         (-[WebHTMLView _selectedWebArchive:]): selectedRange method 
111         is now selectedDOMRange.
112         * WebView.subproj/WebView.m:
113         (-[WebViewPrivate dealloc]): Dealloc new editingDelegateForwarder.
114         (-[WebView _editingDelegateForwarder]): Added. 
115         (-[WebView keyDown:]): Added. 
116         (-[WebView _bridgeForCurrentSelection]): Added. 
117         (-[WebView setSelectedDOMRange:]): Added. 
118         (-[WebView selectedDOMRange]): Added. 
119         (-[WebView insertText:]): Added. 
120         (-[WebView _alterSelection:direction:granularity:]): Added. 
121         (-[WebView selectWord:]): Added. 
122         (-[WebView moveRight:]): Added. 
123         (-[WebView moveRightAndModifySelection:]): Added. 
124         (-[WebView moveLeft:]): Added. 
125         (-[WebView moveLeftAndModifySelection:]): Added. 
126         (-[WebView deleteBackward:]): Added. 
127         (-[WebView insertNewline:]): Added. 
128         (-[WebView insertParagraphSeparator:]): Added. 
129         (-[WebView setEditingDelegate:]): Added. 
130         (-[WebView editingDelegate]): Added. 
131         (-[WebView undoManager]): Added. 
132         (-[WebView insertText:replacingDOMRange:]): Added. 
133         * WebView.subproj/WebViewPrivate.h: Added a collection of editing API 
134         declarations that will be public some day, but are still under review.
135
136 2004-03-11  John Sullivan  <sullivan@apple.com>
137
138         - fixed <rdar://problem/3585056>: Assertion failure if error page is loaded from 
139         webView:unableToImplementPolicyWithError:
140         - also added HeaderDoc comments to could-be-API-soon methods and fixed a
141         conceptual problem with said methods
142
143         Reviewed by Darin.
144
145         * WebView.subproj/WebDataSourcePrivate.h:
146         added HeaderDoc comment for -unreachableURL
147         
148         * WebView.subproj/WebFramePrivate.h:
149         added HeaderDoc comment for -loadAlternateHTMLString:baseURL:forUnreachableURL:;
150         also added boolean delegateIsHandlingUnimplementablePolicy ivar to WebFramePrivate
151         * WebView.subproj/WebFrame.m:
152         (-[WebFrame _shouldReloadToHandleUnreachableURLFromRequest:]):
153         treat delegateIsHandlingUnimplementablePolicy like delegateIsDecidingNavigationPolicy.
154         Safari serves up error pages during the latter but clients are equally or more likely
155         to do so during the former.
156         (-[WebFrame _handleUnimplementablePolicyWithErrorCode:forURL:]):
157         set delegateIsHandlingUnimplementablePolicy during delegate callback
158         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
159         tweaked assertion so it doesn't erroneously fire for clients that call
160         loadAlternateHTML:baseURL:forUnreachableURL: while processing
161         webView:unableToImplementPolicyWithError:
162
163 2004-03-11  Chris Blumenberg  <cblu@apple.com>
164
165         Made WebArchive a class instead of a data object. This allows clients to easily get the main resource and subresources from a WebArchive.
166
167         Reviewed by kocienda.
168
169         * WebKit.exp:
170         * WebView.subproj/WebDocumentPrivate.h:
171         * WebView.subproj/WebFrame.m:
172         (-[WebFrame loadWebArchive:]):
173         * WebView.subproj/WebFramePrivate.h:
174         * WebView.subproj/WebHTMLRepresentation.m:
175         (-[WebHTMLRepresentation loadWebArchive]):
176         (-[WebHTMLRepresentation _webArchiveWithMarkupString:subresourceURLStrings:]):
177         (-[WebHTMLRepresentation webArchiveFromNode:]):
178         (-[WebHTMLRepresentation webArchiveFromRange:]):
179         * WebView.subproj/WebHTMLRepresentationPrivate.h:
180         * WebView.subproj/WebHTMLView.m:
181         (-[WebHTMLView _selectedWebArchive:]):
182         (-[WebHTMLView _writeSelectionToPasteboard:]):
183         (-[WebHTMLView _pasteMarkupFromPasteboard:]):
184         * WebView.subproj/WebResource.h:
185         * WebView.subproj/WebResource.m:
186         (-[WebArchivePrivate dealloc]):
187         (-[WebResource _response]):
188         (-[WebArchive init]):
189         (-[WebArchive initWithMainResource:subresources:]):
190         (-[WebArchive initWithData:]):
191         (-[WebArchive dealloc]):
192         (-[WebArchive mainResource]):
193         (-[WebArchive subresources]):
194         (-[WebArchive dataRepresentation]):
195         * WebView.subproj/WebResourcePrivate.h:
196
197 2004-03-10  Chris Blumenberg  <cblu@apple.com>
198
199         Made dragging of web archives work.
200
201         Reviewed by rjw.
202
203         * English.lproj/StringsNotToBeLocalized.txt: updated
204         * WebView.subproj/WebMainResourceClient.m:
205         (-[WebMainResourceClient connection:didReceiveResponse:]): added a FIXME about working around old Foundations that don't know about web archive files
206         * WebView.subproj/WebView.m:
207         (+[WebView canShowFile:]): tweak
208         (+[WebView suggestedFileExtensionForMIMEType:]): tweak
209         (+[WebView _MIMETypeForFile:]): handle web archive files since Foundation may be too old to know about them
210
211 2004-03-09  Chris Blumenberg  <cblu@apple.com>
212
213         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.
214
215         Reviewed by rjw.
216
217         * WebView.subproj/WebResource.m:
218         (+[WebResource _parseWebArchive:mainResource:subresources:]): add timing code
219         (+[WebResource _webArchiveWithMainResource:subresources:]): add timing code, use NSPropertyListBinaryFormat_v1_0
220
221 2004-03-09  Chris Blumenberg  <cblu@apple.com>
222
223         Fixed: <rdar://problem/3577508>: API: web archive related API's
224         Implemented WebKit side of: <rdar://problem/3144033>: ability to save web sites (images and all)
225
226         Reviewed by rjw.
227
228         * WebCoreSupport.subproj/WebBridge.h:
229         * WebCoreSupport.subproj/WebBridge.m:
230         (-[WebBridge receivedData:textEncodingName:]): renamed to take a textEncodingName instead of data source. The data source argument is only needed for the textEncodingName.
231         * WebKit.exp:
232         * WebView.subproj/WebDataSource.m:
233         (-[WebDataSource _subresourcesDictionary]): new
234         (+[WebDataSource _repTypesAllowImageTypeOmission:]): include "application/x-webarchive"
235         * WebView.subproj/WebDataSourcePrivate.h:
236         * WebView.subproj/WebDocumentInternal.h:
237         * WebView.subproj/WebDocumentPrivate.h:
238         * WebView.subproj/WebFrame.m:
239         (-[WebFrame loadWebArchive:]): renamed, code factored out to [WebResource _parseWebArchive:mainResource:subresources:]
240         * WebView.subproj/WebFramePrivate.h:
241         * WebView.subproj/WebFrameView.m:
242         (+[WebFrameView _viewTypesAllowImageTypeOmission:]): include "application/x-webarchive"
243         * WebView.subproj/WebHTMLRepresentation.h:
244         * WebView.subproj/WebHTMLRepresentation.m:
245         (-[WebHTMLRepresentationPrivate dealloc]):
246         (-[WebHTMLRepresentation _isDisplayingWebArchive]): new
247         (-[WebHTMLRepresentation receivedData:withDataSource:]): don't feed data to WebCore if we're displaying a web archive since web archive can't be progressively loaded
248         (-[WebHTMLRepresentation loadWebArchive]): new, feeds web archive data to WebCore
249         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]): call loadWebArchive if necessary
250         (-[WebHTMLRepresentation documentSource]): if displaying a web archive, return the HTML source from within the archive
251         (-[WebHTMLRepresentation _webArchiveWithMarkupString:subresourceURLStrings:]): new
252         (-[WebHTMLRepresentation markupStringFromNode:]): implementation of new API
253         (-[WebHTMLRepresentation markupStringFromRange:]): ditto
254         (-[WebHTMLRepresentation webArchiveFromNode:]): ditto
255         (-[WebHTMLRepresentation webArchiveFromRange:]): ditto
256         * WebView.subproj/WebHTMLRepresentationPrivate.h:
257         * WebView.subproj/WebHTMLView.m:
258         (+[WebHTMLView _selectionPasteboardTypes]): use renamed WebArchivePboardType
259         (-[WebHTMLView _selectedWebArchive:]): renamed, call renamed methods
260         (-[WebHTMLView _writeSelectionToPasteboard:]): call renamed methods
261         (-[WebHTMLView _haveSelection]): indentation tweak
262         (-[WebHTMLView _canDelete]): ditto
263         (-[WebHTMLView _canPaste]): ditto
264         (-[WebHTMLView _pasteMarkupFromPasteboard:]): renamed, call [WebResource _webArchiveWithMainResource:subresources:]
265         (-[WebHTMLView initWithFrame:]): use renamed WebArchivePboardType
266         (-[WebHTMLView paste:]): call renamed _pasteMarkupFromPasteboard
267         (-[WebHTMLView concludeDragOperation:]): call renamed _pasteMarkupFromPasteboard
268         * WebView.subproj/WebHTMLViewPrivate.h:
269         * WebView.subproj/WebMainResourceClient.m:
270         (-[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.
271         * WebView.subproj/WebResource.h:
272         * WebView.subproj/WebResource.m:
273         (+[WebResource _parseWebArchive:mainResource:subresources:]): new
274         (+[WebResource _webArchiveWithMainResource:subresources:]): new
275         * WebView.subproj/WebResourcePrivate.h:
276
277 2004-03-09  John Sullivan  <sullivan@apple.com>
278
279         - fixed the following bugs:
280         <rdar://problem/3579715>: Going to an error page in back/forward list doesn't work 
281         correctly in some cases
282         <rdar://problem/3581031>: REGRESSION (130+): World Leak of WebFrame after trying 
283         to load page with unknown scheme
284
285         Reviewed by Darin.
286
287         * WebView.subproj/WebDataSourcePrivate.h:
288         renamed __setRequest -> __adoptRequest
289         * WebView.subproj/WebDataSource.m:
290         (-[WebDataSource _URLForHistory]): 
291         updated comment
292         (-[WebDataSource __adoptRequest:]):
293         Renamed from __setRequest; now takes an NSMutableURLRequest and uses it as-is.
294         (-[WebDataSource _setRequest:]):
295         now saves a mutable copy, instead of relying on the caller to do so. The
296         (only) caller wasn't doing so in all cases, leading to trouble in River City.
297         Also, special-case unreachable URL handling to allow alternate content to 
298         replace a URL in a redirect-like way without sending a redirect callback.
299         
300         * WebView.subproj/WebFrame.m:
301         (-[WebFrame loadAlternateHTMLString:baseURL:forUnreachableURL:]):
302         renamed after discussion with Richard (was loadPlaceholderHTMLString:baseURL:unreachableURL:)
303         (-[WebFrame _shouldReloadToHandleUnreachableURLFromRequest:]):
304         new helper method, returns YES only if we receive a load request for alternate
305         content from a delegate for an unreachable URL while we are going back or forward.
306         That's a lot of prepositions!
307         (-[WebFrame _loadRequest:subresources:]):
308         if _shouldReloadToHandleUnreachableURLFromRequest: returns YES, change load type
309         to WebFrameLoadTypeReload so b/f list is preserved appropriately.
310         (-[WebFrame _transitionToCommitted:]):
311         Update currentItem in the unreachableURL case.
312         (-[WebFrame _isLoadComplete]):
313         Don't reset b/f list before calling provisionalLoadDidFail delegate; instead, determine 
314         where to reset b/f list beforehand, and then actually reset list afterwards only if we 
315         didn't start an alternate content load in the delegate. Also, set new boolean ivar so we
316         know when we're processing a provisionalLoadDidFail delegate callback.
317         (-[WebFrame _loadItem:withLoadType:]):
318         don't make extra copy before calling __adoptRequest; just pass it the one we made here.
319         (-[WebFrame _checkNavigationPolicyForRequest:dataSource:formState:andCall:withSelector:]):
320         If we're loading alternate content for an unreachableURL, don't ask the decision listener,
321         just do it. (This avoids problem with nested calls to checking the navigation policy that
322         led to a WebFrame leak, and is conceptually the right thing to do also.) Also added some
323         asserts that helped me track down the WebFrame leak. Set new boolean ivar so we know
324         when we're processing a navigation policy delegate decision.
325         (-[WebFrame _currentBackForwardListItemToResetTo]):
326         new method, replaces _resetBackForwardListToCurrent. Does the same test as the
327         latter but returns a boolean rather than actually resetting.
328         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
329         save dataSource in a local var before calling stopLoading, and use it for
330         _setProvisionalDataSource, because otherwise stopLoading was clobbering the dataSource
331         for an unreachable URL handling case.
332         
333         * WebView.subproj/WebFramePrivate.h:
334         two new boolean ivars
335         
336         * WebView.subproj/WebView.m:
337         (+[WebView _canHandleRequest:]):
338         return YES when we're loading alternate content for an unreachable URL
339
340 === Safari-131 ===
341
342 2004-03-08  Ken Kocienda  <kocienda@apple.com>
343
344         Reviewed by Darin
345
346         * WebKit.pbproj/project.pbxproj: Added CFBundleName to Info.plist
347
348 2004-03-05  Chris Blumenberg  <cblu@apple.com>
349
350         Fixed: <rdar://problem/3560132>: REGRESSION: Safari crashed in -[NSPasteboard setData:forType:] dragging a map out of Mapquest.com
351
352         Reviewed by john.
353
354         * Misc.subproj/WebNSPasteboardExtras.m:
355         (-[NSPasteboard _web_writeImage:URL:title:fileWrapper:HTMLString:]): declare the pboard types by calling _web_writeURL:::: before calling setData::
356
357 2004-03-05  John Sullivan  <sullivan@apple.com>
358
359         First cut at WebKit support for showing error pages for unreachable URLs.
360         This doesn't work quite right with the back/forward list yet, but is
361         good enough for demos.
362
363         Reviewed by Darin.
364
365         * WebView.subproj/WebBaseResourceHandleDelegate.m:
366         (-[WebBaseResourceHandleDelegate didReceiveResponse:]):
367         use new _webDataRequextExternalURL to share code
368         
369         * WebView.subproj/WebDataProtocol.h:
370         Three new methods (all internal to WebKit):
371         -[NSURLRequest _webDataRequestUnreachableURL], -[NSURLRequest _webDataRequestExternalURL],
372         -[NSURLRequest _webDataRequestSetUnreachableURL]
373         * WebView.subproj/WebDataProtocol.m:
374         new unreachableURL field of WebDataRequestParameters
375         (-[WebDataRequestParameters copyWithZone:]):
376         copy new field
377         (-[WebDataRequestParameters dealloc]):
378         release new field
379         (-[NSURLRequest _webDataRequestUnreachableURL]):
380         read new field
381         (-[NSURLRequest _webDataRequestExternalURL]):
382         new method, returns baseURL or "about:blank" for webdata protocol requests. This
383         was done in multiple places previously.
384         (-[NSURLRequest _webDataRequestExternalRequest]):
385         now calls _webDataRequestExternalURL to share code
386         (-[NSMutableURLRequest _webDataRequestSetUnreachableURL:]):
387         write new field
388         
389         * WebView.subproj/WebDataSource.m:
390         (-[WebDataSource unreachableURL]):
391         new method, might become API; returns the unreachable URL, if any, for which this datasource
392         holds placeholder content
393         (-[WebDataSource _URLForHistory]):
394         new method, returns the URL to be stored in History for this dataSource. This returns nil
395         for run-of-the-mill WebDataProtocol URLs (replacing code elsewhere that checked for this
396         case) but returns the unreachableURL for the case where this datasource holds placeholder
397         content.
398         (-[WebDataSource _setTitle:]):
399         now calls _URLForHistory
400         
401         * WebView.subproj/WebDataSourcePrivate.h:
402         added unreachableURL in the should-become-API section, and _URLForHistory elsewhere
403         
404         * WebView.subproj/WebFrame.m:
405         (-[WebFrame loadPlaceholderHTMLString:baseURL:unreachableURL:]):
406         new should-become-API method for displaying an error page for an unreachable URL
407         (-[WebFrame loadPropertyList:]):
408         updated to pass nil for unreachableURL
409         (-[WebFrame _webDataRequestForData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
410         added unreachableURL parameter, which gets set on the data request
411         (-[WebFrame _addBackForwardItemClippedAtTarget:]):
412         use _URLForHistory instead of just checking for WebDataProtocol
413         (-[WebFrame _createItem:]):
414         use unreachableURL if there is one
415         (-[WebFrame _transitionToCommitted:]):
416         use _URLForHistory instead of just checking for WebDataProtocol
417         (-[WebFrame _isLoadComplete]):
418         check whether a new load has started in the delegate callback and if so, don't
419         reset the loading state here
420         (-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
421         added unreachableURL parameter, which gets passed through
422         (-[WebFrame loadData:MIMEType:textEncodingName:baseURL:]):
423         send nil unreachableURL parameter
424         (-[WebFrame _loadHTMLString:baseURL:unreachableURL:]):
425         new bottleneck method for loadHTMLString:baseURL: and loadPlaceholderHTMLString:baseURL:unreachableURL:;
426         this is the guts of loadHTMLString:baseURL: with the new unreachableURL parameter passed through
427         (-[WebFrame loadHTMLString:baseURL:]):
428         now calls new bottleneck method
429         
430         * WebView.subproj/WebFramePrivate.h:
431         added loadPlaceholderString:baseURL:unreachableURL: to should-be-API section; added unreachableURL
432         parameter to _webDataRequestForData:MIMEType:textEncodingName:baseURL:
433
434 2004-03-04  Chris Blumenberg  <cblu@apple.com>
435
436         - 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.
437         - 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.
438
439         Reviewed by rjw.
440
441         * ChangeLog:
442         * WebCoreSupport.subproj/WebBridge.m:
443         (-[WebBridge fileWrapperForURL:]): call _fileWrapperForURL on WebDataSource
444         * WebView.subproj/WebDataSource.m:
445         (-[WebDataSource _fileWrapperForURL:]): moved from WebView, creates a wrapper from a WebResource
446         * WebView.subproj/WebDataSourcePrivate.h:
447         * WebView.subproj/WebDefaultContextMenuDelegate.m:
448         (-[WebDefaultUIDelegate copyImageToClipboard:]): call [WebDataSource _fileWrapperForURL:]
449         * WebView.subproj/WebHTMLView.m:
450         (-[WebHTMLView _handleMouseDragged:]): call [WebDataSource _fileWrapperForURL:]
451         (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): call [WebDataSource _fileWrapperForURL:]
452         (-[WebHTMLView _dragOperationForDraggingInfo:]): new, factored out from draggingUpdated:
453         (-[WebHTMLView draggingEntered:]): call _dragOperationForDraggingInfo:, if NSDragOperationNone, forward to WebView to it can handle the drag
454         (-[WebHTMLView draggingUpdated:]): ditto
455         (-[WebHTMLView concludeDragOperation:]): ditto
456         * WebView.subproj/WebResource.m:
457         (-[WebResource _fileWrapperRepresentation]): new
458         * WebView.subproj/WebResourcePrivate.h:
459         * WebView.subproj/WebView.m:
460         (-[WebViewPrivate dealloc]): release draggedTypes, a new ivar that keeps track of drag types that we're currently registered for
461         (-[WebView _setDraggedTypes:]): new
462         (-[WebView unregisterDraggedTypes]): new, calls _setDraggedTypes then super
463         (-[WebView registerForDraggedTypes:]): ditto 
464         (-[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. 
465         (-[WebView draggingEntered:]): calls _dragOperationForDraggingInfo:
466         (-[WebView draggingUpdated:]): ditto
467         (-[WebView concludeDragOperation:]): ditto
468         * WebView.subproj/WebViewPrivate.h: define new draggedTypes ivar
469
470 2004-03-03  Chris Blumenberg  <cblu@apple.com>
471
472         Fixed a typo.
473
474         * WebView.subproj/WebHTMLView.m:
475         (-[WebHTMLView concludeDragOperation:]):
476
477 2004-03-03  Chris Blumenberg  <cblu@apple.com>
478
479         Fixed: <rdar://problem/3576070>: REGRESSION: web view won't accept drag of webloc file
480
481         Reviewed by rjw.
482
483         * WebView.subproj/WebHTMLView.m:
484         (-[WebHTMLView draggingUpdated:]): if we're not handling the drag, forward this message to the WebView since it may want to handle it
485         (-[WebHTMLView concludeDragOperation:]): if we're not handling the drag, forward this message to the WebView since it may want to handle it
486
487 2004-03-03  Darin Adler  <darin@apple.com>
488
489         Reviewed by Vicki.
490
491         * English.lproj/InfoPlist.strings: Removed. No need to localize the version and
492         copyright string, and that's all that was in here.
493         * WebKit.pbproj/project.pbxproj: Removed InfoPlist.strings from build.
494
495 2004-03-03  Ken Kocienda  <kocienda@apple.com>
496
497         Reviewed by Chris
498
499         * copy-webcore-files-to-webkit: Fixed up this script so that
500         it does not fail if it is running "non-locally", like for
501         B&I. The idiom is to check these files into WebKit after
502         copying them from WebCore, hence this script is merely
503         a convenience to keep the files in sync.
504
505 2004-03-02  Ken Kocienda  <kocienda@apple.com>
506
507         Reviewed by me
508
509         * DOM.subproj/DOM.h: Checked in header copied over
510         from WebCore.
511
512 2004-03-02  Richard Williamson   <rjw@apple.com>
513
514         Added WebJavaScriptObject API.  The location of this file may
515         change.
516
517         Reviewed by Chris.
518
519         * Plugins.subproj/NP_objc.h: Added.
520         * WebKit.pbproj/project.pbxproj:
521
522 2004-03-02  Chris Blumenberg  <cblu@apple.com>
523
524         Fixed: <rdar://problem/3575598>: REGRESSION: Safari crashes at IS&T website
525
526         Reviewed by darin.
527
528         * WebView.subproj/WebDataSource.m:
529         (-[WebDataSourcePrivate dealloc]): don't stop the icon loader here because that can cause an infinite loop
530         (-[WebDataSource _stopLoadingInternal]): always stop the icon loader here instead of just when the data source is loading as well.
531
532 === Safari-130 ===
533
534 2004-03-02  Ken Kocienda  <kocienda@apple.com>
535
536         Reviewed by me
537
538         * DOM.subproj/DOM.h: Rollout last night's checkin.
539         The tree was closed.
540
541 2004-03-01  Chris Blumenberg  <cblu@apple.com>
542
543         Fixed: <rdar://problem/3574979>: REGRESSION (129-TOT): crash loading macromedia.com
544
545         deliverResource was being called after it had already been called in setDefersCallbacks:.
546
547         Reviewed by rjw.
548
549         * WebView.subproj/WebBaseResourceHandleDelegate.h:
550         * WebView.subproj/WebBaseResourceHandleDelegate.m:
551         (-[WebBaseResourceHandleDelegate deliverResource]): set deliveredResource to YES
552         (-[WebBaseResourceHandleDelegate deliverResourceAfterDelay]): new, calls deliverResource after a delay
553         (-[WebBaseResourceHandleDelegate loadWithRequest:]): call deliverResourceAfterDelay
554         (-[WebBaseResourceHandleDelegate setDefersCallbacks:]): call deliverResourceAfterDelay
555
556 2004-03-01  Ken Kocienda  <kocienda@apple.com>
557
558         Reviewed by me
559
560         * DOM.subproj/DOM.h: Checked in header copied over
561         from WebCore.
562
563 2004-03-01  Ken Kocienda  <kocienda@apple.com>
564
565         Reviewed by me
566
567         * DOM.subproj/DOM.h: Oh, it's like the Keystone Cops this afternoon...
568         Backed out an unintended change to thsi file.
569
570 2004-03-01  Ken Kocienda  <kocienda@apple.com>
571
572         Reviewed by me
573
574         * copy-webcore-files-to-webkit: Dumb typing error on my part in making
575         my previous quick fix. This quick fix works. 
576
577 2004-03-01  Chris Blumenberg  <cblu@apple.com>
578
579         Updated the WebKit project file to 1.1 because a previous check-in reverted to 1.01.
580
581         * WebKit.pbproj/project.pbxproj:
582
583 2004-03-01  Ken Kocienda  <kocienda@apple.com>
584
585         Reviewed by me
586
587         * copy-webcore-files-to-webkit: Made this file buildit-compliant
588
589 2004-03-01  Chris Blumenberg  <cblu@apple.com>
590
591         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. 
592
593         Reviewed by rjw.
594
595         * WebView.subproj/WebBaseResourceHandleDelegate.m:
596         (-[WebBaseResourceHandleDelegate cancelWithError:]): cancel the perform request for deliverResource
597
598 2004-03-01  Chris Blumenberg  <cblu@apple.com>
599
600         Reviewed by darin.
601
602         * Misc.subproj/WebIconLoader.m:
603         (-[WebIconLoader didFinishLoading]): rejigger handle code to avoid Deployment failure
604         * WebKit.pbproj/project.pbxproj:
605
606 2004-03-01  Chris Blumenberg  <cblu@apple.com>
607
608         - 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.
609         - Made WebIconLoader a subclass of WebBaseResourceHandleDelegate. This makes favicons appear in the activity window among other things.
610
611         Reviewed by kocienda.
612
613         * Misc.subproj/WebIconLoader.h:
614         * Misc.subproj/WebIconLoader.m: removed connection and data ivars since WebBaseResourceHandleDelegate holds these 
615         (-[WebIconLoaderPrivate dealloc]): removed calls to deleted ivars
616         (-[WebIconLoader URL]): call renamed request ivar
617         (-[WebIconLoader startLoading]): call loadWithRequest
618         (-[WebIconLoader stopLoading]): call cancel
619         (-[WebIconLoader didFinishLoading]):
620         * Plugins.subproj/WebNetscapePluginStream.m:
621         (-[WebNetscapePluginConnectionDelegate didReceiveResponse:]): renamed to be connection-less since callbacks may came from a WebResource and not an NSURLConnection
622         (-[WebNetscapePluginConnectionDelegate didReceiveData:lengthReceived:]): ditto
623         (-[WebNetscapePluginConnectionDelegate didFinishLoading]): ditto
624         (-[WebNetscapePluginConnectionDelegate didFailWithError:]): ditto
625         * WebCoreSupport.subproj/WebSubresourceClient.m:
626         (-[WebSubresourceClient didReceiveResponse:]): ditto
627         (-[WebSubresourceClient didReceiveData:lengthReceived:]): ditto
628         (-[WebSubresourceClient didFinishLoading]): ditto
629         (-[WebSubresourceClient didFailWithError:]): ditto
630         * WebKit.pbproj/project.pbxproj:
631         * WebView.subproj/WebBaseResourceHandleDelegate.h:
632         * WebView.subproj/WebBaseResourceHandleDelegate.m:
633         (-[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
634         (-[WebBaseResourceHandleDelegate setDefersCallbacks:]): call deliverResource if callbacks are turned back on
635         (-[WebBaseResourceHandleDelegate deliverResource]): new, calls didReceiveResponse:, didReceiveData:lengthReceived:, and didFinishLoading
636         (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]): renamed to be connection-less since callbacks may came from a WebResource and not an NSURLConnection
637         (-[WebBaseResourceHandleDelegate didReceiveAuthenticationChallenge:]): ditto
638         (-[WebBaseResourceHandleDelegate didCancelAuthenticationChallenge:]): ditto
639         (-[WebBaseResourceHandleDelegate didReceiveResponse:]): ditto
640         (-[WebBaseResourceHandleDelegate didReceiveData:lengthReceived:]): ditto
641         (-[WebBaseResourceHandleDelegate didFinishLoading]): ditto
642         (-[WebBaseResourceHandleDelegate didFailWithError:]): ditto
643         (-[WebBaseResourceHandleDelegate willCacheResponse:]): ditto
644         (-[WebBaseResourceHandleDelegate connection:willSendRequest:redirectResponse:]): calls connection-less version of this method
645         (-[WebBaseResourceHandleDelegate connection:didReceiveAuthenticationChallenge:]): ditto
646         (-[WebBaseResourceHandleDelegate connection:didCancelAuthenticationChallenge:]): ditto
647         (-[WebBaseResourceHandleDelegate connection:didReceiveResponse:]): ditto
648         (-[WebBaseResourceHandleDelegate connection:didReceiveData:lengthReceived:]): ditto
649         (-[WebBaseResourceHandleDelegate connectionDidFinishLoading:]): ditto
650         (-[WebBaseResourceHandleDelegate connection:didFailWithError:]): ditto
651         (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]): ditto
652         (-[WebBaseResourceHandleDelegate cancelWithError:]): call renamed _completeProgressForConnectionDelegate on WebView
653         (-[WebBaseResourceHandleDelegate cancelledError]): tweak
654         * WebView.subproj/WebDataSource.m:
655         (-[WebDataSource _loadIcon]): set the data source on the icon loader so it can callback
656         * WebView.subproj/WebResource.m:
657         (-[WebResource _response]): new, factored out from _cachedResponseRepresentation
658         (-[WebResource _cachedResponseRepresentation]): call _response
659         * WebView.subproj/WebResourcePrivate.h:
660         * WebView.subproj/WebView.m:
661         (-[WebView _incrementProgressForConnectionDelegate:response:]): renamed to be connection-less
662         (-[WebView _incrementProgressForConnectionDelegate:data:]): ditto
663         (-[WebView _completeProgressForConnectionDelegate:]): ditto
664         * WebView.subproj/WebViewPrivate.h:
665
666 2004-03-01  Ken Kocienda  <kocienda@apple.com>
667
668         Reviewed by Darin
669         
670         Changed all Objective-C DOM classes from protocols to classes. 
671
672         * DOM.subproj/DOM-compat.h:
673         * DOM.subproj/DOM.h:
674         * WebCoreSupport.subproj/WebBridge.m:
675         (-[WebBridge loadURL:referrer:reload:onLoadEvent:target:triggeringEvent:form:formValues:]):
676         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
677         * WebView.subproj/WebFormDelegate.h:
678         * WebView.subproj/WebFormDelegate.m:
679         (-[WebFormDelegate frame:sourceFrame:willSubmitForm:withValues:submissionListener:]):
680         * WebView.subproj/WebFrame.m:
681         (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
682         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
683         (-[WebFormState initWithForm:values:sourceFrame:]):
684         (-[WebFormState form]):
685         * WebView.subproj/WebFramePrivate.h:
686         * WebView.subproj/WebHTMLRepresentation.h:
687         * WebView.subproj/WebHTMLRepresentation.m:
688         (-[WebHTMLRepresentation DOMDocument]):
689         (-[WebHTMLRepresentation setSelectionFrom:startOffset:to:endOffset:]):
690         (-[WebHTMLRepresentation attributedStringFrom:startOffset:to:endOffset:]):
691         (-[WebHTMLRepresentation elementWithName:inForm:]):
692         (-[WebHTMLRepresentation elementForView:]):
693         (-[WebHTMLRepresentation elementDoesAutoComplete:]):
694         (-[WebHTMLRepresentation elementIsPassword:]):
695         (-[WebHTMLRepresentation formForElement:]):
696         (-[WebHTMLRepresentation controlsInForm:]):
697         (-[WebHTMLRepresentation searchForLabels:beforeElement:]):
698         (-[WebHTMLRepresentation matchLabels:againstElement:]):
699
700 2004-02-27  John Sullivan  <sullivan@apple.com>
701
702         - WebKit changes to allow performance improvements to bookmarks 
703
704         Reviewed by Darin.
705
706         * History.subproj/WebHistoryItemPrivate.h:
707         added notificationsSuppressed/setNotificationsSuppressed, and setURLString
708         * History.subproj/WebHistoryItem.m:
709         (-[WebHistoryItem setNotificationsSuppressed:]):
710         setter for new flag. When this flag is set, making changes to the WebHistoryItem
711         will not cause WebHistoryChanged notifications to be sent. This is a big speedup
712         for reading bookmarks from disk, since currently each WebBookmarkLeaf object
713         keeps around a WebHistoryItem object that isn't really part of history and thus
714         doesn't need to send notifications about history changing.
715         (-[WebHistoryItem notificationsSuppressed]):
716         getter for new flag
717         (-[WebHistoryItem setURLString:]):
718         new method, extracted from guts of setURL:; this allows callers (though
719         currently only callers at Apple) that have a URL string in hand to set
720         it directly on the WebHistoryItem rather than converting to a URL and
721         back, both relatively slow operations. Also, doesn't sent a notification
722         if notifications are suppressed.
723         (-[WebHistoryItem setURL:]):
724         now calls extracted method
725         (-[WebHistoryItem setAlternateTitle:]):
726         doesn't send notification if notifications are suppressed
727         (-[WebHistoryItem setOriginalURLString:]):
728         ditto
729         (-[WebHistoryItem setTitle:]):
730         ditto
731         (-[WebHistoryItem _setLastVisitedTimeInterval:]):
732         ditto
733
734 2004-02-26  Chris Blumenberg  <cblu@apple.com>
735
736         WebKit side of:
737         <rdar://problem/3056566>: mail a link to this page
738         <rdar://problem/2961206>: implement ability to e-mail entire page
739
740         Reviewed by john.
741
742         * English.lproj/StringsNotToBeLocalized.txt:
743         * Misc.subproj/WebIconDatabase.m:
744         (-[WebIconDatabase _createFileDatabase]): tweaks
745         (-[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.
746         (-[WebIconDatabase _updateFileDatabase]): tweaks
747         (-[WebIconDatabase _setIcon:forIconURL:]): tweaks
748         (-[WebIconDatabase _releaseIconForIconURLString:]): tweaks
749         (-[WebIconDatabase _retainOriginalIconsOnDisk]): use the original list of icons on disk instead of the current list
750         (-[WebIconDatabase _releaseOriginalIconsOnDisk]): use the original list of icons on disk instead of the current list
751         * Misc.subproj/WebIconDatabasePrivate.h:
752         * WebKit.exp:
753         * WebKit.pbproj/project.pbxproj:
754         * WebView.subproj/WebDataSource.m:
755         (-[WebDataSource _propertyListWithData:subresourceURLStrings:]): new, code moved from [WebHTMLView _selectedPropertyList:], creates property list rep of data and subresources
756         (-[WebDataSource propertyList]): does the above with all the data source data, this is what "Mail Page" uses
757         * WebView.subproj/WebDataSourcePrivate.h:
758         * WebView.subproj/WebFrame.m:
759         (-[WebFrame loadPropertyList:]): renamed from loadHTMLPropertyList because the property list may contain non-HTML data
760         * WebView.subproj/WebFramePrivate.h:
761         * WebView.subproj/WebHTMLView.m:
762         (-[WebHTMLView _selectedPropertyList:]): renamed, code moved to [WebDataSource _propertyListWithData:subresourceURLStrings:]
763         (-[WebHTMLView _writeSelectionToPasteboard:]): call renamed _selectedPropertyList
764
765 2004-02-26  Ken Kocienda  <kocienda@apple.com>
766
767         Reviewed by Chris
768
769         Updated usage of DOM SPI to use new names and conventions. 
770
771         Unless indicated otherwise, the changes were to update protocol names for, which
772         changed from using a "WebDOM" prefix to a "DOM" prefix, and changing now need 
773         only include the DOM.h header from WebKit to get everything.
774
775         * DOM.subproj/DOM-compat.h: Added. This header contains some compatibility declarations
776         to work with older clients of our DOM SPI. Though this file is checked into WebKit, 
777         it really lives and should be updated in WebCore. It is copied into WebKit by the build 
778         system as needed.
779         * DOM.subproj/DOM.h: Added. This file includes the new "guts" of the DOM SPI. As above,
780         this file is checked into WebKit, it really lives and should be updated in WebCore.
781         It is copied into WebKit by the build system as needed.
782         * DOM.subproj/WebDOMDocument.h: Removed declarations. Now just includes DOM.h and DOM-compat.h
783         * DOM.subproj/WebDOMDocument.m: Removed.
784         * DOM.subproj/WebDOMElement.h: Removed declarations. Now just includes DOM.h and DOM-compat.h
785         * DOM.subproj/WebDOMElement.m: Removed.
786         * DOM.subproj/WebDOMNode.h: Removed declarations. Now just includes DOM.h and DOM-compat.h
787         * DOM.subproj/WebDOMNode.m: Removed.
788         * WebCoreSupport.subproj/WebBridge.m:
789         (-[WebBridge loadURL:referrer:reload:onLoadEvent:target:triggeringEvent:form:formValues:])
790         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:])
791         * WebKit.pbproj/project.pbxproj:
792         * WebView.subproj/WebDefaultContextMenuDelegate.m:
793         * WebView.subproj/WebFormDelegate.h:
794         * WebView.subproj/WebFormDelegate.m:
795         (-[WebFormDelegate frame:sourceFrame:willSubmitForm:withValues:submissionListener:])
796         * WebView.subproj/WebFrame.h: Unrelated change. Removed -undoManager accessor from public header. Moved to private header.
797         * WebView.subproj/WebFrame.m: 
798         (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:])
799         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:])
800         (-[WebFrame undoManager]): Moved -undoManager accessor to private category implementation.
801         (-[WebFormState initWithForm:values:sourceFrame:])
802         (-[WebFormState form])
803         (-[WebFrame childFrames])
804         * WebView.subproj/WebFramePrivate.h: Moved in -undoManager accessor.
805         * WebView.subproj/WebHTMLRepresentation.h:
806         * WebView.subproj/WebHTMLRepresentation.m:
807         (-[WebHTMLRepresentation DOMDocument])
808         (-[WebHTMLRepresentation setSelectionFrom:startOffset:to:endOffset:])
809         (-[WebHTMLRepresentation attributedStringFrom:startOffset:to:endOffset:])
810         (-[WebHTMLRepresentation elementWithName:inForm:])
811         (-[WebHTMLRepresentation elementForView:])
812         (-[WebHTMLRepresentation elementDoesAutoComplete:])
813         (-[WebHTMLRepresentation elementIsPassword:])
814         (-[WebHTMLRepresentation formForElement:])
815         (-[WebHTMLRepresentation controlsInForm:])
816         (-[WebHTMLRepresentation searchForLabels:beforeElement:])
817         (-[WebHTMLRepresentation matchLabels:againstElement:])
818         * WebView.subproj/WebHTMLView.m:
819         * copy-webcore-files-to-webkit: Added. Copies DOM.h and DOM-compat.h from WebCore when they
820         have been updated there.
821
822 2004-02-25  John Sullivan  <sullivan@apple.com>
823
824         WebKit part of fix for <rdar://problem/3546370>: add a way to tab to menus, 
825         checkmarks, and buttons without turning on Full Keyboard Acceess
826
827         Reviewed by Ken.
828
829         * WebCoreSupport.subproj/WebBridge.m:
830         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
831         turn on WebCoreKeyboardAccessFull bit whenever we turn on
832         WebCoreKeyboardAccessTabsToLinks bit
833
834 2004-02-24  Chris Blumenberg  <cblu@apple.com>
835
836         I forgot to add these files in my last check-in.
837
838         * WebView.subproj/WebResource.h: Added.
839         * WebView.subproj/WebResource.m: Added.
840         (-[WebResourcePrivate dealloc]):
841         (-[WebResource initWithData:URL:MIMEType:textEncodingName:]):
842         (-[WebResource dealloc]):
843         (-[WebResource data]):
844         (-[WebResource URL]):
845         (-[WebResource MIMEType]):
846         (-[WebResource textEncodingName]):
847         (+[WebResource _resourcesFromPropertyLists:]):
848         (+[WebResource _propertyListsFromResources:]):
849         (-[WebResource _initWithPropertyList:]):
850         (-[WebResource _initWithCachedResponse:originalURL:]):
851         (-[WebResource _propertyListRepresentation]):
852         (-[WebResource _cachedResponseRepresentation]):
853         * WebView.subproj/WebResourcePrivate.h: Added.
854
855 2004-02-24  Chris Blumenberg  <cblu@apple.com>
856
857         Fixed: <rdar://problem/3565476>: design/implement new pasteboard type for HTML that includes subresources
858
859         Reviewed by rjw.
860
861         * Plugins.subproj/WebNetscapePluginStream.m:
862         (-[WebNetscapePluginConnectionDelegate initWithStream:view:]): don't manage buffer, WebBaseResourceHandleDelegate does this now
863         (-[WebNetscapePluginConnectionDelegate releaseResources]): ditto
864         (-[WebNetscapePluginConnectionDelegate connection:didReceiveData:lengthReceived:]): ditto
865         (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): ditto
866         * WebKit.exp:
867         * WebKit.pbproj/project.pbxproj:
868         * WebView.subproj/WebBaseResourceHandleDelegate.h:
869         * WebView.subproj/WebBaseResourceHandleDelegate.m:
870         (-[WebBaseResourceHandleDelegate releaseResources]): release resourceData and resource
871         (-[WebBaseResourceHandleDelegate loadWithRequest:]): check the dataSource for a resource, load that if we have one
872         (-[WebBaseResourceHandleDelegate addData:]): new, adds data to resourceData
873         (-[WebBaseResourceHandleDelegate saveResource]): new, saves data as a resource on the dataSource
874         (-[WebBaseResourceHandleDelegate saveResourceWithCachedResponse:]): new, replaces the resource on the dataSource to save memory
875         (-[WebBaseResourceHandleDelegate resourceData]): new
876         (-[WebBaseResourceHandleDelegate connection:didReceiveData:lengthReceived:]): call addData:
877         (-[WebBaseResourceHandleDelegate connectionDidFinishLoading:]): call saveResource
878         (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]): new, calls saveResourceWithCachedResponse:
879         * WebView.subproj/WebDataSource.m:
880         (-[WebDataSourcePrivate dealloc]): release subresources
881         (-[WebDataSource subresources]): new, returns the subresources of the data source
882         (-[WebDataSource subresourceForURL:]): new, returns a resource for a URL
883         (-[WebDataSource addSubresource:]): new
884         (-[WebDataSource addSubresources:]): new
885         (-[WebDataSource _receivedData:]): added an assert
886         (-[WebDataSource _setData:]): replaces the data of the data source
887         (-[WebDataSource initWithRequest:]): create subresources
888         * WebView.subproj/WebDataSourcePrivate.h:
889         * WebView.subproj/WebFrame.m:
890         (-[WebFrame loadHTMLPropertyList:]): new, loads a frame from an HTML plist
891         (-[WebFrame _webDataRequestForData:MIMEType:textEncodingName:baseURL:]): new, factored out from loadData:MIMEType:textEncodingName:baseURL:
892         (-[WebFrame _loadRequest:subresources:]): new, factored out from loadRequest:, handles subresources
893         (-[WebFrame loadRequest:]): now just calls _loadRequest:subresources:
894         * WebView.subproj/WebFramePrivate.h:
895         * WebView.subproj/WebHTMLView.m:
896         (-[WebHTMLView _dataSource]): new internal convenience
897         (+[WebHTMLView _selectionPasteboardTypes]): renamed from _pasteboardTypes to be more precise
898         (-[WebHTMLView _selectedHTMLPropertyList:]): new, constructs an HTML plist from the selection
899         (-[WebHTMLView _writeSelectionToPasteboard:]): calls _selectedHTMLPropertyList to support WebHTMLPboardType
900         (-[WebHTMLView _pasteHTMLFromPasteboard:]): added support for pasting WebHTMLPboardType
901         (+[WebHTMLView initialize]): call renamed _selectionPasteboardTypes 
902         (-[WebHTMLView initWithFrame:]): allow WebHTMLPboardType to be dragged in
903         (-[WebHTMLView validRequestorForSendType:returnType:]): call renamed _selectionPasteboardTypes 
904         * WebView.subproj/WebHTMLViewPrivate.h:
905         * WebView.subproj/WebMainResourceClient.m:
906         (-[WebMainResourceClient addData:]): override since the main resource does it's own buffering
907         (-[WebMainResourceClient saveResource]): override to do nothing since the main resource is not saved as a subresource
908         (-[WebMainResourceClient saveResourceWithCachedResponse:]): override, calls _setData on the data source to 
909         (-[WebMainResourceClient connection:didReceiveData:lengthReceived:]):
910         * WebView.subproj/WebResource.h: Added.
911         * WebView.subproj/WebResource.m: Added. New class the represents the data, URL, MIME type and textEncodingName of a resource.
912         (-[WebResourcePrivate dealloc]):
913         (-[WebResource initWithData:URL:MIMEType:textEncodingName:]):
914         (-[WebResource dealloc]):
915         (-[WebResource data]):
916         (-[WebResource URL]):
917         (-[WebResource MIMEType]):
918         (-[WebResource textEncodingName]):
919         (-[WebResource description]):
920         (+[WebResource _resourcesFromPropertyLists:]):
921         (+[WebResource _propertyListsFromResources:]):
922         (-[WebResource _initWithPropertyList:]):
923         (-[WebResource _propertyListRepresentation]):
924         (-[WebResource _initWithCachedResponse:originalURL:]):
925         (-[WebResource _cachedResponseRepresentation]):
926         * WebView.subproj/WebResourcePrivate.h: Added.
927         * WebView.subproj/WebView.m:
928
929 === Safari-129 ===
930
931 2004-02-20  Darin Adler <darin@apple.com>
932
933         Reviewed by mjs.
934
935         - fix build breakage caused by removal of kWindowNoBufferingAttribute.  
936
937         * Carbon.subproj/CarbonWindowAdapter.m:
938         (-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:disableOrdering:carbon:]):
939         always used a retained backing store type
940
941 2004-02-20  Chris Blumenberg  <cblu@apple.com>
942
943         Fixed: <rdar://problem/3563402>: when copying HTML, relative URLs should be made absolute
944
945         Reviewed by dave.
946
947         * WebView.subproj/WebHTMLRepresentation.h:
948         * WebView.subproj/WebHTMLRepresentation.m:
949         (-[WebHTMLRepresentation HTMLString]): renamed from reconstructed source to be more analogous with other data get methods
950         * WebView.subproj/WebHTMLView.m:
951         (-[WebHTMLView _writeSelectionToPasteboard:]): call renamed selectedHTML on the bridge
952
953 2004-02-19  John Sullivan  <sullivan@apple.com>
954
955         - WebKit part of fix for <rdar://problem/3292380>: Cycle Tabs keyboard shortcut 
956         (cmd-shift-arrows) conflicts with text editing
957
958         Reviewed by Chris.
959
960         * WebView.subproj/WebFrameView.m:
961         (-[WebFrameView keyDown:]):
962         If shift key is down along with an arrow key, call super rather than eating
963         event since we don't handle any shifted events here.
964
965 2004-02-15  Darin Adler  <darin@apple.com>
966
967         Reviewed by John and Don.
968
969         - discovered that jaguar.com doesn't need spoofing any more, so removed
970           the spoofing machinery entirely; if we ever have to bring it back we
971           can, but I doubt we will
972
973         * WebView.subproj/WebView.m: Removed include of WebUserAgentSpoofTable.c.
974         (-[WebViewPrivate dealloc]): Release the new single userAgent rather than
975         the array and userAgentOverride we used to.
976         (-[WebView _preferencesChangedNotification:]): Release the single user agent,
977         rather than the entire cache. Also only do it when the user agent is not
978         overridden.
979         (-[WebView setApplicationNameForUserAgent:]): Ditto.
980         (-[WebView setCustomUserAgent:]): Set the new userAgentOverridden boolean,
981         and also set userAgent itself.
982         (-[WebView customUserAgent]): Return userAgent, but only if userAgentOverridden
983         is true.
984         (-[WebView userAgentForURL:]): Simplify, now that there's no automatic spoofing
985         to do. Made even simpler by the fact that custom and computed user agents both
986         share the same field now.
987
988         * WebView.subproj/WebViewPrivate.h: Got rid of UserAgentStringType, turned the
989         userAgent field into a single item instead of an array, and replaced the
990         userAgentOverride field with a boolean userAgentOverridden field.
991
992         * Makefile.am: Removed the rule to build WebUserAgentSpoofTable.c.
993         * WebView.subproj/WebUserAgentSpoofTable.c: Removed.
994         * WebView.subproj/WebUserAgentSpoofTable.gperf: Removed.
995
996 2004-02-15  Darin Adler  <darin@apple.com>
997
998         Reviewed by Dave.
999
1000         * WebKit.pbproj/project.pbxproj: Tweak build styles a bit, fixing OptimizedWithSymbols,
1001         and removing redundant settings of things that match defaults in other build styles.
1002
1003 2004-02-12  Maciej Stachowiak  <mjs@apple.com>
1004
1005         Reviewed by John.
1006
1007         - redo visited link history checking for a 2% speed improvement
1008
1009         * History.subproj/WebHistory.m:
1010         (-[_WebCoreHistoryProvider containsItemForURLString:]): Removed.
1011         (-[_WebCoreHistoryProvider containsItemForURLLatin1:length:]): Implemented.
1012         For https and http URLs with empty path, add a slash. Make a CFString
1013         using the passed-in latin1 buffer without copying.
1014         (-[_WebCoreHistoryProvider containsItemForURLUnicode:length:]): Ditto
1015         for unicode.
1016         (matchLetter): New static helper function.
1017         (matchUnicodeLetter): Ditto.
1018
1019 === Safari-128 ===
1020
1021 2004-02-10  Ken Kocienda  <kocienda@apple.com>
1022
1023         Reviewed by Hyatt
1024
1025         * WebCoreSupport.subproj/WebBridge.m:
1026         (-[WebBridge registerCommandForUndo]): Some cleanup. Cookie for events no longer needed.
1027         (-[WebBridge registerCommandForRedo]): Ditto.
1028         (-[WebBridge clearUndoRedoOperations]): Tells the Cocoa undo manager to clear
1029         steps targeted at the bridge.
1030         * WebView.subproj/WebFrame.h: Declare undo manager accessor.
1031         * WebView.subproj/WebFrame.m:
1032         (-[WebFramePrivate dealloc]): Release undo manager
1033         (-[WebFrame undoManager]): Allocate and return an undo manager. This helps
1034         undo in a browser to be per tab.
1035         * WebView.subproj/WebFramePrivate.h: Declare undo manager ivar.
1036
1037 2004-02-08  Darin Adler  <darin@apple.com>
1038
1039         Reviewed by Dave.
1040
1041         - fixed things seen in the profile, for a total speedup of 4% on cvs-base
1042         - fixed some layout regressions from my last speedup due to text measurement inconsistencies by adding
1043           a flag to control whether word rounding is done or not
1044         - fixed text measurement to be used with AppKit to match AppKit again, as it did at some point in the past
1045
1046         * WebCoreSupport.subproj/WebTextRenderer.h: Remove some unused fields, and added a field to say whether we
1047         treat this font as fixed pitch.
1048         * WebCoreSupport.subproj/WebTextRenderer.m:
1049         (getUncachedWidth): Remove space width hack from this level. There was already a width hack up at the higher
1050         level for space itself, so there's not a significant speed benefit, and the higher level can make a more
1051         intelligent choice based on the current rounding setting since it's not cached.
1052         (-[WebTextRenderer _computeWidthForSpace]): Don't store so many widths; just the adjusted width we will
1053         actually use.
1054         (widthForNextCharacter): Use two different rules for when to adjust space widths, based on whether this is
1055         a fixed pitch font or not. Also, don't do any adjusting of space widths if applyWordRounding is false.
1056
1057         * Misc.subproj/WebKitNSStringExtras.m:
1058         (-[NSString _web_drawAtPoint:font:textColor:]): Turn off rounding, so we get the kind of spacing AppKit would normally give.
1059         (-[NSString _web_widthWithFont:]): Ditto.
1060         * Misc.subproj/WebStringTruncator.m: (stringWidth): Ditto.
1061
1062 2004-02-08  Darin Adler  <darin@apple.com>
1063
1064         Reviewed by NOBODY (OOPS!).
1065
1066         - fixed things seen in the profile, for a total speedup of 3.7% on cvs-base
1067
1068         * Misc.subproj/WebNSURLExtras.m: (-[NSURL _web_userVisibleString]): Check for "xn--" as we
1069         walk the string instead of in a separate call to strcasestr. Faster this way.
1070
1071 2004-02-07  Darin Adler  <darin@apple.com>
1072
1073         * WebKit.pbproj/project.pbxproj: Get rid of the DEPLOYMENT_LOCATION and DEPLOYMENT_POSTPROCESSING
1074         flags that were in the Deployment build style. These were causing the need to chmod all the time
1075         after building WebCore successfully, and were doing us no good.
1076
1077 2004-02-06  Darin Adler  <darin@apple.com>
1078
1079         * Resources/missing_image.tiff: Compressed with compress-tiffs; saved 15890 bytes.
1080
1081 === Safari-127 ===
1082
1083 2004-02-05  Ken Kocienda  <kocienda@apple.com>
1084
1085         Reviewed by Hyatt
1086
1087         Added so that editing can hook into Cocoa undo architecture. 
1088
1089         * WebCoreSupport.subproj/WebBridge.m:
1090         (-[WebBridge registerCommandForUndo:]):
1091
1092 2004-02-04  David Hyatt  <hyatt@apple.com>
1093
1094         Fix deployment build bustage.
1095         
1096         * Plugins.subproj/WebBaseNetscapePluginView.m:
1097         (ConsoleConnectionChangeNotifyProc):
1098
1099 2004-02-04  Chris Blumenberg  <cblu@apple.com>
1100
1101         Fixed: <rdar://problem/3546028>: Safari should not give plug-ins any time, thus use 0% CPU, when not in the currently active session
1102
1103
1104         Reviewed by john.
1105
1106         * Plugins.subproj/WebBaseNetscapePluginView.m:
1107         (+[WebBaseNetscapePluginView initialize]): observe CG changes
1108         (-[WebBaseNetscapePluginView addWindowObservers]): observe user switch notifications
1109         (-[WebBaseNetscapePluginView removeWindowObservers]): stop observing user switch notifications
1110         (-[WebBaseNetscapePluginView viewHasMoved:]): tweak
1111         (-[WebBaseNetscapePluginView windowWillClose:]): tweak 
1112         (-[WebBaseNetscapePluginView windowBecameKey:]): tweak
1113         (-[WebBaseNetscapePluginView windowResignedKey:]): tweak
1114         (-[WebBaseNetscapePluginView windowDidMiniaturize:]): tweak
1115         (-[WebBaseNetscapePluginView windowDidDeminiaturize:]): tweak
1116         (-[WebBaseNetscapePluginView loginWindowDidSwitchFromUser:]): new, stop null events
1117         (-[WebBaseNetscapePluginView loginWindowDidSwitchToUser:]): new, restart null events
1118         (ConsoleConnectionChangeNotifyProc): new, post user switch notifications
1119
1120 2004-02-02  John Sullivan  <sullivan@apple.com>
1121
1122         Reviewed by Darin.
1123
1124         * Misc.subproj/WebNSURLExtras.h:
1125         * Misc.subproj/WebNSURLExtras.m:
1126         (-[NSURL _web_URLWithLowercasedScheme]):
1127         new method, returns a URL whose scheme has been tolower'ed
1128
1129         * English.lproj/StringsNotToBeLocalized.txt:
1130         Updated for recent changes.
1131
1132 2004-02-02  Chris Blumenberg  <cblu@apple.com>
1133
1134         Fixed: <rdar://problem/3546924>: REGRESSION: dragging text or images over a WebView is jerky
1135
1136         Reviewed by mjs.
1137
1138         * DOM.subproj/WebDOMNode.h: added HTMLString to the protocol
1139         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1140         (-[WebDefaultUIDelegate copyImageToClipboard:]): get the HTML representation via the DOM node
1141         * WebView.subproj/WebHTMLView.m:
1142         (-[WebHTMLView _handleMouseDragged:]): get the HTML representation via the DOM node
1143         * WebView.subproj/WebView.h: removed the HTML string element key constant
1144         * WebView.subproj/WebView.m: removed the HTML string element key constant
1145
1146 2004-02-02  Chris Blumenberg  <cblu@apple.com>
1147
1148         Fixed: <rdar://problem/3546426>: when copying images via context menus, only some data is added to the pasteboard
1149
1150         Reviewed by john.
1151
1152         * Misc.subproj/WebNSPasteboardExtras.h:
1153         * Misc.subproj/WebNSPasteboardExtras.m:
1154         (-[NSPasteboard _web_writeImage:URL:title:fileWrapper:HTMLString:]): new, writes and image, URL and other optional arguments to the pasteboard
1155         * Misc.subproj/WebNSViewExtras.m:
1156         (-[NSView _web_dragImage:fileWrapper:rect:URL:title:HTMLString:event:]): factored code out to _web_writeImage, call _web_writeImage
1157         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1158         (-[WebDefaultUIDelegate copyImageToClipboard:]): call _web_writeImage
1159         * WebView.subproj/WebImageView.m:
1160         (-[WebImageView writeImageToPasteboard:]): call _web_writeImage
1161
1162 2004-02-02  Darin Adler  <darin@apple.com>
1163
1164         - fixed build failure on Merlot
1165
1166         * Misc.subproj/WebNSPasteboardExtras.m: Import just CoreTranslationFlavorTypeNames.h rather than all of
1167         ApplicationServicesPriv.h; should compile faster and avoid build failure.
1168
1169 2004-02-02  Chris Blumenberg  <cblu@apple.com>
1170
1171         Fixed: <rdar://problem/3546379>: support for editing via drag & drop
1172
1173         Reviewed by kocienda.
1174
1175         * Misc.subproj/WebNSViewExtras.h:
1176         * Misc.subproj/WebNSViewExtras.m:
1177         (-[NSView _web_dragImage:fileWrapper:rect:URL:title:HTMLString:event:]): added a HTMLString argument so that we retain all attributes when dragging images
1178         * WebView.subproj/WebHTMLView.m:
1179         (-[WebHTMLView _canDelete]): call renamed isSelectionEditable
1180         (-[WebHTMLView _canPaste]): call renamed isSelectionEditable
1181         (-[WebHTMLView _pasteHTMLFromPasteboard:]): new, factored out from paste:
1182         (-[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
1183         (-[WebHTMLView initWithFrame:]): register for drop types
1184         (-[WebHTMLView paste:]): call _pasteHTMLFromPasteboard
1185         (-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]): set new isDragging BOOL to YES
1186         (-[WebHTMLView draggedImage:endedAt:operation:]): set new isDragging BOOL to NO
1187         (-[WebHTMLView draggingEntered:]): new
1188         (-[WebHTMLView draggingUpdated:]): new, handle caret movement during the drag
1189         (-[WebHTMLView prepareForDragOperation:]): new
1190         (-[WebHTMLView performDragOperation:]): new
1191         (-[WebHTMLView concludeDragOperation:]): new, paste in the drag
1192         * WebView.subproj/WebHTMLViewPrivate.h:
1193         * WebView.subproj/WebImageView.m:
1194         (-[WebImageView mouseDragged:]): call renamed _web_dragImage
1195         * WebView.subproj/WebView.h:
1196         * WebView.subproj/WebView.m:
1197
1198 === Safari-126 ===
1199
1200 2004-01-30  Chris Blumenberg  <cblu@apple.com>
1201
1202         Fixed: <rdar://problem/3536126>: REGRESSION (Merlot): WebKit dragging is in strange location
1203
1204         Reviewed by kocienda.
1205
1206         * WebView.subproj/WebHTMLView.m:
1207         (-[WebHTMLView _handleMouseDragged:]): use the proper offset when dragging text
1208
1209 2004-01-28  John Sullivan  <sullivan@apple.com>
1210
1211         More header/footer work: refactored the header/footer code so it could
1212         be easily reused by other WebDocument classes; used it from WebImageView
1213         and WebTextView; removed the page count parameters because it's possible
1214         (though currently nasty, see 3543078) to determine this in the client.
1215
1216         Reviewed by Dave.
1217
1218         * Misc.subproj/WebNSPrintOperationExtras.h Added.
1219         * Misc.subproj/WebNSPrintOperationExtras.m Added.
1220         (-[NSPrintOperation _web_pageSetupScaleFactor]):
1221         new convenience method.
1222                 
1223         * WebView.subproj/WebUIDelegatePrivate.h:
1224         Removed page index and page count parameters from delegate methods.
1225         
1226         * WebView.subproj/WebViewPrivate.h:
1227         New private category for header/footer printing methods so that different
1228         WebDocument methods can share almost all of the code.
1229         
1230         * WebView.subproj/WebView.m:
1231         (-[WebView _headerHeight]):
1232         (-[WebView _footerHeight]):
1233         (-[WebView _drawHeaderInRect:]):
1234         (-[WebView _drawFooterInRect:]):
1235         (-[WebView _adjustPrintingMarginsForHeaderAndFooter]):
1236         (-[WebView _drawHeaderAndFooter]):
1237         Moved all of these methods here, formerly in WebHTMLView. Removed the
1238         page index and page count parameters.
1239
1240         * WebView.subproj/WebHTMLView.m:
1241         Removed all the header/footer code that's now in WebView.m, and the
1242         method that's now -[NSPrintOperation _web_pageSetupScaleFactor]
1243         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
1244         call methods differently that have now been moved
1245         (-[WebHTMLView _scaleFactorForPrintOperation:]):
1246         ditto
1247         (-[WebHTMLView knowsPageRange:]):
1248         ditto
1249         (-[WebHTMLView drawPageBorderWithSize:]):
1250         now just turns around and calls -[WebView _drawHeaderAndFooter]
1251         
1252         * WebView.subproj/WebImageView.m:
1253         (-[WebImageView drawPageBorderWithSize:]):
1254         new method, just calls -[WebView _drawHeaderAndFooter]
1255         (-[WebImageView beginDocument]):
1256         now calls -[WebView _adjustPrintMarginsForHeaderAndFooter], also moved in file.
1257         (-[WebImageView endDocument]):
1258         just moved in file.
1259
1260         * WebView.subproj/WebTextView.m:
1261         (-[WebTextView drawPageBorderWithSize:]):
1262         new method, just calls -[WebView _drawHeaderAndFooter]        
1263         (-[WebTextView knowsPageRange:]):
1264         overridden to call -[WebView _adjustPrintMarginsForHeaderAndFooter]
1265         
1266         * WebKit.pbproj/project.pbxproj:
1267         updated for added files
1268
1269
1270 2004-01-28  Chris Blumenberg  <cblu@apple.com>
1271
1272         Fixed: <rdar://problem/3197222>: need context menu items for back, forward, refresh.
1273
1274         Reviewed by rjw.
1275
1276         * English.lproj/Localizable.strings:
1277         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1278         (-[WebDefaultUIDelegate menuItemWithTag:]): added support for WebMenuItemTagGoBack, WebMenuItemTagGoForward, WebMenuItemTagStop and WebMenuItemTagReload tags
1279         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): added support for Back, Forward, Stop and Reload
1280         * WebView.subproj/WebUIDelegate.h: added WebMenuItemTagGoBack, WebMenuItemTagGoForward, WebMenuItemTagStop and WebMenuItemTagReload tags
1281
1282 2004-01-27  John Sullivan  <sullivan@apple.com>
1283
1284         WebKit part of fixes for:
1285         <rdar://problem/3123975>: ER: please list the source URL in the header 
1286         or footer when printing the contents of a page
1287         <rdar://problem/3184091>: Safari - Configurable printing header/footer
1288         <rdar://problem/3306826>: Please allow printing the date (as well as URL) 
1289         in the header or footer
1290
1291         Reviewed by Dave.
1292
1293         * WebView.subproj/WebHTMLView.m:
1294         (-[WebHTMLView _headerHeight]):
1295         new method, gets result from WebView's UI delegate or returns 0
1296         (-[WebHTMLView _footerHeight]):
1297         new method, gets result from WebView's UI delegate or returns 0
1298         (-[WebHTMLView _drawHeaderInRect:]):
1299         new method, gives WebView's UI delegate a chance to draw header
1300         (-[WebHTMLView _drawFooterInRect:]):
1301         new method, gives WebView's UI delegate a chance to draw footer
1302         (-[WebHTMLView _adjustPrintingMarginsForHeaderAndFooter]):
1303         new method, adds header and footer heights into page margins so
1304         AppKit printing code will compute and use the right area
1305         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
1306         now calls _adjustPrintingMarginsForHeaderAndFooter if starting to print
1307         (-[WebHTMLView drawPageBorderWithSize:]):
1308         new method, computes rects for header and footer and calls new drawing methods
1309         
1310         * WebView.subproj/WebUIDelegatePrivate.h:
1311         add header and footer-related delegate methods
1312
1313 2004-01-27  Chris Blumenberg  <cblu@apple.com>
1314
1315         Fixed:
1316         <rdar://problem/3541812>: Implement Paste menu item
1317         <rdar://problem/3541814>: Implement Delete menu item
1318         <rdar://problem/3541811>: Implement Cut menu item
1319
1320         Reviewed by dave.
1321
1322         * WebView.subproj/WebHTMLView.m:
1323         (-[WebHTMLView _haveSelection]): new, renamed from hasSelection, calls haveSelection on the bridge, quicker than generating string rep of selection
1324         (-[WebHTMLView _canDelete]): new
1325         (-[WebHTMLView _canPaste]): new
1326         (-[WebHTMLView takeFindStringFromSelection:]): call renamed _haveSelection
1327         (-[WebHTMLView cut:]): new
1328         (-[WebHTMLView delete:]): new
1329         (-[WebHTMLView paste:]): new
1330         (-[WebHTMLView validateUserInterfaceItem:]): updated for new methods
1331         (-[WebHTMLView validRequestorForSendType:returnType:]): call renamed _haveSelection
1332         * WebView.subproj/WebHTMLViewPrivate.h:
1333
1334 2004-01-27  Chris Blumenberg  <cblu@apple.com>
1335
1336         Fixed build breakage.
1337
1338         Reviewed by darin.
1339
1340         * WebKit.pbproj/project.pbxproj: Use full path instead of -L to get at WebKitSecurity.a
1341
1342 2004-01-27  Chris Blumenberg  <cblu@apple.com>
1343
1344         Fixed: <rdar://problem/3536624>: Webkit 1.2 links against SecurityNssAsn1.framework
1345
1346         Reviewed by Darin.
1347
1348         * WebCoreSupport.subproj/WebKeyGeneration.h: Set DISABLE_WEB_KEY_GENERATION on Merlot for now.
1349         Then don't include anything if that's set.
1350         * WebCoreSupport.subproj/WebKeyGeneration.cpp: Don't compile anything if DISABLE_WEB_KEY_GENERATION
1351         is set.
1352         * WebCoreSupport.subproj/WebKeyGenerator.m:
1353         (-[WebKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]):
1354         Always return nil if DISABLE_WEB_KEY_GENERATION is set.
1355         (-[WebKeyGenerator addCertificatesToKeychainFromData:]): Always return failure if
1356         DISABLE_WEB_KEY_GENERATION is set.
1357
1358         * WebKit.pbproj/project.pbxproj: Added shell build step to make library with security
1359         libraries in it. On Merlot, makes empty library. Also added library to link options.
1360         * WebKitSecurityDummy.c: Added. Used to make empty version of library for build on Merlot.
1361
1362 2004-01-26  Darin Adler  <darin@apple.com>
1363
1364         * Makefile.am: Switch from pbxbuild to xcodebuild.
1365
1366 2004-01-26  Darin Adler  <darin@apple.com>
1367
1368         Reviewed by John.
1369
1370         - fixed <rdar://problem/3521379>: image dimensions uses lowercase x instead of multiplication sign
1371
1372         * WebView.subproj/WebImageRepresentation.m: (-[WebImageRepresentation title]):
1373         Change string to use multiplication sign instead of x.
1374         * English.lproj/Localizable.strings: Updated.
1375
1376 2004-01-23  Ken Kocienda  <kocienda@apple.com>
1377
1378         Reviewed by Richard
1379
1380         * WebView.subproj/WebHTMLView.m:
1381         (-[WebHTMLView updateShowsFirstResponder]): Renamed from updateFocusRing:
1382         since it is now used to kill caret blink timer.
1383         (-[WebHTMLView windowDidBecomeKey:]): Now calls new updateShowsFirstResponder
1384         method.
1385         (-[WebHTMLView windowDidResignKey:]): Ditto.
1386
1387 2004-01-22  Chris Blumenberg  <cblu@apple.com>
1388
1389         Fixed: <rdar://problem/3537542>: support for copying HTML
1390
1391         Reviewed by dave.
1392
1393         * WebView.subproj/WebHTMLRepresentation.h:
1394         * WebView.subproj/WebHTMLRepresentation.m:
1395         (-[WebHTMLRepresentation reconstructedSource]): for BLOT's eventual use
1396         * WebView.subproj/WebHTMLView.m:
1397         (+[WebHTMLView _pasteboardTypes]): provide NSHTMLPboardType 
1398         (-[WebHTMLView _writeSelectionToPasteboard:]): add HTML to the pasteboard
1399
1400 2004-01-22  John Sullivan  <sullivan@apple.com>
1401
1402         Reviewed by Chris.
1403
1404         * English.lproj/StringsNotToBeLocalized.txt:
1405         brought this file back up to date
1406
1407 2004-01-22  Darin Adler  <darin@apple.com>
1408
1409         - fixed 3536624: Webkit 1.2 links against SecurityNssAsn1.framework
1410
1411         * WebKit.pbproj/project.pbxproj: Remove SecurityNssAsn1.framework from the list we link against.
1412         It's still included in the list for places to find headers.
1413
1414 === Safari-125 ===
1415
1416 === Safari-124 ===
1417
1418 2004-01-15  Vicki Murley  <vicki@apple.com>
1419
1420         Reviewed by Darin.
1421
1422         * WebKit.pbproj/project.pbxproj: Update copyright date to 2004.
1423         * English.lproj/InfoPlist.strings: Update copyright date to 2004.
1424
1425 === Safari-122 ===
1426
1427 === Safari-121 ===
1428
1429 2004-01-10  Darin Adler  <darin@apple.com>
1430
1431         Reviewed by John.
1432
1433         - fixed 3524906: REGRESSION (114-115): page with plug-in content never stops loading (travelking.com.tw)
1434
1435         Put the plug-in streams clients into their own separate set. Now a plug-in client is not considered part
1436         of "loading", but it does participate in the callback deferral mechanism, which was the real goal of the
1437         change I made that introduced this regression. Also remove the plug-in client in one case I had missed
1438         before (cancel).
1439
1440         * WebView.subproj/WebDataSourcePrivate.h: Added a new set of plugInStreamClients.
1441         * WebView.subproj/WebDataSource.m:
1442         (-[WebDataSourcePrivate dealloc]): Release the set.
1443         (-[WebDataSource _addPlugInStreamClient:]): Added. Adds to the set.
1444         (-[WebDataSource _removePlugInStreamClient:]): Added. Removes from the set.
1445         (-[WebDataSource _defersCallbacksChanged]): Added code to loop through plugInStreamClients too.
1446
1447         * Plugins.subproj/WebNetscapePluginStream.m:
1448         (-[WebNetscapePluginStream start]): Use _add/removePlugInStreamClient instead of _add/removeSubresourceClient.
1449         (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): Ditto.
1450         (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): Ditto.
1451         (-[WebNetscapePluginConnectionDelegate cancelWithError:]): Override to call _removePlugInStreamClient and
1452         then call super.
1453
1454 2004-01-09  Darin Adler  <darin@apple.com>
1455
1456         - rolled out most of Dave's change for 3510669 and 3515442; it is not working yet
1457
1458         * WebView.subproj/WebHTMLViewPrivate.h:
1459         * WebView.subproj/WebHTMLView.m:
1460
1461 2004-01-09  Maciej Stachowiak  <mjs@apple.com>
1462
1463         Reviewed by Chris.
1464
1465         <rdar://problem/3514446>: cert downloaded from BofA or MIT is rejected (ACL issue on private key?)
1466         
1467         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
1468         (createPair): Cut & paste hunk of code from Security framework.
1469         (Safari_SecKeyCreatePair): Ditto.
1470         (signedPublicKeyAndChallengeString): Instead of creating a normal ACL,
1471         use our hacked version of the SecKeyCreatePair call that doesn't put in
1472         any kind of ACL. This works around a SecureTransport bug.
1473
1474 2004-01-09  David Hyatt  <hyatt@apple.com>
1475
1476         Fixes for 3510669 and 3515442, blank frame problems caused by WebKit's resizing not scheduling actual
1477         layouts via WebCore.
1478         
1479         Reviewed by darin
1480
1481         * WebView.subproj/WebHTMLView.m:
1482         (-[WebHTMLView _web_layoutIfNeededRecursive:testDirtyRect:]):
1483         (-[WebHTMLView initWithFrame:]):
1484         (-[WebHTMLView layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
1485         (-[WebHTMLView setNeedsLayout:]):
1486         * WebView.subproj/WebHTMLViewPrivate.h:
1487
1488 2004-01-09  Darin Adler  <darin@apple.com>
1489
1490         Reviewed by Chris.
1491
1492         - fixed 3510805: "PoolCleaner" in Carbon WebKit leads to overrelease and crash using color picker in BBEdit
1493
1494         * Carbon.subproj/CarbonUtils.m: (PoolCleaner): Only do the autorelease
1495         pool stuff in the default run loop mode. If we're in another run loop
1496         mode that means we are in some Cocoa code that sets up its own autorelease
1497         pool; it's important that we don't release ours in that case.
1498
1499 2004-01-08  Maciej Stachowiak  <mjs@apple.com>
1500
1501         Reviewed by John.
1502
1503         <rdar://problem/3522298>: Error on MIT's x509 certificate site
1504
1505         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
1506         (addCertificatesToKeychainFromData): Sign the freshly minted public key
1507         using RSA/MD5 instead of RSA/SHA-1, because MIT only supports MD5.
1508
1509 2004-01-08  Richard Williamson   <rjw@apple.com>
1510
1511         Fixed 3524430.  This was a regression introduced when we added '-' and '?' to the word boundary detection.
1512
1513         Also backed out workaround for 3521759 as it's no longer needed with correct argument passing to ATSUPositionToOffset.
1514
1515         Reviewed by Hyatt.
1516
1517         * WebCoreSupport.subproj/WebTextRenderer.m:
1518         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):
1519         (widthForNextCharacter):
1520
1521 2004-01-08  Chris Blumenberg  <cblu@apple.com>
1522
1523         Fixed: <rdar://problem/3522900>: REGRESSION (100-117): Java plug-in description is garbled when displaying Plug-ins.html
1524
1525         Reviewed by darin.
1526
1527         * Misc.subproj/WebKitNSStringExtras.h:
1528         * Misc.subproj/WebKitNSStringExtras.m:
1529         (+[NSString _web_encodingForResource:]): new method, returns the encoding for a resource handle given its file system path
1530         * Plugins.subproj/WebNetscapePluginPackage.m:
1531         (-[WebNetscapePluginPackage stringForStringListID:andIndex:]): call _web_encodingForResource when creating the NSString
1532
1533 === Safari-120 ===
1534
1535 2004-01-06  Richard Williamson   <rjw@apple.com>
1536
1537         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).
1538
1539         Reviewed by John.
1540
1541         * WebCoreSupport.subproj/WebTextRenderer.m:
1542         (-[WebTextRenderer _createATSUTextLayoutForRun:]):
1543
1544 2004-01-05  Richard Williamson   <rjw@apple.com>
1545
1546         Fix for 3514454.  Work-around added for 3521759.
1547
1548         Filed 3521781 to cover deeper problem.
1549
1550         Reviewed by Kocienda.
1551
1552         * WebCoreSupport.subproj/WebTextRenderer.m:
1553         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:atPoint:]):
1554         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):
1555
1556 2003-12-22  John Sullivan  <sullivan@apple.com>
1557
1558         - WebKit part of fix for <rdar://problem/3515706>: 
1559         REGRESSION (100-118): Web Kit printing does not honor Page Setup scale factor
1560
1561         Reviewed by Darin.
1562
1563         * WebView.subproj/WebHTMLView.m:
1564         (-[WebHTMLView _userScaleFactorForPrintOperation:]):
1565         new method, extracts the scale factor provided by the user in
1566         the Page Setup dialog
1567         (-[WebHTMLView _scaleFactorForPrintOperation:]):
1568         take user scale factor into account
1569         (-[WebHTMLView knowsPageRange:]):
1570         renamed local var scaleFactor -> totalScaleFactor for clarity;
1571         take user scale factor into account for print width; now assumes
1572         computePageRects returns autoreleased result.
1573
1574         * WebKit.pbproj/project.pbxproj:
1575         Xcode version wars; Darin says these don't affect the build.
1576
1577 2003-12-21  Darin Adler  <darin@apple.com>
1578
1579         Reviewed by John.
1580
1581         - fixed a storage leak
1582
1583         * WebView.subproj/WebFrame.m:
1584         (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
1585         Move the release of the request out of an if statement, since it's always needed.
1586
1587 2003-12-19  Chris Blumenberg  <cblu@apple.com>
1588
1589         Fixed: <rdar://problem/3515255>: Standalone image drag makes ocassionally makes 2 copies
1590
1591         Reviewed by john.
1592
1593         * WebKit.pbproj/project.pbxproj: Xcode 1.1 file format change
1594         * WebView.subproj/WebImageView.h:
1595         * WebView.subproj/WebImageView.m: copied double-drag protection code from WebHTMLView
1596         (-[WebImageView mouseDown:]): set ignoringMouseDraggedEvents to NO
1597         (-[WebImageView mouseDragged:]): if ignoringMouseDraggedEvents, return
1598         (-[WebImageView draggedImage:endedAt:operation:]): set ignoringMouseDraggedEvents to YES
1599
1600 === Safari-119 ===
1601
1602 2003-12-18  Richard Williamson   <rjw@apple.com>
1603
1604         Fixed 3511415.  We have to un-visually order visually ordered text
1605         before passing to ATSU.
1606
1607         Reviewed by John.
1608
1609         * WebCoreSupport.subproj/WebTextRenderer.m:
1610         (reverseCharactersInRun):
1611         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:atPoint:]):
1612         (-[WebTextRenderer _ATSU_drawRun:style:atPoint:]):
1613         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):
1614
1615 2003-12-17  Richard Williamson   <rjw@apple.com>
1616
1617         Fixed 3503011 (really, this time).  Always use integer width for '-' and '?', as we do for spaces, to ensure
1618         that 'words' (as defined by out rounding hack) start on integer boundaries.
1619
1620         Reviewed by John.
1621
1622         * WebCoreSupport.subproj/WebTextRenderer.m:
1623         (widthForNextCharacter):
1624
1625 2003-12-17  Chris Blumenberg  <cblu@apple.com>
1626
1627         Fixed:
1628         <rdar://problem/3393758>: REGRESSION (85-100): Flash onKeyUp event non-functional
1629         <rdar://problem/3479020>: REGRESSION (85-100): Safari sends plug-in key events to wrong instance of plug-in
1630
1631         Reviewed by darin.
1632
1633         * Plugins.subproj/WebBaseNetscapePluginView.h:
1634         * Plugins.subproj/WebBaseNetscapePluginView.m:
1635         (-[WebBaseNetscapePluginView sendEvent:]): set suspendKeyUpEvents to NO
1636         (-[WebBaseNetscapePluginView keyMessageForEvent:]): copied from CVS
1637         (-[WebBaseNetscapePluginView keyUp:]): if !suspendKeyUpEvents, send the keyUp event
1638         (-[WebBaseNetscapePluginView keyDown:]): set suspendKeyUpEvents to YES
1639         (-[WebBaseNetscapePluginView windowBecameKey:]): call SetUserFocusWindow
1640
1641 2003-12-17  Darin Adler  <darin@apple.com>
1642
1643         Reviewed by Richard.
1644
1645         - fixed 3513274: REGRESSION: anchor navigation within frames with "Back" is broken at tivofaq.com
1646
1647         * WebView.subproj/WebDataSource.m: (-[WebDataSource _setURL:]):
1648         Since this method is only used when you do a fragment scroll, we need to update
1649         the original request as well as the request. This ensure that the fragment gets
1650         recorded in the history item (which goes in the back/forward history).
1651
1652 === Safari-118 ===
1653
1654 2003-12-17  John Sullivan  <sullivan@apple.com>
1655
1656         - fixed <rdar://problem/3512801>: REGRESSION (Safari 100-116): 
1657         Mike Hay's Magic 8-ball game ignores slow clicks
1658
1659         Reviewed by Darin.
1660
1661         * WebView.subproj/WebHTMLView.m:
1662         (-[WebHTMLView _handleAutoscrollForMouseDragged:]):
1663         start the autoscroll timer here, so the timer only runs when KHTML is
1664         handling the event.
1665         (-[WebHTMLView mouseDown:]):
1666         don't start the autoscroll timer here.
1667
1668 2003-12-16  Ken Kocienda  <kocienda@apple.com>
1669
1670         * WebCoreSupport.subproj/WebBridge.m: ObjC runtime needs a declaration for new
1671         _calculatedExpiration SPI in NSURLResponse in Foundation
1672
1673 2003-12-16  Richard Williamson   <rjw@apple.com>
1674
1675         Fixed 3512348:  Rewrote _CG_drawHighlightForRun:style:atPoint: to use width
1676         iterators.  Much faster, better cheaper, etc.
1677
1678         Reviewed by Dave.
1679
1680         * WebCoreSupport.subproj/WebTextRenderer.m:
1681         (-[WebTextRenderer _CG_drawHighlightForRun:style:atPoint:]):
1682
1683 2003-12-16  Richard Williamson   <rjw@apple.com>
1684
1685         Fixed 3503011.  Added '-' and '?' to rounding hack.
1686
1687         Reviewed by John.
1688
1689         * WebCoreSupport.subproj/WebTextRenderer.m:
1690         (isRoundingHackCharacter):
1691         (widthForNextCharacter):
1692
1693 2003-12-16  Darin Adler  <darin@apple.com>
1694
1695         Reviewed by Richard.
1696
1697         - finished fix to 3109132: can't open movie file via open panel
1698
1699         * WebView.subproj/WebView.m: (+[WebView _supportedFileExtensions]):
1700         Include all the extensions for each MIME type, not jus the preferred one.
1701
1702 2003-12-16  Ken Kocienda  <kocienda@apple.com>
1703
1704         Reviewed by Darin
1705
1706         Fix for this bug:
1707
1708         <rdar://problem/3512199>: WebBridge expiresTimeForResponse can be 
1709         improved to use better expiration calculations
1710
1711         * WebCoreSupport.subproj/WebBridge.m:
1712         (-[WebBridge expiresTimeForResponse:]): Switch to use new 
1713         _calculatedExpiration SPI method on NSURLResponse.
1714
1715 2003-12-15  Chris Blumenberg  <cblu@apple.com>
1716
1717         Fixed: <rdar://problem/3505546>: always get keychain prompt when sending mail using cert downloaded with Safari
1718
1719         Reviewed by john.
1720
1721         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
1722         (signedPublicKeyAndChallengeString): set up the SecAccessRef with "everything goes" restrictions
1723
1724 2003-12-14  Darin Adler  <darin@apple.com>
1725
1726         Reviewed by Maciej.
1727
1728         - fixed 3311205: click() on a file input type form element does not work bring up the file chooser as it does in IE
1729
1730         * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton performClick]):
1731         Add method for clicking, now part of the WebCoreFileButton protocol.
1732         The rest of the fix is in WebCore.
1733
1734 2003-12-13  Darin Adler  <darin@apple.com>
1735
1736         Fixed by Ed Voas, reviewed by me.
1737
1738         - fixed 3278443: CARBON: grow box obscures scroll bar knob
1739
1740         * Carbon.subproj/CarbonWindowAdapter.m: (-[CarbonWindowAdapter _growBoxRect]):
1741         Return the grow box so AppKit's scroll bar code will know where it is.
1742
1743 2003-12-12  Ken Kocienda  <kocienda@apple.com>
1744
1745         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
1746         (signedPublicKeyAndChallengeString): Fix build-bustin' typo.
1747
1748 2003-12-12  Chris Blumenberg  <cblu@apple.com>
1749
1750         Fixed:
1751         <rdar://problem/3396936>: can't obtain a digital ID from Verisign, form submission fails
1752         <rdar://problem/3505208>: keys added to keychain from KEYGEN need better UI names
1753
1754         Reviewed by rjw.
1755
1756         * English.lproj/Localizable.strings:
1757         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
1758         (signedPublicKeyAndChallengeString): take a key description arg and use it, take and return CFStrings, handle the empty string case
1759         (addCertificatesToKeychainFromData): return a WebCertificateParseResult so WB knows how to handle the cert
1760         * WebCoreSupport.subproj/WebKeyGeneration.h:
1761         * WebCoreSupport.subproj/WebKeyGenerator.h:
1762         * WebCoreSupport.subproj/WebKeyGenerator.m:
1763         (-[WebKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]): take a page URL so we can use its host name in the key description
1764         * WebKit.pbproj/project.pbxproj:
1765
1766 2003-12-12  Vicki Murley  <vicki@apple.com>
1767
1768         Reviewed by NOBODY (OOPS!).
1769
1770         * WebKit.pbproj/project.pbxproj:
1771
1772 2003-12-12  Vicki Murley  <vicki@apple.com>
1773
1774         Reviewed by NOBODY (OOPS!).
1775
1776         * WebKit.pbproj/project.pbxproj:
1777
1778 2003-12-12  Vicki Murley  <vicki@apple.com>
1779
1780         Reviewed by NOBODY (OOPS!).
1781
1782         * WebKit.pbproj/project.pbxproj:
1783
1784 2003-12-11  Ken Kocienda  <kocienda@apple.com>
1785
1786         Reviewed by Darin
1787
1788         Fix for this bug:
1789
1790         <rdar://problem/3489280>: redirect via post blows cache, causing everything to get reloaded
1791
1792         Now POST requests reload the main document by default, but will not reload 
1793         all subresources.
1794
1795         * WebCoreSupport.subproj/WebSubresourceClient.m:
1796         (+[WebSubresourceClient startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
1797         * WebView.subproj/WebFrame.m:
1798         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
1799         Take the cache policy for subresources from the original request, rather than
1800         the data source's current request. 
1801         * WebView.subproj/WebMainResourceClient.m:
1802         (-[WebMainResourceClient _isPostOrRedirectAfterPost:redirectResponse:]): New helper.
1803         (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
1804         Call new helper to set the cache policy on the main resource load.
1805
1806 === Safari-117 ===
1807
1808 2003-12-11  Ken Kocienda  <kocienda@apple.com>
1809
1810         Reviewed by Darin
1811
1812         * WebCoreSupport.subproj/WebBridge.m: time_t is a signed type, so
1813         casting -1 to a time_t does not work to make a max value.
1814         We'll go with INT_MAX.
1815
1816 2003-12-11  Ken Kocienda  <kocienda@apple.com>
1817
1818         Reviewed and C++ heavy-lifting by Darin
1819
1820         Fix warnings in C++ files.
1821
1822         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
1823         (signedPublicKeyAndChallengeString): Add cast to remove warning.
1824         (addCertificatesToKeychainFromData): Add cast to remove warning.
1825         * WebKit.pbproj/project.pbxproj: Add back warnings to C++ files.
1826         * WebKitPrefix.h: Add define for NULL that works for C++.
1827
1828 2003-12-09  Ken Kocienda  <kocienda@apple.com>
1829
1830         Reviewed by Darin
1831         
1832         <rdar://problem/3505444>: WebCore cache does not use expiration dates on cache items
1833         
1834         * WebCoreSupport.subproj/WebBridge.m:
1835         (-[WebBridge expiresTimeForResponse:]): New method. Call response
1836         freshness lifetime method and add it to the current time to yield
1837         an expiration time.
1838
1839 2003-12-10  Maciej Stachowiak  <mjs@apple.com>
1840
1841         Reviewed by Richard.
1842
1843         WebKit part of fix for:
1844
1845         <rdar://problem/3487160>: Implement synchronous loading for XMLHttpRequest
1846
1847         * WebCoreSupport.subproj/WebBridge.m:
1848         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
1849
1850 2003-12-10  Richard Williamson   <rjw@apple.com>
1851
1852         Added method to get to the bridge from a view.  This is
1853         used to ultimately get the part and KJS::Window for a
1854         particular applet.
1855
1856         Reviewed by Hyatt.
1857
1858         * WebCoreSupport.subproj/WebViewFactory.m:
1859         (-[WebViewFactory refreshPlugins:]):
1860         (-[WebViewFactory bridgeForView:]):
1861
1862 2003-12-10  John Sullivan  <sullivan@apple.com>
1863
1864         - WebKit part of fix for:
1865         <rdar://problem/3505231>: REGRESSION (100-114): Some sites autoscroll to bottom of page when loading
1866
1867         Reviewed by Darin
1868
1869         * Misc.subproj/WebNSViewExtras.h:
1870         * Misc.subproj/WebNSViewExtras.m:
1871         removed _web_scrollPointToVisible:fromView:
1872         
1873         * WebView.subproj/WebHTMLView.m:
1874         (-[WebHTMLView scrollPoint:]):
1875         removed call to _web_scrollPointToVisible:fromView:
1876
1877 2003-12-10  Chris Blumenberg  <cblu@apple.com>
1878
1879         Fixed: <rdar://problem/3505537>: certificates downloaded from Verisign are multipart/mixed, must be parsed out
1880
1881         Reviewed by kocienda.
1882
1883         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
1884         (signedPublicKeyAndChallengeString): tweak
1885         (addCertificateToKeychainFromData): renamed to use lowercase "c" in "keychain"
1886         (addCertificatesToKeychainFromData): take data instead of a path to a file
1887         * WebCoreSupport.subproj/WebKeyGeneration.h:
1888         * WebCoreSupport.subproj/WebKeyGenerator.h:
1889         * WebCoreSupport.subproj/WebKeyGenerator.m:
1890         (-[WebKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:]): added temporary workaround for 3396936
1891
1892 2003-12-09  Chris Blumenberg  <cblu@apple.com>
1893
1894         Fixed: <rdar://problem/3504237>: add downloaded certificates to keychain
1895
1896         Reviewed by darin.
1897
1898         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
1899         (signedPublicKeyAndChallengeString):
1900         (addCertificateToKeyChainFromData): new
1901         (addCertificateToKeyChainFromFile): new
1902         * WebCoreSupport.subproj/WebKeyGeneration.h:
1903         * WebCoreSupport.subproj/WebKeyGenerator.h:
1904         * WebCoreSupport.subproj/WebKeyGenerator.m:
1905         (-[WebKeyGenerator addCertificateToKeyChainFromFileAtPath:]): new
1906         * WebKit.exp:
1907         * WebKit.pbproj/project.pbxproj: made WebKeyGenerator.h private
1908
1909 2003-12-09  John Sullivan  <sullivan@apple.com>
1910
1911         - fixed <rdar://problem/3504907>: REGRESSION (100-116): 
1912         Clicking QuickTime-requiring link twice crashes (wholenote.com)
1913
1914         I found the bug; Darin wrote the fix; I reviewed and tested.
1915
1916         * Plugins.subproj/WebNetscapePluginPackage.m:
1917         (-[WebNetscapePluginPackage stringForStringListID:andIndex:]):
1918         Rewrote this method to not use GetIndString, because GetIndString looks
1919         at all open resource files and in this case was reading information from
1920         the wrong plugin file.
1921
1922 2003-12-08  Chris Blumenberg  <cblu@apple.com>
1923
1924         Fixed: <rdar://problem/3234676>: Support for KEYGEN tag (ie 509 email certificates from www.thawte.com)
1925
1926         Reviewed by mjs.
1927
1928         * WebCoreSupport.subproj/WebKeyGeneration.cpp: Added.
1929         (gnrAddContextAttribute): new
1930         (gnrGetSubjPubKey): new
1931         (gnrNullAlgParams): new
1932         (gnrSign): new
1933         (gnrFreeCssmData): new
1934         (signedPublicKeyAndChallengeString): new
1935         * WebCoreSupport.subproj/WebKeyGeneration.h: Added.
1936         * WebCoreSupport.subproj/WebKeyGenerationFactory.h: Added. Renamed from WebLocalizedStringFactory.
1937         * WebCoreSupport.subproj/WebKeyGenerationFactory.m: Added.
1938         (+[WebKeyGenerationFactory createSharedFactory]): no change
1939         (-[WebKeyGenerationFactory dealloc]): no change
1940         (-[WebKeyGenerationFactory strengthMenuItemTitles]): new
1941         (-[WebKeyGenerationFactory signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:]): new
1942         * WebCoreSupport.subproj/WebLocalizedStringFactory.h: Removed.
1943         * WebCoreSupport.subproj/WebLocalizedStringFactory.m: Removed.
1944         * WebCoreSupport.subproj/WebNetscapeTemplates.cpp: Added.
1945         * WebCoreSupport.subproj/WebNetscapeTemplates.h: Added.
1946         * WebKit.pbproj/project.pbxproj:
1947         * WebKitPrefix.h:
1948         * WebView.subproj/WebFrameView.m:
1949
1950 2003-12-05  John Sullivan  <sullivan@apple.com>
1951
1952         - fixed <rdar://problem/3491427>: REGRESSION (100-114): multi-page HTML 
1953         content in Mail is blank when printed
1954
1955         Darin and I figured this one out.
1956
1957         Reviewed by Ken.
1958
1959         * WebView.subproj/WebHTMLView.m:
1960         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
1961         Don't call setNeedsDisplay:NO when we're turning printing on, as doing so prevents
1962         anything from drawing in the case where this is called from 
1963         adjustPageHeightsNew:top:bottom:limit
1964
1965 2003-12-05  Darin Adler  <darin@apple.com>
1966
1967         Reviewed by John.
1968
1969         - fixed regression in small caps with substituted fonts my patch from yesterday caused
1970         - fixed 3463599: if Lucida font is installed, you see bad glyphs on pages that use it (advogato.org)
1971         - fixed storage leak if a renderer is ever deallocated (I don't think we ever do that)
1972         - fixed some small leaks in various error cases by adding appropriate free and dispose calls
1973
1974         * WebCoreSupport.subproj/WebTextRenderer.m:
1975         (-[WebTextRenderer dealloc]): Free the Unicode glyph map too.
1976         (fontContainsString): Moved inline function up here so it will be inlined.
1977         (-[WebTextRenderer _setupFont]): Free the glyph map and set it back to zero if we fail after
1978         extending the glyph map to include space. This fixes the "wrong glyph codes" bug with Lucida above.
1979         (-[WebTextRenderer _extendUnicodeCharacterToGlyphMapToInclude:]): Add free calls needed to avoid
1980         storage leaks in failure cases.
1981         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]): Ditto.
1982         (-[WebTextRenderer _initializeATSUStyle]): Add ATSUDisposeStyle to fix storage leak.
1983         (freeWidthMap): Use a loop instead of recursion.
1984         (freeGlyphMap): Use a loop instead of recursion.
1985         (freeUnicodeGlyphMap): Added.
1986         (widthForNextCharacter): Don't use the original characters or cluster length, because the
1987         character may have been capitalized for use in small caps rendering. So check the character
1988         for <= 0xFFFF instead of looking at clusterLength, and break the character into a local array
1989         instead of using the original character pointer.
1990
1991 2003-12-04  Darin Adler  <darin@apple.com>
1992
1993         Reviewed by Richard.
1994
1995         - fixed 3497879: REGRESSION (100-115): all non-BMP characters (including Deseret) are broken
1996
1997         * WebCoreSupport.subproj/WebTextRenderer.m:
1998         (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:]): Bump offset by getting it from
1999         the iterator; don't assume we can just bump it by one each time. It would be even nicer to have
2000         a bit more abstraction.
2001         (initializeCharacterWidthIterator): Remove call to initializeCharacterShapeIterator.
2002         (widthForNextCharacter): Move handling of surrogate pairs (non-BMP) in here and unify it with
2003         the handling of BMP characters; this removes the broken code that was returning the wrong font,
2004         and changes us to use the code that was already doing the right thing for the surrogate pair case.
2005         Also get rid of the use of 0 width to mean "no glyph", which fixes the doubled glyph problem.
2006         Also got rid of remnants of use of the shape iterator.
2007
2008         * Misc.subproj/WebUnicode.h: Remove obsolete shape iterator.
2009         * Misc.subproj/WebUnicode.m: Ditto.
2010
2011 === Safari-116 ===
2012
2013 2003-12-04  Darin Adler  <darin@apple.com>
2014
2015         Reviewed by Ken.
2016
2017         - fixed 3498426: assertion failure in tooltip code at macosx.apple.com
2018
2019         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _setToolTip:]): Work around
2020         the apparent bug in AppKit (3500217) that causes it to return 0 for the tool tip
2021         tag by using removeAllToolTips and not storing the tag at all. Besides the assertion
2022         failure there may also be a symptom of a "stuck" tool tip and a small memory
2023         leak until the window is closed.
2024         * WebView.subproj/WebHTMLViewPrivate.h: Remove unused toolTipTag.
2025
2026 2003-12-02  Chris Blumenberg  <cblu@apple.com>
2027
2028         Fixed:
2029         <rdar://problem/3439222>: always hangs opening plain text file on a particular machine due to missing font, no UI to detect
2030         <rdar://problem/3492983>: Certain fonts cause Safari to hang on text/plain pages
2031
2032         Reviewed by rjw.
2033
2034         * WebView.subproj/WebTextView.m:
2035         (-[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 
2036
2037
2038 non-nil is returned.
2039
2040 2003-11-21  Maciej Stachowiak  <mjs@apple.com>
2041
2042         Reviewed by Richard.
2043
2044         <rdar://problem/3487185>: implement security checks for XMLHttpRequest
2045         
2046         * WebCoreSupport.subproj/WebSubresourceClient.m:
2047         (-[WebSubresourceClient connection:willSendRequest:redirectResponse:]): Let
2048         WebCore know about redirects.
2049
2050 2003-12-01  Richard Williamson   <rjw@apple.com>
2051
2052         Moved grungy polling code from WebKit to the JavaPlugin.
2053
2054         Reviewed by Chris.
2055
2056         * WebCoreSupport.subproj/WebBridge.m:
2057         (-[WebBridge pollForAppletInView:]):
2058
2059 2003-12-01  Ken Kocienda  <kocienda@apple.com>
2060
2061         Reviewed by John
2062
2063         Fix for this bug:
2064
2065         <rdar://problem/3496873>: Move key event helper functions to WebKit
2066
2067         * Misc.subproj/WebNSEventExtras.h: Add declarations for new key event
2068         helpers.
2069         * Misc.subproj/WebNSEventExtras.m:
2070         (-[NSEvent _web_isKeyEvent:]): Added.
2071         (-[NSEvent _web_isDeleteKeyEvent]): Added.
2072         (-[NSEvent _web_isEscapeKeyEvent]): Added.
2073         (-[NSEvent _web_isOptionTabKeyEvent]): Added.
2074         (-[NSEvent _web_isReturnOrEnterKeyEvent]): Added.
2075         (-[NSEvent _web_isTabKeyEvent]): Added.
2076         * WebKit.pbproj/project.pbxproj: Made WebNSEventExtras.h a private header
2077         so WebBrowser can use the new helpers.
2078
2079 === Safari-115 ===
2080
2081 2003-11-21  Maciej Stachowiak  <mjs@apple.com>
2082
2083         Reviewed by Ken.
2084
2085         WebKit part of fix for:
2086         
2087         <rdar://problem/3487134>: Implement http request/response status and headers for XMLHttpRequest
2088         
2089         * WebCoreSupport.subproj/WebBridge.m:
2090         (-[WebBridge startLoadingResource:withURL:customHeaders:]): Added customHeaders
2091         parameter.
2092         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]): Ditto.
2093         * WebCoreSupport.subproj/WebSubresourceClient.h:
2094         * WebCoreSupport.subproj/WebSubresourceClient.m:
2095         (+[WebSubresourceClient startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]): Add the custom headers.
2096         (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:referrer:forDataSource:]): Pass along the custom headers.
2097         (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]): Pass along the custom headers.
2098
2099 2003-11-21  John Sullivan  <sullivan@apple.com>
2100
2101         - WebKit part of fix for <rdar://problem/3333744>: Safari prints page with 
2102         very, very long line very, very small
2103
2104         Reviewed by Ken.
2105
2106         * WebView.subproj/WebHTMLView.m:
2107         renamed PrintingExtraWidthFactor to PrintingMinimumShrinkFactor, added
2108         PrintingMaximumShrinkFactor of 2.0, which matches IE
2109         (-[WebHTMLView layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
2110         now takes a min and max page width; passes them along to bridge
2111         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
2112         now takes a min and max page width; passes them along to layoutTo...
2113         (-[WebHTMLView _scaleFactorForPrintOperation:]):
2114         now takes PrintingMaximumScaleFactor into account
2115         (-[WebHTMLView knowsPageRange:]):
2116         now takes PrintingMaximumScaleFactor into account
2117
2118         (-[WebHTMLView layout]):
2119         pass 0 for maximumPageWidth when passing 0 for minimumPageWidth
2120         (-[WebHTMLView adjustPageHeightNew:top:bottom:limit:]):
2121         ditto
2122         (-[WebHTMLView _web_setPrintingModeRecursive]):
2123         ditto
2124         (-[WebHTMLView _web_clearPrintingModeRecursive]):
2125         ditto
2126         (-[WebHTMLView endDocument]):
2127         ditto
2128
2129 2003-11-20  John Sullivan  <sullivan@apple.com>
2130
2131         - WebKit part of <rdar://problem/3183124>: Support page-break-before/after with a value of "always"
2132
2133         Dave and I wrote and reviewed this.
2134
2135         * WebView.subproj/WebHTMLView.m:
2136         (-[WebHTMLView _setPrinting:pageWidth:adjustViewSize:]):
2137         reset page rects when printing status changes
2138         (-[WebHTMLView _availablePaperWidthForPrintOperation:]):
2139         new helper method to compute paper width taking margins into account
2140         (-[WebHTMLView _scaleFactorForPrintOperation:]):
2141         new helper method to compute how much we need to shrink to fit one page across
2142         (-[WebHTMLView _provideTotalScaleFactorForPrintOperation:]):
2143         we overrode this secret internal AppKit method to make shrink-to-fit work;
2144         we wrote bug 3491344 about the need for this to be public.
2145         (-[WebHTMLView knowsPageRange:]):
2146         new method, computes rects and returns YES
2147         (-[WebHTMLView rectForPage:]):
2148         new method, returns rect computed above
2149         (-[WebHTMLView _calculatePrintHeight]):
2150         new method, used by knowsPageRange
2151         
2152         * WebView.subproj/WebHTMLViewPrivate.h:
2153         new pageRects ivar
2154
2155 2003-11-20  Maciej Stachowiak  <mjs@apple.com>
2156
2157         Reviewed by Ken.
2158
2159         - fixed 3490086 - support http post for XMLHttpRequest
2160         
2161         * WebCoreSupport.subproj/WebBridge.m:
2162         (-[WebBridge startLoadingResource:withURL:postData:]):
2163         * WebCoreSupport.subproj/WebSubresourceClient.h:
2164         * WebCoreSupport.subproj/WebSubresourceClient.m:
2165         (+[WebSubresourceClient startLoadingResource:withRequest:referrer:forDataSource:]):
2166         (+[WebSubresourceClient startLoadingResource:withURL:referrer:forDataSource:]):
2167         (+[WebSubresourceClient startLoadingResource:withURL:postData:referrer:forDataSource:]):
2168
2169 2003-11-20  Chris Blumenberg  <cblu@apple.com>
2170
2171         Fixed: <rdar://problem/3491229>: Need UI and localized strings for <KEYGEN> support
2172
2173         Reviewed by john.
2174
2175         * ChangeLog:
2176         * English.lproj/Localizable.strings:
2177         * WebCoreSupport.subproj/WebLocalizedStringFactory.h: Added.
2178         * WebCoreSupport.subproj/WebLocalizedStringFactory.m: Added.
2179         (+[WebLocalizedStringFactory createSharedFactory]): new
2180         (-[WebLocalizedStringFactory dealloc]): new
2181         (-[WebLocalizedStringFactory keyGenerationMenuItemTitles]): new
2182         * WebKit.pbproj/project.pbxproj:
2183         * WebView.subproj/WebFrameView.m: call [WebLocalizedStringFactory createSharedFactory]
2184
2185 2003-11-20  Richard Williamson   <rjw@apple.com>
2186
2187         Added spin of event loop during applet lookup poll.  This
2188         is necessary to allow timers and performOnMainThread: methods
2189         a chance to fire.  The plugin depends on these mechanisms during
2190         initialization.
2191
2192         Reviewed by Chris.
2193
2194         * WebCoreSupport.subproj/WebBridge.m:
2195         (-[WebBridge pollForAppletInView:]):
2196
2197 2003-11-20  Ken Kocienda  <kocienda@apple.com>
2198
2199         John and I decided to apply the _web_ prefix to the tab key 
2200         event method in the extras file, but I neglected to do this
2201         before checking in. Fixed now.
2202
2203         * Misc.subproj/WebNSEventExtras.h:
2204         * Misc.subproj/WebNSEventExtras.m:
2205         (-[NSEvent _web_isTabKeyEvent])
2206         * WebView.subproj/WebHTMLView.m:
2207         (-[WebHTMLView keyDown:])
2208
2209 2003-11-20  Ken Kocienda  <kocienda@apple.com>
2210
2211         Reviewed by John
2212
2213         Fix for this bug:
2214
2215         <rdar://problem/3482159>: Tabbing to links gets "stuck" in "style switcher" on zeldman.com
2216
2217         * Misc.subproj/WebNSEventExtras.h: Added.
2218         * Misc.subproj/WebNSEventExtras.m: Added.
2219         (-[NSEvent _isTabKeyEvent]): New helper.
2220         * WebKit.pbproj/project.pbxproj:
2221         * WebView.subproj/WebHTMLView.m: 
2222         (-[WebHTMLView keyDown:]): Pass the key event to super unconditionally
2223         if it is a tab key. This fixes the bug.
2224
2225 2003-11-19  John Sullivan  <sullivan@apple.com>
2226
2227         - WebKit part of fix for:
2228         <rdar://problem/3305671>: Web pages print with 1.25" border without regard to Page 
2229         Setup margin settings
2230
2231         Reviewed by Dave.
2232
2233         * WebView.subproj/WebHTMLView.m:
2234         (-[WebHTMLView beginDocument]):
2235         Lay out the page into a width 25% wider than there's room for on the printed page.
2236         This will make pages that can fit into a thin area be scaled down a little when printed,
2237         which lets them fit on fewer pages. This closely matches what IE and Camino (at least)
2238         do; I used Google as my test page, and the Google logo is now precisely the same size
2239         when printed from Safari as when printed from IE. Pages that don't fit into a thin
2240         area are already causing the printed page to be scaled horizontally to fit, and this
2241         won't affect them.
2242
2243 2003-11-19  Chris Blumenberg  <cblu@apple.com>
2244
2245         Fixed: <rdar://problem/3489935>: Mentioning "to Disk" in context menus such as "Download Linked File To Disk..." is redundant
2246
2247         Reviewed by john.
2248
2249         * English.lproj/Localizable.strings:
2250         * English.lproj/StringsNotToBeLocalized.txt:
2251         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2252         (-[WebDefaultUIDelegate menuItemWithTag:]): use "Download Linked File" and "Download Image"
2253
2254 2003-11-19  Chris Blumenberg  <cblu@apple.com>
2255
2256         Fixed: <rdar://problem/3488783>: Flash at http://www.sjwilson.net/reef/ does not load photos
2257         
2258         Reviewed by rjw.
2259
2260         * Misc.subproj/WebKitNSStringExtras.h:
2261         * Misc.subproj/WebKitNSStringExtras.m:
2262         (-[NSString _web_stringByStrippingReturnCharacters]): new
2263         * Plugins.subproj/WebBaseNetscapePluginView.m:
2264         (-[WebBaseNetscapePluginView requestWithURLCString:]): call _web_stringByStrippingReturnCharacters on the relative string
2265
2266 2003-11-19  Richard Williamson   <rjw@apple.com>
2267
2268         More LiveConnect stuff.  Horrible polling hack that
2269         blocks main thread waiting for applet to fully initialize.
2270
2271         Reviewed by Ken.
2272
2273         * Plugins.subproj/WebPluginController.m:
2274         (-[WebPluginController addPlugin:]):
2275         * WebCoreSupport.subproj/WebBridge.m:
2276         (-[WebBridge pollForAppletInView:]):
2277
2278 2003-11-19  David Hyatt  <hyatt@apple.com>
2279
2280         Make updateScrollers guard non-static, so that it applies only to the view whose scrollers are being
2281         updated.
2282         
2283         Reviewed by darin
2284
2285         * WebView.subproj/WebDynamicScrollBarsView.h:
2286         * WebView.subproj/WebDynamicScrollBarsView.m:
2287         (-[WebDynamicScrollBarsView reflectScrolledClipView:]):
2288
2289 2003-11-18  Richard Williamson   <rjw@apple.com>
2290
2291         More live connect stubs.  We're getting close.
2292
2293         Reviewed by Chris.
2294
2295         * Plugins.subproj/WebPluginController.m:
2296         (-[WebPluginController addPlugin:]):
2297         (-[WebPluginController _delayedGetApplet:]):
2298         * WebView.subproj/WebView.m:
2299         (-[WebView _goToItem:withLoadType:]):
2300
2301 2003-11-17  Darin Adler  <darin@apple.com>
2302
2303         Reviewed by Maciej.
2304
2305         - fixed 3487335: REGRESSION (112-113): "a:b" error message does not cite the URL properly
2306
2307         * Misc.subproj/WebKitErrors.m:
2308         (+[NSError _webKitErrorWithCode:failingURL:]): Call _webKitErrorWithDomain:code:URL:.
2309         (+[NSError _webKitErrorWithDomain:code:URL:]): Call _web_errorWithDomain:code:URL:, instead of using
2310         the deprecated failingURL: flavor.
2311         (-[NSError _initWithPluginErrorCode:contentURLString:pluginPageURLString:pluginName:MIMEType:]):
2312         Change this method to call the other one.
2313         (-[NSError _initWithPluginErrorCode:contentURL:pluginPageURL:pluginName:MIMEType:]): Implement this one,
2314         and put in the NSErrorFailingURLKey, as well as the NSErrorFailingURLStringKey, to match what Foundation
2315         now does for other errors.
2316
2317         * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge viewForPluginWithURL:attributes:baseURL:MIMEType:]):
2318         Change to use the non-deprecated flavor of the NSError call above.
2319
2320         * English.lproj/StringsNotToBeLocalized.txt: Updated for above changes and other recent changes.
2321
2322 2003-11-16  Maciej Stachowiak  <mjs@apple.com>
2323
2324         Reviewed by Dave.
2325
2326         WebKit part of fix for:
2327
2328         <rdar://problem/3131664>: add support for the window.print() command used for "print this page" buttons
2329         
2330         * WebCoreSupport.subproj/WebBridge.m:
2331         (-[WebBridge print]): Call delegate.
2332         * WebView.subproj/WebDefaultUIDelegate.m:
2333         (-[WebDefaultUIDelegate webViewPrint:]): Implemented (do nothing).
2334         * WebView.subproj/WebUIDelegatePrivate.h: Added. Add extra SPI method webViewPrint:
2335         for UI delegate.
2336         * WebKit.pbproj/project.pbxproj: Install WebUIDelegatePrivate.h as private header
2337
2338 2003-11-15  Darin Adler  <darin@apple.com>
2339
2340         Reviewed by John.
2341
2342         - fixes 3457162 -- selecting text during a page load that blows the text field away causes a crash
2343         - fixes 3160035 -- crash or hang if you hold down a button while "go to about:blank soon" test runs
2344         - without causing 3484608 -- REGRESSION: Flash broken at http://www.macromedia.com/
2345
2346         The WebKit part of this fix is making setDefersCallbacks: work. It had succumbed to bit rot.
2347         This has a side effect of not considering a page load done until all the plug-in streams are loaded.
2348         If that's not a good idea, we'll have to keep two separate lists in WebDataSource.
2349
2350         * WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate setDataSource:]):
2351         Set the defersCallbacks state from the WebView here so that clients don't have to do it.
2352
2353         * WebView.subproj/WebDataSource.m: (-[WebDataSource _addSubresourceClient:]): Remove call to
2354         set the defersCallbacks state on the subresource client, because the above change obviates it.
2355         (the client/delegate terminology makes it confusing, but it's a subclass). Also loosen the type
2356         so we can call this on clients for plug-in streams too.
2357         (-[WebDataSource _removeSubresourceClient:]): Loosen type here too.
2358         (-[WebDataSource _defersCallbacksChanged]): And here.
2359         * WebView.subproj/WebDataSourcePrivate.h: Loosen type of subresource client so we can pass in the
2360         delegates for plug-in streams too.
2361
2362         * WebView.subproj/WebMainResourceClient.h: Added an _initialRequest field so we can defer the very
2363         first callback, which does not rely on NSURLConnection.
2364         * WebView.subproj/WebMainResourceClient.m:
2365         (-[WebMainResourceClient dealloc]): Release the initial request.
2366         (-[WebMainResourceClient loadWithRequestNow:]): Moved the guts of loadWithRequest in here; to be
2367         used when the request is no longer deferred. Also removed the code to call setDefersCallbacks:
2368         on the connection, and assert that we are only called when callbacks are not deferred. Because
2369         the very first callback was not deferred, we would end up calling setDefersCallbacks:NO on the
2370         WebView, so nothing would be deferred.
2371         (-[WebMainResourceClient loadWithRequest:]): If callbacks are not deferred, then call the
2372         loadWithRequestNow: method, otherwise simply store the request in _initialRequest.
2373         (-[WebMainResourceClient setDefersCallbacks:]): If there is an _initialRequest and we are
2374         ceasing deferral of callbacks, then call the loadWithRequestNow: method.
2375
2376         * Plugins.subproj/WebNetscapePluginStream.m:
2377         (-[WebNetscapePluginStream start]): Call _addSubresourceClient, and then _removeSubresourceClient
2378         if the load fails to even start.
2379         (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): Call _removeSubresourceClient.
2380         (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): Call _removeSubresourceClient.
2381
2382         * Plugins.subproj/WebBaseNetscapePluginStream.h: Removed unneeded import.
2383         * Plugins.subproj/WebPluginDatabase.m: Add import needed now that WebBaseNetscapePluginStream.h
2384         imports less than before.
2385
2386 2003-11-16  Maciej Stachowiak  <mjs@apple.com>
2387
2388         Reviewed by John.
2389
2390         - fixed 3362841 - javascript History Object length property is always 0
2391         
2392         * WebCoreSupport.subproj/WebBridge.m:
2393         (-[WebBridge historyLength]): Add one to the length to match other browsers.
2394
2395 2003-11-14  John Sullivan  <sullivan@apple.com>
2396         
2397         - WebKit part of fix for <rdar://problem/3474757>: Safari on-screen text needs review
2398
2399         Reviewed by Ken.
2400
2401         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2402         (-[WebDefaultUIDelegate menuItemWithTag:]):
2403         change "Download Link to Disk" to "Download Linked File to Disk"
2404
2405         * English.lproj/Localizable.strings:
2406         updated for these changes
2407
2408 2003-11-14  Ken Kocienda  <kocienda@apple.com>
2409
2410         Reviewed by John
2411
2412         Fix for this bug:
2413
2414         <rdar://problem/3481701>: Crashes before loading page/no error msg
2415         (forums.pelicanparts.com) Works in IE and Netscape
2416
2417         This fix is really a workaround for this bug:
2418
2419         <rdar://problem/3484937>: Horribly malformed URL crashes when call
2420         is made to CFURLCopyHostName
2421
2422         The fix is to avoid all usages of [NSURL host] by replacing all
2423         such calls with a private URL method added to WebNSURLExtras.
2424
2425         I copied a number of URL methods from the private NSURL
2426         extras file in Foundation to the WebKit URL extras file.
2427
2428         * Misc.subproj/WebNSDataExtras.h: Added. Helper for new URL extras.
2429         * Misc.subproj/WebNSDataExtras.m: Ditto.
2430         (-[NSData _web_isCaseInsensitiveEqualToCString:]): New helper.
2431         * Misc.subproj/WebNSURLExtras.h:
2432         * Misc.subproj/WebNSURLExtras.m:
2433         (-[NSURL _web_hasQuestionMarkOnlyQueryString]): Added.
2434         (-[NSURL _web_schemeSeparatorWithoutColon]): Added.
2435         (-[NSURL _web_dataForURLComponentType:]): Added.
2436         (-[NSURL _web_schemeData]): Added.
2437         (-[NSURL _web_hostData]): Added.
2438         (-[NSURL _web_hostString]): Added.
2439         * WebKit.pbproj/project.pbxproj:
2440         * WebView.subproj/WebView.m:
2441         (-[WebView userAgentForURL:]): Replace call to [NSURL host] with new
2442         extras _web_hostString method.
2443
2444 === Safari-114 ===
2445
2446 2003-11-14  Vicki Murley <vicki@apple.com>
2447
2448         - rolled out Darin's fixes for 3457162 and 3160035, since these changes broke plugins on macromedia.com and disney.go.com
2449
2450         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2451         (-[WebBaseResourceHandleDelegate setDataSource:]):
2452         * WebView.subproj/WebDataSource.m:
2453         (-[WebDataSource _addSubresourceClient:]):
2454         * WebView.subproj/WebMainResourceClient.h:
2455         * WebView.subproj/WebMainResourceClient.m:
2456         (-[WebMainResourceClient dealloc]):
2457         (-[WebMainResourceClient loadWithRequest:]):
2458         (-[WebMainResourceClient setDefersCallbacks:]):
2459
2460 2003-11-14  Darin Adler  <darin@apple.com>
2461
2462         Reviewed by John.
2463
2464         - fixes 3457162 -- selecting text during a page load that blows the text field away causes a crash
2465         - fixes 3160035 -- crash or hang if you hold down a button while "go to about:blank soon" test runs
2466
2467         The WebKit part of this fix is making setDefersCallbacks: work. It had succumbed to bit rot.
2468
2469         * WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate setDataSource:]):
2470         Set the defersCallbacks state from the WebView here so that clients don't have to do it.
2471         * WebView.subproj/WebDataSource.m: (-[WebDataSource _addSubresourceClient:]): Remove call to
2472         set the defersCallbacks state on the subresource client, because the above change obviates it.
2473         (the client/delegate terminology makes it confusing, but it's a subclass).
2474
2475         * WebView.subproj/WebMainResourceClient.h: Added an _initialRequest field so we can defer the very
2476         first callback, which does not rely on NSURLConnection.
2477         * WebView.subproj/WebMainResourceClient.m:
2478         (-[WebMainResourceClient dealloc]): Release the initial request.
2479         (-[WebMainResourceClient loadWithRequestNow:]): Moved the guts of loadWithRequest in here; to be
2480         used when the request is no longer deferred. Also removed the code to call setDefersCallbacks:
2481         on the connection, and assert that we are only called when callbacks are not deferred. Because
2482         the very first callback was not deferred, we would end up calling setDefersCallbacks:NO on the
2483         WebView, so nothing would be deferred.
2484         (-[WebMainResourceClient loadWithRequest:]): If callbacks are not deferred, then call the
2485         loadWithRequestNow: method, otherwise simply store the request in _initialRequest.
2486         (-[WebMainResourceClient setDefersCallbacks:]): If there is an _initialRequest and we are
2487         ceasing deferral of callbacks, then call the loadWithRequestNow: method.
2488
2489 2003-11-13  Ken Kocienda  <kocienda@apple.com>
2490
2491         Reviewed by John
2492
2493         Fix for this bug:
2494
2495         <rdar://problem/3483284>: Tabbing to links needs to honor new 
2496         WebKit tab-to-links preference
2497
2498         * WebCoreSupport.subproj/WebBridge.m:
2499         (-[WebBridge dealloc]): Remove self from notification center.
2500         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]): Now
2501         checks for WebCoreKeyboardAccessTabsToLinks preference.
2502         (-[WebBridge keyboardUIMode]): Adds self to notification center
2503         to pick up changes to WebPreferences.
2504
2505 2003-11-13  Ken Kocienda  <kocienda@apple.com>
2506
2507         Reviewed by John
2508
2509         Fix for this bug:
2510
2511         <rdar://problem/3481719>: WebKit needs preference for tabbing to links
2512
2513         * WebView.subproj/WebPreferences.m:
2514         (+[WebPreferences initialize]): Add initialization of new 
2515         WebKitTabToLinksPreferenceKey.
2516         (-[WebPreferences setTabsToLinks:]): Added preference setter.
2517         (-[WebPreferences tabsToLinks]): Added preference getter.
2518         * WebView.subproj/WebPreferencesPrivate.h: Declared new methods as
2519         SPI on WebPreferences.
2520
2521 2003-11-12  Richard Williamson   <rjw@apple.com>
2522
2523         Fixed 3475082.  Remove unnecessary orderKey before showKey.
2524
2525         Written by Ed Voas.
2526
2527         Reviewed by Richard.
2528
2529         * Carbon.subproj/CarbonWindowAdapter.m:
2530         (-[CarbonWindowAdapter makeKeyWindow]):
2531
2532 2003-11-12  Chris Blumenberg  <cblu@apple.com>
2533
2534         Fixed: <rdar://problem/3482147>: replace _releaseFutureIconForURL assertion with a log statement
2535
2536         Reviewed by rjw.
2537
2538         * Misc.subproj/WebIconDatabase.m:
2539         (-[WebIconDatabase _releaseFutureIconForURL:]):
2540
2541 2003-11-10  Richard Williamson   <rjw@apple.com>
2542
2543         Fixed 3478765.  Use ICU to access unicode properties.
2544         Fixed 3478831.  Unicode property/conversion functions should be 32 bit savvy.
2545         Fixed 3478885.  Remove dead arabic shaping code
2546
2547         Reviewed by Darin.
2548
2549         * Misc.subproj/WebUnicode.h:
2550         * Misc.subproj/WebUnicode.m:
2551         (_unicodeDigitValue):
2552         (_unicodeDirection):
2553         (_unicodeMirrored):
2554         (_unicodeMirroredChar):
2555         (_unicodeLower):
2556         (_unicodeUpper):
2557         (WebKitInitializeUnicode):
2558         (shapeForNextCharacter):
2559         (initializeCharacterShapeIterator):
2560         * Misc.subproj/WebUnicodeTables.m:
2561         * WebCoreSupport.subproj/WebTextRenderer.m:
2562         (widthForNextCharacter):
2563         (fontContainsString):
2564
2565 2003-11-10  Chris Blumenberg  <cblu@apple.com>
2566
2567         Fixed: <rdar://problem/3478351>: Safari: URL Alias on Dock failed to open the 2byte URL
2568
2569         Reviewed by dave.
2570
2571         * Misc.subproj/WebNSURLExtras.m:
2572         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): if the host name is percent-escaped, use CFURLCreateStringByReplacingPercentEscapes
2573
2574 2003-11-10  Richard Williamson   <rjw@apple.com>
2575
2576         Use ICU for upper/lower conversion.  Fixed 3477157, 3478455, 3478456, 3478457, 3478486.
2577         Remaining issues with surrogates (3477159) and Turkish I (3478482).
2578
2579         Reviewed by Ken.
2580
2581         * Misc.subproj/WebUnicode.m:
2582         (_unicodeLower):
2583         (_unicodeUpper):
2584
2585 2003-11-07  Chris Blumenberg  <cblu@apple.com>
2586
2587         Fixed: <rdar://problem/3240778>: add "save" menu item to contextual menu for text pages
2588
2589         Reviewed by darin.
2590
2591         * WebView.subproj/WebTextView.m:
2592         (-[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
2593
2594
2595  selection, show menu options such as save and print. Don't select anything when control-clicking.
2596
2597 2003-11-08  Chris Blumenberg  <cblu@apple.com>
2598
2599         Fixed: <rdar://problem/3478022>: assertion failure while loading WMP content
2600
2601         Reviewed by darin.
2602
2603         * ChangeLog:
2604         * Plugins.subproj/WebNetscapePluginStream.m:
2605         (-[WebNetscapePluginConnectionDelegate connection:didReceiveResponse:]): Don't continue if the stream is cancelled in startStreamWithResponse.
2606
2607 2003-11-07  Richard Williamson   <rjw@apple.com>
2608
2609         Fixed 3477067.  Use our case unicode conversion routines.
2610
2611         Reviewed by Ken.
2612
2613         * WebCoreSupport.subproj/WebTextRenderer.m:
2614         (toUpper):
2615
2616 2003-11-06  Richard Williamson   <rjw@apple.com>
2617
2618         Fixed 3476393.  Call scrollPoint: recursively up the view hierarchy to ensure point is visible.
2619
2620         Reviewed by Ken.
2621
2622         * Misc.subproj/WebNSViewExtras.h:
2623         * Misc.subproj/WebNSViewExtras.m:
2624         (-[NSView _web_scrollPointToVisible:fromView:]):
2625         * WebView.subproj/WebHTMLView.m:
2626         (-[WebHTMLView scrollPoint:]):
2627
2628 === Safari-113 ===
2629
2630 2003-11-05  Darin Adler  <darin@apple.com>
2631
2632         Reviewed by Maciej.
2633
2634         - fixed 3473913 -- host names in simple mailto URLs are not getting encoded/decoded correctly yet
2635
2636         * Misc.subproj/WebNSURLExtras.m:
2637         (applyHostNameFunctionToMailToURLString): Handle case where host name is at the end of the string.
2638         (applyHostNameFunctionToURLString): Add the # character to the set of characters that can end
2639         a domain name.
2640
2641 2003-11-05  Richard Williamson   <rjw@apple.com>
2642
2643         Fixed 3413067, 3405797, 3456877
2644         Use ATSUI to render Arabic and Hebrew.
2645
2646         Reviewed by John.
2647
2648         * WebCoreSupport.subproj/WebTextRenderer.m:
2649         (shouldUseATSU):
2650
2651 2003-11-05  John Sullivan  <sullivan@apple.com>
2652
2653         - fixed <rdar://problem/3469791>: Bigger/Smaller commands are 
2654         disabled for HTML Mail in separate window (w/WebKit-111)
2655
2656         Reviewed by Darin.
2657
2658         * WebView.subproj/WebFrameView.m:
2659         (-[WebFrameView acceptsFirstResponder]):
2660         always be willing to become first responder, even if no page
2661         has yet been loaded.
2662         (-[WebFrameView becomeFirstResponder]):
2663         if no page has yet been loaded (so our scrollview refuses
2664         first responder-ness), don't do any special becoming-first-
2665         responder shenanigans.
2666
2667         Also removed obsolete overrides for nextKeyView, nextValidKeyView,
2668         previousKeyView, and previousValidKeyView that are no longer
2669         required now that we handle the key loop more like NSScrollView.
2670
2671         * WebView.subproj/WebFrameViewPrivate.h:
2672         removed now-unused ivar inNextValidKeyView
2673
2674 2003-11-05  Richard Williamson   <rjw@apple.com>
2675
2676         Fixed 3029966.  Animated backgrounds specified in <BODY> don't animate
2677         Fixed 3474824.  Tiled animated GIFs don't animate.
2678         Fixed 3029966.  Animated backgrounds specified with CSS don't animate.
2679
2680         Reviewed by Chris.
2681
2682         * WebCoreSupport.subproj/WebImageRenderer.h:
2683         * WebCoreSupport.subproj/WebImageRenderer.m:
2684         (-[WebImageRenderer nextFrame:]):
2685         (-[WebImageRenderer drawImageInRect:fromRect:]):
2686         (-[WebImageRenderer startAnimationIfNecessary]):
2687         (-[WebImageRenderer tileInRect:fromPoint:]):
2688         * WebView.subproj/WebImageView.m:
2689         (-[WebImageView drawRect:]):
2690
2691 2003-11-05  Chris Blumenberg  <cblu@apple.com>
2692
2693         Fixed: <rdar://problem/3201364>: Safari crashes when hosting carbon plug-in using drag and drop
2694
2695         Reviewed by rjw.
2696
2697         * WebView.subproj/WebView.m:
2698         (-[WebView draggingUpdated:]): return NSDragOperationNone if we're over a plug-in view so the plug-in can handle the drag
2699
2700 2003-11-05  Chris Blumenberg  <cblu@apple.com>
2701
2702         Fixed: <rdar://problem/3474360>: should attempt to resolve symbolic links when choosing "Save Link As..."
2703
2704         Reviewed by kocienda.
2705
2706         * WebView.subproj/WebView.m:
2707         (-[WebView _fileWrapperForURL:]): follow sym links
2708
2709 2003-11-05  Ken Kocienda  <kocienda@apple.com>
2710
2711         Reviewed by Darin
2712
2713         Fix for this bug:
2714
2715         <rdar://problem/3455910>: hitting up or down arrows when focus 
2716         is on a pop-up menu should pop the menu
2717
2718         * WebView.subproj/WebFrameView.m:
2719         (-[WebFrameView keyDown:]): Call super with the event if focus 
2720         is on a pop up button.
2721
2722 2003-11-05  Ken Kocienda  <kocienda@apple.com>
2723
2724         Reviewed by Maciej
2725
2726         Fix for these bugs:
2727
2728         <rdar://problem/3467558>: Cannot tab to form file input widgets
2729         <rdar://problem/3473631>: WebFileButton sends notifications to communicate with WebCore
2730
2731         Tabbing now works for these widgets. While I was in the neighborhood,
2732         I improved the communication mechanism between the WebKit and WebCore
2733         sides of the file button implementation, replacing notifications
2734         with a callback object.
2735
2736         * WebCoreSupport.subproj/WebBridge.m:
2737         (-[WebBridge fileButtonWithDelegate:]): Method now takes a 
2738         delegate object.
2739         * WebCoreSupport.subproj/WebFileButton.h:
2740         * WebCoreSupport.subproj/WebFileButton.m:
2741         (-[WebFileButton initWithBridge:delegate:]):
2742         (-[WebFileButton initWithFrame:]):
2743         (-[WebFileButton dealloc]):
2744         (-[WebFileButton chooseFilename:]): Sends callback rather than posting
2745         a notification.
2746         (-[WebFileButton chooseButtonPressed:]): Ditto.
2747         (-[WebFileButton mouseDown:]):
2748         (-[WebFileButton acceptsFirstResponder]):
2749         (-[WebFileButton becomeFirstResponder]): Make the button subview
2750         first responder.
2751         (-[WebFileButton nextKeyView]): Hook up to WebBridge key view machinery.
2752         (-[WebFileButton previousKeyView]): Ditto.
2753         (-[WebFileButton nextValidKeyView]): Ditto.
2754         (-[WebFileButton previousValidKeyView]): Ditto.
2755         (-[WebFileChooserButton initWithDelegate:]):
2756         (-[WebFileChooserButton nextValidKeyView]): Ditto.
2757         (-[WebFileChooserButton previousValidKeyView]): Ditto.
2758         (-[WebFileChooserButton resignFirstResponder]): Sends a focus change 
2759         callback.
2760
2761 2003-11-04  Darin Adler  <darin@apple.com>
2762
2763         Reviewed by John, except for one bit reviewed by Maciej.
2764
2765         - first step for IDNA support; helper functions for Safari
2766
2767         * Misc.subproj/WebNSURLExtras.h: Add six new methods to manipulate host names directly.
2768         * Misc.subproj/WebNSURLExtras.m:
2769         (applyHostNameFunctionToMailToURLString): Added. Finds host names within a mailto URL.
2770         (applyHostNameFunctionToURLString): Added. Finds host names within a URL.
2771         (collectRangesThatNeedMapping): Added. Builds a list of host name ranges that need mapping.
2772         (collectRangesThatNeedEncoding): Added. Calls the above for encoding.
2773         (collectRangesThatNeedDecoding): Added. Calls the above for decoding.
2774         (mapHostNames): Added. Helper function that does the entire mapping process for a URL.
2775         (+[NSURL _web_URLWithUserTypedString:]): Call mapHostNames to encode after trimming whitespace.
2776         (-[NSURL _web_userVisibleString]): Call mapHostNames to decode after decoding escape sequences.
2777         (-[NSURL _webkit_URLByRemovingFragment]): Removed unneeded redundant NULL check.
2778         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Added. Workhorse function to call
2779         the IDN functions in the Unicode library.
2780         (-[NSString _web_hostNameNeedsDecodingWithRange:]): Added.
2781         (-[NSString _web_hostNameNeedsEncodingWithRange:]): Added.
2782         (-[NSString _web_decodeHostNameWithRange:]): Added.
2783         (-[NSString _web_encodeHostNameWithRange:]): Added.
2784         (-[NSString _web_decodeHostName]): Added.
2785         (-[NSString _web_encodeHostName]): Added.
2786
2787         * WebKit.pbproj/project.pbxproj: Added libicucore.dylib.
2788         * English.lproj/StringsNotToBeLocalized.txt: Updated for above changes.
2789
2790 2003-11-04  John Sullivan  <sullivan@apple.com>
2791
2792         - a little optimization I noticed when looking at 3125137
2793
2794         Reviewed by Chris.
2795
2796         * Misc.subproj/WebStringTruncator.m:
2797         (truncateString):
2798         if incoming string has length 0, bail out right away
2799
2800 2003-11-04  Chris Blumenberg  <cblu@apple.com>
2801
2802         Fixed:
2803         <rdar://problem/3472403>: RTFD of copied text and images should use original image data not tiffs
2804         <rdar://problem/3472435>: dragging local image file downloads it instead of copies it
2805         <rdar://problem/3472450>: copied and dragged local image files are TIFF, not original image data
2806         
2807         Reviewed by john.
2808
2809         * Misc.subproj/WebNSPasteboardExtras.h:
2810         * Misc.subproj/WebNSPasteboardExtras.m:
2811         (-[NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]): new
2812         * Misc.subproj/WebNSViewExtras.h:
2813         * Misc.subproj/WebNSViewExtras.m:
2814         (-[NSView _web_dragImage:fileWrapper:rect:URL:title:event:]): take a file wrapper instead of data so [NSPasteboard _web_writeFileWrapperAsRTFDAttachment:] can be called
2815         * WebCoreSupport.subproj/WebBridge.m:
2816         (-[WebBridge fileWrapperForURL:]): call fileWrapperForURL on the WebView
2817         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2818         (-[WebDefaultUIDelegate copyImageToClipboard:]): call [NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]
2819         * WebView.subproj/WebHTMLView.m:
2820         (-[WebHTMLView _handleMouseDragged:]): when calling _web_dragImage, pass a file wrapper from fileWrapperForURL
2821         (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): call fileWrapperForURL
2822         * WebView.subproj/WebImageRepresentation.h:
2823         * WebView.subproj/WebImageRepresentation.m:
2824         (-[WebImageRepresentation fileWrapper]): new
2825         * WebView.subproj/WebImageView.m:
2826         (-[WebImageView writeImageToPasteboard:]): call [NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]
2827         (-[WebImageView mouseDragged:]): pass the file wrapper to _web_dragImage
2828         * WebView.subproj/WebView.m:
2829         (-[WebView _fileWrapperForURL:]): new, returns a file wrapper from a local file or from the cache
2830         * WebView.subproj/WebViewPrivate.h:
2831
2832 2003-11-04  John Sullivan  <sullivan@apple.com>
2833
2834         - fixed <rdar://problem/3472813>: REGRESSION (100-111): Some tabs start 
2835         out scrolled down to focused text field
2836
2837         Reviewed by Ken.
2838
2839         * WebView.subproj/WebHTMLView.m:
2840         (-[WebHTMLView acceptsFirstResponder]):
2841         The logic to avoid accepting first responder on clicks was too broad;
2842         it was rejecting first-responder-ness even for clicks outside of this
2843         view. Clicking a tab item was going through some logic in NSTabView
2844         looking for the first valid key view starting with the web view, but the
2845         web view was returning NO due to this faulty click logic. Thus the
2846         first subview text field was becoming first responder, and causing scroll.
2847
2848 2003-11-03  Chris Blumenberg  <cblu@apple.com>
2849
2850         Fixed:
2851         <rdar://problem/3472377>: Provide NSRTFDPboardType on pasteboard when copying or dragging images
2852         <rdar://problem/3470809>: REGRESSION (111-112): Can't copy & paste image into Photoshop 7
2853
2854         Reviewed by hyatt.
2855
2856         * Misc.subproj/WebNSPasteboardExtras.h:
2857         * Misc.subproj/WebNSPasteboardExtras.m:
2858         (-[NSPasteboard _web_writeFileDataAsRTFDAttachment:withFilename:]): renamed, now writes file data as an RTF attachment
2859         * Misc.subproj/WebNSViewExtras.m:
2860         (-[NSView _web_dragImage:originalData:rect:URL:title:event:]): call renamed _web_writeFileDataAsRTFDAttachment
2861         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2862         (-[WebDefaultUIDelegate copyImageToClipboard:]): call renamed _web_writeFileDataAsRTFDAttachment
2863         * WebView.subproj/WebImageView.m:
2864         (-[WebImageView writeImageToPasteboard:]): call renamed _web_writeFileDataAsRTFDAttachment
2865
2866 2003-11-03  Vicki Murley <vicki@apple.com>
2867
2868         Reviewed by kocienda.
2869
2870         - fixed <rdar://problem/3471096>: non-B&I builds should not use order files, because they cause false "regressions" in perf.
2871
2872         * WebKit.pbproj/project.pbxproj: added empty SECTORDER_FLAGS variables to the Development and Deployment build styles
2873
2874 2003-11-03  Ken Kocienda  <kocienda@apple.com>
2875
2876         Reviewed by John
2877         
2878         Fix for this bug:
2879         
2880         <rdar://problem/3470342>: focus rings are shown for links in         
2881         web pages even in non-frontmost windows
2882
2883         * WebView.subproj/WebHTMLView.m:
2884         (-[WebHTMLView updateFocusRing]): New method. Uses the "keyness"
2885         of the view's window to toggle focus ring drawing.
2886         (-[WebHTMLView windowDidBecomeKey:]): Calls updateFocusRing.
2887         (-[WebHTMLView windowDidResignKey:]): Ditto.
2888
2889 2003-11-01  Maciej Stachowiak  <mjs@apple.com>
2890
2891         Reviewed by Darin.
2892
2893         - remove use of obsolete HTTLCookiePolicyBaseURL SPI
2894         
2895         * WebCoreSupport.subproj/WebSubresourceClient.m:
2896         startLoadingResource:withURL:referrer:forDataSource:]): Use
2897         setMainDocumentURL, not setHTTPCookiePolicyBaseURL.
2898         * WebView.subproj/WebFrame.m:
2899         (-[WebFrame _addExtraFieldsToRequest:alwaysFromRequest:]): Likewise.
2900         * WebView.subproj/WebMainResourceClient.m:
2901         (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]): Likewise.
2902
2903 2003-11-01  Darin Adler  <darin@apple.com>
2904
2905         Reviewed by Maciej.
2906
2907         - fixed 3470882 -- storage leaks in WebDownload code
2908         - fixed 3470884 -- download is always nil in downloadWindowForAuthenticationSheet: call from WebDownload
2909
2910         * Misc.subproj/WebDownload.m:
2911         (-[WebDownloadInternal initWithDownload:]): Removed this method, which was never called.
2912         (-[WebDownloadInternal dealloc]): Added missing call to [super dealloc] to fix one cause
2913         of a leak of the WebDownloadInternal object itself. Removed the release of webDownload,
2914         which was always nil, and if it wasn't would end up causing a leak due to a reference cycle.
2915         (-[WebDownloadInternal download:didReceiveAuthenticationChallenge:]): Remove the use of
2916         webDownload, which was always nil, and instead use the download parameter passed to us,
2917         casting it to WebDownload, since it's guaranteed to be one.
2918         (-[WebDownload _setRealDelegate:]): Added. Shared by the methods below to set up the real
2919         delegate before calling init. The old code called init twice, causing an second call to the
2920         superclass's init method, which caused it to create an extra copy of its internal structure,
2921         as well as causing us to create two WebDownloadInternal objects.
2922         (-[WebDownload init]): Don't allocate a second WebDownloadInternal if _setRealDelegate already
2923         allocated it for us. Before we would allocate and leak an extra one each time.
2924         (-[WebDownload dealloc]): Added. Releases the WebDownloadInternal. This is the second cause
2925         of the leak of the WebDownloadInternal object.
2926         (-[WebDownload initWithRequest:delegate:]): Call [self _setRealDelegate:] instead of calling
2927         [self init] and then [_webInternal setRealDelegate:], avoiding the leaks caused by doing it
2928         the other way.
2929         (-[WebDownload _initWithLoadingConnection:request:response:delegate:proxy:]): Ditto.
2930         (-[WebDownload _initWithLoadingResource:request:response:delegate:proxy:]): Ditto.
2931         (-[WebDownload _initWithRequest:delegate:directory:]): Ditto.
2932
2933 2003-10-31  David Hyatt  <hyatt@apple.com>
2934
2935         Fix for 3466542, add a real minimum font size setting.
2936         
2937         Reviewed by john
2938
2939         * WebView.subproj/WebPreferences.h:
2940         * WebView.subproj/WebPreferences.m:
2941         (+[WebPreferences initialize]):
2942         (-[WebPreferences setMinimumFontSize:]):
2943         (-[WebPreferences minimumLogicalFontSize]):
2944         (-[WebPreferences setMinimumLogicalFontSize:]):
2945         * WebView.subproj/WebView.m:
2946         (-[WebView _updateWebCoreSettingsFromPreferences:]):
2947
2948 2003-10-31  Ken Kocienda  <kocienda@apple.com>
2949
2950         Reviewed by Darin
2951
2952         Fix for this bug:
2953
2954         <rdar://problem/3469088>: focus not removed from text link         
2955         when user hits cmd-L or clicks in window chrome
2956
2957         * WebView.subproj/WebHTMLView.m:
2958         (-[WebHTMLView deselectText]): Added new method just to deselect text.
2959         (-[WebHTMLView resignFirstResponder]): Just deseclect text if we
2960         are doing a programmatic setting of focus. Deselect all otherwise.
2961
2962 2003-10-30  Chris Blumenberg  <cblu@apple.com>
2963
2964         Fixed: <rdar://problem/3458368>: drawing to the screen while window hidden: http://www.bhphotovideo.com/
2965
2966         Reviewed by john.
2967
2968         * Plugins.subproj/WebBaseNetscapePluginView.m:
2969         (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]): clip out the plug-in when the window is miniaturized or hidden
2970         (-[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
2971         (-[WebBaseNetscapePluginView start]): just call restartNullEvents instead of checking if the window is miniaturized
2972
2973 2003-10-30  Ken Kocienda  <kocienda@apple.com>
2974
2975         Reviewed by Hyatt
2976
2977         * WebCoreSupport.subproj/WebBridge.m:
2978         (-[WebBridge documentView]): Added.
2979         * WebCoreSupport.subproj/WebGraphicsBridge.h: Added.
2980         * WebCoreSupport.subproj/WebGraphicsBridge.m: Added.
2981         (+[WebGraphicsBridge createSharedBridge]): Added.
2982         (-[WebGraphicsBridge setFocusRingStyle:radius:color:]): Added.
2983         * WebKit.pbproj/project.pbxproj:
2984         * WebView.subproj/WebFrameView.m: Create a WebGraphicsBridge
2985         when creating a WebFrameView.
2986
2987 === Safari-112 ===
2988
2989 2003-10-29  Maciej Stachowiak  <mjs@apple.com>
2990
2991         Reviewed by Darin.
2992
2993         - fixed 3467632 - Leak of plugin info visiting http://www.ebay.com
2994         
2995         * Plugins.subproj/WebBasePluginPackage.m:
2996         (-[WebBasePluginPackage dealloc]): Release lastModifiedDate.
2997
2998 2003-10-29  Chris Blumenberg  <cblu@apple.com>
2999
3000         WebKit part of fix for:
3001         <rdar://problem/3467744>: Photoshop files (.psd) don't show up in Open dialog in Safari, but can be viewed
3002         <rdar://problem/3109132>: Can't open movie file via open panel even though it can be dropped in browser window
3003
3004         Reviewed by john.
3005
3006         * WebView.subproj/WebView.m:
3007         (+[WebView _supportedMIMETypes]): new
3008         (+[WebView _supportedFileExtensions]): new
3009         * WebView.subproj/WebViewPrivate.h:
3010
3011 2003-10-29  Chris Blumenberg  <cblu@apple.com>
3012
3013         Fixed: <rdar://problem/3438716>: jpg and gif images copied from Safari and placed in mail are sent as tiff
3014
3015         Reviewed by john.
3016
3017         * Misc.subproj/WebNSPasteboardExtras.h:
3018         * Misc.subproj/WebNSPasteboardExtras.m:
3019         (-[NSPasteboard _web_writeFileContents:withFilename:]): new
3020         * Misc.subproj/WebNSViewExtras.h:
3021         * Misc.subproj/WebNSViewExtras.m:
3022         (-[NSView _web_dragImage:originalData:rect:URL:title:event:]): now takes originalData and calls _web_fileContents:withFilename:
3023         * WebView.subproj/WebDefaultContextMenuDelegate.m:
3024         (-[WebDefaultUIDelegate copyImageToClipboard:]): call _web_writeFileContents:withFilename:
3025         * WebView.subproj/WebHTMLView.m:
3026         (-[WebHTMLView _handleMouseDragged:]): call renamed _web_dragImage and [WebView _cachedResponseForURL:]
3027         (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): call [WebView _cachedResponseForURL:]
3028         * WebView.subproj/WebImageView.m:
3029         (-[WebImageView writeImageToPasteboard:]): call _web_writeFileContents:withFilename:
3030         (-[WebImageView mouseDragged:]): call renamed _web_dragImage
3031         * WebView.subproj/WebView.m:
3032         (-[WebView _cachedResponseForURL:]): new
3033         * WebView.subproj/WebViewPrivate.h:
3034
3035 2003-10-28  John Sullivan  <sullivan@apple.com>
3036
3037         - fixed <rdar://problem/3466082>: 7B85/111: Crash viewing web page ([WebView setNextKeyView:])
3038
3039         Reviewed by Chris.
3040
3041         * WebView.subproj/WebView.m:
3042         (-[WebView dealloc]):
3043         set _private to nil after releasing, because [super dealloc] can dispatch to it
3044         (-[WebView mainFrame]):
3045         fixed spelling error in comment
3046
3047 2003-10-28  Chris Blumenberg  <cblu@apple.com>
3048
3049         Fixed: <rdar://problem/3465383>: REGRESSION: Text field progress bar goes to 100% after error or stop
3050         
3051         Reviewed by john.
3052
3053         * WebView.subproj/WebFrame.m:
3054         (-[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
3055
3056
3057 nishedNotification notification.
3058
3059 2003-10-27  Maciej Stachowiak  <mjs@apple.com>
3060
3061         Reviewed by Darin.
3062
3063         - fixed 3083264 - frame names changed by JavaScript are not reflected in WebFrame at the WebKit level
3064
3065         * WebCoreSupport.subproj/WebBridge.m:
3066         (-[WebBridge didSetName:]): Tell the WebFrame about its new name.
3067
3068 2003-10-28  John Sullivan  <sullivan@apple.com>
3069
3070         - fixed 3465613 -- REGRESSION (111): Crash creating nib that 
3071         contains WebView
3072
3073         Reviewed by Chris.
3074
3075         * WebView.subproj/WebView.m:
3076         (-[WebView mainFrame]):
3077         check for nil _private before dereferencing.
3078
3079 2003-10-28  Chris Blumenberg  <cblu@apple.com>
3080
3081         Fixed: <rdar://problem/3465591>: Security: Netscape plug-ins can execute JavaScript in other frames
3082
3083         Reviewed by mjs.
3084
3085         * Plugins.subproj/WebBaseNetscapePluginView.m:
3086         (-[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
3087         (-[WebBaseNetscapePluginView loadPluginRequest:]): call renamed evaluateJavaScriptPluginRequest
3088         (-[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
3089
3090 2003-10-28  Chris Blumenberg  <cblu@apple.com>
3091
3092         Fixed: <rdar://problem/3437959>: javascript: URLs don't work from Java (and other Cocoa plugins, if any)
3093
3094         Reviewed by mjs.
3095
3096         * Plugins.subproj/WebPluginController.m:
3097         (-[WebPluginController showURL:inFrame:]): support JS requests targeted only to the plug-in's frame.
3098
3099 2003-10-27  John Sullivan  <sullivan@apple.com>
3100
3101         - fixed 3441258 -- hysteresis to start dragging a link is too small; too easy to start drag
3102
3103         Reviewed by Chris.
3104
3105         * WebView.subproj/WebHTMLView.m:
3106         (-[WebHTMLView _handleMouseDragged:]):
3107         Split DragHysteresis into two values, one for links and one for images. Make
3108         the link one much larger than the image one (since dragging an image doesn't
3109         occur accidentally in the ways that dragging a link does).
3110
3111 2003-10-27  Chris Blumenberg  <cblu@apple.com>
3112
3113         Fixed: <rdar://problem/3462523>: Safari Sometimes Destroys Applets When Going "Back"
3114
3115         Reviewed by darin.
3116
3117         * History.subproj/WebHistoryItem.m:
3118         (+[WebHistoryItem _destroyAllPluginsInPendingPageCaches]): Don't destroy plug-ins that are currently being viewed.
3119
3120 2003-10-27  Chris Blumenberg  <cblu@apple.com>
3121
3122         Fixed: <rdar://problem/3463144>: assertion failure when viewing jpeg with SoundPix installed
3123
3124         Reviewed by john.
3125
3126         * WebView.subproj/WebDataSource.m:
3127         (+[WebDataSource _repTypesAllowImageTypeOmission:]): don't allow image types to override types that are already registered as we do in [WebFrameView _viewTypesAllowImageTypeOmission:]
3128
3129 2003-10-24  Chris Blumenberg  <cblu@apple.com>
3130
3131         Fixed:
3132         <rdar://problem/3462977>: ER: Nice if images dragged from web pages didn't redownload
3133         <rdar://problem/3031582>: Dragging an image to the desktop doesn't leave the file where I dropped it
3134         <rdar://problem/3061371>: "CFURLGetFSRef failed" log when dragging image to Finder
3135
3136         Reviewed by john.
3137
3138         * WebView.subproj/WebHTMLView.m:
3139         (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): attempt to fetch the image data from the cache, if that works, write out the file
3140
3141 2003-10-26  Darin Adler  <darin@apple.com>
3142
3143         * WebKitPrefix.h: Add a definition of NULL here so we get the stricter type checking
3144         even on pre-Merlot systems.
3145
3146 === Safari-111 ===
3147
3148 2003-10-24  Richard Williamson   <rjw@apple.com>
3149
3150         Fixed 3425358.  Don't try to create page cache for pages that
3151         have a nil view().
3152
3153         Reviewed by Hyatt.
3154
3155         * WebView.subproj/WebFrame.m:
3156         (-[WebFrame _createPageCacheForItem:]):
3157         (-[WebFrame _setState:]):
3158
3159 2003-10-24  Chris Blumenberg  <cblu@apple.com>
3160         
3161         Fixed: <rdar://problem/3424039>: standalone plug-in content occasionaly redirects to blank page
3162
3163         Reviewed by john.
3164
3165         * Plugins.subproj/WebBaseNetscapePluginView.m:
3166         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): don't honor JS requests from standalone plug-ins to workaround 3462628 which is a deeper issue.
3167
3168 2003-10-24  Chris Blumenberg  <cblu@apple.com>
3169
3170         Fixed: <rdar://problem/3462256>: REGRESSION: Plain text is downloaded
3171
3172         Reviewed by john.
3173
3174         * WebView.subproj/WebView.m:
3175         (+[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
3176
3177
3178  the plug-in DB calls _viewTypesAllowImageTypeOmission:NO.
3179
3180 2003-10-23  Chris Blumenberg  <cblu@apple.com>
3181
3182         Fixed: <rdar://problem/3364036>: ER: Allow plug-ins to override built-in types such as image/jpeg
3183
3184         Reviewed by john.
3185
3186         * Plugins.subproj/WebPluginDatabase.m:
3187         (-[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
3188         * WebCoreSupport.subproj/WebBridge.m:
3189         (-[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 
3190         (-[WebBridge frameRequiredForMIMEType:URL:]): no need to start up the plug-in DB because this is now handled by [WebView _viewClass:andRepresentationClass:forMIMEType:]
3191         * WebView.subproj/WebDataSource.m:
3192         (+[WebDataSource _representationClassForMIMEType:]): call [WebView _viewClass:andRepresentationClass:forMIMEType:]
3193         (-[WebDataSource _makeRepresentation]): call _representationClassForMIMEType
3194         * WebView.subproj/WebDataSourcePrivate.h:
3195         * WebView.subproj/WebFrameView.m:
3196         (-[WebFrameView _makeDocumentViewForDataSource:]): tweak
3197         (+[WebFrameView _viewClassForMIMEType:]): call [WebView _viewClass:andRepresentationClass:forMIMEType:]
3198         * WebView.subproj/WebView.m:
3199         (+[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 
3200
3201
3202 MIME type is not found. This is required to fully fix 3364036.
3203         (+[WebView canShowMIMEType:]): call [WebView _viewClass:andRepresentationClass:forMIMEType:]
3204         (+[WebView registerViewClass:representationClass:forMIMEType:]): tweak
3205         * WebView.subproj/WebViewPrivate.h:
3206
3207 2003-10-23  John Sullivan  <sullivan@apple.com>
3208
3209         - fixed 3459272 -- Can't set up keyboard loop inside a 
3210         WebDocumentView without subclassing views
3211         - fixed 3179062 -- can't tab back to address bar from image-only 
3212         page
3213         - fixed 3252009 -- tabbing from address bar to content area does 
3214         not work with WebTextView
3215         - fixed 3461398 -- Can't click on a standalone image to focus it 
3216         (for later keyboard scrolling)
3217
3218         I redid the way WebView and WebFrameView splice themselves into
3219         the keyview loop in a way very similar to what NSScrollView and
3220         NSClipView do. This means that contained and sibling views won't 
3221         need to do anything special to put themselves into the key loop.
3222
3223         Reviewed by Chris.
3224
3225         * WebView.subproj/WebFrameView.m:
3226         (-[WebFrameView _scrollView]):
3227         check for nil pointer before dereferencing; this can happen
3228         during [super dealloc]'s keyview-loop-fixup code
3229         (-[WebFrameView initWithFrame:]):
3230         wire our nextKeyView link to the contained scrollview (so
3231         previousKeyView will work correctly from scrollview)
3232         (-[WebFrameView acceptsFirstResponder]):
3233         return what the contained scrollview says
3234         (-[WebFrameView becomeFirstResponder]):
3235         in previous direction, use previousValidKeyView (follows normal
3236         NSView keyview links); in forward direction, hand first
3237         responder-ness to contained scrollview (which will in turn hand
3238         it down to clipview, which will in turn hand it down to document)
3239         (-[WebFrameView setNextKeyView:]):
3240         wire up scrollview instead of self, if it exists
3241
3242         * WebView.subproj/WebImageView.m:
3243         (-[WebImageView acceptsFirstResponder]):
3244         overridden to return YES; this fixes 3461398 and puts the finishing
3245         touches on 3179062
3246
3247         * WebView.subproj/WebView.m:
3248         (-[WebView _commonInitializationWithFrameName:groupName:]):
3249         wire our nextKeyView link to the contained webframeview (so
3250         previousKeyView will work correctly from webframeview). Also,
3251         if there's a nextKeyView already set (in a nib, e.g.), wire
3252         it to our contained webframeview.
3253         (-[WebView acceptsFirstResponder]):
3254         return what the contained webframeview says
3255         (-[WebView becomeFirstResponder]):
3256         in previous direction, use previousValidKeyView (follows normal
3257         NSView keyview links); in forward direction, hand first
3258         responder-ness to contained webframeview (which will in turn hand
3259         it down to scrollview, etc.)
3260         (-[WebView setNextKeyView:]):
3261         wire up webframeview instead of self, if it exists
3262
3263 2003-10-22  Richard Williamson   <rjw@apple.com>
3264
3265         Match WebCore's notion of distributing linegap between top and bottom of 
3266         line.  WebKit used to put it all at the bottom of the line.
3267
3268         Reviewed by Hyatt.
3269
3270         * WebCoreSupport.subproj/WebTextRenderer.h:
3271         * WebCoreSupport.subproj/WebTextRenderer.m:
3272         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
3273         (-[WebTextRenderer _CG_drawHighlightForRun:style:atPoint:]):
3274
3275 2003-10-21  Maciej Stachowiak  <mjs@apple.com>
3276
3277         Reviewed by Dave.
3278
3279         Finished exception blocking changes, so now I can finally say:
3280
3281         - fixed 3137084 - Many non-reproducible crashers in ContextImp::mark / ScopeChain::mark
3282         - fixed 3308848 - nil-deref in KHTMLView::topLevelWidget
3283         - fixed 3311511 - nil deref inside KJS::Screen
3284         - fixed 3397422 - 7B51: Safari crashed in KJS::ObjectImp::mark()
3285         - fixed 3408373 - Panther7B58 : Safari Crashed in KJS::ObjectImp::mark
3286         - fixed 3409307 - 7B55: safari crashed in KJS::Interpreter::globalExec() (idle, nothing particular going on)
3287         - fixed 3410160 - 7B60 Safari crashed in KHTMLPart::parentPart called from JS while in the background
3288         - fixed 3413224 - unrepro crash in KJS::Window::mark
3289         - fixed 3419940 - unrepro crash in KJS::Collector::allocate trying to access http://www.lindyinthepalms.com
3290         - fixed 3420123 - Panther7B66: Safari crashed while going to http://www.tangents.co.uk/index2.html
3291         - fixed 3423225 - Safari crash in vtable for KWQMapImpl (vtable for KWQMapImpl + 8).
3292         - fixed 3437190 - nil-deref on quit in calling marked() from ScopeChain::mark()
3293
3294         * WebCoreSupport.subproj/WebTextRenderer.m:
3295         (-[WebTextRenderer ascent]):
3296         (-[WebTextRenderer descent]):
3297         (-[WebTextRenderer lineSpacing]):
3298         (-[WebTextRenderer xHeight]):
3299         (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
3300         (-[WebTextRenderer _smallCapsRenderer]):
3301         (-[WebTextRenderer _initializeATSUStyle]):
3302         (-[WebTextRenderer _createATSUTextLayoutForRun:]):
3303         (-[WebTextRenderer _trapezoidForRun:style:atPoint:]):
3304         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:atPoint:]):
3305         (-[WebTextRenderer _ATSU_drawRun:style:atPoint:]):
3306         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):
3307
3308 2003-10-22  Richard Williamson   <rjw@apple.com>
3309
3310         Fixed 3458715.  Reset to 0, not .1 when done.
3311
3312         Reviewed by Chris.
3313
3314         * WebView.subproj/WebView.m:
3315         (-[WebView _resetProgress]):
3316         (-[WebView _progressStarted:]):
3317
3318 2003-10-21  Richard Williamson   <rjw@apple.com>
3319
3320         Don't use small caps font for characters that don't have an
3321         uppercase counterpart (i.e. punctuation marks).
3322
3323         Reviewed by Hyatt.
3324
3325         * WebCoreSupport.subproj/WebTextRenderer.m:
3326         (widthForNextCharacter):
3327
3328 2003-10-21  Chris Blumenberg  <cblu@apple.com>
3329
3330         Fixed: <rdar://problem/3176170>: OBJECT tag with no or empty TYPE is mishandled
3331         
3332         Reviewed by rjw.
3333
3334         * Plugins.subproj/WebPluginDatabase.m:
3335         (-[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
3336
3337
3338 o MIME type is specified.
3339         * WebCoreSupport.subproj/WebBridge.m:
3340         (-[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.
3341         (-[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.
3342
3343 2003-10-20  Chris Blumenberg  <cblu@apple.com>
3344
3345         Fixed: <rdar://problem/3457627>: empty Flash plugin at tvguide.com
3346         Fixed issues with plug-in stream error handling.
3347         Improved plug-in logging.
3348
3349         Reviewed by kocienda.
3350
3351         * Misc.subproj/WebKitLogging.h: added WebKitLogPluginEvents
3352         * Misc.subproj/WebKitLogging.m:
3353         * Plugins.subproj/WebBaseNetscapePluginStream.h:
3354         * Plugins.subproj/WebBaseNetscapePluginStream.m:
3355         (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]): improved logging
3356         (-[WebBaseNetscapePluginStream destroyStream]): improved logging
3357         (-[WebBaseNetscapePluginStream destroyStreamWithFailingReason:]): renamed from cancelWithReason to avoid confusion
3358         (-[WebBaseNetscapePluginStream receivedError:]): calls destroyStreamWithFailingReason after determining a reason from the NSError
3359         (-[WebBaseNetscapePluginStream cancelWithReason:]): calls destroyStreamWithFailingReason, this method is overriden by subclasses to cancel the actual load
3360         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): call destroyStreamWithFailingReason, not cancelWithReason because the loaded has already ended here
3361         (-[WebBaseNetscapePluginStream deliverData]): improved logging
3362         * Plugins.subproj/WebBaseNetscapePluginView.m:
3363         (-[WebBaseNetscapePluginView sendActivateEvent:]): use even logging
3364         (-[WebBaseNetscapePluginView sendUpdateEvent]): ditto
3365         (-[WebBaseNetscapePluginView becomeFirstResponder]): ditto
3366         (-[WebBaseNetscapePluginView resignFirstResponder]): ditto
3367         (-[WebBaseNetscapePluginView mouseDown:]): ditto
3368         (-[WebBaseNetscapePluginView mouseUp:]): ditto
3369         (-[WebBaseNetscapePluginView mouseEntered:]): ditto
3370         (-[WebBaseNetscapePluginView mouseExited:]): ditto
3371         (TSMEventHandler): ditto
3372         (-[WebBaseNetscapePluginView destroyStream:reason:]): call cancelWithReason so the reason is passed back to the plug-in
3373         * Plugins.subproj/WebNetscapePluginDocumentView.m:
3374         (-[WebNetscapePluginDocumentView setDataSource:]): tweak
3375         * Plugins.subproj/WebNetscapePluginRepresentation.m:
3376         (-[WebNetscapePluginRepresentation receivedError:withDataSource:]): call receivedError
3377         (-[WebNetscapePluginRepresentation cancelWithReason:]): override, cancel the load, call super
3378         * Plugins.subproj/WebNetscapePluginStream.m:
3379         (-[WebNetscapePluginStream cancelWithReason:]): override, cancel the load, call super
3380         (-[WebNetscapePluginConnectionDelegate connection:didReceiveResponse:]): be sure to call the stream before calling super because the stream can be cleared out when calling super 
3381         (-[WebNetscapePluginConnectionDelegate connection:didReceiveData:lengthReceived:]): ditto
3382         (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): ditto
3383         (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): ditto
3384
3385 2003-10-20  Richard Williamson   <rjw@apple.com>
3386
3387         Conditionally excluded fix for 3446192.  We'll enable the fix once 3446669
3388         has been fixed.  This patch switches to the new UTI typing API for pasteboard types.
3389  
3390         Reviewed by Ken.
3391
3392         * Misc.subproj/WebNSPasteboardExtras.m:
3393         (+[NSPasteboard initialize]):
3394
3395 2003-10-20  Richard Williamson   <rjw@apple.com>
3396
3397         Fixed 3456103.  Don't assert, just check for inappropriate state.
3398         Reviewed by Hyatt
3399
3400         Add a debug menu item to always use ATSU text drawing.  This will be helpful
3401         to the ATSU folks in performance tuning there API.  Right now I see approx.
3402         2X slowdown using ATSU.
3403
3404         Also did some shuffling around of inline related stuff.
3405
3406         Reviewed by Chris.
3407
3408         * WebCoreSupport.subproj/WebTextRenderer.h:
3409         * WebCoreSupport.subproj/WebTextRenderer.m:
3410         (isControlCharacter):
3411         (isAlternateSpace):
3412         (isSpace):
3413         (getUncachedWidth):
3414         (widthFromMap):
3415         (widthForGlyph):
3416         (+[WebTextRenderer _setAlwaysUseATSU:]):
3417         (glyphForCharacter):
3418         (glyphForUnicodeCharacter):
3419         (shouldUseATSU):
3420         * WebView.subproj/WebView.m:
3421         (+[WebView _setAlwaysUseATSU:]):
3422         (-[WebView _progressCompleted:]):
3423         * WebView.subproj/WebViewPrivate.h:
3424
3425 2003-10-19  Chris Blumenberg  <cblu@apple.com>
3426
3427         Fixed: <rdar://problem/3442218>: crash due to infinite recursion trying to load standalone plug-in content
3428
3429         Reviewed by darin.
3430
3431         * WebView.subproj/WebFrame.m:
3432         (-[WebFrame stopLoading]): manage the isStoppingLoad ivar, return if isStoppingLoad is YES
3433         * WebView.subproj/WebFramePrivate.h: added the isStoppingLoad ivar
3434
3435 2003-10-19  Darin Adler  <darin@apple.com>
3436
3437         Reviewed by Dave and Ken.
3438
3439         - fixed 3457066 -- REGRESSION (91-92): command-left-arrow causes a scroll to the left before going back
3440
3441         * WebView.subproj/WebFrameView.m: (-[WebFrameView keyDown:]): Add an else so that we don't fall into the
3442         scrolling code when the command key is down for right and left arrow.
3443
3444 2003-10-18  Chris Blumenberg  <cblu@apple.com>
3445
3446         Fixed: <rdar://problem/3229530>: Dragging standalone image to desktop should save it, not re-download it
3447
3448         Reviewed by darin.
3449
3450         * English.lproj/Localizable.strings:
3451         * WebKit.pbproj/project.pbxproj:
3452         * WebView.subproj/WebDocumentPrivate.h: Added.
3453         * WebView.subproj/WebImageRepresentation.h:
3454         * WebView.subproj/WebImageRepresentation.m:
3455         (-[WebImageRepresentation dealloc]): release new filename and data ivars
3456         (-[WebImageRepresentation doneLoading]): return YES if data is non-nil
3457         (-[WebImageRepresentation setDataSource:]): store the filename
3458         (-[WebImageRepresentation receivedError:withDataSource:]): store the data
3459         (-[WebImageRepresentation finishedLoadingWithDataSource:]): store the data
3460         (-[WebImageRepresentation data]): new
3461         (-[WebImageRepresentation filename]): new
3462         * WebView.subproj/WebImageView.m:
3463         (-[WebImageView namesOfPromisedFilesDroppedAtDestination:]): just save the image, don't download it
3464         (-[WebImageView image]): new
3465
3466 2003-10-17  Chris Blumenberg  <cblu@apple.com>
3467
3468         Fixed: <rdar://problem/3456176>: Assertion failure when loading atomfilms.com
3469
3470         Reviewed by kocienda.
3471
3472         * Plugins.subproj/WebNetscapePluginStream.m:
3473         (-[WebNetscapePluginConnectionDelegate connection:didReceiveData:lengthReceived:]): call super before calling plug-in code as we do in other callbacks
3474         (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): ditto
3475         (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): ditto</