Reviewed by Timothy.
[WebKit-https.git] / WebKit / ChangeLog-2002-12-03
1 2002-12-03  Trey Matteson  <trey@apple.com>
2
3         Re-fix of 3113393 - Clients side redirects shouldn't always add item to back/forward list
4         Fix 3116980 - REGRESSION: Back button goes back twice
5         Fix 3099631 - assertion failure at http://www.calendarlive.com/ when pop-up blocking is off
6
7         The earlier fix for the first bug was to consider any redirect happening within one
8         second as a continuation of the previous load.  To fix the regressions I re-cast that
9         fix using a similar, pre-existing mechanism.
10
11         Reviewed by: Richwill
12
13         * WebView.subproj/WebFramePrivate.h:  Nuke shortRedirectComing, rename
14         instantRedirectComing to quickRedirectComing.
15         * WebView.subproj/WebFramePrivate.m:
16         (-[WebFrame _createOrUpdateItem]):  Remove code related to shortRedirectComing,
17         the fix that brought the regressions.
18         (-[WebFrame _setState:]):  Don't cache the page we're leaving if we're doing
19         a redirect (since we don't want the redirecting page in the cache).
20         (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:request:]):  Above rename.
21         (-[WebFrame _loadURL:loadType:triggeringEvent:isFormSubmission:]):  Above rename.
22         (-[WebFrame _loadURL:intoChild:]):  Comment fix.
23         (-[WebFrame _clientRedirectedTo:delay:fireDate:]):  Use 1 second instead of 0
24         seconds as the metric of a client redirect.  Do not consider whether the frame
25         state is completed as part of the decision.
26         (-[WebFrame _clientRedirectCancelled]):  Above rename.
27
28 2002-12-03  John Sullivan  <sullivan@apple.com>
29
30         Reviewed by: Darin
31
32         - REALLY changed the default state for block pop-ups to be off.
33
34         * WebView.subproj/WebPreferences.m:
35         (+[WebPreferences load]):
36         change default for letting JavaScript open windows automatically
37         to YES
38
39 2002-12-03  Darin Adler  <darin@apple.com>
40
41         - fixed 3117135 -- world leak: drag any image, get a leak of 1 WebFrame
42
43         Reviewed by John.
44
45         * WebView.subproj/WebHTMLView.m:
46         (-[WebHTMLView mouseDragged:]): Retain the URL of the dragged image, not the entire
47         element dictionary. The element dictionary creates a reference cycle since it includes
48         a reference to the WebFrame.
49         (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): Use the URL rather than
50         extracting it from the dictionary with a WebElementImageURLKey.
51
52         * WebView.subproj/WebHTMLViewPrivate.h: URL, not element dictionary.
53         * WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLViewPrivate dealloc]): Release the
54         URL, not the element dictionary.
55
56 2002-12-03  Richard Williamson   <rjw@apple.com>
57
58         Added a preference to change the page cache size, i.e.:
59         Alexander.app/Contents/MacOS/Alexander -WebKitPageCacheSizePreferenceKey 4
60         
61         Reviewed by: hyatt
62
63         * History.subproj/WebBackForwardList.m:
64         (+[WebBackForwardList setPageCacheSize:]):
65         (+[WebBackForwardList pageCacheSize]):
66         * WebView.subproj/WebPreferences.m:
67         (+[WebPreferences load]):
68         (-[WebPreferences _initialTimedLayoutSize]):
69         (-[WebPreferences _pageCacheSize]):
70         * WebView.subproj/WebPreferencesPrivate.h:
71
72 2002-12-03  Richard Williamson   <rjw@apple.com>
73
74         Fixed 3019986.  Use an array of font families instead of a single
75         font family to support CSS family lists.
76         r=hyatt
77         
78         * Misc.subproj/WebKitNSStringExtras.m:
79         (-[NSString _web_widthForString:font:]):
80         * Misc.subproj/WebStringTruncator.m:
81         (+[WebStringTruncator rightTruncateString:toWidth:withFont:]):
82         (+[WebStringTruncator centerTruncateString:toWidth:withFont:]):
83         * WebCoreSupport.subproj/WebTextRenderer.h:
84         * WebCoreSupport.subproj/WebTextRenderer.m:
85         (-[WebTextRenderer substituteFontForString:families:]):
86         (-[WebTextRenderer substituteFontForCharacters:length:families:]):
87         (-[WebTextRenderer widthForCharacters:length:]):
88         (-[WebTextRenderer drawCharacters:stringLength:fromCharacterPosition:toCharacterPosition:atPoint:withPadding:withTextColor:backgroundColor:rightToLeft:letterSpacing:wordSpacing:fontFamilies:]):
89         (-[WebTextRenderer floatWidthForCharacters:stringLength:characterPosition:]):
90         (-[WebTextRenderer floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:]):
91         (-[WebTextRenderer floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:letterSpacing:wordSpacing:fontFamilies:]):
92         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:letterSpacing:wordSpacing:fontFamilies:]):
93         * WebCoreSupport.subproj/WebTextRendererFactory.h:
94         * WebCoreSupport.subproj/WebTextRendererFactory.m:
95         (-[WebTextRendererFactory fontWithFamilies:traits:size:]):
96         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
97         (+[WebTextRendererFactory fallbackFontWithTraits:size:]):
98         (-[WebTextRendererFactory cachedFontFromFamily:traits:size:]):
99         (-[WebTextRendererFactory cachedFontFromFamilies:traits:size:]):
100         (-[WebTextRendererFactory rendererWithFamilies:traits:size:]):
101
102 2002-12-03  Chris Blumenberg  <cblu@apple.com>
103
104         Fixed: 3115073 - REGRESSION: plants.com is crashing in WebIconDB with bad retain count
105
106         The plants.com favicon was marked to be removed from disk and thus it had no retain count. The problem was that it was still on disk and _hasIconForIconURL would return YES. If hasIconForIconURL returns YES, its is ok to call  _setIconURL:forSiteURL:. Since there was no retain count, the assert in _setIconURL:forSiteURL: would be hit.
107
108         We now consider icons without retain counts to not exist even if they're on disk.
109
110         * Misc.subproj/WebIconDatabase.m:
111         (-[WebIconDatabase _updateFileDatabase]):
112         (-[WebIconDatabase _setIconURL:forSiteURL:]):
113
114 2002-12-03  Chris Blumenberg  <cblu@apple.com>
115
116         Fixed:
117         3112477 - REGRESSION: dropping image within window loads image in current window
118         Fix: Unregister the parent webview for dragging when the drag starts, reregister after the drag ends.
119
120         3116423 - Dragged images sometimes have the wrong promised-file file type
121         Fix: Make the - [NSView_web_dragPromisedImage...] method take a file type rather than deriving the file type from the URL
122
123         3115768 - REGRESSION: contextual menu item "copy url to clipboard" doesn't work
124         Fix: In [NSPastboard _web_writeURL:andTitle:withOwner:] adding pboard types  doesn't work for the general pasteboard, have to redeclare.
125
126         3116594 - Image on the drag pasteboard shouldn't have applied transparency and scaling
127         Fix: In - [NSView_web_dragPromisedImage...] put the original image on the pboard
128
129         Reviewed by John.
130
131         * Misc.subproj/WebNSPasteboardExtras.m:
132         (-[NSPasteboard _web_writeURL:andTitle:withOwner:]): don't use addTypes as it doesn't work as I expected
133         * Misc.subproj/WebNSViewExtras.h:
134         * Misc.subproj/WebNSViewExtras.m:
135         (-[NSView _web_dragPromisedImage:origin:URL:fileType:title:event:]): put the original image on the pboard, not the drag image
136         * WebView.subproj/WebHTMLView.m:
137         (-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]):
138         (-[WebHTMLView mouseDragged:]): call _web_dragPromisedImage
139         (-[WebHTMLView draggedImage:endedAt:operation:]): call -[WebView _reregisterDraggedTypes]
140         * WebView.subproj/WebImageView.m:
141         (-[WebImageView mouseDragged:]): call _web_dragPromisedImage
142         (-[WebImageView draggedImage:endedAt:operation:]): call -[WebView _reregisterDraggedTypes]
143         * WebView.subproj/WebView.m:
144         (-[WebView initWithFrame:]): call _reregisterDraggedTypes
145         (-[WebView draggingEntered:]): simplified, don't need to check drag source
146         * WebView.subproj/WebViewPrivate.h:
147         * WebView.subproj/WebViewPrivate.m:
148         (-[WebView _reregisterDraggedTypes]):
149
150 2002-12-03  Darin Adler  <darin@apple.com>
151
152         - fixed 3114796 -- WORLD LEAKS: 1 WebFrame leaked on trivial source file with <html> tag only
153         (probably fixed a ton of other bugs too, since this always leaks)
154
155         Reviewed by Chris.
156
157         * WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView _elementAtPoint:]):
158         Added a missing autorelease.
159
160 2002-12-03  Darin Adler  <darin@apple.com>
161
162         Reviewed by Maciej.
163
164         * WebView.subproj/WebView.m: Fixed a pair of strings that conflict.
165         * English.lproj/Localizable.strings: Regenerated.
166         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
167
168 2002-12-02  Trey Matteson  <trey@apple.com>
169
170         Refined bookmark notifications to be more detailed.  We now have added, removed,
171         willChange and didChange.
172
173         * Bookmarks.subproj/WebBookmarkGroup.h:   New API.
174         * Bookmarks.subproj/WebBookmarkGroup.m:
175         (-[WebBookmarkGroup _sendNotification:forBookmark:children:]):
176         (-[WebBookmarkGroup _setTopBookmark:]):
177         (-[WebBookmarkGroup _bookmarkWillChange:]):
178         (-[WebBookmarkGroup _bookmarkDidChange:]):
179         (-[WebBookmarkGroup _bookmarkChildren:wereAddedToParent:]):
180         (-[WebBookmarkGroup _bookmarkChildren:wereRemovedToParent:]):
181         All just small pieces of flow control for posting the notes.
182         * Bookmarks.subproj/WebBookmarkGroupPrivate.h:  Internal methods for posting the notes.
183         * Bookmarks.subproj/WebBookmarkLeaf.m:
184         (-[WebBookmarkLeaf setTitle:]):  Post da note
185         (-[WebBookmarkLeaf setURLString:]):  Post da note
186         (-[WebBookmarkLeaf description]):  Added for debugging.
187         * Bookmarks.subproj/WebBookmarkList.m:
188         (-[WebBookmarkList setTitle:]):  Post da note
189         (-[WebBookmarkList removeChild:]):  Post da note
190         (-[WebBookmarkList insertChild:atIndex:]):  Post da note
191         * Bookmarks.subproj/WebBookmarkProxy.m:
192         (-[WebBookmarkProxy setTitle:]):  Post da note
193         * English.lproj/StringsNotToBeLocalized.txt:  New strings.
194         * WebKit.exp:   New strings.
195
196 2002-12-02  Maciej Stachowiak  <mjs@apple.com>
197
198         - added original URL field to action dictionary so that policy delegates
199         can avoid prompting over and over on redirects.
200         
201         * WebKit.exp:
202         * WebView.subproj/WebControllerPolicyDelegate.h:
203         * WebView.subproj/WebControllerPolicyDelegate.m:
204         * WebView.subproj/WebDataSource.m:
205         (-[WebDataSource initWithRequest:]):
206         * WebView.subproj/WebDataSourcePrivate.m:
207         (-[WebDataSource _startLoading:]):
208         * WebView.subproj/WebFrame.m:
209         (-[WebFrame loadRequest:]):
210         * WebView.subproj/WebFramePrivate.h:
211         * WebView.subproj/WebFramePrivate.m:
212         (-[WebFrame _actionInformationForNavigationType:event:originalURL:]):
213         (-[WebFrame _checkNavigationPolicyForRequest:dataSource:andCall:withSelector:]):
214         (-[WebFrame _addExtraFieldsToRequest:]):
215         (-[WebFrame _loadURL:loadType:triggeringEvent:isFormSubmission:]):
216         (-[WebFrame _postWithURL:data:contentType:triggeringEvent:]):
217
218 2002-11-28  Darin Adler  <darin@apple.com>
219
220         * Downloads.subproj/WebDownloadHandler.m:
221         (-[WebDownloadHandler createFileIfNecessary]): Add a FIXME.
222         (-[WebDownloadHandler writeDataForkData:resourceForkData:]): Notify that the file system has
223         changed so the Finder can respond to the size change.
224         (-[WebDownloadHandler finishedLoading]): Notify that the file system has changed now that the
225         download has completed and the files are closed (may be redundant now that we have the above,
226         but will do no harm).
227
228         * Plugins.subproj/WebBaseNetscapePluginView.m:
229         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]):
230         Use _web_isCaseInsensitiveEqualToString instead of lowercaseString.
231
232         * Misc.subproj/WebNSViewExtras.m: Tweak formatting.
233         
234 2002-11-27  Richard Williamson   <rjw@apple.com>
235
236         Fixed 3113393.  Client side redirects that happen <= 1 second
237         update the current back/forward item, rather than creating
238         a new one.
239
240         * WebView.subproj/WebFramePrivate.h:
241         * WebView.subproj/WebFramePrivate.m:
242         (-[WebFrame _addBackForwardItemClippedAtTarget:]):
243         (-[WebFrame _createOrUpdateItem]):
244         (-[WebFrame _createItemTreeWithTargetFrame:clippedAtTarget:]):
245         (-[WebFrame _transitionToCommitted:]):
246         (-[WebFrame _clientRedirectedTo:delay:fireDate:]):
247         (-[WebFrame _clientRedirectCancelled]):
248
249 2002-11-27  Richard Williamson   <rjw@apple.com>
250
251         Fixed measurement error for Ahem font (and any font that
252         has a tiny fractional value). 3112745, 3112742
253          
254         * WebCoreSupport.subproj/WebTextRenderer.m:
255         (-[WebTextRenderer initWithFont:]):
256
257 2002-11-26  Chris Blumenberg  <cblu@apple.com>
258
259         Fixed: 3090834 - Launch WMP (Window Media Player) when encountering WMP content
260
261         Added contentURL to WebPluginError. 
262
263         * Plugins.subproj/WebNetscapePluginDocumentView.m:
264         (-[WebNetscapePluginDocumentView setDataSource:]):
265         * Plugins.subproj/WebNetscapePluginPackage.m:
266         (-[WebNetscapePluginPackage initWithPath:]):
267         * Plugins.subproj/WebNullPluginView.m:
268         (-[WebNullPluginView viewDidMoveToWindow]):
269         * Plugins.subproj/WebPluginError.h:
270         * Plugins.subproj/WebPluginError.m:
271         (-[WebPluginErrorPrivate dealloc]):
272         (-[WebPluginError dealloc]):
273         * WebCoreSupport.subproj/WebBridge.m:
274         (-[WebBridge viewForPluginWithURL:attributes:baseURL:MIMEType:]):
275         (-[WebBridge viewForJavaAppletWithFrame:attributes:baseURL:]):
276
277 === Alexander-34 ===
278
279 2002-11-26  Richard Williamson   <rjw@apple.com>
280
281         Only cache page if the load has completed.
282         * WebView.subproj/WebFramePrivate.m:
283         (-[WebFrame _setState:]):
284
285 2002-11-26  Chris Blumenberg  <cblu@apple.com>
286
287         Removed some logging.
288
289         * WebView.subproj/WebControllerPrivate.m:
290         (+[WebController _supportedImageMIMETypes]):
291
292 2002-11-26  Chris Blumenberg  <cblu@apple.com>
293
294         Fixed: 3112003 - Show standalone tiffs using AppKit not QT plug-in
295
296         We now dynamically check NSImage for supported image types when registering WebImageView's and WebImageRepresentation's supported MIME types. 
297
298         * WebView.subproj/WebControllerPrivate.h:
299         * WebView.subproj/WebControllerPrivate.m:
300         (+[WebController _supportedImageMIMETypes]): convert NSImage types to mime types
301         * WebView.subproj/WebDataSourcePrivate.m:
302         (+[WebDataSource _repTypes]): use _supportedImageMIMETypes to register mime types of WebImageRepresentation
303         * WebView.subproj/WebViewPrivate.m:
304         (+[WebView _viewTypes]): use _supportedImageMIMETypes to register mime types of WebImageView
305
306 2002-11-26  Chris Blumenberg  <cblu@apple.com>
307
308         Fixed: 3061174 - javascript: URLs sent by plugins don't work
309
310         For "Javascript:" URLs. 
311
312         * Plugins.subproj/WebBaseNetscapePluginView.m:
313         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): lowercase the scheme
314
315 2002-11-26  Richard Williamson   <rjw@apple.com>
316
317         More work on back/forward cache.  It's ready for
318         more general testing.  Although, to be safe I've
319         left it disabled by default for tomorrow's release.
320         It will log when a page is save and restored from
321         the page cache.
322                 
323         * WebCoreSupport.subproj/WebBridge.m:
324         (-[WebBridge saveDocumentToPageCache:]):
325         * WebView.subproj/WebDataSourcePrivate.m:
326         (-[WebDataSource _startLoading:]):
327         (-[WebDataSource _commitIfReady:]):
328         (-[WebDataSource _loadIcon]):
329         * WebView.subproj/WebFramePrivate.h:
330         * WebView.subproj/WebFramePrivate.m:
331         (-[WebFrame _transitionToCommitted:]):
332         (-[WebFrame _setState:]):
333         (-[WebFrame _loadItem:fromItem:withLoadType:]):
334         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:request:]):
335         (-[WebFrame _setProvisionalDataSource:]):
336
337 2002-11-25  Richard Williamson   <rjw@apple.com>
338
339         Cleanup leaking objects in page cache.
340         Cleaned up API a bit.
341         
342         * History.subproj/WebBackForwardList.h:
343         * History.subproj/WebBackForwardList.m:
344         (-[WebBackForwardList dealloc]):
345         (+[WebBackForwardList setUsesPageCache:]):
346         (+[WebBackForwardList usesPageCache]):
347         (+[WebBackForwardList setPageCacheSize:]):
348         (+[WebBackForwardList pageCacheSize]):
349         * History.subproj/WebHistoryItem.h:
350         * History.subproj/WebHistoryItem.m:
351         (-[WebHistoryItem setHasPageCache:]):
352         * WebCoreSupport.subproj/WebBridge.m:
353         (-[WebBridge saveDocumentToPageCache:]):
354         * WebKit.exp:
355         * WebView.subproj/WebFramePrivate.m:
356         (-[WebFrame _canCachePage]):
357         (-[WebFrame _purgePageCache]):
358         (-[WebFrame _setState:]):
359         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:request:]):
360
361 2002-11-25  Richard Williamson   <rjw@apple.com>
362
363         Changed ordering of cachability check.
364         
365         * WebView.subproj/WebFramePrivate.m:
366         (-[WebFrame _setState:]):
367
368 2002-11-25  Richard Williamson   <rjw@apple.com>
369
370         Changes fro back/forward cache.
371         
372         * History.subproj/WebHistoryItem.h:
373         * History.subproj/WebHistoryItem.m:
374         (+[WebHistoryItem setUsePageCache:]):
375         (+[WebHistoryItem usePageCache]):
376         * WebCoreSupport.subproj/WebBridge.m:
377         (-[WebBridge saveDocumentToPageCache:]):
378         * WebView.subproj/WebFramePrivate.h:
379         * WebView.subproj/WebFramePrivate.m:
380         (-[WebFrame _detachFromParent]):
381         (-[WebFrame _canCachePage]):
382         (-[WebFrame _setState:]):
383
384 2002-11-25  Chris Blumenberg  <cblu@apple.com>
385
386         Fixed 2 drag-related crashes. Oops.
387
388         * Misc.subproj/WebNSViewExtras.m:
389         (-[NSView _web_dragPromisedImage:fromOrigin:withURL:title:event:]): put nil at the end of the array list.
390         * WebView.subproj/WebHTMLView.m:
391         (-[WebHTMLView mouseDragged:]): retain self before drag
392
393 2002-11-25  Chris Blumenberg  <cblu@apple.com>
394
395         - Allow missing icons to be restored when going to the page of the missing icon.
396
397         * Misc.subproj/WebIconDatabase.m:
398         (-[WebIconDatabase _setIconURL:forSiteURL:]):
399
400 2002-11-25  Richard Williamson   <rjw@apple.com>
401
402         Changes for back/forward.  Currently disabled.
403
404         * History.subproj/WebHistoryItem.h:
405         * History.subproj/WebHistoryItem.m:
406         (-[WebHistoryItem dealloc]):
407         (-[WebHistoryItem setPageCacheEnabled:]):
408         (-[WebHistoryItem pageCache]):
409         * Misc.subproj/WebKitLogging.h:
410         * Misc.subproj/WebKitLogging.m:
411         * WebCoreSupport.subproj/WebBridge.m:
412         (-[WebBridge saveDocumentToPageCache:]):
413         * WebView.subproj/WebDataSource.m:
414         (-[WebDataSource startLoading]):
415         * WebView.subproj/WebDataSourcePrivate.h:
416         * WebView.subproj/WebDataSourcePrivate.m:
417         (-[WebDataSource _startLoading:]):
418         (-[WebDataSource _startLoading]):
419         (-[WebDataSource _commitIfReady:]):
420         (-[WebDataSource _commitIfReady]):
421         (-[WebDataSource _setStoredInPageCache:]):
422         (-[WebDataSource _storedInPageCache]):
423         * WebView.subproj/WebFramePrivate.h:
424         * WebView.subproj/WebFramePrivate.m:
425         (-[WebFrame _transitionToCommitted:]):
426         (-[WebFrame _canCachePage]):
427         (-[WebFrame _purgePageCache]):
428         (-[WebFrame _setState:]):
429         (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:request:]):
430         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:request:]):
431
432 2002-11-25  Richard Williamson   <rjw@apple.com>
433
434         Fixed exception thrown often when creating mouseover status text (3110186).
435         
436         * WebView.subproj/WebHTMLViewPrivate.m:
437         (-[WebHTMLView _elementAtPoint:]):
438
439 2002-11-25  Darin Adler  <darin@apple.com>
440
441         - fixed a problem I discovered in testing where multiple identical bookmarks confuse us
442
443         * Bookmarks.subproj/WebBookmarkList.m:
444         (-[WebBookmarkList removeChild:]): Use indexOfObjectIdenticalTo: and removeObjectIdenticalTo:
445         instead of containsObject: and removeObject:.
446         (-[WebBookmarkList insertChild:atIndex:]): Use indexOfObjectIdenticalTo: instead of
447         containsObject: in the assertion.
448
449 2002-11-25  Chris Blumenberg  <cblu@apple.com>
450
451         Fixed: 3084350 - No URL flavors provided for images
452
453         * Misc.subproj/WebNSViewExtras.h:
454         * Misc.subproj/WebNSViewExtras.m:
455         (-[NSView _web_dragPromisedImage:fromOrigin:withURL:title:event:]): renamed, simplifies dragging an image
456         (-[WebFilePromiseDragSource initWithSource:]): subclass of NSFilePromiseDragSource, to be used later
457         (-[WebFilePromiseDragSource draggingSource]):
458         (-[WebFilePromiseDragSource dealloc]):
459         * WebView.subproj/WebHTMLView.m:
460         (-[WebHTMLView mouseDragged:]): call _web_dragPromisedImage:fromOrigin:withURL:title:event:, retain self
461         (-[WebHTMLView draggedImage:endedAt:operation:]): added, release self
462         * WebView.subproj/WebImageView.m:
463         (-[WebImageView mouseDragged:]): call _web_dragPromisedImage:fromOrigin:withURL:title:event:, retain self
464         (-[WebImageView draggedImage:endedAt:operation:]): added, release self
465         * WebView.subproj/WebView.m:
466         (-[WebView isDocumentHTML]): call isKindOfClass instead of className
467         (-[WebView draggingEntered:]): check for WebFilePromiseDragSource
468
469 2002-11-24  Trey Matteson  <trey@apple.com>
470
471         Added URLString method to WebHistoryItem to avoid silly conversions between
472         NSURL and NSString.  When the dust settles with our plans for NSURL we can
473         rationalize this API with the rest of WebKit.
474
475         * History.subproj/WebHistoryItem.h:
476         * History.subproj/WebHistoryItem.m:
477         (-[WebHistoryItem URLString]):
478
479 2002-11-24  Chris Blumenberg  <cblu@apple.com>
480
481         Added element keys for the image ALT and link TITLE attributes. This will eventually be used to fix other bugs. Also made WebKit and WebCore use the same element keys to simplify the conversion of the element dictionary.
482
483         * WebView.subproj/WebController.h:
484         * WebView.subproj/WebController.m:
485         * WebView.subproj/WebHTMLViewPrivate.m:
486         (-[WebHTMLView _elementAtPoint:]):
487
488 2002-11-24  Chris Blumenberg  <cblu@apple.com>
489
490         Fixed: 3109945 - Assertion failure in -[WebIconDatabase_largestIconFromDictionary:]
491         Added error strings for download decoding errors.
492
493         * English.lproj/Localizable.strings: Added error strings for download decoding errors
494         * English.lproj/StringsNotToBeLocalized.txt:
495         * Misc.subproj/WebIconDatabase.m:
496         (-[WebIconDatabase _loadIconDictionaries]): tweak
497         (-[WebIconDatabase _updateFileDatabase]): more error checking to prevent assert
498         (-[WebIconDatabase _setIconURL:forSiteURL:]): added asserts to prevent a site URL <-> icon URL mapping without a icon URL -> icon mapping
499         (-[WebIconDatabase _largestIconFromDictionary:]): tweak
500         * Misc.subproj/WebNSPasteboardExtras.m:
501         (-[NSPasteboard _web_writeURL:andTitle:withOwner:]): declare pboard types if none have been declared, else append types
502         * WebView.subproj/WebView.m:
503         (+[WebView initialize]): Added error strings for download decoding errors
504
505 2002-11-24  Maciej Stachowiak  <mjs@apple.com>
506
507         - fixed 3067939 - no support for window.document.lastModified
508
509         * WebView.subproj/WebDataSourcePrivate.m:
510         (-[WebDataSource _commitIfReady]): Pass last modified date to WebCore.
511         * WebView.subproj/WebFramePrivate.m:
512         (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:request:]): Pass
513         nil last modified date.
514
515 2002-11-23  Chris Blumenberg  <cblu@apple.com>
516
517         Fixed: 3109835 - Download errors aren't communicated to client
518
519         Cleaned-up WebMainResourceClient and WebBaseResourceHandleDelegate a little.
520
521         * Misc.subproj/WebIconDatabase.m:
522         (-[WebIconDatabase defaultIconWithSize:]): tweak
523         (-[WebIconDatabase releaseIconForSiteURL:]): don't retain site URL here 
524         (-[WebIconDatabase _setIcon:forIconURL:]): tweak
525         (-[WebIconDatabase _setIconURL:forSiteURL:]): tweak
526         (-[WebIconDatabase _releaseIconForIconURLString:]): retain site URL here 
527         (-[WebIconDatabase _releaseFutureIconForSiteURL:]): tweak
528         (-[WebIconDatabase _sendNotificationForSiteURL:]): tweak
529         * WebView.subproj/WebBaseResourceHandleDelegate.h:
530         * WebView.subproj/WebBaseResourceHandleDelegate.m:
531         (-[WebBaseResourceHandleDelegate cancelWithError:]): made public
532         (-[WebBaseResourceHandleDelegate cancel]): cancel downloads too, call cancelWithError
533         (-[WebBaseResourceHandleDelegate cancelQuietly]): call cancelWithError
534         (-[WebBaseResourceHandleDelegate cancelledError]): tweak
535         (-[WebBaseResourceHandleDelegate notifyDelegatesOfInterruptionByPolicyChange]): tweak
536         * WebView.subproj/WebMainResourceClient.m:
537         (-[WebMainResourceClient receivedError:]): stop downloadHandler if downloading, else notify controller
538         (-[WebMainResourceClient cancel]): call receivedError
539         (-[WebMainResourceClient checkContentPolicyForResponse:andCallSelector:]): tweak
540         (-[WebMainResourceClient handle:didReceiveData:]): stop load for download errors, report error
541         (-[WebMainResourceClient handleDidFinishLoading:]): call didFailLoadingWithError is download error
542         (-[WebMainResourceClient handle:didFailLoadingWithError:]): call receivedError
543
544 2002-11-22  Darin Adler  <darin@apple.com>
545
546         * Misc.subproj/WebCoreStatistics.h:
547         * Misc.subproj/WebCoreStatistics.m:
548         (+[WebCoreStatistics javaScriptRootObjectClasses]):
549         Update for name change -- root object classes, not all live object classes.
550
551 2002-11-22  Chris Blumenberg  <cblu@apple.com>
552
553         Fixed assertion while loading local files.
554
555         * Misc.subproj/WebIconDatabase.m: we don't have icon URLs for files
556         * WebView.subproj/WebDataSourcePrivate.m:
557         (-[WebDataSource _loadIcon]): Only try loading favicon as the root of server if scheme is http or https. This isn't really a feature of other protocols.
558
559 2002-11-22  Chris Blumenberg  <cblu@apple.com>
560
561         * WebView.subproj/WebMainResourceClient.m:
562         (-[WebMainResourceClient continueAfterContentPolicy:response:]): Added a FIXME around saveFilenameForResponse:andRequest: because the API expects a path but is asking for a filename.
563
564 2002-11-22  Chris Blumenberg  <cblu@apple.com>
565
566         Fixed: 3104693 - QT movie doesn't show video while still downloading
567
568         The initial size of plug-in should be 0,0 instead of 1,1 or else we don't get the layout
569
570         * Plugins.subproj/WebNetscapePluginDocumentView.m:
571         (-[WebNetscapePluginDocumentView initWithFrame:]):
572
573 2002-11-22  Chris Blumenberg  <cblu@apple.com>
574
575         Fixed: 3078737 - Crash in -[WebHistoryItem dealloc] after closing last window
576
577         * Misc.subproj/WebIconDatabase.m:
578         (-[WebIconDatabase releaseIconForSiteURL:]): retain the site URL string because it may get released from beneath
579         (-[WebIconDatabase _updateFileDatabase]): tweak
580         (-[WebIconDatabase _iconsForIconURLString:]): disable timings for deployment build
581         (-[WebIconDatabase _setIconURL:forSiteURL:]): tweak
582         (-[WebIconDatabase _releaseIconForIconURLString:]): tweak
583         (-[WebIconDatabase _scaleIcon:toSize:]): disable timings for deployment build
584         * Misc.subproj/WebIconDatabasePrivate.h:
585         * WebView.subproj/WebDataSourcePrivate.m:
586         (-[WebDataSource _updateIconDatabaseWithURL:]): new, does the db binding
587         (-[WebDataSource _loadIcon]): call _updateIconDatabaseWithURL
588
589 2002-11-22  Chris Blumenberg  <cblu@apple.com>
590
591         Attempt to fix: 3078737 - Crash in -[WebHistoryItem dealloc] after closing last window
592         I haven't found anything that would cause the crash. I did some clean-up, added asserts and error messages in hopes that this help me track this down.
593
594         * Misc.subproj/WebIconDatabase.h:
595         * Misc.subproj/WebIconDatabase.m:
596         (-[WebIconDatabase init]):
597         (-[WebIconDatabase iconForSiteURL:withSize:cache:]):
598         (-[WebIconDatabase iconForSiteURL:withSize:]):
599         (-[WebIconDatabase retainIconForSiteURL:]):
600         (-[WebIconDatabase releaseIconForSiteURL:]):
601         (-[WebIconDatabase delayDatabaseCleanup]):
602         (-[WebIconDatabase allowDatabaseCleanup]):
603         (-[WebIconDatabase _iconDictionariesAreGood]):
604         (-[WebIconDatabase _loadIconDictionaries]):
605         (-[WebIconDatabase _updateFileDatabase]):
606         (-[WebIconDatabase _hasIconForSiteURL:]):
607         (-[WebIconDatabase _iconsForIconURLString:]):
608         (-[WebIconDatabase _iconForFileURL:withSize:]):
609         (-[WebIconDatabase _setIcon:forIconURL:]):
610         (-[WebIconDatabase _setIconURL:forSiteURL:]):
611         (-[WebIconDatabase _retainIconForIconURLString:]):
612         (-[WebIconDatabase _releaseIconForIconURLString:]):
613         (-[WebIconDatabase _retainFutureIconForSiteURL:]):
614         (-[WebIconDatabase _releaseFutureIconForSiteURL:]):
615         (-[WebIconDatabase _releaseOriginalIconsOnDisk]):
616         (-[WebIconDatabase _sendNotificationForSiteURL:]):
617         (-[WebIconDatabase _addObject:toSetForKey:inDictionary:]):
618         (-[WebIconDatabase _largestIconFromDictionary:]):
619         (-[WebIconDatabase _iconsBySplittingRepresentationsOfIcon:]):
620         (-[WebIconDatabase _iconFromDictionary:forSize:cache:]):
621         (-[WebIconDatabase _scaleIcon:toSize:]):
622         * Misc.subproj/WebIconDatabasePrivate.h:
623         * WebKit.exp:
624         * WebView.subproj/WebDataSourcePrivate.m:
625         (-[WebDataSource _loadIcon]):
626
627 2002-11-22  Richard Williamson   <rjw@apple.com>
628
629         Fixed rendering issues associated with 3100120.
630         We now correctly map surrogate pairs in UTF-16.  khtml still has
631         issues dealing with characters outside BMP.  These are tracked
632         with 3109251 and 3109258.
633         
634         Surrogate pairs are treated as exceptions and have their own character
635         to glyph map.
636         
637         * Misc.subproj/WebUnicode.h:
638         * Misc.subproj/WebUnicode.m:
639         (shapedString):
640         * WebCoreSupport.subproj/WebTextRenderer.h:
641         * WebCoreSupport.subproj/WebTextRenderer.m:
642         (glyphForUnicodeCharacter):
643         (findLengthOfCharacterCluster):
644         (-[WebTextRenderer substituteFontForString:]):
645         (-[WebTextRenderer convertUnicodeCharacters:length:toGlyphs:]):
646         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:letterSpacing:wordSpacing:]):
647         (-[WebTextRenderer extendUnicodeCharacterToGlyphMapToInclude:]):
648         (-[WebTextRenderer extendCharacterToGlyphMapToInclude:]):
649
650 2002-11-22  John Sullivan  <sullivan@apple.com>
651
652         * Resources/url_icon.tiff:
653         new generic URL icon -- little blue globe, pretty nice
654
655         * WebKit.exp:
656         removed symbol for WebTextRendererFactory which was in here
657         to support an obsolete SPI hack
658
659 2002-11-22  Trey Matteson  <trey@apple.com>
660
661         Added more detailed notifications on history changes.
662         All changes below are just posting the new notes at the right time.
663
664         * English.lproj/StringsNotToBeLocalized.txt:
665         * History.subproj/WebHistory.h:
666         * History.subproj/WebHistory.m:
667         (-[WebHistory _sendNotification:entries:]):
668         (-[WebHistory addEntry:]):
669         (-[WebHistory removeEntry:]):
670         (-[WebHistory removeEntries:]):
671         (-[WebHistory removeAllEntries]):
672         (-[WebHistory addEntries:]):
673         (-[WebHistory loadHistory]):
674         * WebKit.exp:
675
676 2002-11-22  Richard Williamson   <rjw@apple.com>
677
678         Changed NSString category methods to include _web_ prefix.
679
680         * Misc.subproj/WebKitNSStringExtras.h:
681         * Misc.subproj/WebKitNSStringExtras.m:
682         (-[NSString _web_widthForString:font:]):
683
684 2002-11-22  Richard Williamson   <rjw@apple.com>
685
686         Simplified drawing and measuring SPI for use by Alex.
687
688         * Misc.subproj/WebKitNSStringExtras.h: Added.
689         * Misc.subproj/WebKitNSStringExtras.m: Added.
690         (-[NSString widthForString:font:]):
691         * WebKit.pbproj/project.pbxproj:
692
693 2002-11-21  Chris Blumenberg  <cblu@apple.com>
694
695         Removed workaround for: 3093170 - Handle clients receive data with length 0
696
697         as it's now fixed.
698
699         * Downloads.subproj/WebDownloadHandler.m:
700         (-[WebDownloadHandler receivedData:]): remove workaround
701         * WebView.subproj/WebMainResourceClient.m:
702         (-[WebMainResourceClient handle:didReceiveData:]): added asserts
703
704 2002-11-21  Richard Williamson   <rjw@apple.com>
705
706         A different fix to 3078065 that doesn't depend on the appkit's idea of
707         fixed pitch font.
708         
709         The fix is to adjust the width of all characters that have the same width
710         as the space character to match the adjustment of the space character.
711         This has the slight downside that non-monospace fonts that contain glyphs
712         with the same width as the space character will have an extra adjustment.
713         In practice this is not noticeable as the adjustment is always sub-pixel.
714         Nor of course does this cause any mislayout, as it's done at the lowest
715         level for both measurement and drawing.
716         
717         Until we move kthml internals to floats this will be just fine.
718         
719         * WebCoreSupport.subproj/WebTextRenderer.h:
720         * WebCoreSupport.subproj/WebTextRenderer.m:
721         (widthForGlyph):
722         (-[WebTextRenderer initWithFont:]):
723         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:letterSpacing:wordSpacing:]):
724 tAfterNavigationPolicy:request:]):
725
726 2002-11-21  Maciej Stachowiak  <mjs@apple.com>
727
728         * Makefile.am: Pass symroots for this tree to pbxbuild.
729
730 2002-11-21  Chris Blumenberg  <cblu@apple.com>
731
732         Fixed: 3009881 - plugins get mouse-overs even when mouse is in menus
733         Fixed: 3108240 - Loading datasource sometimes doesn't have cancelled error when cancelled
734
735         * Plugins.subproj/WebBaseNetscapePluginView.m:
736         (-[WebBaseNetscapePluginView sendNullEvent]): check if menus are showing
737         (-[WebBaseNetscapePluginView restartNullEvents]): tweak
738         * WebView.subproj/WebDataSourcePrivate.m:
739         (-[WebDataSource _stopLoading]): set cancelled error if main handle is gone
740
741 === Alexander-33 ===
742
743 2002-11-20  Darin Adler  <darin@apple.com>
744
745         * Plugins.subproj/WebBaseNetscapePluginView.m:
746         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]):
747         Unescape the string before executing it, so we don't suffer from bug 3083043
748         here in the javascript: URLs that come from plug-ins.
749
750         * English.lproj/StringsNotToBeLocalized.txt: Update.
751
752 2002-11-20  Chris Blumenberg  <cblu@apple.com>
753
754         Fixed: 3079134 - Throttle plug-ins while in background
755
756         * Plugins.subproj/WebBaseNetscapePluginView.h:
757         * Plugins.subproj/WebBaseNetscapePluginView.m:
758         (-[WebBaseNetscapePluginView sendNullEvent]): new
759         (-[WebBaseNetscapePluginView stopNullEvents]): stops timer
760         (-[WebBaseNetscapePluginView restartNullEvents]): stops timer if there is one, and starts a new one based on window activation state
761         (-[WebBaseNetscapePluginView start]): call restartNullEvents
762         (-[WebBaseNetscapePluginView stop]): call stopNullEvents
763         (-[WebBaseNetscapePluginView windowBecameKey:]): call restartNullEvents
764         (-[WebBaseNetscapePluginView windowResignedKey:]): call restartNullEvents
765         (-[WebBaseNetscapePluginView windowDidMiniaturize:]): call stopNullEvents
766         (-[WebBaseNetscapePluginView windowDidDeminiaturize:]): call restartNullEvents
767         * Plugins.subproj/WebNetscapePluginNullEventSender.h: Removed. No need for another class, use a timer.
768         * Plugins.subproj/WebNetscapePluginNullEventSender.m: Removed. No need for another class, use a timer.
769         * WebKit.pbproj/project.pbxproj:
770
771 2002-11-20  Richard Williamson   <rjw@apple.com>
772
773         Fixed 3107007.  Letter-spacing is causing width to be miscalculated.
774         This also fixed some selection problems.
775         
776         * WebCoreSupport.subproj/WebTextRenderer.m:
777         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:letterSpacing:wordSpacing:]):
778
779 2002-11-20  Richard Williamson   <rjw@apple.com>
780
781         Fixed mono spaced fonts to always render with mono spacing! (3078065)
782         
783         * WebCoreSupport.subproj/WebTextRenderer.h:
784         * WebCoreSupport.subproj/WebTextRenderer.m:
785         (widthForGlyph):
786         (-[WebTextRenderer initWithFont:]):
787
788 2002-11-20  Chris Blumenberg  <cblu@apple.com>
789
790         Fixed: 3074926 - crash in BitsToPix() trying to print cnet page
791
792         * Plugins.subproj/WebBaseNetscapePluginView.m:
793         (-[WebBaseNetscapePluginView drawRect:]): disable experimental plug-in printing code.
794
795 2002-11-20  Chris Blumenberg  <cblu@apple.com>
796
797         Minor clean-up, logging and more error checking in plug-in code.
798
799         * Plugins.subproj/WebBaseNetscapePluginStream.m:
800         (-[WebBaseNetscapePluginStream setResponse:]):
801         (-[WebBaseNetscapePluginStream receivedData:]):
802         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
803         * Plugins.subproj/npapi.m:
804         (NPN_UserAgent):
805         (NPN_MemFree):
806         (NPN_MemFlush):
807         (NPN_ReloadPlugins):
808
809 2002-11-20  Chris Blumenberg  <cblu@apple.com>
810         
811         Fixed: 3061174 - javascript: URLs sent by plugins don't work
812
813         * Plugins.subproj/WebBaseNetscapePluginView.m:
814         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]):
815
816 2002-11-20  Darin Adler  <darin@apple.com>
817
818         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
819
820 2002-11-19  Chris Blumenberg  <cblu@apple.com>
821
822         Fixed: 3106061 - REGRESSION: Copy in text view copies all text not just selection
823
824         * Misc.subproj/WebSearchableTextView.m:
825         (-[WebSearchableTextView copy:]):
826
827 2002-11-19  Chris Blumenberg  <cblu@apple.com>
828
829         Fixed: 3092588 - redraw errors in QT controller if window is in background
830
831         We need to send update events after we activate/deactivate after all.
832
833         * Plugins.subproj/WebBaseNetscapePluginView.m:
834         (-[WebBaseNetscapePluginView windowBecameKey:]):
835         (-[WebBaseNetscapePluginView windowResignedKey:]):
836
837 2002-11-19  Chris Blumenberg  <cblu@apple.com>
838
839         Fixed: 3020720 - dropping a folder in the page address makes the folder open in Finder, empties the field
840
841         * Misc.subproj/WebNSPasteboardExtras.m:
842         (-[NSPasteboard _web_bestURL]): Don't accept directories.
843
844 2002-11-19  Chris Blumenberg  <cblu@apple.com>
845
846         Fixed: 3068112 - extra line breaks when copying from source window
847
848         * Misc.subproj/WebSearchableTextView.m:
849         (-[WebSearchableTextView copy:]): Convert CRLF to LF
850
851 2002-11-19  David Hyatt  <hyatt@apple.com>
852
853         Make sure that if the scrollers are shown/hidden that we
854         force an immediate layout, since if we don't, an intervening
855         display can cause us to show scrollbars when they really
856         shouldn't be there.
857         
858         * WebView.subproj/WebDynamicScrollBarsView.m:
859         (-[WebDynamicScrollBarsView updateScrollers]):
860
861 2002-11-19  Chris Blumenberg  <cblu@apple.com>
862
863         Fixed: 3100597 - repro NSArray exception using contextual menu
864
865         * Misc.subproj/WebNSPasteboardExtras.m:
866         (-[NSPasteboard _web_writeURL:andTitle:withOwner:]): more error checking
867
868 2002-11-19  Trey Matteson  <trey@apple.com>
869
870         Just a tweak to the description printout.
871
872         * History.subproj/WebHistoryItem.m:
873         (-[WebHistoryItem description]):
874
875 2002-11-18  Chris Blumenberg  <cblu@apple.com>
876
877         Real fix for: 3104183 - Assert loading www.louisvuitton.com
878
879         Since we don't consider plug-in content as a subresource, attaching plug-in streams to the datasource has no affect on the loading state of the datasource. Both stopLoading on WebFrame and _stopLoading datasource, would not stop plug-ins streams after th
880 e data source was done loading. Because of this, I've decided to not keep a list of plug-in streams attached to the data source and pulled my previous change. To fix this bug, WebBaseResourceHandleDelegate now retains the controller.
881
882         * Plugins.subproj/WebNetscapePluginStream.m:
883         (-[WebNetscapePluginStream start]):
884         (-[WebNetscapePluginStream cancel]):
885         (-[WebNetscapePluginStream handleDidFinishLoading:]):
886         (-[WebNetscapePluginStream handle:didFailLoadingWithError:]):
887         * WebView.subproj/WebBaseResourceHandleDelegate.h:
888         * WebView.subproj/WebBaseResourceHandleDelegate.m:
889         (-[WebBaseResourceHandleDelegate _releaseResources]):
890         (-[WebBaseResourceHandleDelegate setDataSource:]):
891         (-[WebBaseResourceHandleDelegate handle:willSendRequest:]):
892         (-[WebBaseResourceHandleDelegate handleDidFinishLoading:]):
893         (-[WebBaseResourceHandleDelegate handle:didFailLoadingWithError:]):
894         (-[WebBaseResourceHandleDelegate _cancelWithError:]):
895         * WebView.subproj/WebDataSourcePrivate.h:
896         * WebView.subproj/WebDataSourcePrivate.m:
897         (-[WebDataSourcePrivate dealloc]):
898         (-[WebDataSource _stopLoading]):
899         (-[WebDataSource _makeHandleDelegates:deferCallbacks:]):
900         (-[WebDataSource _defersCallbacksChanged]):
901
902 2002-11-18  Chris Blumenberg  <cblu@apple.com>
903
904         Fixed: 3104183 - Assert loading www.louisvuitton.com
905
906         We need to treat plug-in streams like subresources except they don't change the loading state of the data source.
907
908         * Plugins.subproj/WebNetscapePluginStream.m:
909         (-[WebNetscapePluginStream start]): call _addPluginStream
910         (-[WebNetscapePluginStream cancel]): call _removePluginStream
911         (-[WebNetscapePluginStream handleDidFinishLoading:]): call _removePluginStream
912         (-[WebNetscapePluginStream handle:didFailLoadingWithError:]): call _removePluginStream
913         * WebView.subproj/WebDataSourcePrivate.h:
914         * WebView.subproj/WebDataSourcePrivate.m:
915         (-[WebDataSourcePrivate dealloc]): release pluginStreams
916         (-[WebDataSource _addPluginStream:]): just like addSubresourceClient except don't change the loading state.
917         (-[WebDataSource _removePluginStream:]): just like removeSubresourceClient except don't change the loading state.
918         (-[WebDataSource _stopLoading]): stop plug-ins streams
919         (-[WebDataSource _makeHandleDelegates:deferCallbacks:]): 
920         (-[WebDataSource _defersCallbacksChanged]): call _makeHandleDelegates:deferCallbacks: for subresources and plug-in streams.
921
922 2002-11-18  Richard Williamson   <rjw@apple.com>
923
924         Check for usesBackForwardList was excluding all load types.
925         
926         * WebView.subproj/WebFramePrivate.m:
927         (-[WebFrame _transitionToCommitted]):
928
929 2002-11-18  Chris Blumenberg  <cblu@apple.com>
930
931         Fixed: 3098767 - REGRESSION: standalone quicktime content just shows blank window
932
933         Check the instance not the class for the class type.
934
935         * Plugins.subproj/WebNetscapePluginRepresentation.m:
936         (-[WebNetscapePluginRepresentation receivedData:withDataSource:]):
937
938 2002-11-18  Ken Kocienda  <kocienda@apple.com>
939
940         Added feature to import bookmarks/favorites from MSIE. This
941         fixes Radar 2961230 (import Mac IE bookmarks).
942
943         * Bookmarks.subproj/WebBookmarkImporter.h: Added.
944         * Bookmarks.subproj/WebBookmarkImporter.m: Added.
945         (_breakStringIntoLines):
946         (_HREFRangeFromSpec):
947         (_HREFTextFromSpec):
948         (_linkTextRangeFromSpec):
949         (_linkTextFromSpec):
950         (-[WebBookmarkImporter initWithPath:group:]):
951         (-[WebBookmarkImporter topBookmark]):
952         (-[WebBookmarkImporter error]):
953         (-[WebBookmarkImporter dealloc]):
954         * Bookmarks.subproj/WebBookmarkList.m:
955         (-[WebBookmarkList init]): Create the bookmark list object. This
956         was not created with the -init initializer, causing bookmark lists
957         to fail.
958         * English.lproj/Localizable.strings:
959         * English.lproj/StringsNotToBeLocalized.txt:
960         * WebKit.exp:
961         * WebKit.pbproj/project.pbxproj:
962
963 2002-11-17  Trey Matteson  <trey@apple.com>
964
965         Code cleanup to make some internal methods return autoreleased objects.
966
967         * WebView.subproj/WebFramePrivate.m:
968         (-[WebFrame _addBackForwardItemClippedAtTarget:]):
969         (-[WebFrame _createItem]):
970         (-[WebFrame _createItemTreeWithTargetFrame:clippedAtTarget:]):
971         (-[WebFrame _transitionToCommitted]):
972
973 2002-11-17  Trey Matteson  <trey@apple.com>
974
975         Fixed 3102076 - REGRESSION: infinite recursion involving bridge end
976         Fixed 3100929 - REGRESSION: serverRedirectedForDataSource: not sent on server redirects
977         Fixed 3103381 - REGRESSION: Going back from anchor doesn't restore scroll position
978
979         * WebView.subproj/WebBaseResourceHandleDelegate.m:
980         (-[WebBaseResourceHandleDelegate handle:willSendRequest:]):  Return the copy of the
981         request that we make instead of the original.
982         * WebView.subproj/WebMainResourceClient.m:
983         (-[WebMainResourceClient handle:willSendRequest:]):  Call super after we make our mods
984         to the request, so the copy that super makes for us includes those mods.
985
986         * WebView.subproj/WebFramePrivate.h:  Added new state, WebFrameStateCompleting.
987         * WebView.subproj/WebFramePrivate.m:
988         (-[WebFrame _transitionToLayoutAcceptable]):  Completing state is a NOP.
989         (-[WebFrame _transitionToCommitted]):  Completing state is a NOP.
990         (-[WebFrame _isLoadComplete]):  Go to Completing state before calling [bridge end].
991         Go to Completed state afterwards, only if no new loads started in the meantime.
992         (-[WebFrame _loadItem:fromItem:withLoadType:]):  When doing anchor nav to get to the
993         item, save and restore scroll state, and set the current item.
994         (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:request:]):
995         Reorder the steps so the right scroll state gets saved to the right place.  Also, don't
996         add a backForward item if we're doing a client redirect to an anchor.
997
998 2002-11-17  David Hyatt  <hyatt@apple.com>
999
1000         Back out my previous fix.  I have a better one that is
1001         confined to WebCore.
1002         
1003         * WebView.subproj/WebFramePrivate.m:
1004         (-[WebFrame _isLoadComplete]):
1005
1006 2002-11-17  David Hyatt  <hyatt@apple.com>
1007
1008         The needsdisplay is necessary even for HTML documents.
1009         I over-optimized here.  Fixes the directory.apple.com
1010         regression and the santa clara library regression.
1011         
1012         * WebView.subproj/WebFramePrivate.m:
1013         (-[WebFrame _isLoadComplete]):
1014
1015 2002-11-17  Darin Adler  <darin@apple.com>
1016
1017         - update for change to WebCore API so it never uses NSURL
1018
1019         * WebCoreSupport.subproj/WebBridge.m:
1020         (-[WebBridge createWindowWithURL:frameName:]): Take NSString instead of NSURL.
1021         (-[WebBridge startLoadingResource:withURL:]): Ditto.
1022         (-[WebBridge objectLoadedFromCacheWithURL:response:size:]): Ditto.
1023         (-[WebBridge reportClientRedirectToURL:delay:fireDate:]): Ditto.
1024         (-[WebBridge setIconURL:]): Ditto.
1025         (-[WebBridge setIconURL:withType:]): Ditto.
1026         (-[WebBridge loadURL:reload:triggeringEvent:isFormSubmission:]): Ditto.
1027         (-[WebBridge postWithURL:data:contentType:triggeringEvent:]): Ditto.
1028         (-[WebBridge createChildFrameNamed:withURL:renderPart:allowsScrolling:marginWidth:marginHeight:]): Ditto.
1029         (-[WebBridge userAgentForURL:]): Ditto.
1030         (-[WebBridge requestedURL]): Return NSString instead of NSURL.
1031         (-[WebBridge viewForPluginWithURL:attributes:baseURL:MIMEType:]): Take NSString instead of NSURL.
1032         (-[WebBridge viewForJavaAppletWithFrame:attributes:baseURL:]): Take NSString instead of NSURL.
1033
1034         * WebCoreSupport.subproj/WebCookieAdapter.m:
1035         (-[WebCookieAdapter cookiesForURL:]): Take NSString instead of NSURL.
1036         (-[WebCookieAdapter setCookies:forURL:policyBaseURL:]): Ditto.
1037
1038         * WebView.subproj/WebDataSourcePrivate.m:
1039         (-[WebDataSource _commitIfReady]): Pass NSString instead of NSURL.
1040         * WebView.subproj/WebFramePrivate.m:
1041         (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:request:]): Pass NSString instead of NSURL
1042         (-[WebFrame _loadURL:loadType:triggeringEvent:isFormSubmission:]): Turn bridge URL into NSURL so we
1043         can call _web_URLByRemovingFragment on it.
1044         * WebView.subproj/WebHTMLViewPrivate.m:
1045         (-[WebHTMLView _elementAtPoint:]): Convert NSString to NSURL when making the WebKit element dictionary.
1046
1047 2002-11-17  Maciej Stachowiak  <mjs@apple.com>
1048
1049         - fixed 2949193 - implement onKeyDown, onKeyPress, and onKeyUp event handlers
1050         
1051         * WebView.subproj/WebHTMLViewPrivate.h:
1052         * WebView.subproj/WebHTMLViewPrivate.m:
1053         (+[WebHTMLView load]): Pose as NSWindow too now.
1054         (-[WebHTMLView _interceptKeyEvent:toView:]): Pass event to WebCore and
1055         see if WebCore wants to block it.
1056         (-[WebNSWindow sendEvent:]): For all key events that would go to a
1057         subview of a WebHTMLView, let the WebHTMLView take a first crack
1058         at it.
1059
1060 2002-11-15  Darin Adler  <darin@apple.com>
1061
1062         - fixed 3079214 -- text/plain page shows up slowly, a few pages at a time
1063
1064         * WebView.subproj/WebTextView.m:
1065         (-[WebTextView initWithFrame:]): Remove unneeded setWidthTracksTextView:, because
1066         that's the default.
1067         (-[WebTextView dataSourceUpdated:]): Replace the thing each time in the RTF case.
1068         (-[WebTextView viewDidMoveToSuperview]): Here's where we resize, but only the width.
1069         Resizing the height was causing the bug.
1070         (-[WebTextView layout]): Do nothing.
1071         (-[WebTextView setAcceptsDrags:]): Update to new name. Since we weren't
1072         importing WebDocument.h, we never noticed that this file got out of sync.
1073         (-[WebTextView acceptsDrags]): Ditto.
1074         (-[WebTextView setAcceptsDrops:]): Ditto.
1075         (-[WebTextView acceptsDrops]): Ditto.
1076
1077         * WebView.subproj/WebDocument.h: Fix typo. It said setAcceptsDrags: twice.
1078
1079 2002-11-15  Darin Adler  <darin@apple.com>
1080
1081         * WebView.subproj/WebFramePrivate.m: Removed a bunch of tabs and fixed indenting.
1082
1083 2002-11-15  Maciej Stachowiak  <mjs@apple.com>
1084
1085         - fixed 3102016 - REGRESSION: Command-clicking on a link can open _two_ windows.
1086         
1087         * WebView.subproj/WebDataSourcePrivate.h:
1088         * WebView.subproj/WebDataSourcePrivate.m:
1089         (-[WebDataSource _setJustOpenedForTargetedLink:]):
1090         (-[WebDataSource _justOpenedForTargetedLink]):
1091         * WebView.subproj/WebFrame.m:
1092         (-[WebFrame findOrCreateFramedNamed:]):
1093         * WebView.subproj/WebFramePrivate.h:
1094         * WebView.subproj/WebFramePrivate.m:
1095         (-[WebFrame _continueAfterNavigationPolicy:]):
1096         (-[WebFrame _loadDataSource:withLoadType:]):
1097         (-[WebFrame _downloadRequest:toPath:]):
1098         (-[WebFrame _setJustOpenedForTargetedLink:]):
1099
1100 2002-11-15  Darin Adler  <darin@apple.com>
1101
1102         * WebView.subproj/WebFramePrivate.m:
1103         (-[WebFrame _checkNavigationPolicyForRequest:dataSource:andCall:withSelector:]):
1104         Give the listener a slightly longer lifetime, to make this API a bit more foolproof.
1105
1106 2002-11-15  Maciej Stachowiak  <mjs@apple.com>
1107
1108         Fix world leak I introduced, and also add an early return when needed.
1109         
1110         * WebView.subproj/WebFramePrivate.m:
1111         (-[WebFrame _invalidatePendingPolicyDecisionCallingDefaultAction:]):
1112         (-[WebFrame _checkNavigationPolicyForRequest:dataSource:andCall:withSelector:]):
1113
1114 2002-11-15  Maciej Stachowiak  <mjs@apple.com>
1115
1116         Make navigation policy asynchronous for real.
1117         
1118         * WebKit.pbproj/project.pbxproj:
1119         * WebView.subproj/WebControllerPolicyDelegate.h:
1120         * WebView.subproj/WebControllerPolicyDelegate.m:
1121         (-[WebPolicyDecisionListenerPrivate initWithTarget:action:]):
1122         (-[WebPolicyDecisionListenerPrivate dealloc]):
1123         (-[WebPolicyDecisionListener usePolicy:]):
1124         (-[WebPolicyDecisionListener _initWithTarget:action:]):
1125         (-[WebPolicyDecisionListener dealloc]):
1126         (-[WebPolicyDecisionListener _invalidate]):
1127         * WebView.subproj/WebControllerPolicyDelegatePrivate.h: Added.
1128         * WebView.subproj/WebDefaultPolicyDelegate.m:
1129         (-[WebDefaultPolicyDelegate decideNavigationPolicyForAction:andRequest:inFrame:decisionListener:]):
1130         * WebView.subproj/WebFrame.m:
1131         (-[WebFrame stopLoading]):
1132         * WebView.subproj/WebFramePrivate.h:
1133         * WebView.subproj/WebFramePrivate.m:
1134         (-[WebFramePrivate dealloc]):
1135         (-[WebFrame _invalidatePendingPolicyDecisionCallingDefaultAction:]):
1136         (-[WebFrame _checkNavigationPolicyForRequest:dataSource:andCall:withSelector:]):
1137         (-[WebFrame _continueAfterNavigationPolicy:]):
1138         (-[WebFrame _loadURL:loadType:triggeringEvent:isFormSubmission:]):
1139         (-[WebFrame _loadDataSource:withLoadType:]):
1140
1141 2002-11-15  Maciej Stachowiak  <mjs@apple.com>
1142
1143         Wrap content policy invocation to look asynchronous.
1144         
1145         * WebView.subproj/WebBaseResourceHandleDelegate.h:
1146         * WebView.subproj/WebMainResourceClient.m:
1147         (-[WebMainResourceClient continueAfterContentPolicy:response:]):
1148         (-[WebMainResourceClient checkContentPolicyForResponse:andCallSelector:]):
1149         (-[WebMainResourceClient handle:didReceiveResponse:]):
1150
1151 2002-11-15  Maciej Stachowiak  <mjs@apple.com>
1152
1153         Refactor so that all invocations of navigation policy are set up
1154         to be asynchronous. However, the actually delegate method is not
1155         async yet.
1156         
1157         * WebView.subproj/WebFramePrivate.h:
1158         * WebView.subproj/WebFramePrivate.m:
1159         (-[WebFrame _checkNavigationPolicyForRequest:dataSource:andCall:withSelector:]):
1160         (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:request:]):
1161         (-[WebFrame _loadURL:loadType:triggeringEvent:isFormSubmission:]):
1162         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:request:]):
1163         (-[WebFrame _loadDataSource:withLoadType:]):
1164         * WebView.subproj/WebMainResourceClient.h:
1165         * WebView.subproj/WebMainResourceClient.m:
1166         (-[WebMainResourceClient stopLoadingForPolicyChange]):
1167         (-[WebMainResourceClient continueAfterNavigationPolicy:request:]):
1168         (-[WebMainResourceClient handle:willSendRequest:]):
1169         (-[WebMainResourceClient handle:didReceiveResponse:]):
1170
1171 2002-11-14  Maciej Stachowiak  <mjs@apple.com>
1172
1173         Refactor things a bit so all loads bottleneck through a single
1174         method (_loadDataSource:withLoadType:).
1175         
1176         * WebView.subproj/WebFrame.m:
1177         (-[WebFrame loadRequest:]):
1178         (-[WebFrame reload]):
1179         * WebView.subproj/WebFramePrivate.h:
1180         * WebView.subproj/WebFramePrivate.m:
1181         (-[WebFrame _loadItem:fromItem:withLoadType:]):
1182         (-[WebFrame _loadRequest:triggeringAction:loadType:]):
1183         (-[WebFrame _loadURL:loadType:triggeringEvent:isFormSubmission:]):
1184         (-[WebFrame _postWithURL:data:contentType:triggeringEvent:]):
1185         (-[WebFrame _reloadAllowingStaleDataWithOverrideEncoding:]):
1186         (-[WebFrame _loadDataSource:withLoadType:]):
1187         (-[WebFrame _downloadRequest:toPath:]):
1188
1189 2002-11-14  Maciej Stachowiak  <mjs@apple.com>
1190
1191         Change things so the public interface to loading is loadRequest:
1192         and everything else is private.
1193         
1194         * Plugins.subproj/WebBaseNetscapePluginView.m:
1195         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]):
1196         * Plugins.subproj/WebPluginController.m:
1197         (-[WebPluginController showURL:inFrame:]):
1198         * WebView.subproj/WebController.h:
1199         * WebView.subproj/WebController.m:
1200         (-[WebController init]):
1201         * WebView.subproj/WebControllerPrivate.m:
1202         (-[WebController _createFrameNamed:inParent:allowsScrolling:]):
1203         (-[WebController _downloadURL:toPath:]):
1204         * WebView.subproj/WebFrame.h:
1205         * WebView.subproj/WebFrame.m:
1206         (-[WebFrame init]):
1207         (-[WebFrame initWithName:webView:controller:]):
1208         (-[WebFrame loadRequest:]):
1209         (-[WebFrame reload]):
1210         * WebView.subproj/WebFramePrivate.h:
1211         * WebView.subproj/WebFramePrivate.m:
1212         (-[WebFrame _timedLayout:]):
1213         (-[WebFrame _clearProvisionalDataSource]):
1214         (-[WebFrame _loadItem:fromItem:withLoadType:]):
1215         (-[WebFrame _loadRequest:triggeringAction:]):
1216         (-[WebFrame _reloadAllowingStaleDataWithOverrideEncoding:]):
1217         (-[WebFrame _itemForRestoringDocState]):
1218         (-[WebFrame _setProvisionalDataSource:]):
1219         (-[WebFrame _startLoading]):
1220         (-[WebFrame _downloadRequest:toPath:]):
1221         * WebView.subproj/WebMainResourceClient.m:
1222         (-[WebMainResourceClient handle:willSendRequest:]):
1223         (-[WebMainResourceClient stopLoadingAfterContentPolicy]):
1224         (-[WebMainResourceClient handle:didReceiveResponse:]):
1225         * WebView.subproj/WebView.m:
1226         (-[WebView concludeDragOperation:]):
1227
1228 2002-11-14  David Hyatt  <hyatt@apple.com>
1229
1230         Move text measurement and layout beyond onload.  This
1231         shoudl speed up i-bench substantially and morrison's
1232         PLT test slightly.  Note that the adjustFrames layout
1233         stuff has been removed from isLoadComplete.
1234         
1235         * WebView.subproj/WebFramePrivate.m:
1236         (-[WebFrame _timedLayout:]):
1237         (-[WebFrame _isLoadComplete]):
1238
1239 2002-11-14  Darin Adler  <darin@apple.com>
1240
1241         * English.lproj/Localizable.strings: Updated to include the new
1242         error messages that Maciej just added. I wonder what effect this
1243         will have if we see those errors in Alex-32?
1244
1245 === Alexander-32 ===
1246
1247 2002-11-14  Don Melton  <gramps@apple.com>
1248
1249         * WebView.subproj/WebControllerPolicyDelegate.h:
1250
1251         Added missing semi-colon in definition of WebPolicyDecisionListener to
1252         fix build error.
1253
1254 2002-11-14  Maciej Stachowiak  <mjs@apple.com>
1255
1256         Combined file URL policy with content policy. We don't actually
1257         bother to ask earlier for file URLs yet, since that will make
1258         things more complicated.
1259         
1260         * Misc.subproj/WebKitErrors.h:
1261         * WebView.subproj/WebControllerPolicyDelegate.h:
1262         * WebView.subproj/WebDefaultPolicyDelegate.m:
1263         * WebView.subproj/WebFramePrivate.h:
1264         * WebView.subproj/WebFramePrivate.m:
1265         (-[WebFrame _handleUnimplementablePolicy:errorCode:forURL:]):
1266         (-[WebFrame _continueAfterNavigationPolicyForRequest:dataSource:]):
1267         * WebView.subproj/WebMainResourceClient.h:
1268         * WebView.subproj/WebMainResourceClient.m:
1269         (-[WebMainResourceClient stopLoadingAfterContentPolicy]):
1270         (-[WebMainResourceClient handle:didReceiveResponse:]):
1271         * WebView.subproj/WebView.m:
1272         (+[WebView initialize]):
1273
1274 2002-11-14  Darin Adler  <darin@apple.com>
1275
1276         - fixed 3099240 -- REGRESSION: repro assert d->m_doc->parsing
1277
1278         Make the reload flag pass across the bridge.
1279
1280         * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _commitIfReady]):
1281         Pass a reload flag, based on the load type, to the bridge.
1282         * WebView.subproj/WebFramePrivate.m:
1283         (-[WebFrame _loadURL:loadType:triggeringEvent:isFormSubmission:]): Pass a
1284         reload flag of NO in the anchor case. Preserve reload load types even when
1285         doing client redirects (have to talk with Trey about this tomorrow).
1286
1287 2002-11-14  Darin Adler  <darin@apple.com>
1288
1289         - fixed 3100235 -- nil-deference in khtml::RenderTable at money.cnn.com
1290
1291         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView drawRect:]):
1292         If the WebCore side needs layout, then do layout before trying to draw.
1293
1294 2002-11-13  Trey Matteson  <trey@apple.com>
1295
1296         Fixed client redirects, some more.  The upshot is that they do not
1297         generate two items in the back-forward list.  iBench still works.
1298
1299         * WebCoreSupport.subproj/WebBridge.m:
1300         (-[WebBridge reportClientRedirectTo:delay:fireDate:]):  Call straight to the frame for all impl.
1301         (-[WebBridge reportClientRedirectCancelled]):  Call straight to the frame for all impl.
1302         (-[WebBridge loadURL:reload:triggeringEvent:isFormSubmission:]):
1303         clientRedirect param removed when sending _loadURL: to frame.
1304         * WebView.subproj/WebFramePrivate.h:
1305         * WebView.subproj/WebFramePrivate.m:
1306         (-[WebFrame _loadURL:loadType:triggeringEvent:isFormSubmission:]):
1307         clientRedirect param  removed. Check our own ivar to know if we are in client redirect case.
1308         (-[WebFrame _loadURL:intoChild:]):
1309         clientRedirect param removed when sending _loadURL: .
1310         (-[WebFrame _clientRedirectedTo:delay:fireDate:]):
1311         Note that we are doing a redirect if time=0 and we're not completed.  Also includes
1312         previous impl moved from Bridge.
1313         (-[WebFrame _clientRedirectCancelled]):  Previous impl moved from Bridge.
1314
1315
1316 2002-11-13  Maciej Stachowiak  <mjs@apple.com>
1317
1318         Pass mime type instead of full response to content policy delegate
1319         method, in preparation for merging it with the file URL policy.
1320         
1321         * WebView.subproj/WebControllerPolicyDelegate.h:
1322         * WebView.subproj/WebDefaultPolicyDelegate.m:
1323         * WebView.subproj/WebMainResourceClient.m:
1324         (-[WebMainResourceClient handle:didReceiveResponse:]):
1325
1326 2002-11-13  Darin Adler  <darin@apple.com>
1327
1328         - fixed 3083982 -- Logging into AOL gives null view
1329
1330         Turns out AOL was using a refresh header, which we were not supporting.
1331
1332         * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _commitIfReady]):
1333         Call openURL: and pass headers in.
1334
1335         * WebView.subproj/WebFramePrivate.m:
1336         (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:isFormSubmission:]):
1337         Pass nil for headers in this case, since we know it's just an anchor change.
1338
1339         - other things
1340
1341         * WebCoreSupport.subproj/WebBridge.h: Remove dataSourceChanged and dataSource
1342         methods. We try to keep the bridge methods down to actual bridging.
1343         * WebCoreSupport.subproj/WebBridge.m: Remove dataSourceChanged altogether,
1344         and move dataSource up in the file.
1345
1346         * WebView.subproj/WebHTMLRepresentation.m:
1347         (-[WebHTMLRepresentation setDataSource:]): Keep the data source around, so we
1348         don't need to ask the bridge for it.
1349         (-[WebHTMLRepresentation documentSource]): Use it here.
1350
1351 2002-11-13  Trey Matteson  <trey@apple.com>
1352
1353         Fixed 3100084 - REGRESSION: web page is not first responder after visiting web page
1354
1355         * WebView.subproj/WebDataSourcePrivate.m:
1356         (-[WebDataSource _commitIfReady]):  Make the rep before _transitionToCommitted.  This is the way it used to be.
1357         (-[WebDataSource _makeRepresentation]):  Don't make the docView here.
1358
1359         * WebView.subproj/WebFramePrivate.m:
1360         (-[WebFrame _transitionToCommitted]):  Make the docView here, after we save the scroll state but before notifying the delegate.
1361
1362 2002-11-13  Darin Adler  <darin@apple.com>
1363
1364         - fixed 3100013 -- REGRESSION: Can't get results from i-Bench anymore
1365
1366         * WebView.subproj/WebFramePrivate.m: (-[WebFrame _isLoadComplete]):
1367         Don't set the state to WebFrameStateComplete if it has already been set
1368         to WebFrameStateProvisional. If it has, that means we already began a new
1369         load; that one is not yet complete.
1370
1371 2002-11-13  John Sullivan  <sullivan@apple.com>
1372
1373         - fixed 3099922 -- REGRESSION: Back button always pops up menu
1374
1375         * Misc.subproj/WebNSViewExtras.h:
1376         * Misc.subproj/WebNSViewExtras.m:
1377         (-[NSView _web_dragShouldBeginFromMouseDown:withExpiration:xHysteresis:yHysteresis:]:
1378         Fixed a copy/paste error I made yesterday -- this method was never
1379         noticing the mouse-up events because it was checking the event type
1380         against the wrong number. Also changed the hysteresis values from
1381         unsigneds to floats (unsigned was just wrong).
1382
1383 2002-11-13  Maciej Stachowiak  <mjs@apple.com>
1384
1385         - fixed 3050447 - Policy handlers have no way of telling client
1386         that the proposed navigation is a form post
1387
1388         Now we pass form submissions through all the normal policy steps.
1389         
1390         * WebCoreSupport.subproj/WebBridge.m:
1391         (-[WebBridge loadURL:reload:triggeringEvent:isFormSubmission:]):
1392         (-[WebBridge postWithURL:data:contentType:triggeringEvent:]):
1393         (-[WebBridge createChildFrameNamed:withURL:renderPart:allowsScrolling:marginWidth:marginHeight:]):
1394         * WebView.subproj/WebDataSourcePrivate.h:
1395         * WebView.subproj/WebDataSourcePrivate.m:
1396         (-[WebDataSourcePrivate dealloc]):
1397         (-[WebDataSource _setTriggeringAction:]):
1398         (-[WebDataSource _triggeringAction]):
1399         (-[WebDataSource _lastCheckedRequest]):
1400         (-[WebDataSource _setLastCheckedRequest:]):
1401         * WebView.subproj/WebFrame.m:
1402         (-[WebFrame setProvisionalDataSource:]):
1403         * WebView.subproj/WebFramePrivate.h:
1404         * WebView.subproj/WebFramePrivate.m:
1405         (-[WebFrame _shouldShowRequest:]):
1406         (-[WebFrame _loadRequest:triggeringAction:]):
1407         (-[WebFrame _actionInformationForNavigationType:event:]):
1408         (-[WebFrame _continueAfterNavigationPolicyForRequest:dataSource:]):
1409         (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:isFormSubmission:]):
1410         (-[WebFrame _loadURL:intoChild:]):
1411         (-[WebFrame _postWithURL:data:contentType:triggeringEvent:]):
1412
1413 2002-11-12  Maciej Stachowiak  <mjs@apple.com>
1414
1415         Combine click policy and URL policy into navigation policy.
1416         
1417         * WebView.subproj/WebControllerPolicyDelegate.h:
1418         * WebView.subproj/WebDefaultPolicyDelegate.h:
1419         * WebView.subproj/WebDefaultPolicyDelegate.m:
1420         (-[WebDefaultPolicyDelegate navigationPolicyForAction:andRequest:inFrame:]):
1421         * WebView.subproj/WebFramePrivate.h:
1422         * WebView.subproj/WebFramePrivate.m:
1423         (-[WebFrame _shouldShowRequest:]):
1424         (-[WebFrame _actionInformationForNavigationType:event:]):
1425         (-[WebFrame _continueAfterFileURLPolicyForRequest:]):
1426         (-[WebFrame _continueAfterNavigationPolicyForRequest:event:]):
1427         (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:]):
1428
1429 2002-11-12  Trey Matteson  <trey@apple.com>
1430
1431         fixed 3096030 - Crash in -[WebBackForwardList goToEntry:] when playing with SnapBack and dictionary.com
1432
1433         * WebView.subproj/WebFramePrivate.m:
1434         (-[WebFrame _isLoadComplete]):  Set state=completed only after we tell the bridge to
1435         end the load.  This allows client redirects to be processed before we think we're complete.
1436         (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:]):
1437         Only process client redirects as such if we are not already complete.  This makes JS driven
1438         navigations after load-time work like the user would expect, as normal navigations.
1439
1440 2002-11-12  Maciej Stachowiak  <mjs@apple.com>
1441
1442         - fixed 3099487 - REGRESSION: dragging an image always puts it in
1443         the download directory
1444         
1445         * WebView.subproj/WebControllerPrivate.h:
1446         * WebView.subproj/WebControllerPrivate.m:
1447         (-[WebController _downloadURL:]): Call _downloadURL:toPath: with nil path.
1448         (-[WebController _downloadURL:toPath:]): New method that
1449         predetermines the path to download to (needed for DnD).
1450         * WebView.subproj/WebHTMLView.m:
1451         (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): Use
1452         _downloadURL:toPath:
1453         * WebView.subproj/WebImageView.m:
1454         (-[WebImageView namesOfPromisedFilesDroppedAtDestination:]): Use
1455         _downloadURL:toPath:
1456         * WebView.subproj/WebMainResourceClient.m:
1457         (-[WebMainResourceClient handle:didReceiveResponse:]): Don't ask
1458         delegate for download path if we already have one.
1459
1460 2002-11-12  Richard Williamson  <rjw@apple.com>
1461
1462         Fixed likely cause of 3099047 (and others).  Width buffer could underrun in
1463         some situations.
1464         
1465         * WebCoreSupport.subproj/WebTextRenderer.m:
1466         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:letterSpacing:wordSpacing:]):
1467
1468 2002-11-12  John Sullivan  <sullivan@apple.com>
1469
1470         * Misc.subproj/WebNSViewExtras.h:
1471         * Misc.subproj/WebNSViewExtras.m:
1472         (-[NSView _web_dragShouldBeginFromMouseDown:withExpiration:xHysteresis:yHysteresis:]):
1473         new method
1474         (-[NSView _web_dragShouldBeginFromMouseDown:withExpiration:]):
1475         now calls the new method, passing the default hysteresis values
1476
1477 2002-11-12  Richard Williamson  <rjw@apple.com>
1478
1479         Implemented letter-spacing and word-spacing CSS properties.
1480
1481         * Misc.subproj/WebStringTruncator.m:
1482         (+[WebStringTruncator rightTruncateString:toWidth:withFont:]):
1483         (+[WebStringTruncator centerTruncateString:toWidth:withFont:]):
1484         * WebCoreSupport.subproj/WebTextRenderer.h:
1485         * WebCoreSupport.subproj/WebTextRenderer.m:
1486         (-[WebTextRenderer widthForCharacters:length:]):
1487         (-[WebTextRenderer drawCharacters:stringLength:fromCharacterPosition:toCharacterPosition:atPoint:withPadding:withTextColor:backgroundColor:rightToLeft:letterSpacing:wordSpacing:]):
1488         (-[WebTextRenderer floatWidthForCharacters:stringLength:characterPosition:]):
1489         (-[WebTextRenderer floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:]):
1490         (-[WebTextRenderer floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:letterSpacing:wordSpacing:]):
1491         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:letterSpacing:wordSpacing:]):
1492
1493 2002-11-12  Maciej Stachowiak  <mjs@apple.com>
1494
1495         Removed policy classes and instead use the policy enums directly,
1496         since we no longer hold the path in the enum.
1497         
1498         * Downloads.subproj/WebDownloadHandler.m:
1499         * WebKit.exp:
1500         * WebKit.pbproj/project.pbxproj:
1501         * WebView.subproj/WebControllerPolicyDelegate.h:
1502         * WebView.subproj/WebControllerPolicyDelegate.m:
1503         * WebView.subproj/WebControllerPolicyDelegatePrivate.h: Removed.
1504         * WebView.subproj/WebControllerPrivate.m:
1505         * WebView.subproj/WebDefaultPolicyDelegate.h:
1506         * WebView.subproj/WebDefaultPolicyDelegate.m:
1507         (+[WebDefaultPolicyDelegate defaultURLPolicyForRequest:]):
1508         (-[WebDefaultPolicyDelegate URLPolicyForRequest:inFrame:]):
1509         (-[WebDefaultPolicyDelegate fileURLPolicyForMIMEType:andRequest:inFrame:]):
1510         (-[WebDefaultPolicyDelegate unableToImplementPolicy:error:forURL:inFrame:]):
1511         (-[WebDefaultPolicyDelegate clickPolicyForAction:andRequest:inFrame:]):
1512         * WebView.subproj/WebFramePrivate.m:
1513         (-[WebFrame handleUnimplementablePolicy:errorCode:forURL:]):
1514         (-[WebFrame _shouldShowRequest:]):
1515         (-[WebFrame _continueAfterClickPolicyForEvent:request:]):
1516         * WebView.subproj/WebMainResourceClient.m:
1517         (-[WebMainResourceClient handle:didReceiveResponse:]):
1518
1519 2002-11-12  Maciej Stachowiak  <mjs@apple.com>
1520
1521         Keep the triggering event around on the data source, so it can be
1522         used with redirects.
1523
1524         * WebView.subproj/WebFramePrivate.m:
1525         (-[WebFrame _loadRequest:triggeringEvent:]):
1526         (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:]):
1527         (-[WebFrame _postWithURL:data:contentType:]):
1528
1529 2002-11-12  Darin Adler  <darin@apple.com>
1530
1531         - improved the code that manages observing the window and superview
1532
1533         * WebView.subproj/WebHTMLView.m:
1534         (-[WebHTMLView addSuperviewObservers]): Added.
1535         (-[WebHTMLView removeSuperviewObservers]): Added.
1536         (-[WebHTMLView addWindowObservers]): Added.
1537         (-[WebHTMLView removeWindowObservers]): Added.
1538         (-[WebHTMLView viewWillMoveToSuperview:]): Call removeSuperviewObservers.
1539         (-[WebHTMLView viewDidMoveToSuperview]): Call addSuperviewObservers.
1540         (-[WebHTMLView viewWillMoveToWindow:]): Call removeWindowObservers and
1541         removeSuperviewObservers.
1542         (-[WebHTMLView viewDidMoveToWindow]): Call addWindowObservers and
1543         addSuperviewObservers.
1544
1545 2002-11-11  Maciej Stachowiak  <mjs@apple.com>
1546
1547         Remove contentPolicy parameter from _downloadURL, and remove
1548         remaining traces of path from policy object.
1549
1550         * WebView.subproj/WebControllerPolicyDelegate.h:
1551         * WebView.subproj/WebControllerPolicyDelegate.m:
1552         (-[WebPolicyPrivate dealloc]):
1553         (+[WebURLPolicy webPolicyWithURLAction:]):
1554         (+[WebFileURLPolicy webPolicyWithFileAction:]):
1555         (+[WebContentPolicy webPolicyWithContentAction:]):
1556         (+[WebClickPolicy webPolicyWithClickAction:]):
1557         * WebView.subproj/WebControllerPolicyDelegatePrivate.h:
1558         * WebView.subproj/WebControllerPrivate.h:
1559         * WebView.subproj/WebControllerPrivate.m:
1560         (-[WebController _downloadURL:]):
1561         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1562         (-[WebDefaultContextMenuDelegate downloadURL:]):
1563         * WebView.subproj/WebDefaultPolicyDelegate.m:
1564         (-[WebDefaultPolicyDelegate clickPolicyForAction:andRequest:inFrame:]):
1565         * WebView.subproj/WebFramePrivate.m:
1566         (-[WebFrame _continueAfterClickPolicyForEvent:request:]):
1567         * WebView.subproj/WebHTMLView.m:
1568         (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):
1569         * WebView.subproj/WebImageView.m:
1570         (-[WebImageView namesOfPromisedFilesDroppedAtDestination:]):
1571         * WebView.subproj/WebMainResourceClient.m:
1572         (-[WebMainResourceClient handle:didReceiveResponse:]):
1573
1574 2002-11-11  Darin Adler  <darin@apple.com>
1575
1576         * Plugins.subproj/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage load]):
1577         Use fileSystemRepresentationWithPath, not cString, to turn a path into something
1578         to pass to FSPathMakeRef.
1579
1580         * English.lproj/StringsNotToBeLocalized.txt: Update.
1581
1582 2002-11-11  Darin Adler  <darin@apple.com>
1583
1584         - tighten up cursor handling a bit more
1585
1586         * WebView.subproj/WebDynamicScrollBarsView.m:
1587         * WebView.subproj/WebHTMLView.m:
1588         (-[WebHTMLView addMouseMovedObserver]): Call _frameOrBoundsChanged
1589         so we emit a mouse moved event right away.
1590         (-[WebHTMLView viewWillMoveToSuperview:]): Remove the colon since I
1591         removed the parameter from _frameOrBoundsChanged.
1592
1593         * WebView.subproj/WebHTMLViewPrivate.h: Declare _frameOrBoundsChanged.
1594         * WebView.subproj/WebHTMLViewPrivate.m:
1595         (-[WebHTMLView _frameOrBoundsChanged]): Remove parameter.
1596
1597 2002-11-11  Trey Matteson  <trey@apple.com>
1598
1599         Fixed 3015884 - Reloading a page should remember the scroll position
1600
1601         * WebView.subproj/WebFramePrivate.m:
1602         (-[WebFrame _transitionToCommitted]):  Save scroll position on reload
1603         (-[WebFrame _isLoadComplete]):  Restore position on reload
1604
1605 2002-11-11  Trey Matteson  <trey@apple.com>
1606
1607         * History.subproj/WebBackForwardList.m:
1608         (-[WebBackForwardList addEntry:]):  Yank code to avoid adding a duplicate entry, to catch the
1609         refresh case.  That's dealt with in WebFramePrivate now.
1610         (-[WebBackForwardList description]):  Enhanced to print more info.
1611
1612         * History.subproj/WebHistoryItem.h:
1613         History items now hold an array of subitems to mirror the frame tree.  One item in the tree
1614         is designated the target of the navigation.
1615         * History.subproj/WebHistoryItem.m:
1616         (-[WebHistoryItem dealloc]):  Release new ivars.
1617         (-[WebHistoryItem isTargetItem]):
1618         (-[WebHistoryItem setIsTargetItem:]):
1619         New setter and setter.
1620         (-[WebHistoryItem _recurseToFindTargetItem]):
1621         (-[WebHistoryItem targetItem]):
1622         Search the tree to find the target item.
1623         (-[WebHistoryItem children]):
1624         (-[WebHistoryItem addChildItem:]):
1625         (-[WebHistoryItem childItemWithName:]):
1626         Maintain and search new child item list.
1627         (-[WebHistoryItem description]):
1628         Enhanced to print out the tree of items.
1629         (-[WebHistoryItem dictionaryRepresentation]):
1630         (-[WebHistoryItem initFromDictionaryRepresentation:]):
1631         Save and load the new state.
1632
1633         * WebCoreSupport.subproj/WebBridge.m:
1634         (-[WebBridge generateFrameName]):  New call from KWQ, just forwards to Frame.
1635         (-[WebBridge createChildFrameNamed:withURL:renderPart:allowsScrolling:marginWidth:marginHeight:]):
1636         Call new frame method dedicated to this case.
1637         (-[WebBridge saveDocumentState:]):
1638         (-[WebBridge documentState]):
1639         Call frame methods to get the right item to save/restore to/from.
1640
1641         * WebView.subproj/WebController.m:
1642         (-[WebController _goToItem:withLoadType:]):  Stop any current loading before going to a new item.
1643         (-[WebController goBack]):
1644         (-[WebController goForward]):
1645         (-[WebController goBackOrForwardToItem:]):  Name change of private method (for consistency)
1646
1647         * WebView.subproj/WebDataSourcePrivate.h:
1648         ProvisionalItem and PreviousItem are moved back up to WebFrame, where we know more about the
1649         state transitions that happen during loading.
1650         * WebView.subproj/WebDataSourcePrivate.m:
1651         (-[WebDataSourcePrivate dealloc]): Don't release removed ivars.
1652         (-[WebDataSource _commitIfReady]): Make the view representations -after- the transition to committed.
1653         This allows us to save away the scroll location successfully, since making the view was resetting it.
1654         * WebView.subproj/WebFrame.h:
1655         * WebView.subproj/WebFrame.m:
1656         (-[WebFrame setProvisionalDataSource:]):  Saving the scroll location has moved elsewhere to handle frames.
1657         (-[WebFrame stopLoading]):  Skip all the work if we're already state=complete.
1658
1659         * WebView.subproj/WebFramePrivate.h:
1660         The frame now holds a ref to the current, previous and provisional back-forward items.
1661         * WebView.subproj/WebFramePrivate.m:
1662         (-[WebFramePrivate dealloc]):  Release new state.
1663         (-[WebFramePrivate setProvisionalItem:]):
1664         (-[WebFramePrivate setPreviousItem:]):
1665         (-[WebFramePrivate setCurrentItem:]):   New setters (1 line getters were missed by script)
1666         (-[WebFrame _addBackForwardItemClippedAtTarget:]):  Adds a BF item to the top of the BF list.
1667         (-[WebFrame _createItem]):  Create a single BF item.
1668         (-[WebFrame _createItemTreeWithTargetFrame:clippedAtTarget:]):  Create a tree of BF items, which
1669         mirror the frame tree.
1670         (-[WebFrame _immediateChildFrameNamed:]):  New frame search utility (doesn't recurse)
1671         (-[WebFrame _detachFromParent]):  Save the scroll position when detaching a frame.
1672         (-[WebFrame _transitionToCommitted]):  Maintain new item ivars.  Save scroll position when
1673         appropriate.  Hook up items for child frames to their parent, as they are created.
1674         (-[WebFrame _setState:]):  Clear previousItem whenever we reach committed.
1675         (-[WebFrame _isLoadComplete]):  Clear previousItem if we are committed.
1676         (-[WebFrame _childFramesMatchItem:]):  Does the frame's frame tree match the one held by the item?
1677         (-[WebFrame _loadItem:fromItem:withLoadType:]):  Only do simple anchor navigation if the frame
1678         has no children (fixes oddball corner case with a frame reloading itself).  Set provisional item.
1679         (-[WebFrame _recursiveGoToItem:fromItem:withLoadType:]):  Heart of returning to an item that had
1680         frames.  We either find that the existing content is good, or initiate a load.
1681         (-[WebFrame _goToItem:withLoadType:]):  Adjust the BF list cursor, and recurse to do the work.
1682         (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:]):  Only do anchor-style nav if
1683         the destination URL has a fragment.  Save scroll position.
1684         (-[WebFrame _loadURL:intoChild:]):  If returning to an item with frames, possibly replace the
1685         new content with the stuff that was there at the time, substituting the URL.
1686         (-[WebFrame _saveScrollPositionToItem:]):  Don't croak on nil item or view.
1687         (-[WebFrame _restoreScrollPosition]):  Do croak (ASSERT) on nil item.
1688         (-[WebFrame _scrollToTop]):  Nit cleanup.
1689         (-[WebFrame _addFramePathToString:]):  Add a component for our frame to the frame name we're generating.
1690         (-[WebFrame _generateFrameName]):  Generate a frame name that is repeatable.
1691         (-[WebFrame _itemForSavingDocState]):  Returns correct item to use for formstate save.
1692         (-[WebFrame _itemForRestoringDocState]):  Returns correct item to use for formstate restore
1693
1694 2002-11-11  Maciej Stachowiak  <mjs@apple.com>
1695
1696         Store path and the fact that we're downloading in the data source,
1697         instead of storing the content policy.
1698         
1699         * Downloads.subproj/WebDownloadHandler.m:
1700         (-[WebDownloadHandler cleanUpAfterFailure]):
1701         (-[WebDownloadHandler createFileIfNecessary]):
1702         (-[WebDownloadHandler finishedLoading]):
1703         * WebView.subproj/WebControllerPrivate.m:
1704         (-[WebController _downloadURL:withContentPolicy:]):
1705         * WebView.subproj/WebDataSource.h:
1706         * WebView.subproj/WebDataSource.m:
1707         (+[WebDataSource registerRepresentationClass:forMIMEType:]):
1708         (-[WebDataSource isDownloading]):
1709         (-[WebDataSource downloadPath]):
1710         * WebView.subproj/WebDataSourcePrivate.h:
1711         * WebView.subproj/WebDataSourcePrivate.m:
1712         (-[WebDataSourcePrivate dealloc]):
1713         (-[WebDataSource _commitIfReady]):
1714         (-[WebDataSource _setIsDownloading:]):
1715         (-[WebDataSource _setDownloadPath:]):
1716         * WebView.subproj/WebMainResourceClient.m:
1717         (-[WebMainResourceClient receivedError:]):
1718         (-[WebMainResourceClient handle:didReceiveResponse:]):
1719         (-[WebMainResourceClient handleDidFinishLoading:]):
1720
1721 2002-11-11  Maciej Stachowiak  <mjs@apple.com>
1722
1723         Don't ask for the content policy any more if the previous policies
1724         said to save - in effect this means to ask only if the previous
1725         policies said to use the content policy. Also, remove now-useless
1726         previous content policy parameter from content policy delegate.
1727         
1728         * WebView.subproj/WebControllerPolicyDelegate.h:
1729         * WebView.subproj/WebDataSourcePrivate.m:
1730         (-[WebDataSource _setContentPolicy:]): Retain new policy before
1731         releasing the old one.
1732         * WebView.subproj/WebDefaultPolicyDelegate.m:
1733         * WebView.subproj/WebMainResourceClient.m:
1734         (-[WebMainResourceClient handle:didReceiveResponse:]): Don't ask
1735         for content policy if the delegate already decided to save.
1736
1737 2002-11-11  Maciej Stachowiak  <mjs@apple.com>
1738
1739         Added new policy delegate callback to get the filename - this
1740         won't be up to the content policy any more.
1741         
1742         * WebView.subproj/WebControllerPolicyDelegate.h:
1743         * WebView.subproj/WebDefaultPolicyDelegate.m:
1744         (-[WebDefaultPolicyDelegate saveFilenameForResponse:andRequest:]):
1745         * WebView.subproj/WebMainResourceClient.m:
1746         (-[WebMainResourceClient handle:didReceiveResponse:]):
1747
1748 2002-11-11  Darin Adler  <darin@apple.com>
1749
1750         - made some improvements to cursor setting for greater speed and correctness
1751
1752         * WebView.subproj/WebDynamicScrollBarsView.m:
1753         (-[WebDynamicScrollBarsView setCursor:]): Just use setDocumentCursor: instead of
1754         our own logic. This allows us to remove code and may fix some bugs or anomalies as well.
1755         (-[WebDynamicScrollBarsView dealloc]): Release the cursor. I think we were leaking before.
1756
1757         * WebView.subproj/WebHTMLView.m:
1758         (-[WebHTMLView viewWillMoveToSuperview:]): Use _frameOrBoundsChanged: method now, which
1759         has been moved into the private file.
1760         (-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]): Don't bother finding
1761         topmost WebHTMLView to call _updateMouseoverWithEvent: on; now it works fine no matter
1762         which level it's called at.
1763
1764         * WebView.subproj/WebHTMLViewPrivate.m:
1765         (-[WebHTMLView _frameOrBoundsChanged:]): Moved the code here that was formerly in the
1766         _setNeedsLayoutIfSizeChanged method, also added code that does _updateMouseoverWithEvent:
1767         so that we get properly updated cursor when we scroll.
1768         (-[WebHTMLView _updateMouseoverWithEvent:]): Remove unneeded assert. This method works
1769         equally well no matter which WebHTMLView calls it; everything is done at the window and
1770         controller level.
1771
1772         * WebView.subproj/WebControllerPrivate.h: Added lastElementWasNotNil field and
1773         _mouseDidMoveOverElement:modifierFlags: method.
1774         * WebView.subproj/WebControllerPrivate.m:
1775         (-[WebController _mouseDidMoveOverElement:modifierFlags:]): Call through to the delegate,
1776         but don't do multiple calls if they are all nil.
1777
1778         * WebCoreSupport.subproj/WebBridge.m: Remove unused modifierTrackingEnabled method.
1779         * WebView.subproj/WebHTMLViewPrivate.h: Remove unused _setModifierTrackingEnabled and
1780         _modifierTrackingEnabled methods.
1781
1782 2002-11-10  Darin Adler  <darin@apple.com>
1783
1784         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
1785
1786 2002-11-10  Chris Blumenberg  <cblu@apple.com>
1787
1788         Fixed: 3021681 - downloaded files' creation and modification dates are not set
1789
1790         * Downloads.subproj/WebDownloadHandler.m:
1791         (-[WebDownloadHandler createFileIfNecessary]): call [response creationDate] and [response lastModifiedDate] when setting file attributes.
1792         * Plugins.subproj/WebBaseNetscapePluginStream.m:
1793         (-[WebBaseNetscapePluginStream setResponse:]): call [response lastModifiedDate] when giving content to plug-ins.
1794
1795 2002-11-10  Darin Adler  <darin@apple.com>
1796
1797         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
1798
1799 2002-11-09  Darin Adler  <darin@apple.com>
1800
1801         - fixed 3095156 -- reproducible leak of WebDataSource due to bad URL in stylesheet
1802
1803         * WebCoreSupport.subproj/WebSubresourceClient.m:
1804         (+[WebSubresourceClient startLoadingResource:withURL:referrer:forDataSource:]):
1805         Check for errors by looking at the return value from loadWithRequest: rather than
1806         making a separate call to canInitWithRequest.
1807
1808         * WebView.subproj/WebBaseResourceHandleDelegate.h: Add boolean success/failure result
1809         loadWithRequest:.
1810         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1811         (-[WebBaseResourceHandleDelegate loadWithRequest:]): Return NO if we fail to make a handle.
1812
1813         * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _startLoading]):
1814         Check result of loadWithRequest: and complain if it's NO.
1815
1816         * WebView.subproj/WebMainResourceClient.m: Tweak whitespace.
1817
1818 2002-11-09  Chris Blumenberg  <cblu@apple.com>
1819
1820         Fixed: 2991610 - Alexander should support services, including Speech
1821
1822         * WebView.subproj/WebHTMLView.m:
1823         (+[WebHTMLView initialize]): register for service types
1824         (-[WebHTMLView dealloc]): moved to top of file
1825         (-[WebHTMLView copy:]): call _writeSelectionToPasteboard
1826         (-[WebHTMLView writeSelectionToPasteboard:types:]): call _writeSelectionToPasteboard
1827         (-[WebHTMLView validRequestorForSendType:returnType:]): return self for our pboard types
1828         * WebView.subproj/WebHTMLViewPrivate.h:
1829         * WebView.subproj/WebHTMLViewPrivate.m:
1830         (+[WebHTMLView _pasteboardTypes]): new, returns the array of supported pboard types 
1831         (-[WebHTMLView _writeSelectionToPasteboard:]): new, adds data to pboard
1832         * WebView.subproj/WebImageView.m:
1833         (-[WebImageView initialize]): register for service types
1834         (-[WebImageView validateUserInterfaceItem:]): respond to copy
1835         (-[WebImageView validRequestorForSendType:returnType:]): return self for images
1836         (-[WebImageView writeImageToPasteboard:]): writes image data to pboard
1837         (-[WebImageView copy:]): calls writeImageToPasteboard
1838         (-[WebImageView writeSelectionToPasteboard:types:]): calls writeImageToPasteboard
1839
1840 2002-11-08  Darin Adler  <darin@apple.com>
1841
1842         * History.subproj/WebHistoryItem.m:
1843         (-[WebHistoryItem setTitle:]): Use display title if it matches, so
1844         we don't end up with two identical strings, as when reading from
1845         the property list.
1846         (-[WebHistoryItem setDisplayTitle:]): The same thing, the other way round.
1847
1848 2002-11-08  Darin Adler  <darin@apple.com>
1849
1850         - fixed 3095078 -- image loop counts still not handled right
1851
1852         * WebCoreSupport.subproj/WebImageRenderer.m:
1853         (-[WebImageRenderer blockHasGIFExtensionSignature:length:]): Look for the tag
1854         "NETSCAPE2.0", not "NETSCAPE1.0".
1855         (-[WebImageRenderer nextFrame:]): Remove special handling for last frames with
1856         a duration of 0. That was just a misunderstanding.
1857
1858 2002-11-08  Darin Adler  <darin@apple.com>
1859
1860         * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _setRequest:]):
1861         Slightly better fix. Essentially just take out the assert.
1862
1863 2002-11-08  Darin Adler  <darin@apple.com>
1864
1865         - fixed an assert I am seeing a lot
1866
1867         * WebView.subproj/WebDataSourcePrivate.m: (-[WebDataSource _setRequest:]): Oops.
1868
1869 2002-11-08  Richard Williamson   <rjw@apple.com>
1870
1871         Solved missing glyph problem, but it's very slow, so
1872         it's disabled for now.  I'll turn back on after extending
1873         the character to glyph map in each renderer to include
1874         substituted font.
1875         
1876         * WebCoreSupport.subproj/WebTextRenderer.m:
1877         (-[WebTextRenderer substituteFontForString:]):
1878         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:]):
1879
1880 2002-11-08  Darin Adler  <darin@apple.com>
1881
1882         - separate WebBaseNetscapePluginStream more cleanly from its subclasses
1883         by making most fields private
1884
1885         * Plugins.subproj/WebBaseNetscapePluginStream.m:
1886         (-[WebBaseNetscapePluginStream setResponse:]):
1887         * Plugins.subproj/WebNetscapePluginStream.h:
1888         * Plugins.subproj/WebNetscapePluginStream.m:
1889         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:]):
1890         (-[WebNetscapePluginStream dealloc]):
1891         (-[WebNetscapePluginStream start]):
1892         (-[WebNetscapePluginStream handle:didReceiveData:]):
1893         (-[WebNetscapePluginStream handle:didFailLoadingWithError:]):
1894         * WebCoreSupport.subproj/WebSubresourceClient.m:
1895         (-[WebSubresourceClient handle:didReceiveResponse:]):
1896         (-[WebSubresourceClient handle:didReceiveData:]):
1897         (-[WebSubresourceClient handleDidFinishLoading:]):
1898         (-[WebSubresourceClient handle:didFailLoadingWithError:]):
1899         (-[WebSubresourceClient cancel]):
1900         * WebView.subproj/WebBaseResourceHandleDelegate.h:
1901         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1902         (-[WebBaseResourceHandleDelegate handle:willSendRequest:]):
1903         (-[WebBaseResourceHandleDelegate handle:didFailLoadingWithError:]):
1904         (-[WebBaseResourceHandleDelegate _cancelWithError:]):
1905         (-[WebBaseResourceHandleDelegate cancel]):
1906         (-[WebBaseResourceHandleDelegate cancelQuietly]):
1907         (-[WebBaseResourceHandleDelegate cancelledError]):
1908         (-[WebBaseResourceHandleDelegate notifyDelegatesOfInterruptionByPolicyChange]):
1909         * WebView.subproj/WebMainResourceClient.h:
1910         * WebView.subproj/WebMainResourceClient.m:
1911         (-[WebMainResourceClient cancel]):
1912         (-[WebMainResourceClient handle:willSendRequest:]):
1913         (-[WebMainResourceClient notifyDelegatesOfInterruptionByPolicyChange]):
1914         (-[WebMainResourceClient handle:didReceiveResponse:]):
1915         (-[WebMainResourceClient handle:didReceiveData:]):
1916         (-[WebMainResourceClient handleDidFinishLoading:]):
1917
1918 2002-11-08  Darin Adler  <darin@apple.com>
1919
1920         - changed persistent dictionaries to use NSString instead of NSURL
1921         because of impact on memory footprint
1922
1923         Also changed WebIconDatabase code to verify what it reads from disk,
1924         and ignore it if it can't verify the format.
1925
1926         * Misc.subproj/WebIconDatabase.m:
1927         (-[WebIconDatabase iconForSiteURL:withSize:cache:]):
1928         (-[WebIconDatabase retainIconForSiteURL:]):
1929         (-[WebIconDatabase releaseIconForSiteURL:]):
1930         (-[WebIconDatabase _iconDictionariesAreGood]):
1931         (-[WebIconDatabase _loadIconDictionaries]):
1932         (-[WebIconDatabase _updateFileDatabase]):
1933         (-[WebIconDatabase _hasIconForSiteURL:]):
1934         (-[WebIconDatabase _iconsForIconURLString:]):
1935         (-[WebIconDatabase _setIcon:forIconURL:]):
1936         (-[WebIconDatabase _setIconURL:forSiteURL:]):
1937         (-[WebIconDatabase _setBuiltInIconAtPath:forHost:]):
1938         (-[WebIconDatabase _retainIconForIconURLString:]):
1939         (-[WebIconDatabase _releaseIconForIconURLString:]):
1940         (-[WebIconDatabase _retainFutureIconForSiteURL:]):
1941         (-[WebIconDatabase _releaseFutureIconForSiteURL:]):
1942         (-[WebIconDatabase _retainOriginalIconsOnDisk]):
1943         (-[WebIconDatabase _releaseOriginalIconsOnDisk]):
1944         (-[NSEnumerator _web_isAllStrings]):
1945         * Panels.subproj/WebStandardPanels.m:
1946         (-[WebStandardPanels didStartLoadingURL:inWindow:]):
1947         (-[WebStandardPanels didStopLoadingURL:inWindow:]):
1948         (-[WebStandardPanels _didStartLoadingURL:inController:]):
1949         (-[WebStandardPanels _didStopLoadingURL:inController:]):
1950         (-[WebStandardPanels frontmostWindowLoadingURL:]):
1951
1952 2002-11-08  Darin Adler  <darin@apple.com>
1953
1954         - fixed crash on boot that Don was seeing
1955
1956         * History.subproj/WebHistoryItem.m:
1957         (-[WebHistoryItem URL]): Make this work when _URLString is nil.
1958         (-[WebHistoryItem initFromDictionaryRepresentation:]): Make this work for nil URL.
1959
1960         - my own private war on the cString method
1961
1962         * Downloads.subproj/WebDownloadHandler.m:
1963         (-[WebDownloadHandler initWithDataSource:]): Use %@ in LOG to avoid cString.
1964         (-[WebDownloadHandler finishedLoading]): Ditto.
1965         * WebView.subproj/WebDataSourcePrivate.m:
1966         (-[WebDataSource _commitIfReady]): Ditto.
1967         * WebView.subproj/WebFramePrivate.m:
1968         (-[WebFrame _timedLayout:]): Ditto.
1969         (-[WebFrame _setState:]): More of the same.
1970         (-[WebFrame _isLoadComplete]): Ditto.
1971
1972 2002-11-08  Ken Kocienda  <kocienda@apple.com>
1973
1974         Fix deployment build breaker: a variable was used only in a 
1975         LOG statement, causing the variable to become usused when
1976         building with the Deployment build style. 
1977
1978         * Downloads.subproj/WebDownloadHandler.m:
1979         (-[WebDownloadHandler finishedLoading])
1980
1981 2002-11-07  Darin Adler  <darin@apple.com>
1982
1983         * History.subproj/WebHistoryItem.h: Replace _URL with _URLString.
1984
1985         * History.subproj/WebHistoryItem.m:
1986         (-[WebHistoryItem _retainIconInDatabase:]): Get the URL with [self URL].
1987         (-[WebHistoryItem initWithURL:target:parent:title:]): Set up _URLString.
1988         (-[WebHistoryItem dealloc]): Release _URLString.
1989         (-[WebHistoryItem URL]): Make a URL from _URLString.
1990         (-[WebHistoryItem icon]): Use [self URL] instead of _URL.
1991         (-[WebHistoryItem setURL:]): Store a URL string.
1992         (-[WebHistoryItem hash]): Use the URL string's hash.
1993         (-[WebHistoryItem isEqual:]): Compare the URL strings.
1994         (-[WebHistoryItem description]): Use _URLString.
1995         (-[WebHistoryItem dictionaryRepresentation]): Use _URLString.
1996         (-[WebHistoryItem initFromDictionaryRepresentation:]): Call through to
1997         the other init functions so we have only one designated initializer.
1998         Leave the date as nil if there's no date in the dictionary instead of
1999         setting the date to 0.
2000
2001 2002-11-07  Maciej Stachowiak  <mjs@apple.com>
2002
2003         Removed SaveAndOpenExternally policy.
2004         
2005         * Downloads.subproj/WebDownloadHandler.m:
2006         (-[WebDownloadHandler finishedLoading]):
2007         * WebView.subproj/WebControllerPolicyDelegate.h:
2008         * WebView.subproj/WebFramePrivate.m:
2009         (-[WebFrame _continueAfterClickPolicyForEvent:request:]):
2010         * WebView.subproj/WebMainResourceClient.m:
2011         (-[WebMainResourceClient receivedError:]):
2012         (-[WebMainResourceClient handle:didReceiveResponse:]):
2013         (-[WebMainResourceClient handleDidFinishLoading:]):
2014
2015 2002-11-07  Chris Blumenberg  <cblu@apple.com>
2016
2017         * WebKit.pbproj/project.pbxproj:
2018
2019 2002-11-07  Richard Williamson  <rjw@apple.com>
2020
2021         * WebCoreSupport.subproj/WebImageRenderer.m:
2022         (-[WebImageRenderer stopAnimation]):
2023
2024 2002-11-07  Maciej Stachowiak  <mjs@apple.com>
2025
2026         - fixed 3095628 - REGRESSION: exception when clicking on link to load content into iframe
2027         
2028         * WebView.subproj/WebFramePrivate.m:
2029         (-[WebFrame _actionInformationForNavigationType:event:]): Get the
2030         element info from the HTML view where the click originally
2031         happened, not the current document view. Add some asserts to make
2032         sure this is working.
2033
2034
2035 2002-11-07  Richard Williamson  <rjw@apple.com>
2036
2037         Tweaks
2038         
2039         * WebCoreSupport.subproj/WebTextRenderer.m:
2040         (-[WebTextRenderer convertCharacters:length:toGlyphs:skipControlCharacters:]):
2041         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:]):
2042
2043 === Alexander-31 ===
2044
2045 2002-11-07  Maciej Stachowiak  <mjs@apple.com>
2046
2047         - fixed 3094778 - REGRESSION: Assert on logout from schwab.com
2048
2049         (probably fixed it anyway - I'm flying blind on this one)
2050         
2051         * WebCoreSupport.subproj/WebBridge.m:
2052         (-[WebBridge createWindowWithURL:frameName:]): Use a nil request
2053         if the URL was nil, instead of making a request that contains a
2054         nil URL.
2055
2056 2002-11-07  Maciej Stachowiak  <mjs@apple.com>
2057
2058         Changed things so that creating a window takes a request rather
2059         than a URL and referrer.
2060         
2061         * WebCoreSupport.subproj/WebBridge.m:
2062         (-[WebBridge createWindowWithURL:frameName:]):
2063         * WebView.subproj/WebControllerPrivate.h:
2064         * WebView.subproj/WebControllerPrivate.m:
2065         (-[WebController _openNewWindowWithRequest:behind:]):
2066         * WebView.subproj/WebDataSourcePrivate.h:
2067         * WebView.subproj/WebDataSourcePrivate.m:
2068         (-[WebDataSourcePrivate dealloc]):
2069         (-[WebDataSource _setTriggeringEvent:]):
2070         (-[WebDataSource _triggeringEvent]):
2071         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2072         (-[WebDefaultContextMenuDelegate openNewWindowWithURL:]):
2073         * WebView.subproj/WebFrame.m:
2074         (-[WebFrame setProvisionalDataSource:]):
2075         (-[WebFrame findOrCreateFramedNamed:]):
2076         * WebView.subproj/WebFramePrivate.m:
2077         (-[WebFrame _continueAfterClickPolicyForEvent:request:]):
2078         * WebView.subproj/WebWindowOperationsDelegate.h:
2079
2080 2002-11-06  Darin Adler  <darin@apple.com>
2081
2082         - fixed problem where files small enough to fit entirely in the buffer
2083         (8K or less) would not be decoded
2084
2085         * Downloads.subproj/WebDownloadHandler.m:
2086         (-[WebDownloadHandler decodeData:]): Added. Moved most of the code from
2087         receivedData into here.
2088         (-[WebDownloadHandler receivedData:]): Changed to call decodeData.
2089         (-[WebDownloadHandler finishedLoading]): Call decodeData on any remaining
2090         bytes rather than writing them straight out to the data fork.
2091
2092 2002-11-06  Richard Williamson  <rjw@apple.com>
2093
2094         More work on rendering scripts. Now most complex scripts render correctly.
2095         Working new features include:
2096         bidi, diacriticals, cursive forms, and arabic ligatures.
2097         Selection of text rendered in these scripts, is however, not working. 
2098         Also, line height is incorrect when renderering combined below glyphs.
2099         ajami is, sadly, horrendously broken.
2100
2101         * Misc.subproj/WebUnicode.m:
2102         (glyphVariantLogical):
2103         (shapedString):
2104         * WebCoreSupport.subproj/WebTextRenderer.m:
2105         (-[WebTextRenderer drawCharacters:stringLength:fromCharacterPosition:toCharacterPosition:atPoint:withPadding:withTextColor:backgroundColor:rightToLeft:]):
2106         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:]):
2107
2108 2002-11-06  John Sullivan  <sullivan@apple.com>
2109
2110         * Bookmarks.subproj/WebBookmark.m:
2111         (+[WebBookmark bookmarkOfType:]):
2112         made this handle WebBookmarkTypeProxy
2113
2114 2002-11-06  Darin Adler  <darin@apple.com>
2115
2116         - fixed bug that affected BinHex-encoded files with no resource fork
2117
2118         * Downloads.subproj/WebBinHexDecoder.m:
2119         (-[WebBinHexDecoder decodeData:dataForkData:resourceForkData:]):
2120         Don't decode the resource fork unless done with the data fork.
2121
2122         * Downloads.subproj/WebDownloadHandler.m: (-[WebDownloadHandler receivedData:]):
2123         Set the forks to nil before calling through.
2124
2125 2002-11-06  Darin Adler  <darin@apple.com>
2126
2127         * Downloads.subproj/WebMacBinaryDecoder.m: (+[WebMacBinaryDecoder canDecodeHeaderData:]):
2128         Fix == 129 check that was supposed to be <= 129.
2129
2130         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
2131
2132 2002-11-06  Darin Adler  <darin@apple.com>
2133
2134         * Downloads.subproj/WebBinHexDecoder.m: (-[WebBinHexDecoder decodeIntoBuffer:size:]):
2135         Fix an off-by-one error handling repeat counts.
2136
2137         * WebKit.pbproj/project.pbxproj: Fix group name I accidentally mangled.
2138
2139 2002-11-06  Darin Adler  <darin@apple.com>
2140
2141         - added a BinHex decoder and did a little work on the MacBinary decoder
2142         
2143         I'm not supposed to be working on this, but I didn't feel like doing "real" work.
2144
2145         * Downloads.subproj/WebBinHexDecoder.h: Added.
2146         * Downloads.subproj/WebBinHexDecoder.m: Added.
2147         * WebKit.pbproj/project.pbxproj: Added WebBinHexDecoder.
2148
2149         * Downloads.subproj/WebDownloadDecoder.h: Added WEB_DOWNLOAD_DECODER_MINIMUM_HEADER_LENGTH.
2150         * Downloads.subproj/WebDownloadHandler.m:
2151         (-[WebDownloadHandler closeFile]): Check to be sure we don't close the same file twice.
2152
2153         * Downloads.subproj/WebMacBinaryDecoder.h: Added _scriptCode.
2154         * Downloads.subproj/WebMacBinaryDecoder.m:
2155         (+[WebMacBinaryDecoder canDecodeHeaderData:]): Added check of MacBinary version field.
2156         (-[WebMacBinaryDecoder decodeData:dataForkData:resourceForkData:]): Added MacBinary III
2157         part that gets the script code.
2158         (-[WebMacBinaryDecoder filename]): Use the script code.
2159
2160 2002-11-06  Maciej Stachowiak  <mjs@apple.com>
2161
2162         Took URL field out of click policy - open in new window policy
2163         will always open the request URL.
2164         
2165         * WebView.subproj/WebControllerPolicyDelegate.h:
2166         * WebView.subproj/WebControllerPolicyDelegate.m:
2167         (-[WebPolicyPrivate dealloc]):
2168         (+[WebURLPolicy webPolicyWithURLAction:]):
2169         (+[WebFileURLPolicy webPolicyWithFileAction:]):
2170         (+[WebContentPolicy webPolicyWithContentAction:andPath:]):
2171         * WebView.subproj/WebDefaultPolicyDelegate.m:
2172         (-[WebDefaultPolicyDelegate clickPolicyForAction:andRequest:inFrame:]):
2173         * WebView.subproj/WebFramePrivate.m:
2174         (-[WebFrame _continueAfterClickPolicyForEvent:request:]):
2175
2176 2002-11-06  Chris Blumenberg  <cblu@apple.com>
2177
2178         Support MacBinary I by checking that bytes 99-127 are 0. Also check byte 82 for all formats.
2179
2180         * Downloads.subproj/WebMacBinaryDecoder.m:
2181         (+[WebMacBinaryDecoder canDecodeHeaderData:]):
2182
2183 2002-11-06  Ken Kocienda  <kocienda@apple.com>
2184
2185         Call new WebHTTPResourceRequest method to set the amount of time
2186         to cache a 404 response when trying to fetch a favicon.
2187
2188         This change helps to fix this bug:
2189
2190         Radar 3004422 (Loader should cache misses)
2191
2192         * Misc.subproj/WebIconLoader.m:
2193         (-[WebIconLoader startLoading])
2194
2195 2002-11-05  Maciej Stachowiak  <mjs@apple.com>
2196
2197         Reworked clickPolicy arguments to be closer to proposed version.
2198         
2199         * WebKit.exp:
2200         * WebView.subproj/WebControllerPolicyDelegate.h:
2201         * WebView.subproj/WebControllerPolicyDelegate.m:
2202         * WebView.subproj/WebDefaultPolicyDelegate.m:
2203         (-[WebDefaultPolicyDelegate clickPolicyForAction:andRequest:inFrame:]):
2204         * WebView.subproj/WebFramePrivate.h:
2205         * WebView.subproj/WebFramePrivate.m:
2206         (-[WebFrame _actionInformationForNavigationType:event:]):
2207         (-[WebFrame _continueAfterClickPolicyForEvent:request:]):
2208
2209 2002-11-05  Darin Adler  <darin@apple.com>
2210
2211         * WebCoreSupport.subproj/WebTextRenderer.m: Made a slightly simpler and faster
2212         version of the new "lose precision" CEIL_TO_INT macro.
2213
2214 2002-11-05  Richard Williamson  <rjw@apple.com>
2215
2216         Fixed a couple of issues that Dave highlighted w/ his whitespace
2217         fixes.  CG sometimes introduces very small 'error' in metrics, specifically
2218         we saw character widths of 20.0000019 that should have been 20.  As a 
2219         work-around we loose precision beyond the 1000th place.  Also, always
2220         ceil spaces.
2221                 
2222         * WebCoreSupport.subproj/WebTextRenderer.m:
2223         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:]):
2224
2225 2002-11-05  Darin Adler  <darin@apple.com>
2226
2227         - fixed 3084704 -- crash in HTMLTokenizer on page with JavaScript
2228         HTMLDocument::Close inside a <script>
2229
2230         * WebView.subproj/WebFramePrivate.m: (-[WebFrame _detachFromParent]):
2231         We need to stop loading here. Otherwise we might do loading after closeURL,
2232         which could lead to a problem like the one above.
2233
2234 2002-11-05  Darin Adler  <darin@apple.com>
2235
2236         - changed our MacBinary decoding to not pay any attention to the comment
2237
2238         Before we would "fail to decode" if the comment was truncated, now we just
2239         don't worry about it.
2240
2241         * Downloads.subproj/WebMacBinaryDecoder.h: Remove _commentLength and _commentEnd.
2242         * Downloads.subproj/WebMacBinaryDecoder.m:
2243         (-[WebMacBinaryDecoder decodeData:dataForkData:resourceForkData:]): Remove code
2244         to get _commentLength and code to compute _commentEnd.
2245         (-[WebMacBinaryDecoder finishDecoding]): Check offset against the resource fork
2246         end rather than the comment end to see if we got enough data.
2247
2248 2002-11-05  John Sullivan  <sullivan@apple.com>
2249
2250         * Resources/url_icon.tiff:
2251         reverted generic URL icon back to the one that
2252         looks like a document until we get something from
2253         HI that SJ likes
2254
2255 2002-11-05  Chris Blumenberg  <cblu@apple.com>
2256
2257         Fixed: 3074108 - Decode macbinary files during download
2258
2259         * Downloads.subproj/WebDownloadDecoder.h:
2260         * Downloads.subproj/WebDownloadHandler.h:
2261         * Downloads.subproj/WebDownloadHandler.m:
2262         (-[WebDownloadHandler initWithDataSource:]):
2263         (-[WebDownloadHandler dealloc]):
2264         (-[WebDownloadHandler decodeHeaderData:dataForkData:resourceForkData:]):
2265         (-[WebDownloadHandler decodeData:dataForkData:resourceForkData:]):
2266         (-[WebDownloadHandler closeFile]):
2267         (-[WebDownloadHandler cleanUpAfterFailure]):
2268         (-[WebDownloadHandler createFileIfNecessary]):
2269         (-[WebDownloadHandler writeData:toFork:]):
2270         (-[WebDownloadHandler writeDataForkData:resourceForkData:]):
2271         (-[WebDownloadHandler dataIfDoneBufferingData:]):
2272         (-[WebDownloadHandler receivedData:]):
2273         (-[WebDownloadHandler finishDecoding]):
2274         (-[WebDownloadHandler finishedLoading]):
2275         (-[WebDownloadHandler cancel]):
2276         * Downloads.subproj/WebMacBinaryDecoder.h:
2277         * Downloads.subproj/WebMacBinaryDecoder.m:
2278         (-[WebMacBinaryDecoder decodeData:dataForkData:resourceForkData:]):
2279         (-[WebMacBinaryDecoder fileAttributes]):
2280         (-[WebMacBinaryDecoder filename]):
2281         * Misc.subproj/WebKitErrors.h: added new errors
2282         * WebView.subproj/WebMainResourceClient.m:
2283         (-[WebMainResourceClient handle:didReceiveResponse:]): don't send response to download handler
2284         (-[WebMainResourceClient handle:didReceiveData:]): watch for decoding errors
2285
2286 2002-11-05  Ken Kocienda  <kocienda@apple.com>
2287
2288         Fix for this bug:
2289
2290         Radar 3092747 (javascript cookieEnabled property returns incorrect value)
2291
2292         Now, we return "true" for navigator.cookieEnabled when 
2293         "Only accept cookies from the same domain as the current page" option
2294         is selected is user preferences.
2295
2296         * WebCoreSupport.subproj/WebCookieAdapter.m:
2297         (-[WebCookieAdapter cookiesEnabled])
2298
2299 2002-11-05  John Sullivan  <sullivan@apple.com>
2300
2301         - fixed 3091271 -- missing plug-in icon is on white
2302         background, not transparent.
2303
2304         * Resources/nullplugin.tiff: Photoshopped the white away. It's
2305         still ugly, but that's a separate bug (3091274)
2306
2307 2002-11-05  Maciej Stachowiak  <mjs@apple.com>
2308
2309         - fixed 3083732 - SJ: window comes out blank on samsung site
2310         
2311         * WebCoreSupport.subproj/WebBridge.m:
2312         (-[WebBridge createChildFrameNamed:withURL:renderPart:allowsScrolling:marginWidth:marginHeight:]):
2313         Don't start loading if the URL is exactly the same as the parent
2314         URL. We may need a more stringent check, but this seems to match
2315         the tolerance of other browsers OK.
2316
2317 2002-11-05  Maciej Stachowiak  <mjs@apple.com>
2318
2319         Added request and frame to click policy callback.
2320         
2321         * WebView.subproj/WebControllerPolicyDelegate.h:
2322         * WebView.subproj/WebDefaultPolicyDelegate.m:
2323         (-[WebDefaultPolicyDelegate clickPolicyForElement:button:modifierFlags:request:inFrame:]):
2324         * WebView.subproj/WebFramePrivate.h:
2325         * WebView.subproj/WebFramePrivate.m:
2326         (-[WebFrame _continueAfterClickPolicyForEvent:request:]):
2327         (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:]):
2328
2329 2002-11-04  Richard Williamson  <rjw@apple.com>
2330
2331         Changes to support cursive letter forms.  It works, but I've
2332         disabled it for now.  It's buggy and needs cleanup.
2333         Arabic now renders correctly except for ligature substitution.
2334         
2335         * Misc.subproj/WebUnicode.h:
2336         * Misc.subproj/WebUnicode.m:
2337         (_unicodeIsMark):
2338         (getShape):
2339         (prevChar):
2340         (nextChar):
2341         (prevLogicalCharJoins):
2342         (nextLogicalCharJoins):
2343         (glyphVariantLogical):
2344         (shapedString):
2345         * Misc.subproj/WebUnicodeTables.m:
2346         * WebCoreSupport.subproj/WebTextRenderer.m:
2347         (-[WebTextRenderer drawCharacters:stringLength:fromCharacterPosition:toCharacterPosition:atPoint:withPadding:withTextColor:backgroundColor:rightToLeft:]):
2348         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:]):
2349         * WebKitPrefix.h:
2350
2351 2002-11-04  Maciej Stachowiak  <mjs@apple.com>
2352
2353         Changes to send NSEvents all the way through WebCore and then pass
2354         them back out to WebKit, so that click policy can have a
2355         WebResourceRequest added.
2356
2357         * WebCoreSupport.subproj/WebBridge.m:
2358         (-[WebBridge loadURL:reload:triggeringEvent:]):
2359         (-[WebBridge createChildFrameNamed:withURL:renderPart:allowsScrolling:marginWidth:marginHeight:]):
2360         * WebView.subproj/WebFramePrivate.h:
2361         * WebView.subproj/WebFramePrivate.m:
2362         (-[WebFrame _continueAfterClickPolicyForEvent:]):
2363         (-[WebFrame _loadURL:loadType:clientRedirect:triggeringEvent:]):
2364         * WebView.subproj/WebHTMLView.m:
2365         (-[WebHTMLView mouseUp:]):
2366         * WebView.subproj/WebHTMLViewPrivate.h:
2367         * WebView.subproj/WebHTMLViewPrivate.m:
2368
2369 2002-11-04  Chris Blumenberg  <cblu@apple.com>
2370
2371         Fixed - 3091658: REGRESSION: cmd-left for back doesn't work in plain-text viewer
2372
2373         We now pass text field key events to the next responder which would be WebView in this case.
2374
2375         * WebView.subproj/WebTextView.m:
2376         (-[WebTextView keyDown:]):
2377         (-[WebTextView keyUp:]):
2378
2379 2002-11-04  Darin Adler  <darin@apple.com>
2380
2381         - fixed 3090257 -- "leak the world" using the Wallace and Gromit "console"
2382
2383         * Plugins.subproj/WebNetscapePluginStream.m: Update for changes to the base delegate.
2384         (-[WebNetscapePluginStream start]): Use loadWithRequest:.
2385         (-[WebNetscapePluginStream stop]): Call cancel instead of just canceling the handle
2386         directly. This fixes the world leak.
2387         (-[WebNetscapePluginStream cancel]): Do some of the work that was formerly in "stop".
2388
2389         * WebView.subproj/WebMainResourceClient.m:
2390         (-[WebMainResourceClient handle:willSendRequest:]): Call the "stop loading URL" whenever
2391         we cancel I/O, so we don't leak the world.
2392         (-[WebMainResourceClient handle:didReceiveResponse:]): Ditto.
2393
2394         * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge objectLoadedFromCache:response:size:]):
2395         * WebCoreSupport.subproj/WebSubresourceClient.m: (-[WebSubresourceClient handleDidFinishLoading:]):
2396         * WebView.subproj/WebControllerPrivate.h:
2397         * WebView.subproj/WebControllerPrivate.m:
2398         (-[WebController _finishedLoadingResourceFromDataSource:]):
2399         Fix a typo in the word "finished".
2400
2401         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2402         (-[WebBaseResourceHandleDelegate handle:willSendRequest:]): Tweak.
2403         (-[WebBaseResourceHandleDelegate cancel]): Tweak.
2404
2405         * Panels.subproj/WebStandardPanels.m:
2406         (-[WebStandardPanels didStartLoadingURL:inWindow:]): Add assertions.
2407         (-[WebStandardPanels didStopLoadingURL:inWindow:]): Ditto.
2408         (-[WebStandardPanels _didStartLoadingURL:inController:]): Ditto.
2409         (-[WebStandardPanels _didStopLoadingURL:inController:]): Ditto.
2410
2411 2002-11-04  Darin Adler  <darin@apple.com>
2412
2413         * Downloads.subproj/WebMacBinaryDecoder.h: Removed many unneeded fields.
2414         * Downloads.subproj/WebMacBinaryDecoder.m:
2415         (+[WebMacBinaryDecoder canDecodeHeaderData:]): Added comments. Changed maximum filename
2416         length to 63 as the format supports, rather than the 31 that's based on historical
2417         HFS limitations. Fix endian dependency in CRC check.
2418         (-[WebMacBinaryDecoder decodeData:dataForkData:resourceForkData:]): Simplified this,
2419         and removed the state machine and the accumulator. Also added some asserts. Fixed endian
2420         dependency in the code to extract the header.
2421         (-[WebMacBinaryDecoder finishDecoding]): New simpler check now that we don't have a
2422         _streamComplete boolean.
2423         (-[WebMacBinaryDecoder fileAttributes]): Rewrote to take advantage of the above changes,
2424         and also to use kCFAbsoluteTimeIntervalSince1904 rather than parsing a date string.
2425
2426         * Downloads.subproj/crc16.h: Tweaks.
2427         * Downloads.subproj/crc16.m: Tweaks.
2428
2429 2002-11-04  Darin Adler  <darin@apple.com>
2430
2431         * WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer dealloc]):
2432         Replaced a useless call to stopAnimation with a couple of asserts.
2433
2434 2002-11-04  John Sullivan  <sullivan@apple.com>
2435
2436         * Resources/url_icon.tiff:
2437         new "generic URL" icon from HI -- this one looks like
2438         a red ribbon (!)
2439
2440 2002-11-03  Darin Adler  <darin@apple.com>
2441
2442         * Plugins.subproj/WebPluginError.h:
2443         * Plugins.subproj/WebPluginError.m:
2444         Not __MyCompanyName__, but rather Apple Computer.
2445
2446 2002-11-03  Darin Adler  <darin@apple.com>
2447
2448         * Plugins.subproj/WebPlugin.h: Fix comment.
2449
2450         * Plugins.subproj/WebPluginError.m: (-[WebPluginErrorPrivate dealloc]):
2451         Fix leak by calling [super dealloc].
2452
2453         * WebView.subproj/WebFramePrivate.m: (-[WebFramePrivate dealloc]): Remove the
2454         timer invalidate since, as Trey pointed out, it's pointless to invalidate a
2455         timer in dealloc if it's retaining this object while valid.
2456
2457 2002-11-03  Chris Blumenberg  <cblu@apple.com>
2458
2459         - Added MacBinary decoding code. Not yet used.
2460
2461         * Downloads.subproj/WebMacBinaryDecoder.h: Added.
2462         * Downloads.subproj/WebMacBinaryDecoder.m: Added.
2463         (+[WebMacBinaryDecoder canDecodeHeaderData:]):
2464         (-[WebMacBinaryDecoder init]):
2465         (-[WebMacBinaryDecoder dealloc]):
2466         (-[WebMacBinaryDecoder decodeData:dataForkData:resourceForkData:]):
2467         (-[WebMacBinaryDecoder finishDecoding]):
2468         (-[WebMacBinaryDecoder fileAttributes]):
2469         * Downloads.subproj/crc16.h: Added.
2470         * Downloads.subproj/crc16.m: Added.
2471         (CRC16):
2472         * Plugins.subproj/WebPluginPackage.m:
2473         (-[WebPluginPackage isLoaded]): 
2474         * WebKit.pbproj/project.pbxproj:
2475
2476 2002-11-03  Darin Adler  <darin@apple.com>
2477
2478         * English.lproj/StringsNotToBeLocalized.txt: Update for recent
2479         changes both to the code here and to the extract script.
2480
2481 2002-11-03  Darin Adler  <darin@apple.com>
2482
2483         - fixed 3091300 -- "prelighting" on local page is still slow, despite recent bug fix
2484
2485         Turns out all updating would be slow if any resources on the page failed to load.
2486
2487         * WebCoreSupport.subproj/WebSubresourceClient.m:
2488         (+[WebSubresourceClient startLoadingResource:withURL:referrer:forDataSource:]):
2489         Call the new reportError instead of cancel.
2490         (-[WebSubresourceClient handle:didFailLoadingWithError:]): Ditto.
2491
2492 2002-11-02  Darin Adler  <darin@apple.com>
2493
2494         * Panels.subproj/WebAuthenticationPanel.m: (-[WebAuthenticationPanel setUpForRequest:]):
2495         Do the previous fix one better by using _web_hostWithPort.
2496
2497 2002-11-02  Darin Adler  <darin@apple.com>
2498
2499         - fixed bug where the address of an NSNumber object would be used for the port number
2500
2501         * Panels.subproj/WebAuthenticationPanel.m: (-[WebAuthenticationPanel setUpForRequest:]):
2502         Call intValue on the object returned from [NSURL port].
2503
2504 2002-11-01  Darin Adler  <darin@apple.com>
2505
2506         * Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView sendEvent:]):
2507         Fixed uninitialized variable problem.
2508
2509 2002-11-01  Darin Adler  <darin@apple.com>
2510
2511         - fixed 3090239 -- crash on window close
2512
2513         * WebView.subproj/WebFramePrivate.m: (-[WebFrame _detachFromParent]): Nil out the bridge and
2514         release it so we don't close the URL twice.
2515
2516         - fixed 3058598 -- animated gif animates repeatedly in Alex, but only once in other browsers
2517
2518         * WebCoreSupport.subproj/WebImageRenderer.h: Added fields used by bug workaround.
2519         * WebCoreSupport.subproj/WebImageRenderer.m:
2520         (-[WebImageRenderer blockHasGIFExtensionSignature:length:]): Helper method for bug workaround.
2521         (-[WebImageRenderer checkDataForGIFExtensionSignature:]): Checks incoming data for the GIF
2522         extension signatures.
2523         (-[WebImageRenderer initWithData:]): Override to call checkDataForGIFExtensionSignature.
2524         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]): Call checkDataForGIFExtensionSignature.
2525         (-[WebImageRenderer repetitionCount]): Return 1 if we were going to return 0, but we didn't see a
2526         GIF extension signature. This workaround can be removed once we require a system new enough to have
2527         the bug fix for bug 3090341.
2528         (-[WebImageRenderer nextFrame:]): Stop on last frame, don't wrap around to first.
2529
2530         * WebCoreSupport.subproj/WebImageRendererFactory.h: Update for changes to WebCore.
2531         * WebCoreSupport.subproj/WebImageRendererFactory.m: Tweaks.
2532
2533         * WebView.subproj/WebImageRepresentation.m: Update imports.
2534         * WebView.subproj/WebImageView.m: Update imports.
2535
2536 2002-11-01  Richard Williamson   <rjw@apple.com>
2537
2538         Implemented rendering of diacriticals.
2539         
2540         * Misc.subproj/WebUnicode.h:
2541         * Misc.subproj/WebUnicode.m:
2542         (_unicodeDigitValue):
2543         (_unicodeCategory):
2544         (_unicodeDirection):
2545         (_unicodeJoining):
2546         (_unicodeDecompositionTag):
2547         (_unicodeMirrored):
2548         (_unicodeCombiningClass):
2549         (_unicodeLower):
2550         (_unicodeUpper):
2551         * WebCoreSupport.subproj/WebTextRenderer.m:
2552         (-[WebTextRenderer drawCharacters:stringLength:fromCharacterPosition:toCharacterPosition:atPoint:withPadding:withTextColor:backgroundColor:rightToLeft:]):
2553         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:]):
2554         (-[WebTextRenderer extendCharacterToGlyphMapToInclude:]):
2555
2556 2002-11-01  Darin Adler  <darin@apple.com>
2557
2558         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
2559
2560 2002-11-01  Chris Blumenberg  <cblu@apple.com>
2561
2562         Check that the plug-in is loaded before calling it.
2563
2564         * Plugins.subproj/WebBaseNetscapePluginStream.h:
2565         * Plugins.subproj/WebBaseNetscapePluginStream.m:
2566         (-[WebBaseNetscapePluginStream dealloc]):
2567         (-[WebBaseNetscapePluginStream setPluginPointer:]):
2568         (-[WebBaseNetscapePluginStream setResponse:]):
2569         (-[WebBaseNetscapePluginStream receivedData:]):
2570         (-[WebBaseNetscapePluginStream destroyStreamWithReason:]):
2571         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
2572         * Plugins.subproj/WebBasePluginPackage.h:
2573         * Plugins.subproj/WebBasePluginPackage.m:
2574         (-[WebBasePluginPackage isLoaded]):
2575         * Plugins.subproj/WebNetscapePluginDocumentView.m:
2576         (-[WebNetscapePluginDocumentView setDataSource:]):
2577         * Plugins.subproj/WebNetscapePluginPackage.m:
2578         (-[WebNetscapePluginPackage isLoaded]):
2579         * Plugins.subproj/WebNetscapePluginRepresentation.m:
2580         (-[WebNetscapePluginRepresentation receivedData:withDataSource:]):
2581
2582 2002-11-01  Chris Blumenberg  <cblu@apple.com>
2583
2584         - Moved plug-in error handling to WebResourceLoadDelegate
2585         - Report plug-in load failure, java load failure, and plug-in not found errors.
2586         - Added WebPluginError, subclass of WebError.
2587         - Attempted fix: 3090675 - Standalone WMP (Window Media Player) content crashes Alexander
2588
2589         * English.lproj/Localizable.strings:
2590         * Misc.subproj/WebKitErrors.h:
2591         * Plugins.subproj/WebBaseNetscapePluginView.m:
2592         (-[WebBaseNetscapePluginView sendEvent:]): don't send event to null function
2593         * Plugins.subproj/WebNetscapePluginDocumentView.m:
2594         (-[WebNetscapePluginDocumentView setDataSource:]): report plug-in load failure
2595         * Plugins.subproj/WebNullPluginView.h:
2596         * Plugins.subproj/WebNullPluginView.m: take a WebPluginError
2597         (-[WebNullPluginView dealloc]):
2598         (-[WebNullPluginView viewDidMoveToWindow]):
2599         * Plugins.subproj/WebPluginError.h: Added.
2600         * Plugins.subproj/WebPluginError.m: Added.
2601         (-[WebPluginErrorPrivate dealloc]):
2602         (-[WebPluginError dealloc]):
2603         (-[WebPluginError pluginPageURL]):
2604         (-[WebPluginError pluginName]):
2605         (-[WebPluginError MIMEType]):
2606         * WebCoreSupport.subproj/WebBridge.m:
2607         (-[WebBridge viewForPluginWithURL:attributes:baseURL:MIMEType:]): report plug-in load failure
2608         (-[WebBridge viewForJavaAppletWithFrame:attributes:baseURL:]): report plug-in load failure
2609         * WebKit.pbproj/project.pbxproj:
2610         * WebView.subproj/WebController.m:
2611         (-[WebResourceLoadDelegate pluginFailedWithError:dataSource:]): added, does nothing
2612         * WebView.subproj/WebControllerPolicyDelegate.h:
2613         * WebView.subproj/WebResourceLoadDelegate.h:
2614         * WebView.subproj/WebView.m:
2615         (+[WebView initialize]): added new error strings
2616
2617 2002-11-01  John Sullivan  <sullivan@apple.com>
2618
2619         - some weaning of WebBookmark API from WebBookmarkGroup
2620
2621         * Bookmarks.subproj/WebBookmark.m:
2622         (-[WebBookmark dealloc]):
2623         set group to nil instead of asserting that it's non-nil
2624
2625         * Bookmarks.subproj/WebBookmarkGroup.h:
2626         removed obsolete ivar _bookmarksByID
2627         * Bookmarks.subproj/WebBookmarkGroup.m:
2628         (-[WebBookmarkGroup initWithFile:]):
2629         removed obsolete ivar _bookmarksByID
2630         (-[WebBookmarkGroup dealloc]):
2631         removed obsolete ivar _bookmarksByID
2632         (-[WebBookmarkGroup removeBookmark:]):
2633         removed this unnecessary method; callers need to use
2634         [[bookmark parent] removeChild:bookmark] instead
2635
2636 2002-11-01  Trey Matteson  <trey@apple.com>
2637
2638         Moved involved code for loading URLs from WebBridge up to WebFrame, with a little
2639         consolidation along the way.  I need to get all this stuff in one place in prep
2640         for doing back-forward properly with frames.  There should be no change in
2641         functionality as a result of these changes.
2642
2643         * WebCoreSupport.subproj/WebBridge.m:
2644         (-[WebBridge loadURL:reload:]):
2645         (-[WebBridge postWithURL:data:contentType:]):
2646         (-[WebBridge createChildFrameNamed:withURL:renderPart:allowsScrolling:marginWidth:marginHeight:]):
2647         Much of the guts of these is moved to WebFramePrivate.
2648         * WebView.subproj/WebDataSourcePrivate.h:
2649         * WebView.subproj/WebDataSourcePrivate.m:
2650         (-[WebDataSource _setIsClientRedirect:]):
2651         (-[WebDataSource _isClientRedirect]):
2652         Keep state of whether we're processing a redirect in DataSource.  I had previously
2653         to do this with a loadType, but that failed because cliRedir is orthogonal.
2654         * WebView.subproj/WebFramePrivate.h:
2655         WebFrameLoadTypeClientRedirect is gone.
2656         * WebView.subproj/WebFramePrivate.m:
2657         (-[WebFramePrivate init]):
2658         Initialize loadType explicitly.
2659         (-[WebFrame _transitionToCommitted]):
2660         Test [dataSource _isClientRedirect] instead of looking at loadType.
2661         (-[WebFrame _isLoadComplete]):
2662         Nuke WebFrameLoadTypeClientRedirect
2663         (-[WebFrame _goToItem:withFrameLoadType:]):
2664         Nuke WebFrameLoadTypeClientRedirect.
2665         (-[WebFrame _loadRequest:]):
2666         Helper method moved from WebBridge.
2667         (-[WebFrame _loadURL:loadType:clientRedirect:]):
2668         Core impl moved up from WebBridge.
2669         (-[WebFrame _postWithURL:data:contentType:]):
2670         Core impl moved up from WebBridge.
2671
2672 2002-11-01  Darin Adler  <darin@apple.com>
2673
2674         - implemented loop counts
2675
2676         * WebCoreSupport.subproj/WebImageRenderer.h: Added repetitionsComplete field.
2677         * WebCoreSupport.subproj/WebImageRenderer.m:
2678         (-[WebImageRenderer repetitionCount]): Get NSImageLoopCount.
2679         (-[WebImageRenderer nextFrame:]): Check repetitionCount and stop once we hit it.
2680
2681 2002-10-31  Darin Adler  <darin@apple.com>
2682
2683         * WebView.subproj/WebFrame.m: (-[WebFrame setController:]): Add an assert,
2684         hoping to catch a reported bug earlier or disprove one theory.
2685
2686 2002-10-31  Trey Matteson  <trey@apple.com>
2687
2688         Added API to support 3072505 - SnapBack for user-entered page address
2689         Refixed 3041616 - Extra page added in back button history
2690         Previous fix was stepped on by a later checkin.  Re-established that fix, then
2691         went on to make sure we have the final URL and title in the BF item in the
2692         case of a client redirect.  Also handles redirects that happen within frames.
2693         Fixed 3078560 - div added to "back" list
2694
2695         * History.subproj/WebBackForwardList.h:
2696         * History.subproj/WebBackForwardList.m:
2697         (-[WebBackForwardList containsEntry:]):
2698         Added new API for 3072505.
2699         * WebCoreSupport.subproj/WebBridge.h:
2700         * WebCoreSupport.subproj/WebBridge.m:
2701         (-[WebBridge reportClientRedirectTo:delay:fireDate:]):
2702         (-[WebBridge reportClientRedirectCancelled]):
2703         (-[WebBridge loadURL:reload:]):
2704         Added logging.  Renamed flag.  Establish the right loadtype and set BF items
2705         from the old dataSource onto the new dataSource in the case of a client redirect.
2706         * WebView.subproj/WebDataSourcePrivate.h:
2707         * WebView.subproj/WebDataSourcePrivate.m:
2708         (-[WebDataSource _setRequest:]):
2709         Add logging.
2710         (-[WebDataSource _addBackForwardItem:]):
2711         (-[WebDataSource _addBackForwardItems:]):
2712         (-[WebDataSource _backForwardItems]):
2713         New setters/getters to support setting up the new dataSource of a client redirect.
2714         * WebView.subproj/WebFramePrivate.h:
2715         New loadType WebFrameLoadTypeClientRedirect.
2716         * WebView.subproj/WebFramePrivate.m:
2717         (-[WebFrame _transitionToCommitted]):
2718         Update the URL in the BF list in the client redirect case.
2719         (-[WebFrame _isLoadComplete]):
2720         NOP case for WebFrameLoadTypeClientRedirect
2721         (-[WebFrame _goToItem:withFrameLoadType:]):
2722         ASSERT_NOT_REACHED case for WebFrameLoadTypeClientRedirect
2723
2724 2002-10-31  Richard Williamson  <rjw@apple.com>
2725
2726         Corrected extern definitions of lookup tables.
2727         
2728         * Misc.subproj/WebUnicode.h:
2729         * Misc.subproj/WebUnicode.m:
2730         (_unicodeDirection):
2731         * WebCoreSupport.subproj/WebTextRenderer.m:
2732         (+[WebTextRenderer initialize]):
2733
2734 === Alexander-30 ===
2735
2736 2002-10-30  Richard Williamson  <rjw@apple.com>
2737
2738         More work on bidi and contextual forms.
2739         Table lookup code for unicode characters attributes.
2740
2741         * Misc.subproj/WebUnicode.h: Added.
2742         * Misc.subproj/WebUnicode.m: Added.
2743         (_unicodeDigitValue):
2744         (_unicodeCategory):
2745         (_unicodeDirection):
2746         (_unicodeJoining):
2747         (_unicodeDecompositionTag):
2748         (_unicodeMirrored):
2749         (_unicodeMirroredChar):
2750         (_unicodeCombiningClass):
2751         (_unicodeLower):
2752         (_unicodeUpper):
2753         (WebKitInitializeUnicode):
2754         * Misc.subproj/WebUnicodeTables.m: Added.
2755         * WebKit.pbproj/project.pbxproj:
2756
2757         Additional logging parameter.
2758         
2759         * Misc.subproj/WebKitLogging.h:
2760         * Misc.subproj/WebKitLogging.m:
2761
2762 2002-10-30  Maciej Stachowiak  <mjs@apple.com>
2763
2764         Pass WebResourceRequest rather than just NSURL to URL policy
2765         delegate method.
2766         
2767         * WebView.subproj/WebControllerPolicyDelegate.h:
2768         * WebView.subproj/WebDefaultPolicyDelegate.h:
2769         * WebView.subproj/WebDefaultPolicyDelegate.m:
2770         (+[WebDefaultPolicyDelegate defaultURLPolicyForRequest:]):
2771         (-[WebDefaultPolicyDelegate URLPolicyForRequest:inFrame:]):
2772         * WebView.subproj/WebFramePrivate.m:
2773         (-[WebFrame _shouldShowRequest:]):
2774
2775 2002-10-30  Darin Adler  <darin@apple.com>
2776
2777         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
2778
2779 2002-10-30  Chris Blumenberg  <cblu@apple.com>
2780
2781         Fixed: 3088122 - Assertion failure/crash closing window with QuickTime streaming in
2782
2783         * WebView.subproj/WebDataSourcePrivate.m:
2784         (-[WebDataSource _setMainDocumentError:]): call receivedError on the representation.
2785
2786 2002-10-30  Darin Adler  <darin@apple.com>
2787
2788         - fixed memory leaks in plugin package creation code
2789
2790         * Plugins.subproj/WebNetscapePluginPackage.m:
2791         (-[WebNetscapePluginPackage initWithPath:]): Rearrange this code, and make sure
2792         that it does a [self release] if it's going to return nil instead of self.
2793         (-[WebNetscapePluginPackage unload]): Set bundle to 0 when we release it.
2794         (-[WebNetscapePluginPackage dealloc]): Release the bundle if it's not 0.
2795
2796         * Plugins.subproj/WebPluginPackage.m:
2797         (-[WebPluginPackage initWithPath:]): Rearrange this code, and make sure
2798         that it does a [self release] if it's going to return nil instead of self.
2799
2800 2002-10-30  Darin Adler  <darin@apple.com>
2801
2802         - fixed 3086564 -- REGRESSION: meta-refresh to the same page doesn't refresh
2803
2804         The key is to respect the new reload: parameter from the bridge.
2805
2806         * WebCoreSupport.subproj/WebBridge.m:
2807         (-[WebBridge loadURL:reload:]): Don't ever treat a reload as a redirect.
2808         Set the cache policy to WebRequestCachePolicyLoadFromOrigin if it's a reload.
2809
2810         - fixed 3087214 -- REGRESSION: <WebKit/WebKit.h> contains #import of non-existent header
2811
2812         * Misc.subproj/WebKit.h: Removed import of WebControllerSets.h, which is private.
2813
2814 2002-10-30  Maciej Stachowiak  <mjs@apple.com>
2815
2816         Another step towards the policy API change - add request argument
2817         to file URL policy and remove isDirectory argument.
2818         
2819         * WebView.subproj/WebControllerPolicyDelegate.h:
2820         * WebView.subproj/WebDefaultPolicyDelegate.m:
2821         (-[WebDefaultPolicyDelegate fileURLPolicyForMIMEType:andRequest:inFrame:]):
2822         * WebView.subproj/WebFrame.m:
2823         (-[WebFrame setProvisionalDataSource:]):
2824         * WebView.subproj/WebFramePrivate.h:
2825         * WebView.subproj/WebFramePrivate.m:
2826         (-[WebFrame _shouldShowRequest:]):
2827         * WebView.subproj/WebMainResourceClient.m:
2828         (-[WebMainResourceClient handle:willSendRequest:]):
2829
2830 2002-10-29  Maciej Stachowiak  <mjs@apple.com>
2831
2832         First step towards policy API change. Pass request instead of URL
2833         to content policy delegate method.
2834         
2835         * WebView.subproj/WebControllerPolicyDelegate.h:
2836         * WebView.subproj/WebDefaultPolicyDelegate.m:
2837         * WebView.subproj/WebMainResourceClient.m:
2838         (-[WebMainResourceClient handle:didReceiveResponse:]):
2839
2840 2002-10-29  Maciej Stachowiak  <mjs@apple.com>
2841
2842         - fixed 3087548 - REGRESSION: two windows open for netflix confirmation
2843         
2844         * WebView.subproj/WebControllerPrivate.h:
2845         * WebView.subproj/WebControllerPrivate.m:
2846         (-[WebController _findFrameInThisWindowNamed:]): Added this function back,
2847         and added check for top-level frame name.
2848         (-[WebController _findFrameNamed:]): Use
2849         _findFrameInThisWindowNamed: to make sure top-level frame names
2850         get checked.
2851
2852 2002-10-29  Chris Blumenberg  <cblu@apple.com>
2853
2854         Created Downloads.subproj to hold the to-be-implemented download decoders.
2855
2856         * Downloads.subproj/WebDownloadDecoder.h: Added.
2857         * Downloads.subproj/WebDownloadHandler.h: Added.
2858         * Downloads.subproj/WebDownloadHandler.m: Added.
2859         (-[WebDownloadHandler initWithDataSource:]):
2860         (-[WebDownloadHandler dealloc]):
2861         (-[WebDownloadHandler errorWithCode:]):
2862         (-[WebDownloadHandler receivedResponse:]):
2863         (-[WebDownloadHandler receivedData:]):
2864         (-[WebDownloadHandler finishedLoading]):
2865         (-[WebDownloadHandler cancel]):
2866         * Misc.subproj/WebDownloadHandler.h: Removed.
2867         * Misc.subproj/WebDownloadHandler.m: Removed.
2868         * WebKit.pbproj/project.pbxproj:
2869
2870 2002-10-28  Darin Adler  <darin@apple.com>
2871
2872         - fixed crash I just introduced
2873
2874         * Plugins.subproj/WebPluginDatabase.m: (-[WebPluginDatabase init]):
2875         Remove the release call here. When I added the autorelease, I didn't realize that
2876         the caller was doing a release.
2877
2878 2002-10-28  Trey Matteson  <trey@apple.com>
2879
2880         Fixed 3041616 - Extra page added in back button history
2881
2882         Client-side redirects would always put an extra item in the backforward list.
2883         According to Darin this is a regression all the way back from functionality moving
2884         from WebBrowser to WebKit.      
2885
2886         * WebCoreSupport.subproj/WebBridge.h:
2887         Added state to know if we're doing an "internal" type of load
2888         * WebCoreSupport.subproj/WebBridge.m:
2889         (-[WebBridge reportClientRedirectTo:delay:fireDate:]):
2890         Set internalLoad bit if delay==0
2891         (-[WebBridge reportClientRedirectCancelled]):
2892         Clear internalLoad
2893         (-[WebBridge loadURL:]):
2894         Set frame's loadType if doing an internal load (similar to what we do when loading
2895         child frames)
2896
2897 2002-10-28  Darin Adler  <darin@apple.com>
2898
2899         - fixed storage leak of WebNetscapePluginPackage objects
2900
2901         * Plugins.subproj/WebBasePluginPackage.m:
2902         (+[WebBasePluginPackage pluginWithPath:]): Add missing autorelease.
2903
2904         * Plugins.subproj/WebBasePluginPackage.h:
2905         * Plugins.subproj/WebPluginController.h:
2906         * Plugins.subproj/WebPluginController.m:
2907         * Plugins.subproj/WebPluginPackage.h:
2908         * Plugins.subproj/WebPluginPackage.m:
2909         Not __MyCompanyName__, but rather Apple Computer.
2910
2911 2002-10-28  Darin Adler  <darin@apple.com>
2912
2913         - fixed bug that caused us to leak all WebResourceHandles used for subresources
2914
2915         * WebCoreSupport.subproj/WebSubresourceClient.m:
2916         (-[WebSubresourceClient dealloc]): Remove bogus "currentURL == nil" assert.
2917         (+[WebSubresourceClient startLoadingResource:withURL:referrer:forDataSource:]):
2918         Use the new loadWithRequest: call instead of making handle and doing loadWithDelegate:.
2919         This is where the leak was, because no one ever released the handle, but releasing it
2920         right away would be too soon.
2921
2922         * WebView.subproj/WebBaseResourceHandleDelegate.h: Added defersCallbacks field,
2923         loadWithRequest: method, and setDefersCallbacks: method. Removed handle method.
2924         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2925         (-[WebBaseResourceHandleDelegate loadWithRequest:]): New method. Sets up the handle,
2926         set the defersCallbacks state on it, and calls loadWithDelegate:.
2927         (-[WebBaseResourceHandleDelegate setDefersCallbacks:]): Stores defersCallbacks state,
2928         and also sets it on the handle, if any.
2929         (-[WebBaseResourceHandleDelegate handle:willSendRequest:]): Remove code to set up
2930         the handle, since we now do that at loadWithRequest: time.
2931
2932         * WebView.subproj/WebDataSourcePrivate.h: Remove mainHandle field.
2933         * WebView.subproj/WebDataSourcePrivate.m:
2934         (-[WebDataSourcePrivate dealloc]): Don't release mainHandle.
2935         (-[WebDataSource _setPrimaryLoadComplete:]): Ditto.
2936         (-[WebDataSource _startLoading]): Use loadWithRequest: on the client, no need to deal
2937         with the handle directly at all.
2938         (-[WebDataSource _addSubresourceClient:]): Call setDefersCallbacks: on the client.
2939         (-[WebDataSource _defersCallbacksChanged]): Ditto.
2940
2941         * WebView.subproj/WebControllerPrivate.m: Remove unneeded include.
2942         * WebView.subproj/WebMainResourceClient.m: Ditto.
2943
2944 2002-10-28  Chris Blumenberg  <cblu@apple.com>
2945
2946         Fixed: 3056726 - View Source window always displays the source in current system encoding
2947         Fixed: 3019352 - Text encoding is not handled when viewing plain text
2948
2949         * WebView.subproj/WebDataSource.h:
2950         * WebView.subproj/WebDataSource.m:
2951         (-[WebDataSource stringWithData:]): added, creates a string using the specified encoding.
2952         * WebView.subproj/WebHTMLRepresentation.m:
2953         (-[WebHTMLRepresentation documentSource]): uses the bridge specified encoding when creating the string
2954         * WebView.subproj/WebTextView.h:
2955         * WebView.subproj/WebTextView.m:
2956         (-[WebTextView dataSourceUpdated:]): use stringWithData: 
2957         (-[WebTextView supportsTextEncoding]): Yup
2958
2959 2002-10-28  Richard Williamson   <rjw@apple.com>
2960
2961         Fixed crasher.
2962         
2963         * WebCoreSupport.subproj/WebTextRenderer.m:
2964         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:]):
2965
2966 2002-10-28  John Sullivan  <sullivan@apple.com>
2967
2968         * Bookmarks.subproj/WebBookmark.h:
2969         * Bookmarks.subproj/WebBookmark.m:
2970         (-[WebBookmark contentMatches:]): new method, returns YES if
2971         two bookmarks are the same, ignoring group and parent.
2972
2973 2002-10-28  Trey Matteson  <trey@apple.com>
2974
2975         Finished 2998200 - access to most-recent in submenu of back & forward buttons
2976
2977         * WebView.subproj/WebDataSourcePrivate.h:
2978         The BF items we are going to and from were moved here from
2979         WebFrame because of timing problems among multiple data sources
2980         when using the BF buttons during a load.
2981         In addition, the datasource has a list of relevant BF items for
2982         which it keeps their titles up to date.
2983         * WebView.subproj/WebDataSourcePrivate.m:
2984         (-[WebDataSourcePrivate dealloc]):
2985         Free new state.
2986         (-[WebDataSource _setTitle:]):
2987         Update titles of BF items.
2988         (-[WebDataSource _provisionalBackForwardItem]):
2989         (-[WebDataSource _setProvisionalBackForwardItem:]):
2990         (-[WebDataSource _previousBackForwardItem]):
2991         (-[WebDataSource _setPreviousBackForwardItem:]):
2992         (-[WebDataSource _addBackForwardItem:]):
2993         Maintain new state.
2994         (-[WebDataSource _commitIfReady]):
2995         Free up previous and provisional BF items after commit.
2996         * WebCoreSupport.subproj/WebBridge.m:
2997         (-[WebBridge loadURL:]):
2998         Add the new BF item to the datasource.
2999         (-[WebBridge saveDocumentState:]):
3000         Use the right BF item to save the doc state.
3001         * WebView.subproj/WebFramePrivate.h:
3002         Previous and provisional BF are moved to datasource.
3003         * WebView.subproj/WebFramePrivate.m:
3004         (-[WebFrame _transitionToCommitted]):
3005         Use provisional BF from datasource to set position in BF list.
3006         Add new BF item to datasource.
3007         (-[WebFrame _isLoadComplete]):
3008         (-[WebFrame _checkLoadComplete]):
3009         Comments, whitespace.
3010         (-[WebFrame _goToItem:withFrameLoadType:]):
3011         Set item we will use to saveDocState at commit time.
3012
3013 2002-10-27  Darin Adler  <darin@apple.com>
3014
3015         - WebKit part of filename width fix
3016
3017         * WebCoreSupport.subproj/WebFileButton.m:
3018         (-[WebFileButton drawRect:]): Compute left position by starting at
3019         the right side of the button frame rather than by starting at the right
3020         side of the overall bounds. Removes dependency on fixed-width filename area.
3021         (-[WebFileButton updateLabel]): Added. Computes ellipsized filename.
3022         (-[WebFileButton setFilename:]): Use updateLabel instead of code in line here.
3023         (-[WebFileButton setFrameSize:]): Call updateLabel.
3024         (-[WebFileButton bestVisualFrameSizeForCharacterCount:]): Compute a width based
3025         on the count passed in rather than a hardcoded 200-pixel constant.
3026
3027 2002-10-27  Darin Adler  <darin@apple.com>
3028
3029         - fixed 3037369 -- Status text not cleared after start of drag from page
3030
3031         * WebView.subproj/WebHTMLView.m:
3032         (-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]):
3033         Find the highest-level enclosing WebHTMLView, and call _updateMouseoverWithEvent:
3034         with the mouseUp event after the drag is done.
3035         (-[WebHTMLView mouseMovedNotification:]): Just call _updateMouseoverWithEvent:,
3036         the code from here was moved into there.
3037
3038         * WebView.subproj/WebHTMLViewPrivate.h: Declare _updateMouseoverWithEvent.
3039         * WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView _updateMouseoverWithEvent:]):
3040         Moved all the code from mouseMovedNotification: in here so it could be used twice.
3041
3042 2002-10-27  Don Melton  <gramps@apple.com>
3043
3044         * WebView.subproj/WebController.m:
3045         (-[WebController userAgentForURL:]):
3046
3047         Changed default user agent to Mozilla 1.1.
3048
3049 2002-10-27  Darin Adler  <darin@apple.com>
3050
3051         * Bookmarks.subproj/WebBookmarkProxy.m: (-[WebBookmarkProxy dealloc]):
3052         Added, so we don't leak the title.
3053
3054         * Bookmarks.subproj/WebBookmarkGroup.m: (-[WebBookmarkGroup removeBookmark:]):
3055         * Bookmarks.subproj/WebBookmarkList.m: (-[WebBookmarkList removeChild:]):
3056         Added retain/release pairs so we don't use an object after it's deallocated.
3057         In practice this doesn't happen the way these are used by Alex since they are
3058         in an array, but they have windows of vulnerability depending on exactly how
3059         they are used.
3060
3061 2002-10-26  Darin Adler  <darin@apple.com>
3062
3063         * WebCoreSupport.subproj/WebViewFactory.m:
3064         (-[WebViewFactory inputElementAltText]): Added.
3065         (-[WebViewFactory resetButtonDefaultLabel]): Added.
3066         (-[WebViewFactory searchableIndexIntroduction]): Added.
3067         (-[WebViewFactory submitButtonDefaultLabel]): Added.
3068         (-[WebViewFactory defaultLanguageCode]): Added.
3069
3070         * English.lproj/Localizable.strings: Update.
3071         * English.lproj/StringsNotToBeLocalized.txt: Update.
3072
3073 2002-10-25  Darin Adler  <darin@apple.com>
3074
3075         * WebCoreSupport.subproj/WebViewFactory.m:
3076         (-[WebViewFactory runJavaScriptAlertPanelWithMessage:]): Added.
3077         (-[WebViewFactory runJavaScriptConfirmPanelWithMessage:]): Added.
3078
3079         * English.lproj/Localizable.strings: Update.
3080         * English.lproj/StringsNotToBeLocalized.txt: Update.
3081
3082 2002-10-25  Richard Williamson   <rjw@apple.com>
3083
3084         Implemented support for bidi text layout.
3085         
3086         * WebCoreSupport.subproj/WebTextRenderer.m:
3087         (_drawGlyphs):
3088         (-[WebTextRenderer drawCharacters:stringLength:fromCharacterPosition:toCharacterPosition:atPoint:withPadding:withTextColor:backgroundColor:rightToLeft:]):
3089
3090 2002-10-25  Chris Blumenberg  <cblu@apple.com>
3091
3092         Made frameNamed private in WebController and renamed it to _findFrameNamed. Got rid of _frameInThisWindowNamed in WebController because it isn't needed anymore.
3093
3094         * WebView.subproj/WebController.h:
3095         * WebView.subproj/WebController.m:
3096         (-[WebController _goToItem:withFrameLoadType:]): call _findFrameNamed
3097         * WebView.subproj/WebControllerPrivate.h:
3098         * WebView.subproj/WebControllerPrivate.m:
3099         (-[WebController _findFrameNamed:]): renamed, made private, got rid of call to _frameInThisWindowNamed as it is not needed
3100         * WebView.subproj/WebFrame.m:
3101         (-[WebFrame findFrameNamed:]): call [WebController _findFrameNamed:]
3102
3103 2002-10-25  Chris Blumenberg  <cblu@apple.com>
3104
3105         - Fix case where we would name a new window _blank
3106         - If a data source can't be created for a plug-in request, don't create the frame or open a window.
3107         - cleaned up plug-in stream notifications
3108
3109         * Plugins.subproj/WebBaseNetscapePluginView.h:
3110         * Plugins.subproj/WebBaseNetscapePluginView.m:
3111         (-[WebBaseNetscapePluginView initWithFrame:]): create streamNotifications dict
3112         (-[WebBaseNetscapePluginView dealloc]): release streamNotifications dict
3113         (-[WebBaseNetscapePluginView frameStateChanged:]): cleaned up
3114         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): create data source before frame
3115         * Plugins.subproj/WebPluginController.m:
3116         (-[WebPluginController showURL:inFrame:]): create data source before frame
3117         * WebView.subproj/WebControllerPrivate.m:
3118         (-[WebController _setTopLevelFrameName:]): don't allow _blank frames
3119         * WebView.subproj/WebFrame.m:
3120         (-[WebFrame findOrCreateFramedNamed:]): no need to check for _blank
3121
3122 2002-10-25  Darin Adler  <darin@apple.com>
3123
3124         Tighten up the code that observes mouse moved events.
3125
3126         * WebView.subproj/WebHTMLView.m:
3127         (-[WebHTMLView initWithFrame:]): Don't set up observers here.
3128         (-[WebHTMLView addMouseMovedObserver]): Added some assertions.
3129         (-[WebHTMLView viewWillMoveToWindow:]): Stop observing the "become main" and "resign main"
3130         notifications here.
3131         (-[WebHTMLView viewDidMoveToWindow]): Start observing them here.
3132         (-[WebHTMLView windowDidBecomeMain:]): Assert that the notification is for this window,
3133         instead of checking with if.
3134         (-[WebHTMLView windowDidResignMain:]): Assert that the notification is for this window.
3135
3136 2002-10-25  Chris Blumenberg  <cblu@apple.com>
3137
3138         Cleaned up the frame searching shenanigans. Things are much cleaner and clearer now.
3139
3140         * Plugins.subproj/WebBaseNetscapePluginView.m:
3141         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): call findOrCreateFramedNamed
3142         * Plugins.subproj/WebPluginController.m:
3143         (-[WebPluginController showURL:inFrame:]): call findOrCreateFramedNamed
3144         * WebCoreSupport.subproj/WebBridge.m:
3145         (-[WebBridge childFrames]): moved
3146         (-[WebBridge mainFrame]): moved
3147         (-[WebBridge findOrCreateFramedNamed:]): call findOrCreateFramedNamed on the frame
3148         (-[WebBridge pluginViewWithPackage:attributes:baseURL:]): call _pluginController
3149         * WebView.subproj/WebControllerPrivate.m:
3150         (-[WebController _frameInThisWindowNamed:]): call _descendantFrameNamed
3151         * WebView.subproj/WebFrame.h:
3152         * WebView.subproj/WebFrame.m:
3153         (-[WebFrame findFrameNamed:]): was frameNamed. First checks special-case frame names, descendant frames, then the whole controller, then other controllers.
3154         (-[WebFrame findOrCreateFramedNamed:]): calls findFrameNamed, opens new window if necessary 
3155         * WebView.subproj/WebFramePrivate.h:
3156         * WebView.subproj/WebFramePrivate.m:
3157         (-[WebFrame _descendantFrameNamed:]): searches children, children's children etc.
3158         (-[WebFrame _pluginController]): this method needed an "_"
3159         * WebView.subproj/WebHTMLView.m:
3160         (-[WebHTMLView addSubview:]): call _pluginController
3161         * WebView.subproj/WebHTMLViewPrivate.m:
3162         (-[WebHTMLView _elementAtPoint:]): no need to special case for "_blank" since findFrameNamed will return nil for that name
3163
3164 2002-10-25  Trey Matteson  <trey@apple.com>
3165         
3166         2919039 - Implement limit on back/forward history list
3167         2998200 - access to most-recent in submenu of back & forward buttons
3168         3022566 - need WebKit API for accessing and visiting back/forward list items
3169         3084051 - forward button incorrectly enabled after going forward all the way
3170
3171         Remaining issues at this point are getting the title of the pages
3172         into the menu items (instead of the URL), and saving document
3173         state properly when you jump around in the list.  Solutions are
3174         known and coming soon.
3175
3176         * History.subproj/WebBackForwardList.h:
3177         Added doc comments to API.  Made ivars private.  Replaced index-
3178         based API with item-based API.  Added a sizelimit to the overall
3179         list.  Tweaked API to get back and forward lists.
3180         * History.subproj/WebBackForwardList.m:
3181         Straightforward impl of the above, with the note that I dumped
3182         WebHistoryList from the API and impl in favor of an NSArray,
3183         which is efficient for this sort of use (queue, stack).
3184         (-[WebBackForwardList init]):
3185         (-[WebBackForwardList dealloc]):
3186         (-[WebBackForwardList goBack]):
3187         (-[WebBackForwardList goForward]):
3188         (-[WebBackForwardList goToEntry:]):
3189         (-[WebBackForwardList backEntry]):
3190         (-[WebBackForwardList forwardEntry]):
3191         (-[WebBackForwardList maximumSize]):
3192         (-[WebBackForwardList setMaximumSize:]):
3193         (-[WebBackForwardList description]):
3194         * History.subproj/WebHistoryList.h: Removed.
3195         Nuked from API, per above.
3196         * History.subproj/WebHistoryList.m: Removed.
3197         * Misc.subproj/WebKit.h:
3198         WebHistoryList gone from API.
3199         * WebCoreSupport.subproj/WebBridge.m:
3200         (-[WebBridge loadURL:]):
3201         Use if/else instead of buried "return;", so next person doesn;t
3202         make the same mis-read I did.
3203         (-[WebBridge saveDocumentState:]):
3204         Site of future work.
3205         * WebKit.pbproj/project.pbxproj:
3206         Nuked WebHistoryList.
3207         * WebView.subproj/WebController.h:
3208         * WebView.subproj/WebController.m:
3209         (-[WebController goBackOrForwardToItem:]):
3210         New method to support random access nav in backforward list.
3211         * WebView.subproj/WebDataSourcePrivate.m:
3212         (-[WebDataSource _setTitle:]):
3213         Site of future work (fixing title in items)
3214         * WebView.subproj/WebFramePrivate.h:
3215         WebFrameLoadTypeIndexedBack/WebFrameLoadTypeIndexedForward are
3216         collapsed into WebFrameLoadTypeIndexedBackForward.  Vestigial
3217         WebFrameLoadTypeIntermediateBack is nuked.
3218         * WebView.subproj/WebFramePrivate.m:
3219         (-[WebFramePrivate setBackForwardItem:]):
3220         (-[WebFrame _setBackForwardItem:]):
3221         (-[WebFrame _backForwardItem]):
3222         Must remember the BF item we're going to so we can update the
3223         BF list on commit.
3224         (-[WebFrame _transitionToCommitted]):
3225         Update the BF list on commit.
3226         (-[WebFrame _isLoadComplete]):
3227         (-[WebFrame _goToItem:withFrameLoadType:]):
3228         Update BF list on within-page nav.
3229         Remember BF item we are going to for later update on commit.
3230
3231 2002-10-25  Chris Blumenberg  <cblu@apple.com>
3232
3233         Minor non-mentionable clean-up.
3234
3235         * WebCoreSupport.subproj/WebBridge.m:
3236         (-[WebBridge viewForPluginWithURL:attributes:baseURL:MIMEType:]):
3237
3238 2002-10-25  Chris Blumenberg  <cblu@apple.com>
3239
3240         Cleaned up the plug-in API headers so they can be sent to other groups.
3241
3242         * Plugins.subproj/WebPlugin.h:
3243         * Plugins.subproj/WebPluginContainer.h:
3244         * Plugins.subproj/WebPluginViewFactory.h:
3245
3246 2002-10-24  Richard Williamson   <rjw@apple.com>
3247
3248         Fixed many font substitution related bugs, at least including:
3249         3006966, 3026675, 3071106, and more... (each of these bugs
3250         has a list of related bugs). 
3251         
3252         Needs little more cleanup to correctly deal with non base characters.
3253         
3254         * WebCoreSupport.subproj/WebTextRenderer.h:
3255         * WebCoreSupport.subproj/WebTextRenderer.m:
3256         (-[WebTextRenderer drawCharacters:stringLength:fromCharacterPosition:toCharacterPosition:atPoint:withPadding:withTextColor:backgroundColor:]):
3257         (-[WebTextRenderer floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:]):
3258         (-[WebTextRenderer _floatWidthForCharacters:stringLength:fromCharacterPosition:numberOfCharacters:withPadding:applyRounding:attemptFontSubstitution:widths:fonts:glyphs:numGlyphs:]):
3259         
3260         Against Darin's better judgement prevent extra layout when not in live resize.  If
3261         this introduces any regressions I owe darin a good bottle of wine.
3262         
3263         * WebView.subproj/WebDynamicScrollBarsView.m:
3264         (-[WebDynamicScrollBarsView updateScrollers]):
3265
3266 2002-10-24  Chris Blumenberg  <cblu@apple.com>
3267
3268         New Java plug-in works! Much faster to load and no spinny cursor! Unfortunately, it very unstable.
3269
3270         * Plugins.subproj/WebPluginController.m: cleaned-up the logging messages.
3271         (-[WebPluginController addPluginView:]):
3272         (-[WebPluginController didAddPluginView:]):
3273         (-[WebPluginController startAllPlugins]):
3274         (-[WebPluginController stopAllPlugins]):
3275         (-[WebPluginController destroyAllPlugins]):
3276         * WebCoreSupport.subproj/WebBridge.m:
3277         (-[WebBridge viewForJavaAppletWithFrame:attributes:baseURL:]): make height and width an attribute.
3278
3279 2002-10-24  Chris Blumenberg  <cblu@apple.com>
3280
3281         Some clean-up and bug fixes for new plug-in support.
3282
3283         * Plugins.subproj/WebPluginController.m:
3284         (-[WebPluginController initWithWebFrame:]): need a colon after windowWillClose
3285         (-[WebPluginController addPluginView:]): added logging
3286         (-[WebPluginController didAddPluginView:]): added logging
3287         (-[WebPluginController startAllPlugins]): added logging
3288         (-[WebPluginController stopAllPlugins]): added logging
3289         (-[WebPluginController destroyAllPlugins]): added logging
3290         * Plugins.subproj/WebPluginPackage.m:
3291         (-[WebPluginPackage getMIMEInformation]): use correct dict key for getting MIME descriptions
3292         * WebCoreSupport.subproj/WebBridge.m: no more didAddSubview
3293         * WebView.subproj/WebFramePrivate.h: no more didAddSubview
3294         * WebView.subproj/WebFramePrivate.m: no more didAddSubview
3295         * WebView.subproj/WebHTMLView.m:
3296         (-[WebHTMLView addSubview:]): call didAddPluginView on WebPluginController
3297
3298 2002-10-24  John Sullivan  <sullivan@apple.com>
3299
3300         * WebCoreSupport.subproj/WebBridge.m:
3301         (-[WebBridge objectLoadedFromCache:response:size:]):
3302         added ASSERT(response != nil), leftover from debugging
3303         session on Tuesday, seems worth leaving in.
3304
3305 2002-10-24  Darin Adler  <darin@apple.com>
3306
3307         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
3308
3309 2002-10-24  Chris Blumenberg  <cblu@apple.com>
3310
3311         Changed some method names in WebPluginController.
3312
3313         * Plugins.subproj/WebPluginController.h:
3314         * Plugins.subproj/WebPluginController.m:
3315         (-[WebPluginController didAddPluginView:]):
3316         (-[WebPluginController startAllPlugins]):
3317         (-[WebPluginController stopAllPlugins]):
3318         (-[WebPluginController destroyAllPlugins]):
3319         (-[WebPluginController windowWillClose:]):
3320         * WebView.subproj/WebFramePrivate.m:
3321         (-[WebFrame _transitionToCommitted]):
3322         (-[WebFrame _didAddSubview:]):
3323
3324 === Alexander-29 ===
3325
3326 2002-10-24  Richard Williamson   <rjw@apple.com>
3327
3328         Don't leak request.
3329         
3330         * WebView.subproj/WebBaseResourceHandleDelegate.m:
3331         (-[WebBaseResourceHandleDelegate handle:willSendRequest:]):
3332
3333 2002-10-24  Richard Williamson   <rjw@apple.com>
3334
3335         Always copy request, we can't count on it being immutable.
3336         This was the cause of the ASSERT from last night's checkin.
3337         
3338         * WebView.subproj/WebBaseResourceHandleDelegate.m:
3339         (-[WebBaseResourceHandleDelegate handle:willSendRequest:]):
3340         
3341         Only send serverRedirectedForDataSource: if URL changed.
3342         
3343         * WebView.subproj/WebDataSourcePrivate.m:
3344         (-[WebDataSource _setRequest:]):
3345
3346 2002-10-24  Chris Blumenberg  <cblu@apple.com>
3347         
3348         - Use "MIMEType" instead of "serviceType".
3349
3350         * Plugins.subproj/WebBasePluginPackage.h:
3351         * Plugins.subproj/WebBasePluginPackage.m:
3352         (-[WebBasePluginPackage load]):
3353         (-[WebBasePluginPackage dealloc]):
3354         (-[WebBasePluginPackage filename]):
3355         (-[WebBasePluginPackage setPath:]):