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