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