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