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