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