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