Reviewed by Darin Adler.
[WebKit-https.git] / WebKit / ChangeLog
1 2005-07-01  John Sullivan  <sullivan@apple.com>
2
3         Reviewed by Darin Adler.
4         
5         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3711: Displayed PDF have limited options in contextual menu
6         
7         This was a problem with using Tiger's version of Safari with tip of tree WebKit.
8
9         * WebView.subproj/WebPDFView.m:
10         (-[WebPDFView _anyPDFTagsFoundInMenu:]):
11         new method, returns YES if the menu contains any items with any of the new PDF-related tags.
12         (-[WebPDFView menuForEvent:]):
13         If the executable was linked on Tiger or older (but it will never be older, since this code is
14         new to Tiger), force all of the PDF-related items into the menu if none of them were there 
15         after processing by the delegate.
16
17 2005-06-30  Darin Adler  <darin@apple.com>
18
19         Reviewed by John Sullivan.
20
21         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3774>
22           do renaming so that loaders are called "loader", not "client" or "delegate"
23
24         * Misc.subproj/WebIconLoader.h:
25         * Plugins.subproj/WebNetscapePluginStream.h:
26         * Plugins.subproj/WebNetscapePluginStream.m:
27         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
28         (-[WebNetscapePluginStream start]):
29         (-[WebNetscapePlugInStreamLoader didFinishLoading]):
30         (-[WebNetscapePlugInStreamLoader didFailWithError:]):
31         (-[WebNetscapePlugInStreamLoader cancelWithError:]):
32         * WebCoreSupport.subproj/WebBridge.m:
33         (-[WebBridge startLoadingResource:withURL:customHeaders:]):
34         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]):
35         (-[WebBridge canRunModalNow]):
36         * WebCoreSupport.subproj/WebSubresourceClient.h: Removed.
37         * WebCoreSupport.subproj/WebSubresourceClient.m: Removed.
38         * WebCoreSupport.subproj/WebSubresourceLoader.h:
39         * WebCoreSupport.subproj/WebSubresourceLoader.m:
40         (-[WebSubresourceLoader initWithLoader:dataSource:]):
41         (-[WebSubresourceLoader dealloc]):
42         (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
43         (+[WebSubresourceLoader startLoadingResource:withURL:customHeaders:referrer:forDataSource:]):
44         (+[WebSubresourceLoader startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]):
45         (-[WebSubresourceLoader didReceiveResponse:]):
46         (-[WebSubresourceLoader didReceiveData:lengthReceived:]):
47         (-[WebSubresourceLoader didFinishLoading]):
48         (-[WebSubresourceLoader didFailWithError:]):
49         (-[WebSubresourceLoader cancel]):
50         * WebKit.pbproj/project.pbxproj:
51         * WebView.subproj/WebBaseResourceHandleDelegate.h: Removed.
52         * WebView.subproj/WebBaseResourceHandleDelegate.m: Removed.
53         * WebView.subproj/WebDataSource.m:
54         (-[WebDataSourcePrivate dealloc]):
55         (-[WebDataSource _setLoading:]):
56         (-[WebDataSource _updateLoading]):
57         (-[WebDataSource _setPrimaryLoadComplete:]):
58         (-[WebDataSource _startLoading:]):
59         (-[WebDataSource _addSubresourceLoader:]):
60         (-[WebDataSource _removeSubresourceLoader:]):
61         (-[WebDataSource _addPlugInStreamLoader:]):
62         (-[WebDataSource _removePlugInStreamLoader:]):
63         (-[WebDataSource _stopLoadingInternal]):
64         (-[WebDataSource _defersCallbacksChanged]):
65         (-[WebDataSource _stopLoadingWithError:]):
66         (-[WebDataSource data]):
67         (-[WebDataSource isLoading]):
68         * WebView.subproj/WebDataSourcePrivate.h:
69         * WebView.subproj/WebLoader.h:
70         * WebView.subproj/WebLoader.m:
71         * WebView.subproj/WebMainResourceClient.h: Removed.
72         * WebView.subproj/WebMainResourceClient.m: Removed.
73         * WebView.subproj/WebMainResourceLoader.h:
74         * WebView.subproj/WebMainResourceLoader.m:
75         (-[WebMainResourceLoader didReceiveResponse:]):
76
77 2005-06-29  David Harrison  <harrison@apple.com>
78
79         Reviewed by Dave Hyatt (rendering) and Maciej (editing).
80
81         Test cases added:  Coming soon.  Will include with next round of changes for this bug.
82
83         This is the first checkin for...
84         
85         <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
86         
87         Basic strategy is to put tabs into spans with white-space:pre style, and
88         render them with tabs stops every 8th space, where the space width and
89         the left margin are those of the enclosing block.
90         
91         What's left is to switch to implement white-space:pre-wrap so
92         that we can coalesce consecutive tabs while maintaining proper
93         line breaking.  That will keep the markup smaller.
94
95         * WebCoreSupport.subproj/WebTextRenderer.m:
96         (isSpace):
97         (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
98         (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
99         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]):
100         (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
101         (initializeCharacterWidthIterator):
102         (widthForNextCharacter):
103
104 2005-06-29  John Sullivan  <sullivan@apple.com>
105
106         Reviewed by Kevin.
107         
108         - deleted some never-used stub code
109
110         * WebView.subproj/WebView.m:
111         * WebView.subproj/WebViewInternal.h:
112         * WebView.subproj/WebViewPrivate.h:
113
114 2005-06-27  Justin Garcia  <justin.garcia@apple.com>
115
116         Patch by Anders Carlsson <andersca@mac.com>
117
118         Reviewed by Darin.
119
120         - Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3489>
121         WebView's setSelectedDOMRange doesn't not implement clearing the selection as described in the WebView documentation:
122         <http://developer.apple.com/documentation/Cocoa/Reference/WebKit/ObjC_classic/Classes/WebView.html>
123         
124         * WebView.subproj/WebView.m:
125         (-[WebView setSelectedDOMRange:affinity:]):
126         If range is nil, call deselectText.
127
128 2005-06-24  Justin Garcia  <justin.garcia@apple.com>
129
130         Patch contributed by Duncan Wilcox <duncan@mclink.it>
131
132         Reviewed by Darin
133
134         - Fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3535>
135             Spelling suggestions in the context menu don't call the should* delegate methods
136
137         * WebView.subproj/WebHTMLView.m:
138         (-[WebHTMLView _changeSpellingFromMenu:]):
139         give delegate's webView:shouldInsertText:replacingDOMRange:givenAction: a chance
140         to prevent replacing of selected text
141
142 2005-06-22  John Sullivan  <sullivan@apple.com>
143
144         Reviewed by Chris Blumenberg.
145         
146         - fixed <rdar://problem/3764645> please add a way to allow WebKit clients to override the WebPDFView context menu
147
148         * PublicHeaderChangesFromTiger.txt: Added.
149         New file to keep track of changes made to public headers that haven't been through API review yet.
150         Initially lists the WebMenuItem enum tags added to WebUIDelegate.h as part of this change.
151         
152         * WebView.subproj/WebDefaultContextMenuDelegate.m:
153         (-[WebDefaultUIDelegate appendDefaultItems:toArray:]):
154         new method, handles initial separator
155         (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
156         now has defaultMenuItems: parameter. Any menu items in this array are appended at the end of
157         the standard set.
158         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
159         ditto
160         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]):
161         This had a defaultMenuItems parameter before but it was always nil. Now it passes the defaultMenuItems
162         parameter on to the two methods that construct lists (one for editing, the other for viewing). Also
163         tweaked variable name and type for clarity.
164         
165         * WebView.subproj/WebHTMLView.m:
166         (-[WebHTMLView menuForEvent:]):
167         passes nil for new defaultItems parameter of _menuForElement:
168         
169         * WebView.subproj/WebImageView.m:
170         (-[WebImageView menuForEvent:]):
171         ditto
172         
173         * WebView.subproj/WebTextView.m:
174         (-[WebTextView menuForEvent:]):
175         ditto
176
177         * WebView.subproj/WebPDFView.m:
178         (-[WebPDFView elementAtPoint:]):
179         new method to create the element dictionary needed for _menuForElement:defaultItems:. Only supplies the
180         webFrame at this point.
181         (-[WebPDFView _menuItemsFromPDFKitForEvent:]):
182         new method to return copies of the menu items that PDFKit would include in the context menu, with
183         WebKit tags applied
184         (-[WebPDFView menuForEvent:]):
185         now calls standard WebKit context menu mechanism, so clients' delegates can modify the context menu as
186         desired. The initial set of items are the ones WebKit was already displaying for PDF context menus.
187         
188         * WebView.subproj/WebUIDelegate.h:
189         added enum values for the menu items in the PDF context menu
190         
191         * WebView.subproj/WebViewPrivate.h:
192         * WebView.subproj/WebView.m:
193         (-[WebView _menuForElement:defaultItems:]):
194         Added the defaultItems: parameter to this method, which is then passed along to WebDefaultUIDelegate.
195         All callers pass nil except for WebPDFView, at least for now.
196
197 2005-06-22  Darin Adler  <darin@apple.com>
198
199         Change by Mitz Pettel.
200         Reviewed by me.
201
202         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3618>
203           RTL runs drawn by CG not reversed properly
204
205         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _CG_drawRun:style:geometry:]):
206         Fix off-by-one mistake in order-swapping loops.
207
208 2005-06-22  Darin Adler  <darin@apple.com>
209
210         Change by Michael Gaiman.
211         Reviewed by me.
212
213         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3436>
214           Missing implementation of -[NSData(WebNSDateExtras) _webkit_parseRFC822HeaderFields]
215
216         * Misc.subproj/WebNSDataExtras.h: Fixed name of category say NSData, not NSDate.
217         * Misc.subproj/WebNSDataExtras.m: (-[NSData _webkit_parseRFC822HeaderFields]): Fixed method name.
218
219 2005-06-21  John Sullivan  <sullivan@apple.com>
220
221         Reviewed by Vicki Murley
222         
223         - fixed assertion failure Vicki ran into
224
225         * Misc.subproj/WebIconDatabase.m:
226         (-[WebIconDatabase _forgetIconForIconURLString:]):
227         Handle the case where there are no associated page URLs for the icon URL
228
229 2005-06-20  John Sullivan  <sullivan@apple.com>
230
231         Reviewed by Chris Blumenberg.
232         
233         - fixed <rdar://problem/4155182> icon database retain counts can be incorrect after removing all icons
234         
235         Replaced the concept of "future retain count per page URL" with a simpler concept of "retain count per
236         page URL", which is maintained even after the icon is actually loaded (unlike the future retain count).
237         The total retain count for an icon is now the sum of the retain counts per page URL along with any retain
238         count not associated with a page URL -- this is still needed for some internal housekeeping purposes.
239
240         * Misc.subproj/WebIconDatabasePrivate.h:
241         renamed iconURLToURLs -> iconURLToPageURLs for clarity
242         renamed URLToIconURL -> pageURLToIconURL for clarity
243         renamed futureURLToRetainCount -> pageURLToRetainCount (there's no more "future" aspect)
244         renamed iconURLToRetainCount -> iconURLToExtraRetainCount (it now maintains only some of the retain count)
245         
246         * Misc.subproj/WebIconDatabase.m:
247         (+[WebIconDatabase sharedIconDatabase]):
248         updated for name changes only
249         (-[WebIconDatabase init]):
250         ditto
251         (-[WebIconDatabase iconForURL:withSize:cache:]):
252         ditto
253         (-[WebIconDatabase iconURLForURL:]):
254         ditto
255         (-[WebIconDatabase retainIconForURL:]):
256         just bump the retain count in pageURLToRetainCount, instead of behaving differently based on whether 
257         an icon had been loaded for this URL; this let me delete the internal method _retainFutureIconForURL:
258         (-[WebIconDatabase releaseIconForURL:]):
259         decrement the retain count in pageURLToRetainCount, then handle the case where the retain count for 
260         this page has gone to zero. I deleted the internal method _releaseFutureIconForURL: formerly called here.
261         (-[WebIconDatabase removeAllIcons]):
262         remove all the code that dealt with retain counts; this operation no longer affects retain counts
263         (-[WebIconDatabase _setIconURL:forURL:]):
264         remove the code that consolidated multiple retain counts for different page URLs into a single retain 
265         count; the multiple retain counts are now maintained even after the icon is loaded
266         (-[WebIconDatabase _clearDictionaries]):
267         updated for name changes only
268         (-[WebIconDatabase _loadIconDictionaries]):
269         ditto
270         (-[WebIconDatabase _updateFileDatabase]):
271         ditto
272         (-[WebIconDatabase _totalRetainCountForIconURLString:]):
273         new method, sums the retain counts associated with specific page URLs and the extra retain count
274         not associated with specific page URLs
275         (-[WebIconDatabase _retainIconForIconURLString:]):
276         updated for name changes
277         (-[WebIconDatabase _forgetIconForIconURLString:]):
278         no longer affects retain counts at all; this is up to callers
279         (-[WebIconDatabase _releaseIconForIconURLString:]):
280         this now distinguishes the case where the retain count not associated with any page URLs hits 
281         zero from the case where the total retain count hits zero, and handles both
282
283 2005-06-20  John Sullivan  <sullivan@apple.com>
284
285         Reviewed by Chris Blumenberg.
286         
287         - added support for emptying the icon database
288
289         * Misc.subproj/WebIconDatabase.h: just fixed a typo
290         * Misc.subproj/WebIconDatabasePrivate.h:
291         added WebPendingPublic category with method removeAllIcons, and
292         declared WebIconDatabaseDidRemoveAllIconsNotification string.
293         
294         * Misc.subproj/WebIconDatabase.m:
295         (-[WebIconDatabase removeAllIcons]):
296         new method, removes all known icons from memory and disk. There's one loose end,
297         covered by radar bug 4155182, where it's possible for the icon database's retain
298         counts to get off after this operation. I plan to fix this next.
299         (-[WebIconDatabase _setIconURL:forURL:]):
300         just fixed some extra whitespace
301         (-[WebIconDatabase _forgetIconForIconURLString:]):
302         new method, extracted from _releaseIconForIconURLString
303         (-[WebIconDatabase _releaseIconForIconURLString:]):
304         now calls extracted method
305
306         * WebKit.exp:
307         added _WebIconDatabaseDidRemoveAllIconsNotification
308
309 2005-06-19  Darin Adler  <darin@apple.com>
310
311         Changes by Mitz Pettel
312         Reviewed by me.
313         
314         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3466>
315           ATSUI text doesn't render at coordinates greater than 32K
316
317         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
318         Translate the matrix of the CGContext instead of passing the appropriate coordinates to ATSU.
319
320 2005-06-17  Richard Williamson   <rjw@apple.com>
321
322         Changes by Mitz Pettel
323         Reviewed by Richard Williamson.
324
325         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3545
326
327         * WebCoreSupport.subproj/WebTextRenderer.m:
328         (reverseCharactersInRun):
329         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
330
331 2005-06-17  John Sullivan  <sullivan@apple.com>
332
333         Reviewed by Chris.
334
335         - fixed <rdar://problem/4151001> Reloading javascript-spawned window with no URL erases its contents
336
337         * WebView.subproj/WebFrame.m:
338         (-[WebFrame reload]):
339         do nothing if URL is zero-length
340
341 2005-06-14  John Sullivan  <sullivan@apple.com>
342
343         Changes by Devin Lane.
344         Reviewed by me.
345
346         - fixed <rdar://problem/3766909> PDF viewing could use a zoom control other than the one in the context menu
347
348         * WebView.subproj/WebPDFView.h:
349         now implements protocol _web_WebDocumentTextSizing
350         * WebView.subproj/WebPDFView.m:
351         (-[WebPDFView _updateScalingToReflectTextSize]):
352         new method, sets the PDF scaling from the text size multiplier
353         (-[WebPDFView setDataSource:]):
354         call _updateScalingToReflectTextSize
355         (-[WebPDFView _web_textSizeMultiplierChanged]):
356         implementation of protocol _web_WebDocumentTextSizing, calls _updateScalingToReflectTextSize
357
358 2005-06-14  John Sullivan  <sullivan@apple.com>
359
360         Reviewed by Dave Harrison.
361
362         * WebView.subproj/WebHTMLView.m:
363         (-[WebHTMLView _delayedEndPrintMode:]):
364         After discussing this with Dave, I made this method both more debugger-friendly with asserts for
365         the cases we don't think could ever happen, and more paranoid by handling these cases in deployment
366         builds.
367
368 2005-06-14  Darin Adler  <darin@apple.com>
369
370         - fixed build for Xcode 2.1
371
372         * WebKit.pbproj/project.pbxproj: Use BUILT_PRODUCTS_DIR instead of SYMROOT to search for the
373         WebKitSystemInterface.h file. We could re-jigger this again later, but for now this is consistent
374         with both the .a file's location and where build-webkit puts the file.
375
376 2005-06-13  John Sullivan  <sullivan@apple.com>
377
378         Reviewed by Dave Harrison and Maciej.
379
380         * WebView.subproj/WebHTMLView.m:
381         (-[WebHTMLView _endPrintMode]):
382         new method, extracted from identical code in beginDocument and endDocument. This method must be called
383         once to counterbalance the code called from knowsPageRange that turns on "printing mode".
384         (-[WebHTMLView _delayedEndPrintMode:]):
385         new method, called from "perform after delay". Checks whether the same print operation is still underway
386         and, if so, delays further. Otherwise calls _endPrintMode directly.
387         (-[WebHTMLView knowsPageRange:]):
388         after turning on "printing mode", queue up a delayed call to _delayedEndPrintMode:. If there's an early
389         error in the print mechanism such that beginDocument is never called, this will cleanly end "printing
390         mode" and make the webview usable again.
391         (-[WebHTMLView beginDocument]):
392         cancel any delayed call to _delayedEndPrintMode:. If we get this far along in printing, then we don't need
393         the failsafe call to _delayedEndPrintMode: that was set up in knowsPageRange:. Also, call extracted method.
394         (-[WebHTMLView endDocument]):
395         call extracted method
396
397 2005-06-13  Maciej Stachowiak  <mjs@apple.com>
398
399         Reviewed by Chris Blumenberg and Adele.
400
401         - better fix for <rdar://problem/4142247> REGRESSION: List to browse widgets at Apple website failed. Closing tab afterwards caused Safari crash
402         http://bugzilla.opendarwin.org/show_bug.cgi?id=3445
403
404         With this change and the matching WebKit change we'll still stop loading the moment you click
405         a download link, but the unload event and detaching of event handlers will not happen early any more.
406         
407         * WebView.subproj/WebDataSource.m:
408         (-[WebDataSource _stopLoadingInternal]): call stopLoading on bridge instead of closeURL.
409         * WebView.subproj/WebFrame.m:
410         (-[WebFrame _transitionToCommitted:]): Revert previous attempt at fix.
411         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): ditto
412         (-[WebFrame stopLoading]): ditto
413
414 2005-06-13  Chris Petersen  <cpetersen@apple.com>
415
416         Changes by Darin.
417         Reviewed by me.
418
419         - fixed problems building deployment due to recent init change
420
421         * WebView.subproj/WebArchive.m: (-[WebArchive initWithCoder:]):
422         Put the [super init] call and check for nil outside the exception handler.
423         * WebView.subproj/WebResource.m: (-[WebResource initWithCoder:]): Ditto.
424
425 2005-06-12  Darin Adler  <darin@apple.com>
426
427         Reviewed by Maciej.
428
429         - fixed <rdar://problem/4141569> REGRESSION (412+): printing fails on any page with images, and for standalone images
430           also <http://bugzilla.opendarwin.org/show_bug.cgi?id=3318>
431
432         * WebCoreSupport.subproj/WebImageData.m: Got rid of use of tabs instead of spaces throughout the file.
433         (-[WebImageData _checkSolidColor:]): Wrap use of NSGraphicsContext with an autorelease pool.
434         (-[WebImageData _fillSolidColorInRect:compositeOperation:context:]): Ditto.
435         (-[WebImageData tileInRect:fromPoint:context:]): Ditto.
436         (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]): Ditto.
437
438 2005-06-12  Darin Adler  <darin@apple.com>
439
440         Changes by Nick Zitzmann.
441         Reviewed by me.
442
443         - fixed init methods that don't handle return values from the init methods they call
444
445         * WebView.subproj/WebArchive.m:
446         (-[WebArchive init]): Use value returned by init, check it for nil too.
447         (-[WebArchive initWithMainResource:subresources:subframeArchives:]): Ditto.
448         (-[WebArchive _initWithPropertyList:]): Ditto.
449         (-[WebArchive initWithCoder:]): Ditto.
450         * WebView.subproj/WebClipView.m:
451         (-[WebClipView initWithFrame:]): Ditto.
452         * WebView.subproj/WebDebugDOMNode.m:
453         (-[WebDebugDOMNode initWithName:value:source:children:]): Ditto.
454         * WebView.subproj/WebFrame.m:
455         (-[WebFormState initWithForm:values:sourceFrame:]): Ditto.
456         (-[WebFrame initWithName:webFrameView:webView:]): Ditto.
457         * WebView.subproj/WebFrameView.m:
458         (-[WebFrameView initWithFrame:]): Ditto.
459         * WebView.subproj/WebHTMLRepresentation.m:
460         (-[WebHTMLRepresentation init]): Ditto.
461         * WebView.subproj/WebHTMLView.m:
462         (-[WebHTMLView initWithFrame:]): Ditto.
463         (-[WebTextCompleteController initWithHTMLView:]): Ditto.
464         * WebView.subproj/WebImageView.m:
465         (-[WebImageView initWithFrame:]): Ditto.
466         * WebView.subproj/WebPreferences.m:
467         (-[WebPreferences initWithIdentifier:]): Ditto.
468         * WebView.subproj/WebRenderNode.m:
469         (-[WebRenderNode initWithName:position:rect:view:children:]): Ditto.
470         * WebView.subproj/WebResource.m:
471         (-[WebResource init]): Ditto.
472         (-[WebResource initWithCoder:]): Ditto.
473         * WebView.subproj/WebView.m:
474         (-[WebViewPrivate init]): Call super init.
475         (-[_WebSafeForwarder initWithTarget:defaultTarget:templateClass:]): Use value returned by init, check it for nil too.
476         (-[WebView initWithFrame:]): Ditto.
477
478 2005-06-12  Maciej Stachowiak  <mjs@apple.com>
479
480         Reviewed by Chris Blumenberg.
481
482         - fixed <rdar://problem/4142247> REGRESSION: List to browse widgets at Apple website failed. Closing tab afterwards caused Safari crash
483         http://bugzilla.opendarwin.org/show_bug.cgi?id=3445
484         
485         * WebView.subproj/WebFrame.m:
486         (-[WebFrame _transitionToCommitted:]): Stop loading the non-provisional data
487         source before swapping in the provisional.
488         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): Stop only
489         the provisional load here, we would not want to stop loading if this navigation
490         later turns into a download or is cancelled before being committed.
491         (-[WebFrame stopLoading]): Factored a bit.
492         (-[WebFrame _cancelProvisionalLoad]): New method to stop only provisional load,
493         and cancel any pending policy deicions.
494         (-[WebFrame _stopNonProvisionalLoadOnly]): New mthod that stops only the main
495         load.
496
497 2005-06-10  John Sullivan  <sullivan@apple.com>
498
499         reviewed by Dave Harrison (first & second drafts) and Darin Adler (third draft)
500
501         - WebKit part of fix for 
502         <rdar://problem/4145214> REGRESSION (412+): Can't drag URLs from the location bar
503
504         * Misc.subproj/WebNSPasteboardExtras.m:
505         (+[NSPasteboard initialize]):
506         Reinstate variation of old code that uses CreatePasteboardFlavorTypeName to set up our new pasteboard types.
507         The newfangled way didn't work.
508
509 2005-06-07  Darin Adler  <darin@apple.com>
510
511         Change by Mark Rowe <opendarwin.org@bdash.net.nz>.
512         Reviewed by me.
513
514         - fixed the WebKit half of build failure with spaces in the path
515           http://bugzilla.opendarwin.org/show_bug.cgi?id=3291
516
517         * WebKit.pbproj/project.pbxproj: Quote DERIVED_FILE_DIR when it is substituted
518         into FRAMEWORK_SEARCH_PATHS, and SYMROOT when into HEADER_SEARCH_PATHS.
519
520 2005-06-06  Darin Adler  <darin@apple.com>
521
522         * Info.plist: Bumped version to 412+. For some reason it was set to 312.1!
523
524 2005-06-05  Darin Adler  <darin@apple.com>
525
526         Reviewed by Hyatt.
527
528         - fixed build that I broke with the license change (some includes of WebException were still around)
529
530         * WebKit.pbproj/project.pbxproj: Removed references to WebException.h/m.
531         * WebView.subproj/WebDataSource.m: Removed include of WebException.h.
532         * WebView.subproj/WebHTMLView.m: Ditto.
533         * WebView.subproj/WebView.m: Ditto.
534
535         - fixed build under gcc 4.0 (some code moved here from Foundation had warnings)
536
537         * Misc.subproj/WebNSDataExtras.m:
538         (-[NSString _web_capitalizeRFC822HeaderFieldName]): Use char instead of UInt8.
539         (-[NSData _webkit_guessedMIMEType]):  Use char instead of UInt8, and take out now-
540         unneeded type casts.
541
542 2005-06-05  Darin Adler  <darin@apple.com>
543
544         - added appropriate license headers to most files and updated copyright to reflect publication dates
545
546         * LICENSE: Added.
547         * <lots of files>: Added license header.
548
549         * WebKit.pbproj/project.pbxproj: Removed references to NP_objc.h.
550
551         * API-Issues.rtf: Removed.
552         * Misc.subproj/WebException.h: Removed.
553         * Misc.subproj/WebException.m: Removed.
554         * Plugins.subproj/NP_objc.h: Removed.
555
556 2005-06-01  Darin Adler  <darin@apple.com>
557
558         Reviewed by John Sullivan.
559
560         - WebKit part of fix for <rdar://problem/3166090> add IE JavaScript extension window.showModalDialog
561
562         * WebCoreSupport.subproj/WebBridge.m:
563         (-[WebBridge createModalDialogWithURL:]): Added. Calls the UI delegate, falling back to the generic
564         "create WebView" method.
565         (-[WebBridge canRunModal]): Added. Checks the UI delegate to see if it implements runModal.
566         (-[WebBridge canRunModalNow]): Added. Checks the "inConnectionCallback" field so we can prevent
567         deadlock since we can't do any I/O while inside a connection callback until this aspect of NSURLConnection
568         is changed.
569         (-[WebBridge runModal]): Added. Sets "defersCallbacks" on all other web views in the group, then
570         calls runModal on the UI delegate.
571
572         * WebView.subproj/WebBaseResourceHandleDelegate.h: Added inConnectionCallback class method.
573         * WebView.subproj/WebBaseResourceHandleDelegate.m:
574         (-[WebBaseResourceHandleDelegate connection:willSendRequest:redirectResponse:]): Bump count and then
575         decrement count so we can tell if we are in a callback.
576         (-[WebBaseResourceHandleDelegate connection:didReceiveAuthenticationChallenge:]): Ditto.
577         (-[WebBaseResourceHandleDelegate connection:didCancelAuthenticationChallenge:]): Ditto.
578         (-[WebBaseResourceHandleDelegate connection:didReceiveResponse:]): Ditto.
579         (-[WebBaseResourceHandleDelegate connection:didReceiveData:lengthReceived:]): Ditto.
580         (-[WebBaseResourceHandleDelegate connection:willStopBufferingData:]): Ditto.
581         (-[WebBaseResourceHandleDelegate connectionDidFinishLoading:]): Ditto.
582         (-[WebBaseResourceHandleDelegate connection:didFailWithError:]): Ditto.
583         (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]): Ditto.
584         (+[WebBaseResourceHandleDelegate inConnectionCallback]): Added. Return YES if count is not 0.
585
586         * WebView.subproj/WebMainResourceClient.m:
587         (-[WebMainResourceClient receivedError:]): Changed to use the method without the connection: parameter
588         in the base class, since we no longer are overriding the connection: version.
589         (-[WebMainResourceClient willSendRequest:redirectResponse:]): Change to override the version without
590         the connection prefix/parameter; now only the base class overrides the actual connection delegate methods.
591         (-[WebMainResourceClient continueAfterContentPolicy:response:]): Ditto.
592         (-[WebMainResourceClient didReceiveResponse:]): Ditto.
593         (-[WebMainResourceClient didReceiveData:lengthReceived:]): Ditto.
594         (-[WebMainResourceClient didFinishLoading]): Ditto.
595         (-[WebMainResourceClient didFailWithError:]): Ditto.
596         (-[WebMainResourceClient loadWithRequestNow:]): Call the method without the connection parameter.
597
598         * WebView.subproj/WebUIDelegatePrivate.h: Added new SPI here that WebBrowser implements.
599
600 2005-05-26  Darin Adler  <darin@apple.com>
601
602         Reviewed by John.
603
604         - fix build failure from when I removed WebCoreUnicode
605
606         * WebCoreSupport.subproj/WebTextRenderer.m: Removed import of WebUnicode.h that I missed.
607         (-[WebTextRenderer _convertUnicodeCharacters:length:toGlyphs:]): Switch from our own macros
608         to the ICU macros for surrogate pairs.
609         (widthForNextCharacter): Ditto.
610
611 2005-05-26  David Harrison  <harrison@apple.com>
612
613         <rdar://problem/4120518> Mail: control-T in an empty message crashes mail
614
615         * WebCoreSupport.subproj/WebBridge.m:
616         (-[WebBridge issueTransposeCommand]):
617         New, to support transpose in JS.
618
619 2005-05-26  Darin Adler  <darin@apple.com>
620
621         Reviewed by Richard and Dave Harrison.
622
623         - eliminate WebCoreUnicode and use ICU directly instead
624
625         * Misc.subproj/WebKitNSStringExtras.m: (canUseFastRenderer): Use u_charDirection directly.
626         * WebCoreSupport.subproj/WebTextRenderer.m: Removed import of <WebCore/WebCoreUnicode.h>.
627         * WebView.subproj/WebHTMLView.m: (+[WebHTMLView initialize]): Removed call to WebKitInitializeUnicode.
628
629         * Misc.subproj/WebUnicode.h: Removed.
630         * Misc.subproj/WebUnicode.m: Removed.
631         * Misc.subproj/WebUnicodeTables.m: Removed.
632
633         * WebKit.pbproj/project.pbxproj: Removed files.
634
635 2005-05-24  Richard Williamson   <rjw@apple.com>
636
637         Fixed <rdar://problem/4097289> -[WebView elementAtPoint:] failing when WebView is nested and offset
638
639         Code to determine the correct frame under the window point was
640         converting the point incorrectly.
641
642         Reviewed by Chris.
643
644         * WebView.subproj/WebView.m:
645         (-[WebView _frameViewAtWindowPoint:]):
646
647 2005-05-23  John Sullivan  <sullivan@apple.com>
648
649         Reviewed by Kevin.
650         
651         - WebKit part of <rdar://problem/4125783> WebKit needs a way to control whether textareas are resizable
652
653         * WebView.subproj/WebPreferencesPrivate.h:
654         added private-for-now getter and setter for new preference
655         * WebView.subproj/WebPreferenceKeysPrivate.h:
656         added private preference key controlling whether textareas are resizable
657         * WebView.subproj/WebPreferences.m:
658         (+[WebPreferences initialize]):
659         initial value of new preference is NO, so other clients' behavior doesn't change
660         (-[WebPreferences textAreasAreResizable]):
661         new getter
662         (-[WebPreferences setTextAreasAreResizable:]):
663         new setter
664         
665         * WebView.subproj/WebView.m:
666         (-[WebView _updateWebCoreSettingsFromPreferences:]):
667         update this new setting in WebCore
668
669         * English.lproj/StringsNotToBeLocalized.txt:
670         updated for these changes
671
672 2005-05-23  Chris Blumenberg  <cblu@apple.com>
673
674         Changed type for identifier parameter in WebResourceLoadDelegate-related calls to id from NSString.
675
676         Reviewed by kevin.
677
678         * WebCoreSupport.subproj/WebBridge.m:
679         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]):
680         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
681         * WebView.subproj/WebFrame.m:
682         (-[WebFrame _opened]):
683         (-[WebFrame _requestFromDelegateForRequest:identifier:error:]):
684         (-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]):
685         (-[WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:]):
686         * WebView.subproj/WebFrameInternal.h:
687
688 2005-05-20  Chris Blumenberg  <cblu@apple.com>
689
690         Fixed: <rdar://problem/4098786> sync. XMLHttpRequest works w/o AllowNetworkAccess key because load delegate is not consulted
691
692         Synchronous loads did not cause the willSendRequest method on the resource load delegate to be called. This is the method that Dashboard uses to enforce AllowNetworkAccess and this must be called to avoid exploits.
693
694         Reviewed by sullivan.
695
696         * WebCoreSupport.subproj/WebBridge.m:
697         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): call [WebFrame _requestFromDelegateForRequest:identifier:error:] then 
698         [WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:] so synthetic resource load delegate 
699         methods are called and the data is saved as a WebResource for resources in the WebCore cache.
700
701         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): call [WebFrame _requestFromDelegateForRequest:identifier:error:],
702         respect its result, do the load and then call [WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:] 
703         for synchronous loads
704
705         * WebView.subproj/WebFrame.m:
706         (-[WebFrame _opened]): call [WebFrame _requestFromDelegateForRequest:identifier:error:] then 
707         [WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:] so synthetic resource load delegate methods are called 
708         for subresrources in the page cache
709         
710         (-[WebFrame _requestFromDelegateForRequest:identifier:error:]): new, was part of the removed _sendResourceLoadDelegateMessagesForURL:::
711         This method calls identifierForInitialRequest and willSendRequest.
712
713         (-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]): new, was part of the removed _sendResourceLoadDelegateMessagesForURL:::
714         This method calls the remaining resource load delegate messages.
715
716         (-[WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:]): new, saves the resource and calls
717         [WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]
718
719         * WebView.subproj/WebFrameInternal.h:
720
721 2005-05-17  Chris Blumenberg  <cblu@apple.com>
722         
723         Fixed: <rdar://problem/4119282> clicking a link in an RTF file opens the link with NSWorkspace without the usual security checks or WebView delegate control
724
725         Reviewed by mjs.
726
727         * WebCoreSupport.subproj/WebBridge.m:
728         (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]): pass the passed referrer to canLoadURL::: not [self referrer]
729         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): ditto
730         * WebView.subproj/WebTextView.m:
731         (-[WebTextView clickedOnLink:atIndex:]): call the loadURL bridge method so that security checks are made, command/option clicks work, policy delegate is consulted etc.
732
733 2005-05-17  Chris Blumenberg  <cblu@apple.com>
734
735         Fixed: <rdar://problem/4120255> web archives on remote servers can be viewed directly (with major security issues); should download instead
736
737         Reviewed by mjs.
738
739         * WebView.subproj/WebBaseResourceHandleDelegate.h:
740         * WebView.subproj/WebMainResourceClient.m:
741         (-[WebMainResourceClient continueAfterContentPolicy:response:]): if the WebKit client has chosen to "use" a remote web archive, stop the load with an error
742
743 2005-05-16  Darin Adler  <darin@apple.com>
744
745         - attempt to get things building under "Saffron" development tools
746
747         * WebKit.pbproj/project.pbxproj: Use BUILT_PRODUCTS_DIR instead of SYMROOT.
748
749 2005-05-13  John Sullivan  <sullivan@apple.com>
750
751         Reviewed by Kevin.
752         
753         - fixed <rdar://problem/4093306> Safari crashes if Esc key is held down during series 
754         of authentication sheets
755
756         * Panels.subproj/WebAuthenticationPanel.m:
757         (-[WebAuthenticationPanel cancel:]):
758         retain and autorelease self. This is a workaround for an AppKit key-handling issue, which I wrote up as:
759         <rdar://problem/4118422> Key-down events can be sent to a closed window if a key is kept pressed down
760
761 2005-05-12  John Sullivan  <sullivan@apple.com>
762
763         Reviewed by Kevin.
764
765         - rolled in changes from experimental-ui-branch to support resizable textareas
766         and find-as-you-type and confirming unsubmitted form changes. The files/functions 
767         modified are listed just below. After that are the ChangeLog comments from the branch.
768
769         * WebCoreSupport.subproj/WebBridge.m:
770         (-[WebBridge textDidChange:]):
771         * WebView.subproj/WebFormDelegate.h:
772         * WebView.subproj/WebFormDelegate.m:
773         (-[WebFormDelegate textDidChange:inFrame:]):
774         * WebView.subproj/WebHTMLView.m:
775         (-[WebHTMLView maintainsInactiveSelection]):
776         (-[WebHTMLView searchFor:direction:caseSensitive:wrap:]):
777         (-[WebHTMLView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
778         * WebView.subproj/WebView.m:
779         (-[WebView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
780         (-[WebView searchFor:direction:caseSensitive:wrap:]):
781         (-[WebView makeTextStandardSize:]):
782         (-[WebView maintainsInactiveSelection]):
783         * WebView.subproj/WebViewPrivate.h:
784         
785         2005-04-18  John Sullivan  <sullivan@apple.com>
786
787                 WebKit support for notifying a form delegate when a
788                 textarea's contents have changed (as opposed to a 
789                 textfield, which was already handled).
790
791                 Reviewed by Maciej.
792
793                 * WebView.subproj/WebFormDelegate.h:
794                 * WebView.subproj/WebFormDelegate.m:
795                 (-[WebFormDelegate textDidChange:inFrame:]):
796                 new form delegate method
797
798                 * WebCoreSupport.subproj/WebBridge.m:
799                 (-[WebBridge textDidChange:]):
800                 new method, calls through to form delegate
801                 
802         2005-04-11  John Sullivan  <sullivan@apple.com>
803
804                 Fixed inability to wrap around in Find in Page 
805
806                 * WebView.subproj/WebView.m:
807                 (-[WebView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
808                 changed wrapFlag from NO to YES on two lines (copy/paste error)
809
810         2005-04-07  John Sullivan  <sullivan@apple.com>
811
812                 WebKit support for find-as-you-type. Needed an additional parameter on
813                 a method from WebDocumentSearching protocol. Since that's a public protocol, 
814                 I couldn't just add the parameter. For now I hacked it with an undeclared
815                 internal method that's discovered via respondsToSelector. Probably the right
816                 long-term approach is to deprecate the WebDocumentSearching protocol and introduce
817                 a replacement that has a more flexible set of parameters for possible future
818                 expansion.
819
820                 Reviewed by Dave Hyatt.
821
822                 * WebView.subproj/WebHTMLView.m:
823                 (-[WebHTMLView searchFor:direction:caseSensitive:wrap:]):
824                 now calls new one-more-parameter version passing NO for new parameter to match old behavior
825                 (-[WebHTMLView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
826                 new method, adds findInSelection parameter and passes it through to bridge
827                  
828                 * WebView.subproj/WebView.m:
829                 (-[WebView searchFor:direction:caseSensitive:wrap:]):
830                 now calls new one-more-parameter version passing NO for new parameter to match old behavior
831                 (-[WebView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
832                 new method, adds findInSelection parameter and passes it through
833
834         2005-04-07  John Sullivan  <sullivan@apple.com>
835
836                 WebKit support to allow clients to control whether the selection is still
837                 drawn when the first responder is elsewhere. Formerly this was hardwired
838                 to be true only when -[WebView isEditable] was true.
839
840                 Reviewed by Darin.
841
842                 * WebView.subproj/WebHTMLView.m:
843                 (-[WebHTMLView maintainsInactiveSelection]):
844                 check [WebView maintainsInactiveSelection] rather than just [WebView isEditable]
845                 
846                 * WebView.subproj/WebViewPrivate.h:
847                 * WebView.subproj/WebView.m:
848                 (-[WebView maintainsInactiveSelection]):
849                 new method for clients to override, returns -[self isEditable]
850         
851
852 2005-05-10  John Sullivan  <sullivan@apple.com>
853
854         Reviewed by Kevin.
855         
856         - WebKit support for <rdar://problem/3795701> Menu item/keyboard shortcut to 
857         restore text zoom to normal
858
859         * WebView.subproj/WebView.m:
860         (-[WebView validateUserInterfaceItem:]):
861         validate makeTextStandardSize by calling canMakeTextStandardSize
862         (-[WebView canMakeTextStandardSize]):
863         new method, returns YES unless text size multiplier is currently 1
864         (-[WebView makeTextStandardSize:]):
865         new method, sets text size multiplier to 1
866         
867         * WebView.subproj/WebViewPrivate.h:
868         add makeTextStandardSize: and canMakeTextStandardSize to pending public category
869
870 2005-05-10  John Sullivan  <sullivan@apple.com>
871
872         Reviewed by Chris.
873         
874         - fixed <rdar://problem/4067981> Mail places RTF flavor before RTFD flavor when dragging 
875         mixed image/text content.
876
877         * WebView.subproj/WebHTMLView.m:
878         (+[WebHTMLView _selectionPasteboardTypes]):
879         put RTFD type before RTF type in array of types to declare
880
881 2005-05-09  Chris Blumenberg  <cblu@apple.com>
882
883         Turned assertion into error message to prevent crash when encountering this bug:
884         <rdar://problem/4067625> connection:willCacheResponse: is called inside of [NSURLConnection initWithRequest:delegate:]
885         
886         * WebView.subproj/WebBaseResourceHandleDelegate.h:
887         * WebView.subproj/WebBaseResourceHandleDelegate.m:
888         (-[WebBaseResourceHandleDelegate loadWithRequest:]): set flag to track when we're initializing the connection
889         (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]): log error
890
891 2005-05-09  Darin Adler  <darin@apple.com>
892
893         * Makefile.am: Don't set up PBXIntermediatesDirectory explicitly;
894         Not needed to make builds work, spews undesirable error messages too.
895
896 2005-05-06  Darin Adler  <darin@apple.com>
897
898         Reviewed by Maciej.
899
900         - make building multiple trees with make work better
901
902         * Makefile.am: Set up Xcode build directory before invoking xcodebuild.
903
904 2005-05-04  Darin Adler  <darin@apple.com>
905
906         Reviewed by Dave Hyatt.
907
908         - fixed layout tests
909
910         * WebKit.pbproj/project.pbxproj: Set deployment target to 10.3 in the build styles.
911         When built without a build style (by Apple B&I) we want to get the target from the
912         environment. But when built with a build style (by Safari engineers and others), we want
913         to use 10.3. Because our deployment target was not set, we ran into this bug:
914
915             <rdar://problem/4108717> CTFontGetGlyphWithName doesn't work with some strings
916
917         * Makefile.am: Took out extra parameters that make command-line building different from
918         Xcode building. Now that this is fixed, you should not get a full rebuild if you switch
919         from command line to Xcode or back.
920
921 2005-05-04  Chris Blumenberg  <cblu@apple.com>
922
923         Fixed: 
924         <rdar://problem/4078417> REGRESSION (125-412): MLB gameday page doesn't update (Flash)
925         <rdar://problem/4072280> XMLHttpRequest calls onReadyStateChange callback with bogus status value
926         
927         Reviewed by john.
928
929         Our WebKit-level caching of subresources "dumbed-down" information held in NSURLResponse. This caused some loads to lack response headers and thus disabling cache directives. Status codes were also not retained and this caused XMLHttpRequest to fail frequently. The fix is to have WebResource retain the NSURLResponse and to use the NSURLResponse when we decide to load from WebResources.
930
931         * WebCoreSupport.subproj/WebBridge.m:
932         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): call new [WebResource _initWithData:URL:response:]
933         * WebView.subproj/WebBaseResourceHandleDelegate.m:
934         (-[WebBaseResourceHandleDelegate _canUseResourceWithResponse:]): new, checks response cache directives
935         (-[WebBaseResourceHandleDelegate loadWithRequest:]): call _canUseResourceWithResponse:
936         (-[WebBaseResourceHandleDelegate saveResource]): call new [WebResource _initWithData:URL:response:]
937         * WebView.subproj/WebResource.m:
938         (-[WebResourcePrivate dealloc]):
939         (-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]): call renamed _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:
940         (-[WebResource initWithCoder:]): decode the NSURLReponse
941         (-[WebResource encodeWithCoder:]): encode the NSURLReponse
942         (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:]): take the NSURLReponse
943         (-[WebResource _initWithData:URL:response:]): new
944         (-[WebResource _initWithPropertyList:]): decode the NSURLReponse
945         (-[WebResource _propertyListRepresentation]): encode the NSURLReponse
946         (-[WebResource _response]): return ivar if we have one
947         * WebView.subproj/WebResourcePrivate.h:
948
949 2005-05-03  David Hyatt  <hyatt@apple.com>
950
951         Fix object element support so that fallback content works.  With this change Safari passes the Acid2 test.
952         
953         Reviewed by Maciej
954
955         * WebCoreSupport.subproj/WebBridge.m:
956         (-[WebBridge determineObjectFromMIMEType:URL:]):
957         * WebView.subproj/WebDataSource.m:
958         (-[WebDataSource _receivedMainResourceError:complete:]):
959         * WebView.subproj/WebMainResourceClient.m:
960         (-[WebMainResourceClient continueAfterContentPolicy:response:]):
961
962 2005-05-03  Darin Adler  <darin@apple.com>
963
964         * WebView.subproj/WebUIDelegate.h: Fixed incorrect comment.
965
966 >>>>>>> 1.3131
967 2005-05-01  Darin Adler  <darin@apple.com>
968
969         - move to Xcode native targets and stop checking in generated files
970
971         * WebKit.pbproj/project.pbxproj: Updated to use native targets and generate all the generated
972         files, so we don't have to check them in any more.
973         * Info.plist: Added. Native targets use a separate file for this.
974
975         * Plugins.subproj/npapi.m: Fixed import statement to get npapi.h from <WebKit/> rather than current directory.
976
977         * Makefile.am: Removed timestamp cleaning rules since we don't use it any more.
978
979         * .cvsignore: Removed various timestamp files.
980
981         * DOM.subproj/DOM-compat.h: Removed.
982         * DOM.subproj/DOM.h: Removed.
983         * DOM.subproj/DOMCSS.h: Removed.
984         * DOM.subproj/DOMCore.h: Removed.
985         * DOM.subproj/DOMEvents.h: Removed.
986         * DOM.subproj/DOMExtensions.h: Removed.
987         * DOM.subproj/DOMHTML.h: Removed.
988         * DOM.subproj/DOMPrivate.h: Removed.
989         * DOM.subproj/DOMRange.h: Removed.
990         * DOM.subproj/DOMStylesheets.h: Removed.
991         * DOM.subproj/DOMTraversal.h: Removed.
992         * DOM.subproj/DOMViews.h: Removed.
993         * Plugins.subproj/WebScriptObject.h: Removed.
994         * Plugins.subproj/npapi.h: Removed.
995         * Plugins.subproj/npruntime.h: Removed.
996         * copy-webcore-files-to-webkit: Removed.
997         * embed-frameworks.sh: Removed.
998         * force-clean-timestamp: Removed.
999
1000 2005-04-28  Darin Adler  <darin@apple.com>
1001
1002         Reviewed by Maciej.
1003
1004         - fixed problems preventing us from compiling with gcc 4.0
1005
1006         * WebKit.pbproj/project.pbxproj: Removed -fobjc-exceptions because I can't figure out an easy
1007         way to pass it only when compiling Objective-C/C++. Removed -Wmissing-prototypes from
1008         WARNING_CPLUSPLUSFLAGS since it's now a C-only warning.
1009
1010         * History.subproj/WebHistoryItem.m: (-[WebHistoryItem pageCache]): Changed return type
1011         to match the declaration.
1012         * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
1013         Fixed a BOOL that should have been a Boolean.
1014         * WebCoreSupport.subproj/WebTextRenderer.m: Removed redundant copy of ROUND_TO_INT, also in
1015         a WebCore header.
1016         (-[WebTextRenderer _computeWidthForSpace]): Had to add cast because of difference in type of
1017         ROUND_TO_INT vs. CEIL_TO_INT.
1018         (pathFromFont): Added a cast to convert UInt8 * to char *.
1019         * WebView.subproj/WebFrameView.m:
1020         (-[WebFrameView _setDocumentView:]): Fixed parameter type to match the declaration.
1021         (-[WebFrameView documentView]): Fixed return type to match the declaration.
1022         * WebView.subproj/WebHTMLView.m:
1023         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1024         Initialized a variable to quiet an incorrect gcc 4.0 uninitialized variable warning.
1025         (-[WebHTMLView deleteToMark:]): Switched from @try style to NS_DURING style of exception handler
1026         because we can't pass -fobjc-exceptions just to Objective-C at the moment (see above).
1027         (-[WebHTMLView selectToMark:]): Ditto.
1028         (-[WebHTMLView swapWithMark:]): Ditto.
1029
1030 2005-04-27  John Sullivan  <sullivan@apple.com>
1031
1032         Reviewed by Dave Harrison.
1033         
1034         - fixed <rdar://problem/3547489> pop-up window blocking preference and 
1035         menu item can easily get out of sync.
1036
1037         * WebView.subproj/WebPreferences.m:
1038         (-[WebPreferences _setStringValue:forKey:]):
1039         save local value before setting value in NSUserDefaults, so clients reacting to NSUserDefaults
1040         change notification but calling back on WebPreferences API will see the updated value.
1041         (-[WebPreferences _setIntegerValue:forKey:]):
1042         ditto
1043         (-[WebPreferences _setBoolValue:forKey:]):
1044         ditto
1045
1046 2005-04-26  Richard Williamson   <rjw@apple.com>
1047
1048         Fixed <rdar://problem/4098713> Scripting API is incompatible with Mozilla
1049
1050         Reviewed by Chris.
1051
1052         * Plugins.subproj/npfunctions.h:
1053         * Plugins.subproj/npruntime.h:
1054
1055 2005-04-26  Darin Adler  <darin@apple.com>
1056
1057         Reviewed by John.
1058
1059         - fixed <rdar://problem/3655817> please add support for mouse wheel events and the onmousewheel handler
1060
1061         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView scrollWheel:]): Call sendScrollWheelEvent: method
1062         instead of the old scrollOverflowWithScrollWheelEvent: (just a name change).
1063
1064 2005-04-18  Darin Adler  <darin@apple.com>
1065
1066         Reviewed by Hyatt.
1067
1068         - fixed <rdar://problem/4092614> REGRESSION (Tiger): progressively loaded background images "scroll around" instead of just appearing
1069
1070         * WebCoreSupport.subproj/WebImageData.m:
1071         (-[WebImageData _imageSourceOptions]): Moved a global inside this function, since it's only used here.
1072         (-[WebImageData _cacheImages:allImages:]): Fixed a sizeof that was getting the size of the wrong thing.
1073         (-[WebImageData _isSizeAvailable]): Used calloc in a more consistent way.
1074         (drawPattern): Removed an unneeded cast.
1075         (-[WebImageData tileInRect:fromPoint:context:]): Here's the actual bug fix. Don't use the image size
1076         when deciding whether the image needs to be tiled as a pattern nor when creating the pattern: in both
1077         cases, use the tile size. The old way was wrong, and the new way works perfectly. Also removed uneeded
1078         error message when the image is not yet loaded enough to create a CGImageRef for it -- it's fine to
1079         draw nothing in that case.
1080
1081 2005-04-14  John Sullivan  <sullivan@apple.com>
1082
1083         Reviewed by Chris.
1084
1085         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1086         (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]):
1087         Beefed up assertion that's been bugging me and Chris to include
1088         the two troublemaking values.
1089
1090 2005-04-05  David Hyatt  <hyatt@apple.com>
1091
1092         Fix for 4077106, wheel scroll amount smaller in Tiger.  All along wheeling should have been 4x the default
1093         line height of 10 (just as arrow keys did).  Scroll arrows should have done this too for scroll views (they did
1094         already for overflow sections).  This patch puts the override into the scrollview itself, and removes the
1095         multipliers in the private frame methods.
1096         
1097         Reviewed by darin
1098
1099         * WebView.subproj/WebFrameView.m:
1100         (-[WebFrameView _verticalKeyboardScrollDistance]):
1101         (-[WebFrameView initWithFrame:]):
1102         (-[WebFrameView _horizontalKeyboardScrollDistance]):
1103
1104 === WebKit-312.1 ===
1105
1106 2005-03-31  Chris Blumenberg  <cblu@apple.com>
1107
1108         Fixed: <rdar://problem/4070729> REGRESSION (125-311, Panther-only?): Safari crashes while reloading "My eBay" page
1109
1110         Reviewed by rjw.
1111
1112         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1113         (-[WebBaseResourceHandleDelegate resourceData]): retain and autorelease resourceData since releaseResources (which releases resourceData) may be called before the caller of this method has an opporuntity to retain the returned data
1114
1115 === Safari-412 ===
1116
1117 === Safari-411 ===
1118
1119 2005-03-23  Richard Williamson   <rjw@apple.com>
1120
1121         Use Patti Yeh's hack to determine the appropriate rectangle
1122         to place the "associated word" window.  
1123         If there is no marked text firstRectForCharacterRange: will
1124         use the selected range to determine the returned rectangle,
1125         ignoring the input range.  This is the fix from
1126         4029491 that I previously backed out.
1127
1128         Reviewed by Vicki.
1129
1130         * WebView.subproj/WebHTMLView.m:
1131         (-[WebHTMLView firstRectForCharacterRange:]):
1132
1133 2005-03-23  Richard Williamson   <rjw@apple.com>
1134
1135         Fixed <rdar://problem/4062490> REGRESSION (WebKit-408): no subresources reported in Activity window after going back at hrweb.apple.com
1136
1137         Stop collecting subresource responses after the document
1138         had loaded, not after it has been opened.
1139
1140         Reviewed by Chris.
1141
1142         * WebView.subproj/WebFrame.m:
1143         (-[WebFrame _setState:]):
1144         (-[WebFrame _opened]):
1145
1146 2005-03-21  Maciej Stachowiak  <mjs@apple.com>
1147
1148         Reviewed by Darin.
1149
1150         <rdar://problem/4051145> The QuickTime Cocoa plug-in needs an SPI that it can call to check for URL policy
1151
1152         * Plugins.subproj/WebPluginContainerCheck.h: Added.
1153         * Plugins.subproj/WebPluginContainerCheck.m: Added this new helper class to encapsulate
1154         an async plugin navigation check.
1155         (+[WebPluginContainerCheck checkWithRequest:target:resultObject:selector:controller:]): Convenience allocator that gives autoreleased value.
1156         (-[WebPluginContainerCheck initWithRequest:target:resultObject:selector:controller:]): Initializer.
1157         (-[WebPluginContainerCheck finalize]): Just assert that we're done, it would
1158         be bad to deallocate this object while request is still outstanding.
1159         (-[WebPluginContainerCheck dealloc]): Ditto.
1160         (-[WebPluginContainerCheck _continueWithPolicy:]): Method to continue after async
1161         policy check.
1162         (-[WebPluginContainerCheck _isDisallowedFileLoad]): Do "file: URL from remote content"
1163         check.
1164         (-[WebPluginContainerCheck _actionInformationWithURL:]): Helper to make action
1165         dictionary.
1166         (-[WebPluginContainerCheck _askPolicyDelegate]): Call policy delegate to let
1167         the app decide if this load is allowed.
1168         (-[WebPluginContainerCheck start]): Start the check.
1169         (-[WebPluginContainerCheck cancel]): Cancel a check in progress.
1170         * Plugins.subproj/WebPluginController.h:
1171         * Plugins.subproj/WebPluginController.m:
1172         (-[WebPluginController initWithDocumentView:]): Initialize new _checksInProgress field.
1173         (-[WebPluginController _webPluginContainerCancelCheckIfAllowedToLoadRequest:]): Implement
1174         this new SPI method.
1175         (-[WebPluginController _cancelOutstandingChecks]): New helper to make sure to cancel
1176         all outstanding requests when destroying all plugins.
1177         (-[WebPluginController destroyAllPlugins]): Call above helper.
1178         (-[WebPluginController _webPluginContainerCheckIfAllowedToLoadRequest:inFrame:resultObject:selector:]): Implement this new plug-in SPI method.
1179         (-[WebPluginController bridge]): New helper method.
1180         (-[WebPluginController webView]): New helper method.
1181         * WebView.subproj/WebPolicyDelegatePrivate.h: Add new navigation
1182         type WebNavigationTypePlugInRequest.
1183         * WebKit.pbproj/project.pbxproj: Add new files.
1184         * WebView.subproj/WebDefaultPolicyDelegate.m:
1185         (-[WebDefaultPolicyDelegate webView:decidePolicyForNavigationAction:request:frame:decisionListener:]): Don't open externally on a plug-in request.
1186
1187 2005-03-23  Richard Williamson   <rjw@apple.com>
1188
1189         Fixed <rdar://problem/4053515> REGRESSION (Mail): Kotoeri input method reconversion does not work in WebViews
1190
1191         We now use actual document NSRanges to represent both marked text
1192         ranges and selection ranges.
1193
1194         Reviewed by Ken Kocienda.
1195
1196         * WebView.subproj/WebHTMLView.m:
1197         (-[WebHTMLView validAttributesForMarkedText]):
1198         (-[WebHTMLView firstRectForCharacterRange:]):
1199         (-[WebHTMLView selectedRange]):
1200         (-[WebHTMLView markedRange]):
1201         (-[WebHTMLView _selectMarkedText]):
1202         (-[WebHTMLView setMarkedText:selectedRange:]):
1203
1204 === Safari-410 ===
1205
1206 2005-03-22  Darin Adler  <darin@apple.com>
1207
1208         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
1209
1210 === Safari-409 ===
1211
1212 2005-03-20  Maciej Stachowiak  <mjs@apple.com>
1213
1214         Reviewed by Darin.
1215
1216         <rdar://problem/4060020> Add stub version of security SPI for QuickTime plug-in so QuickTime team has something to compile and link against
1217         
1218         * Plugins.subproj/WebPluginContainerPrivate.h: Added.
1219         * Plugins.subproj/WebPluginController.m:
1220         (-[WebPluginController _webPluginContainerCheckIfAllowedToLoadRequest:inFrame:resultObject:selector:]):
1221         (-[WebPluginController _webPluginContainerCancelCheckIfAllowedToLoadRequest:]):
1222         * WebKit.pbproj/project.pbxproj:
1223
1224 2005-03-19  David Harrison  <harrison@apple.com>
1225
1226         Reviewed by Maciej.
1227         
1228         <rdar://problem/4059479> Misspelling underline does underline the whole word, could go farther to the right
1229
1230         * WebCoreSupport.subproj/WebTextRenderer.m:
1231         (-[WebTextRenderer misspellingLinePatternGapWidth]):
1232         (-[WebTextRenderer drawLineForMisspelling:withWidth:]):
1233         Consider that the last pixel in the underline dot pattern is transparent.
1234
1235 2005-03-19  Darin Adler  <darin@apple.com>
1236
1237         Reviewed by Maciej (a while back).
1238
1239         - fixed <rdar://problem/4059323> local-file security check is allowing plug-in streams, but must not
1240
1241         * Plugins.subproj/WebNetscapePluginStream.m:
1242         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
1243         Roll out change I made on 3-13. That change is needed for subresource, but not for plug-in streams.
1244         For plug-in streams it's too risky, and leaves a serious security hole open.
1245
1246 2005-03-19  Darin Adler  <darin@apple.com>
1247
1248         Reviewed by Ken and John.
1249
1250         - fixed <rdar://problem/4059123> REGRESSION (402-403): deleteWordForward: and deleteWordBackward: start deleting single characters after the first delete
1251
1252         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
1253         Fixed backwards logic in here and added missing check. Set action to one of the two typing actions only
1254         if isTypingAction is YES.
1255
1256 2005-03-19  David Harrison  <harrison@apple.com>
1257
1258         Reviewed by me (written by Patti Yeh).
1259         
1260         <rdar://problem/4029491> <TCIM> CangJie: the candidate window appears at the top left hand corner during typing in Mail and iChat
1261
1262         * WebView.subproj/WebHTMLView.m:
1263         (-[WebHTMLView firstRectForCharacterRange:]):
1264         Use selected range if there is no marked range.
1265
1266 === Safari-408 ===
1267
1268 2005-03-18  David Harrison  <harrison@apple.com>
1269
1270         Reviewed by Darin.
1271
1272         <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
1273
1274         * WebView.subproj/WebFrameView.m:
1275         (-[WebFrameView webCoreBridge]):
1276         New to conform to WebCoreBridgeHolder protocol.
1277
1278 2005-03-18  Richard Williamson   <rjw@apple.com>
1279         
1280         Fixed <rdar://problem/4057004> Data from XMLHTTPRequest is never dealloced
1281
1282         WebDataSource keeps an array of all the NSURLResponses associated
1283         with the load for a page.  This is used to playback delegate messages
1284         when loading from the page cache.  However, after the document
1285         has completed it's initial load, we continue to keep track of responses. 
1286         So, this has the consequence of keeping all the responses for a page
1287         around for the life of the page.  NSURLResponses are now very
1288         heavy.  They indirectly reference the resource data (via the
1289         download assessment dictionary).  This fix will keep
1290         references to responses around for those resources loaded during initial
1291         page load, but not after that point.
1292
1293         Reviewed by Ken.
1294
1295         * WebView.subproj/WebDataSource.m:
1296         (-[WebDataSource _addResponse:]):
1297         (-[WebDataSource _stopRecordingResponses]):
1298         * WebView.subproj/WebDataSourcePrivate.h:
1299         * WebView.subproj/WebFrame.m:
1300         (-[WebFrame _opened]):
1301
1302 2005-03-18  Ken Kocienda  <kocienda@apple.com>
1303
1304         Reviewed by Darin
1305
1306         Fix for this bug:
1307         
1308         <rdar://problem/4053729> Copy/paste of page with frames into Blot or Mail does nothing and loses insertion point
1309
1310         * WebView.subproj/WebHTMLView.m:
1311         (-[WebHTMLView _selectedArchive]): Wrap frameset documents in an iframe, so they can be pasted into 
1312         existing documents which will have a body or frameset of their own.
1313
1314 === Safari-407 ===
1315
1316 2005-03-17  Richard Williamson   <rjw@apple.com>
1317
1318         Fixed <rdar://problem/4055562> REGRESSION (Tiger): Safari doesn't draw progressively-loaded JPEGs (www.theregister.co.uk, www.titantalk.com)
1319
1320         Anothe side effect of lazy loading of image meta data.  We now
1321         don't cache image size until size meta data is actually available.
1322
1323         Reviewed by Darin.
1324
1325         * WebCoreSupport.subproj/WebImageData.m:
1326         (-[WebImageData size]):
1327
1328 2005-03-16  David Harrison  <harrison@apple.com>
1329
1330         Reviewed by Maciej.
1331         
1332         <rdar://problem/4048506> Deleting from beginning of editable div deletes other document elements
1333         
1334         Also changed WebCore.
1335
1336         * WebView.subproj/WebHTMLView.m:
1337         (-[WebHTMLView _shouldDeleteRange:]):
1338         Added call to new bridge method canDeleteRange.
1339
1340 2005-03-16  Ken Kocienda  <kocienda@apple.com>
1341
1342         Reviewed by Darin
1343
1344         Fix for this bug:
1345         
1346         <rdar://problem/4042935> undo doesn't work properly during inline input
1347
1348         * WebView.subproj/WebHTMLView.m:
1349         (-[WebHTMLView setMarkedText:selectedRange:]): Call new -[WebCoreBridge replaceMarkedTextWithText:] instead of 
1350         -[WebCoreBridge replaceSelectionWithText:selectReplacement:smartReplace:]. The former call was just added in 
1351         order to provide a better mapping of international text input onto the typing command/undo design.
1352
1353 2005-03-15  Richard Williamson   <rjw@apple.com>
1354
1355         Fixed <rdar://problem/4040321> Exception: Someone's trying to encode a WebDataRequestParameters instance
1356
1357         If client mutates request use new Foundation SPI to address remove applewebdata properties      from request.
1358
1359         Reviewed by Ken Kocienda.
1360
1361         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1362         (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]):
1363         * WebView.subproj/WebDataProtocol.h:
1364         * WebView.subproj/WebDataProtocol.m:
1365         (+[NSURLRequest _webDataRequestPropertyKey]):
1366
1367 2005-03-15  Ken Kocienda  <kocienda@apple.com>
1368
1369         Reviewed by Vicki
1370
1371         Fox for this bug:
1372         
1373         <rdar://problem/4052642> Each delete keystroke is in its own undo group; not included in undo group with other typing
1374
1375         Calling -[WebCore setSelectedDOMRange:range affinity:] had the result of "closing" any active set of typing
1376         keystrokes grouped together in a single undo operation. My change on 27 Jan to route delete keystrokes 
1377         through _deleteRange:killRing:... made this feature regress. Previous to that change, the backwards delete
1378         key went through separate code that is no longer in the tree that did not set the selection in the way
1379         it is done now.
1380         
1381         The solution is to add an extra argument to the set-selection call. The WebCoreBridge now offers this method:
1382         -[WebCore setSelectedDOMRange:range affinity:closeTyping:]. Now, callers must indicate whether setting the 
1383         selection will act to close typing or not. The code changes below all add this new argument with the
1384         appropriate value for closeTyping.
1385
1386         * WebView.subproj/WebHTMLView.m:
1387         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]): Passes NO for closeTyping when
1388         deletionAction is deleteKeyAction or forwardDeleteKeyAction; YES when deleteSelectionAction.
1389         (-[WebHTMLView _expandSelectionToGranularity:]): Passes YES for closeTyping.
1390         (-[WebHTMLView selectToMark:]): Passes YES for closeTyping.
1391         (-[WebHTMLView swapWithMark:]): Passes YES for closeTyping.
1392         (-[WebHTMLView transpose:]): Passes YES for closeTyping.
1393         (-[WebHTMLView _selectMarkedText]): Passes NO for closeTyping.
1394         (-[WebHTMLView _selectRangeInMarkedText:]): Passes NO for closeTyping.
1395         * WebView.subproj/WebView.m:
1396         (-[WebView setSelectedDOMRange:affinity:]): Passes YES for closeTyping.
1397
1398 2005-03-14  Richard Williamson   <rjw@apple.com>
1399
1400         Fix <rdar://problem/4051389> 8A413: gifs animating too fast
1401
1402         Reviewed by Maciej.
1403
1404         Match Mozilla's policy for minimum frame duration, which is somewhat odd:
1405
1406         <= 0.01 sec use .1 sec, otherwise use specified duration.
1407
1408         * WebCoreSupport.subproj/WebImageData.m:
1409         (-[WebImageData _frameDurationAt:]):
1410
1411 2005-03-14  Darin Adler  <darin@apple.com>
1412
1413         Reviewed by Harrison.
1414
1415         - fixed <rdar://problem/4049776> Seed: Mail: Disable spellcheck leaves red artifacts
1416
1417         * WebView.subproj/WebFrameInternal.h: Added _unmarkAllMisspellings.
1418         * WebView.subproj/WebFrame.m: (-[WebFrame _unmarkAllMisspellings]): Added.
1419         Calls unmarkAllMisspellings on the bridge and self and all subframes.
1420
1421         * WebView.subproj/WebView.m: (-[WebView setContinuousSpellCheckingEnabled:]):
1422         Call _unmarkAllMisspellings on the main frame when turning continuous spell checking off.
1423
1424 2005-03-14  Richard Williamson   <rjw@apple.com>
1425
1426         Fixed <rdar://problem/4027928> Tiger_8A394:Acrobat crashes while tried to remove the subscription errors by clicking on "Would you like to remove the subscription" from Tracker details view pane
1427
1428         The Acrobat application triggers loads of new documents in it's policy delegate.  This
1429         ultimately causes the WebHTMLView to be released before their event handlers have
1430         returned.  To bullet proof against this case we retain/release self before passing
1431         the event on for further handling.
1432         
1433         Reviewed by Maciej.
1434
1435         * WebView.subproj/WebHTMLView.m:
1436         (-[WebHTMLView _updateMouseoverWithEvent:]):
1437         (-[WebHTMLView scrollWheel:]):
1438         (-[WebHTMLView mouseDown:]):
1439         (-[WebHTMLView mouseDragged:]):
1440         (-[WebHTMLView mouseUp:]):
1441         (-[WebHTMLView keyDown:]):
1442         (-[WebHTMLView keyUp:]):
1443         (-[WebHTMLView performKeyEquivalent:]):
1444
1445 2005-03-14  Vicki Murley  <vicki@apple.com>
1446
1447         - roll out the fix for 4040321, since it is still pending CCC review.
1448
1449     2005-03-10  Richard Williamson   <rjw@apple.com>
1450
1451         Fixed <rdar://problem/4040321> Exception: Someone's trying to encode a WebDataRequestParameters instance 
1452
1453         Reviewed by Darin.
1454
1455         If a delegate returns a mutated applewebdata: request in it's willSendRequest:
1456         method, we don't load using the WebDataRequest.  Instead we do a normal load.
1457         Unfortunately, if the request they return is mutated *copy* of the applewebdata: 
1458         request it will hold the applewebdata: special properties.  These properties 
1459         will be encoded into the cache.   They should not be.  So, to fix, we sanitize the
1460         request, by removing the special properties from the request.
1461
1462         Note that we had to dig into the private guts of NSURLRequest because there is
1463         no public mechanism to remove properties from a request, see 4046775.
1464
1465         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1466         (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]):
1467         * WebView.subproj/WebDataProtocol.h:
1468         * WebView.subproj/WebDataProtocol.m:
1469         (-[NSURLRequest _webDataRequestExternalRequest]):
1470         (-[NSURLRequest _webDataRequestSanitize]):
1471
1472 === Safari-406 ===
1473
1474 2005-03-13  Darin Adler  <darin@apple.com>
1475
1476         Reviewed by Ken and Maciej.
1477
1478         - fixed <rdar://problem/4049040> REGRESSION (403-405): security check prevents user stylesheet from loading (Dictionary.app doesn't work at all!)
1479
1480         * Plugins.subproj/WebNetscapePluginStream.m: (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
1481         Allow plug-in subresource streams to load with any URL, ignoring the "canLoadURL" method's restriction (only
1482         file URLs can load other file URLs), which now applies only to main resources, like web pages in frames or
1483         object tags and plug-in main resources.
1484
1485         * WebCoreSupport.subproj/WebBridge.m:
1486         (-[WebBridge startLoadingResource:withURL:customHeaders:]): Allow subresources to load with any URL, as above.
1487         This allows things like images, stylesheets, and JavaScript to be loaded without the "canLoadURL" method's
1488         restriction.
1489         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]): Ditto.
1490         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): Ditto.
1491
1492 2005-03-10  Richard Williamson   <rjw@apple.com>
1493
1494         Fixed <rdar://problem/4040321> Exception: Someone's trying to encode a WebDataRequestParameters instance 
1495
1496         Reviewed by Darin.
1497
1498         If a delegate returns a mutated applewebdata: request in it's willSendRequest:
1499         method, we don't load using the WebDataRequest.  Instead we do a normal load.
1500         Unfortunately, if the request they return is mutated *copy* of the applewebdata: 
1501         request it will hold the applewebdata: special properties.  These properties 
1502         will be encoded into the cache.   They should not be.  So, to fix, we sanitize the
1503         request, by removing the special properties from the request.
1504
1505         Note that we had to dig into the private guts of NSURLRequest because there is
1506         no public mechanism to remove properties from a request, see 4046775.
1507
1508         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1509         (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]):
1510         * WebView.subproj/WebDataProtocol.h:
1511         * WebView.subproj/WebDataProtocol.m:
1512         (-[NSURLRequest _webDataRequestExternalRequest]):
1513         (-[NSURLRequest _webDataRequestSanitize]):
1514
1515 === Safari-405 ===
1516
1517 2005-03-10  Maciej Stachowiak  <mjs@apple.com>
1518
1519         Reviewed by Vicki.
1520
1521         <rdar://problem/4046510> REGRESSION (TOT): All Flash and Shockwave plugin-based web content missing
1522         
1523         * Plugins.subproj/WebNetscapePluginStream.m:
1524         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
1525
1526 2005-03-10  John Sullivan  <sullivan@apple.com>
1527
1528         Reviewed by Vicki.
1529         
1530         - fixed <rdar://problem/4045843> Going back/forward to error page 
1531         hits assertion in -[WebDataSource(WebPrivate) _setData:]
1532
1533         * WebView.subproj/WebDataSource.m:
1534         (-[WebDataSource _setData:]):
1535         Removed bogus assertion
1536
1537 2005-03-09  Deborah Goldsmith  <goldsmit@apple.com>
1538
1539         Reviewed by Darin.
1540
1541         - fixed <rdar://problem/3997044> default encoding for non-Latin incorrect
1542
1543         * WebKit/WebView.subproj/WebPreferences.m: (+[WebPreferences _systemCFStringEncoding]):
1544         Call __CFStringGetUserDefaultEncoding to get region, and TECGetWebTextEncodings to get
1545         the first encoding to determine the default encoding.
1546
1547 2005-03-09  Darin Adler  <darin@apple.com>
1548
1549         Reviewed by Richard.
1550
1551         - fixed <rdar://problem/4034175> REGRESSION (Mail): Can't use any font with style Light/Condensed/Semibold/Extrabold, etc
1552
1553         * WebView.subproj/WebHTMLView.m:
1554         (-[WebHTMLView _styleFromFontAttributes:]): Use a constant instead of hard-coded weight for clarity.
1555         (-[WebHTMLView _originalFontA]): Ditto.
1556         (-[WebHTMLView _originalFontB]): Ditto.
1557         (-[WebHTMLView _addToStyle:fontA:fontB:]): Add code to detect the case where the family name is not good enough
1558         to specify the font precisely. In that case, use the Postscript font name instead. Also change variable names
1559         so it's easier to understand the method.
1560
1561 2005-03-06  Maciej Stachowiak  <mjs@apple.com>
1562
1563         Reviewed by Darin.
1564
1565         <rdar://problem/4005575> Arbitrary file disclosure vulnerability due to ability to load local html from remote content
1566         
1567         * Plugins.subproj/WebBaseNetscapePluginView.m:
1568         (-[WebBaseNetscapePluginView requestWithURLCString:]):
1569         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
1570         (-[WebNetscapePluginEmbeddedView didStart]):
1571         * Plugins.subproj/WebNetscapePluginStream.m:
1572         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
1573         * WebCoreSupport.subproj/WebBridge.m:
1574         (-[WebBridge createWindowWithURL:frameName:]):
1575         (-[WebBridge startLoadingResource:withURL:customHeaders:]):
1576         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]):
1577         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
1578         (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]):
1579         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
1580         (-[WebBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
1581         (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
1582         * WebView.subproj/WebFrame.m:
1583         (-[WebFrame _loadURL:referrer:intoChild:]):
1584         * WebView.subproj/WebFramePrivate.h:
1585
1586 2005-03-09  Richard Williamson   <rjw@apple.com>
1587         
1588         Fixed <rdar://problem/4032938> Safari: text layout for MS P Gothic font is corrupted
1589
1590         The AppKit and ATS reports that MS P Gothic is fixed pitch.  It is
1591         not!  This is another case of "fixed pitch" being wrong.  I've
1592         coalesced all the special cases into our isFontFixedPitch:, and
1593         used a dictionary to improve speed.  No performance regression.
1594
1595         Reviewed by Maciej.
1596
1597         * WebCoreSupport.subproj/WebTextRenderer.m:
1598         (-[WebTextRenderer _computeWidthForSpace]):
1599         * WebCoreSupport.subproj/WebTextRendererFactory.m:
1600         (-[WebTextRendererFactory clearCaches]):
1601         (-[WebTextRendererFactory isFontFixedPitch:]):
1602
1603 2005-03-09  Darin Adler  <darin@apple.com>
1604
1605         Reviewed by Maciej.
1606
1607         <rdar://problem/4040388> REGRESSION (172-173): nonrepro crash in -[NSString(WebNSURLExtras) _web_isUserVisibleURL]
1608
1609         * Misc.subproj/WebNSURLExtras.m:
1610         (-[NSString _web_isUserVisibleURL]): Fixed some pointer expressions that didn't include the index in the expression.
1611         (readIDNScriptWhiteListFile): Removed NSLog statements in here since we decided they aren't useful and they will
1612         write some messages on Tiger.
1613
1614 2005-03-09  Darin Adler  <darin@apple.com>
1615
1616         * DOM.subproj/DOMPrivate.h: Checked in file copied from WebCore.
1617
1618 2005-03-08  Richard Williamson   <rjw@apple.com>
1619
1620         Fixed <rdar://problem/4036949> many JPEG images fail to incremental-load due to change in ImageIO JPEG header parsing (to be fixed in WebKit)
1621         Fixed <rdar://problem/4042570> Need to check image properties for presence of width/height properties
1622
1623         ImageIO-55 changed how image properties are created.  They
1624         are now created incrementally.  So we need "re-get" the image
1625         properties if the properties we care about (width/height) aren't
1626         in the property dictionary.
1627
1628         Reviewed by John.
1629
1630         * WebCoreSupport.subproj/WebImageData.h:
1631         * WebCoreSupport.subproj/WebImageData.m:
1632         (-[WebImageData init]):
1633         (-[WebImageData fileProperties]):
1634         (-[WebImageData propertiesAtIndex:]):
1635         (-[WebImageData _isSizeAvailable]):
1636         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
1637         (-[WebImageData size]):
1638
1639 2005-03-08  John Sullivan  <sullivan@apple.com>
1640
1641         A couple of tweaks to the previous patch, from Darin's review.
1642
1643         * Misc.subproj/WebNSPasteboardExtras.m:
1644         (_writableTypesForImageWithoutArchive):
1645         remove unnecessary _web prefix
1646         (_writableTypesForImageWithArchive):
1647         ditto
1648         (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
1649         use mutableCopy rather than initWithArray:, and adjust for name changes
1650
1651 2005-03-08  John Sullivan  <sullivan@apple.com>
1652
1653         Reviewed by Ken.
1654         
1655         - fixed <rdar://problem/4031826> REGRESSION (Mail): standalone images from 
1656         Safari can't be pasted into Mail (WebKit part of fix)
1657         
1658         We were always declaring webarchive-related pasteboard types, even in the standalone
1659         image cases where we had no webarchive. Unfortunately, the WebView pasteboard-related
1660         API doesn't prevent this kind of thing from happening, because the code that
1661         declares the types isn't guaranteed to be anywhere near the code that writes
1662         the pasteboard data.
1663         
1664         After this fix, I discovered that pasting standalone images into Mail still doesn't
1665         work right, but the remaining issues seem to be entirely in Mail. I wrote up 4041671
1666         to cover these.
1667
1668         * Misc.subproj/WebNSPasteboardExtras.h:
1669         (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
1670         Added boolean parameter; clients must specify whether or not there's an
1671         archive involved, because the array of types is different if there is.
1672
1673         * Misc.subproj/WebNSPasteboardExtras.m:
1674         (_web_writableTypesForImageWithoutArchive):
1675         new static function, constructs (once) and returns the array of types
1676         for images that don't have archives
1677         (_web_writableTypesForImageWithArchive):
1678         new static function, constructs (once) and returns the array of types
1679         for images that do have archives
1680         (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
1681         added boolean parameter, now calls one of the two new static functions
1682         
1683         (-[NSPasteboard _web_writeImage:URL:title:archive:types:]):
1684         added asserts that we aren't declaring the archive types if we don't have archive data
1685         
1686         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
1687         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
1688         
1689         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1690         (-[WebDefaultUIDelegate copyImageToClipboard:]):
1691         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
1692
1693         * WebView.subproj/WebImageView.m:
1694         (-[WebImageView copy:]):
1695         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
1696
1697         * WebView.subproj/WebView.m:
1698         (-[WebView pasteboardTypesForElement:]):
1699         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
1700
1701 2005-03-07  Richard Williamson   <rjw@apple.com>
1702
1703         More bullet proofing for <rdar://problem/4038304> CrashTracer: ....9 crashes at com.apple.WebKit: -[WebTextRenderer initWithFont:usingPrinterFont:] + 840
1704
1705         Protect against removal of Times and Times New Roman from
1706         system.  If these fonts are removed attempt to get system font
1707         instead of FATAL_ALWAYS.
1708
1709         Reviewed by John.
1710
1711         * WebCoreSupport.subproj/WebTextRenderer.m:
1712         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
1713
1714 === Safari-403 ===
1715
1716 2005-03-06  Darin Adler  <darin@apple.com>
1717
1718         - fixed obvious mistake in IDN script code (luckily it hasn't been in a submission yet!)
1719
1720         * Misc.subproj/WebNSURLExtras.m: (readIDNScriptWhiteListFile): Use "index" to index into the array,
1721         not "script", which is the script number, not the 32-bit-word index.
1722
1723 2005-03-05  Kevin Decker  <kdecker@apple.com>
1724
1725         Reviewed by Darin.
1726
1727         Fixed: <rdar://problem/4038529> Infinite progress bar loading webcams and other sites that use multipart/x-mixed-replace
1728
1729         The previous patch I landed prevented us from loading multipart/x-mixed-replace but did not always update the progress bar accordingly.  
1730         This stops websites from having seemingly infinite progress in the browser UI.  
1731
1732         * WebCoreSupport.subproj/WebSubresourceClient.m:
1733         (-[WebSubresourceClient didReceiveResponse:]): If this is "multipart/x-mixed-replace", remove the WebBaseResourceHandleDelegate client from 
1734         the datasource's subresource array, otherwise -[WebDataSource isLoading] incorrectly returns YES.   Also it's possible at this point in
1735          time we're done loading now (loaded everything else except for the multipart/x-mixed-replace content) so go ahead and check to see if 
1736          in fact we're complete. 
1737         * WebView.subproj/WebMainResourceClient.m:
1738         (-[WebMainResourceClient connection:didReceiveResponse:]): ditto
1739
1740 2005-03-05  Richard Williamson   <rjw@apple.com>
1741
1742         Fixed panther build problem.  Shouldn't include
1743         changes for 3968753 on panther.
1744
1745         Reviewed by John.
1746
1747         * WebView.subproj/WebView.m:
1748         (-[WebView _commonInitializationWithFrameName:groupName:]):
1749
1750 2005-03-05  Darin Adler  <darin@apple.com>
1751
1752         Reviewed by John.
1753
1754         - fixed <rdar://problem/4034603> REGRESSION (185-188): RadarWeb can't send enclosures anymore
1755
1756         * WebView.subproj/WebFormDataStream.m:
1757         (closeCurrentStream): Release currentData when closing the stream.
1758         (advanceCurrentStream): Set up and retain currentData when the current stream is reading that data, so the
1759         data won't be released while in use.
1760         (formCreate): Initialize currentData to NULL.
1761
1762         - fixed <rdar://problem/4037562> Tiger8A402: Help Viewer crashed when viewing help for iChat (infinite recursion in WebView)
1763
1764         * WebView.subproj/WebView.m: (-[WebView _responderValidateUserInterfaceItem:]):
1765         Check for the case where we ourselves are the responder. This avoids an infinite loop.
1766         The actual code to perform operations avoids this with a global variable, but this lighter weight
1767         solution is sufficient here because validate operations don't call through to the next responder.
1768
1769 2005-03-04  Richard Williamson   <rjw@apple.com>
1770
1771         Fixed <rdar://problem/3968753> REGRESSION: Poor performance with differing multiple animated GIFs (was fast in Panther)
1772
1773         Disable coalesced updates (in CG).  This restores the
1774         panther behavior.
1775
1776         Reviewed by David Harrison.
1777
1778         * WebView.subproj/WebView.m:
1779         (-[WebView _commonInitializationWithFrameName:groupName:]):
1780
1781 2005-03-04  Adele Amchan  <adele@apple.com>
1782
1783         Reviewed by Darin.
1784
1785         * English.lproj/StringsNotToBeLocalized.txt: added new strings "text/x-vcf" and "text/x-csv" to the list
1786
1787 2005-03-04  Adele Amchan  <adele@apple.com>
1788
1789         Reviewed by Chris.
1790
1791         Fix for <rdar://problem/4032982> Sun iPlanet app: not able to import AddressBook CSV format addresses properly
1792         Fix for <rdar://problem/4032985> Sun iPlanet app: not able to import vCard format addresses properly
1793
1794         * WebView.subproj/WebTextView.m:
1795         (+[WebTextView unsupportedTextMIMETypes]): added "text/x-csv" and "text/x-vcf" to the list of MIME types that our text view doesn't handle
1796
1797 2005-03-04  Darin Adler  <darin@apple.com>
1798
1799         Reviewed by John.
1800
1801         - fixed <rdar://problem/4036817> REGRESSION: ctrl-y broken when a line + carriage return cut
1802
1803         * WebView.subproj/WebHTMLView.m:
1804         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]): Merged _handleKillRing behavior
1805         into this function, since there's now a more-complicated way the startNewKillRingSequence boolean needs to
1806         be handled. Set the startNewKillRingSequence boolean after the entire process so changing the selection before
1807         and during the editing dosn't clear it. Also change "isTypingAction" parameter to "deletionAction" so we can
1808         handle forward delete with this method.
1809         (-[WebHTMLView _deleteSelection]): Pass deleteSelectionAction for action rather than NO for isTypingAction,
1810         which is the way to say the same thing using the new parameter.
1811         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Refactor to use the _deleteRange
1812         method above. Also calls _shouldDeleteRange: for the pre-existing selection case; not doing that before was
1813         a bug.
1814         (-[WebHTMLView deleteToMark:]): Pass deleteSelectionAction for action rather than NO for isTypingAction,
1815         which is the way to say the same thing using the new parameter.
1816
1817 2005-03-04  Darin Adler  <darin@apple.com>
1818
1819         Reviewed by John.
1820
1821         - fixed <rdar://problem/4020413> REGRESSION (Mail): can't use fonts with names that start with "#" in Mail (Korean fonts)
1822
1823         * WebView.subproj/WebHTMLView.m:
1824         (-[WebHTMLView _styleFromFontAttributes:]): Quote font name when calling setFontFamily.
1825         (-[WebHTMLView _addToStyle:fontA:fontB:]): Ditto.
1826
1827 2005-03-04  Darin Adler  <darin@apple.com>
1828
1829         Reviewed by John.
1830
1831         - fixed <rdar://problem/3965666> IDN spoofing vulnerability caused by Unicode characters that look like ASCII characters
1832
1833         * Misc.subproj/WebNSURLExtras.m:
1834         (readIDNScriptWhiteListFile): Added. Reads file and parses script names.
1835         (readIDNScriptWhiteList): Added. Calls readIDNScriptWhiteList on each of the white list locations in succession.
1836         (allCharactersInIDNScriptWhiteList): Renamed from containsPossibleLatinLookalikes and changed sense.
1837         Now calls readIDNScriptWhiteList first time, and then uses the read-in list to check the scripts.
1838         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Call allCharactersInIDNScriptWhiteList instead of
1839         containsPossibleLatinLookalikes.
1840         * Resources/IDNScriptWhiteList.txt: Added.
1841         * WebKit.pbproj/project.pbxproj: Added IDNScriptWhiteList.txt file.
1842
1843         * Misc.subproj/WebKitLocalizableStrings.m: Removed. This is simply unused.
1844         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
1845
1846 2005-03-04  Darin Adler  <darin@apple.com>
1847
1848         Reviewed by John.
1849
1850         - fixed <rdar://problem/3937667> REGRESSION (Mail): Zooming a window from titlebar button doesn't paint newly-exposed portions of window
1851
1852         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
1853         Re-set-up the visRect if the bounds changes due to layout.
1854
1855 === Safari-402 ===
1856
1857 2005-03-03  Jens Alfke  <jens@apple.com>
1858
1859         Reviewed by rjw.
1860
1861         <rdar://problem/3991818> REGRESSION: Images scale while loading
1862         The code could crop an image when not all the scanlines were available yet, and it could crop when only a sub-rect of the image was to be drawn; but if it had to do both at once, it got the coordinates wrong. Fixed that.
1863
1864         * WebCoreSupport.subproj/WebImageData.m:
1865         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
1866
1867 2005-03-01  David Hyatt  <hyatt@apple.com>
1868
1869         Fix for 3841186, scrollbar shows up disabled when it should not appear at all.  Make sure updateScrollers
1870         is never allowed to be re-entrant from any call point by moving the guard inside the function itself.
1871         
1872         Reviewed by John Sullivan
1873
1874         * WebView.subproj/WebDynamicScrollBarsView.m:
1875         (-[WebDynamicScrollBarsView updateScrollers]):
1876         (-[WebDynamicScrollBarsView reflectScrolledClipView:]):
1877
1878 2005-03-02  Chris Blumenberg  <cblu@apple.com>
1879
1880         Fixed: <rdar://problem/4029010> Expose method to retrieve drag image for WebView's selection
1881
1882         Reviewed by sullivan.
1883
1884         * WebView.subproj/WebHTMLView.m:
1885         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): call _selectionDraggingImage
1886         (-[WebHTMLView _selectionDraggingImage]): new SPI for Mail, factored from previous method
1887         (-[WebHTMLView _selectionDraggingRect]): new SPI for Mail
1888         * WebView.subproj/WebHTMLViewPrivate.h:
1889
1890 2005-03-02  John Sullivan  <sullivan@apple.com>
1891
1892         Reviewed by Adele.
1893         
1894         - fixed <rdar://problem/4023337> Safari stops loading any page (-[NSCFDictionary setObject:forKey:]: 
1895         attempt to insert nil key)
1896         
1897         It is very likely that the exception being hit is caused by the same problem as WebFoundation
1898         bug 4018486. This change makes the code robust against this kind of problem regardless.
1899
1900         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1901         (-[WebBaseResourceHandleDelegate saveResource]):
1902         Don't call addSubresource if newly-created resource is nil (but do assert on debug builds).
1903         Also assert that originalURL and MIMEType are not nil.
1904         
1905         * WebView.subproj/WebDataSource.m:
1906         (-[WebDataSource addSubresource:]):
1907         Don't add nil subresource to dictionary, but do assert on debug builds.
1908
1909 === Safari-401 ===
1910
1911 2005-03-01  John Sullivan  <sullivan@apple.com>
1912
1913         Reviewed by Darin.
1914         
1915         - fixed <rdar://problem/3987482> Format>Style>Italic is not enabled when a 
1916         compose window is empty (works in Blot)
1917
1918         * WebView.subproj/WebHTMLView.m:
1919         (-[WebHTMLView becomeFirstResponder]):
1920         call _updateFontPanel here so NSFontManager knows the right font for the menu
1921         items and the font panel
1922
1923 2005-03-01  David Harrison  <harrison@apple.com>
1924
1925         Reviewed by Chris.
1926         
1927         <rdar://problem/3915560> Mail would like an SPI to enable "smart" text paste/drop
1928
1929         * WebView.subproj/WebHTMLView.m:
1930         (-[WebHTMLView _smartDeleteRangeForProposedRange:]):
1931         (-[WebHTMLView _smartInsertForString:replacingRange:beforeString:afterString:]):
1932         New.
1933
1934 2005-02-28  John Sullivan  <sullivan@apple.com>
1935
1936         Reviewed by Ken.
1937         
1938         - WebKit part of fix for <rdar://problem/4023490> REGRESSION (125-185): Tabbing through links 
1939         on frameset page gets stuck at end (tivofaq.com)
1940         
1941         This tab-to-links stuff has been in shaky condition ever since AppKit futzed with
1942         tabbing behavior in Tiger to add support for including the toolbar in the key loop.
1943         I made some changes months ago to compensate for that, but some cases, such as this
1944         one, still weren't fixed.
1945
1946         * WebCoreSupport.subproj/WebBridge.m:
1947         (-[WebBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
1948         new bottleneck method, extracted from nextKeyViewOutsideWebFrameViews; handles
1949         nextKeyView or nextValidKeyView depending on parameter.
1950         (-[WebBridge nextKeyViewOutsideWebFrameViews]):
1951         now calls extracted method
1952         (-[WebBridge nextValidKeyViewOutsideWebFrameViews]):
1953         new method, calls new bottleneck method
1954         
1955         * WebView.subproj/WebHTMLView.m:
1956         (-[WebHTMLView nextValidKeyView]):
1957         when we're stuck at the end of a nextKeyView chain inside a nexted frame, use
1958         nextValidKeyViewOutsideWebFrameViews. Make sure we don't end up looking inside
1959         the web frame views while doing this.
1960
1961 2005-02-25  Darin Adler  <darin@apple.com>
1962
1963         Reviewed by John.
1964
1965         - fixed <rdar://problem/4025088> window onblur and onfocus don't fire when text field has focus
1966
1967         * WebView.subproj/WebHTMLView.m:
1968         (-[WebHTMLView updateFocusState]): Renamed from updateFocusDisplay. Added call to setWindowHasFocus: method.
1969         (-[WebHTMLView viewDidMoveToWindow]): Call method by new name.
1970         (-[WebHTMLView windowDidBecomeKey:]): Ditto.
1971         (-[WebHTMLView windowDidResignKey:]): Ditto.
1972         (-[WebHTMLView becomeFirstResponder]): Ditto.
1973         (-[WebHTMLView resignFirstResponder]): Ditto.
1974
1975 === Safari-400 ===
1976
1977 2005-02-25  Richard Williamson   <rjw@apple.com>
1978
1979         Fixed <rdar://problem/4000962> 8A375: Help Viewer displays voiced sound and semi-voiced characters strangely (characters don't seem to be composed)
1980
1981         Added special case for voiced marks.
1982
1983         Reviewed by John.
1984
1985         * WebCoreSupport.subproj/WebTextRenderer.m:
1986         (widthForNextCharacter):
1987
1988 2005-02-25  Darin Adler  <darin@apple.com>
1989
1990         Reviewed by John.
1991
1992         - fixed <rdar://problem/4019823> Seed: Control-Y doesn't work
1993
1994         * WebView.subproj/WebHTMLView.m:
1995         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Call _handleKillRing
1996         after setting the selection, since it uses the selection to get the text.
1997         (-[WebHTMLView _insertText:selectInsertedText:]): Check for empty string to avoid an assertion
1998         on the other side of the bridge when you yank the empty string.
1999
2000 2005-02-24  Richard Williamson   <rjw@apple.com>
2001
2002         Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
2003
2004         If directionality is specified use that as initial directionality,
2005         rather than neutral directionality.     
2006
2007         Reviewed by Hyatt.
2008
2009         * WebCoreSupport.subproj/WebTextRenderer.m:
2010         (widthForNextCharacter):
2011
2012 2005-02-24  Adele Amchan  <adele@apple.com>
2013
2014         Reviewed by Chris.
2015        
2016         Fix for <rdar://problem/4023393> Safari crashed in khtml::RenderObject::repaintAfterLayoutIfNeeded(QRect const&, QRect const&)
2017
2018         We were crashing after hitting PageDown when viewing a pdf because 
2019         WebKit was calling over to WebCore to scroll overflow areas.
2020         Since this only needs to be done if we're dealing with a WebHTMLView, 
2021         I added a wrapper function to check the documentView before calling
2022         over to WebCore.
2023
2024         * WebView.subproj/WebFrameView.m:
2025         (-[WebFrameView _scrollOverflowInDirection:granularity:]): added wrapper function that checks if documentView is a WebHTMLView 
2026         (-[WebFrameView scrollToBeginningOfDocument:]): uses new wrapper function now
2027         (-[WebFrameView scrollToEndOfDocument:]): uses new wrapper function now
2028         (-[WebFrameView _pageVertically:]): uses new wrapper function now
2029         (-[WebFrameView _pageHorizontally:]): uses new wrapper function now
2030         (-[WebFrameView _scrollLineVertically:]): uses new wrapper function now
2031         (-[WebFrameView _scrollLineHorizontally:]): uses new wrapper function now
2032
2033 2005-02-24  Richard Williamson   <rjw@apple.com>
2034
2035         Fixed <rdar://problem/3985889> REGRESSION (125-180): setting <img> src to GIF that already animated does not animate; just shows final frame
2036         
2037         Reviewed by Hyatt.
2038
2039         * WebCoreSupport.subproj/WebImageData.h:
2040         * WebCoreSupport.subproj/WebImageData.m:
2041         (-[WebImageData resetAnimation]):
2042         * WebCoreSupport.subproj/WebImageRenderer.m:
2043         (-[WebImageRenderer resetAnimation]):
2044         (-[WebInternalImage resetAnimation]):
2045         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
2046
2047 2005-02-24  Kevin Decker  <kdecker@apple.com>
2048
2049         Reviewed by John.
2050
2051         Fixed <rdar://problem/3962401> Don't load multipart/x-mixed-replace content to prevent memory leak
2052
2053         Since we're not going to fix <rdar://problem/3087535> for Tiger, we should not load multipart/x-mixed-replace content.  Pages with such content contain what is essentially an infinite load and therefore may leak.
2054
2055         * WebView.subproj/WebMainResourceClient.m: 
2056         (-[WebMainResourceClient connection:didReceiveResponse:]):  Disabled loading of multipart/x-mixed-replace content until we fully implement server side push. 
2057          * WebCoreSupport.subproj/WebSubresourceClient.m: 
2058         (-[WebSubresourceClient didReceiveResponse:]): Ditto. Same exact thing for sub resources. 
2059
2060
2061 2005-02-23  John Sullivan  <sullivan@apple.com>
2062
2063         Reviewed by Ken.
2064         
2065         - fixed <rdar://problem/4021370> REGRESSION (Tiger): WebKit part of fix for 
2066         shift-tab on tivofaq doing the wrong thing
2067
2068         * WebView.subproj/WebFrameView.m:
2069         (-[WebFrameView becomeFirstResponder]):
2070         If our previousValidKeyView is nil or self (same as nil modulo AppKit oddness),
2071         look out of the box and get the previousValidKeyView of our webview.
2072
2073 2005-02-23  Darin Adler  <darin@apple.com>
2074
2075         Reviewed by Hyatt.
2076
2077         - fixed <rdar://problem/4010196> REGRESSION (125-186+): 8-character timestamps in gmail wrap to 2 lines (width:8ex; font-size:80%)
2078
2079         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer xHeight]): Return the maximum
2080         of the "x" height and width. Comment in the code explains why in more detail.
2081
2082 2005-02-22  Richard Williamson   <rjw@apple.com>
2083
2084         Fixed <rdar://problem/3937203> when a div adds a scrollbar (overflow:auto) we do not get regions
2085
2086         Compare regions after automatice scroll regions have been
2087         added.
2088
2089         Reviewed by Maciej.
2090
2091         * WebCoreSupport.subproj/WebBridge.h:
2092         * WebCoreSupport.subproj/WebBridge.m:
2093         (-[WebBridge dealloc]):
2094         (-[WebBridge _compareDashboardRegions:]):
2095         (-[WebBridge dashboardRegionsChanged:]):
2096
2097 2005-02-22  Richard Williamson   <rjw@apple.com>
2098
2099         Fixed <rdar://problem/4012463> Dashboard widgets don't work with authenticating proxies
2100
2101         Added new SPI for dashboard that just calls default delegate
2102         behavior.
2103
2104         Reviewed by Maciej.
2105
2106         * WebView.subproj/WebView.m:
2107         (-[WebView handleAuthenticationForResource:challenge:fromDataSource:]):
2108         * WebView.subproj/WebViewPrivate.h:
2109
2110 2005-02-22  Chris Blumenberg  <cblu@apple.com>
2111
2112         Reviewed by mjs.
2113
2114         * WebCoreSupport.subproj/WebBridge.m:
2115         (-[WebBridge issuePasteAndMatchStyleCommand]): support for new "PasteAndMatchStyle" exec command
2116
2117 === Safari-188 ===
2118
2119 2005-02-21  David Harrison  <harrison@apple.com>
2120
2121         Reviewed by Darin.
2122
2123         <rdar://problem/3943090> REGRESSION (Mail): Spelling underline incompletely erased following certain steps
2124
2125         * WebCoreSupport.subproj/WebTextRenderer.m:
2126         (-[WebTextRenderer misspellingLineThickness]):
2127         (-[WebTextRenderer misspellingLinePatternWidth]):
2128         Replaced #defines with these methods, so others can get the same info.
2129         
2130         (-[WebTextRenderer drawLineForMisspelling:withWidth:]):
2131         Keep underline within originally specified bounds.
2132         
2133
2134 2005-02-21  Darin Adler  <darin@apple.com>
2135
2136         Reviewed by John.
2137
2138         - fixed <rdar://problem/4016358> don't ever display IDN URLs with characters from "possible Latin look-alike" scripts
2139
2140         * Misc.subproj/WebNSURLExtras.m:
2141         (containsPossibleLatinLookalikes): Added.
2142         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Call containsPossibleLatinLookalikes, and if true,
2143         don't decode the host name.
2144
2145 2005-02-19  Kevin Decker  <kdecker@apple.com>
2146
2147         Reviewed by Chris.
2148
2149         Fixed <rdar://problem/4010765> Flash player can be used to arbitrarily open popup windows without user permission
2150         
2151         Our window.open() policy is to refuse the <script>window.open(...)</script> case and allow the inline the <a href="javascript:window.open('foo')> case.  Clever advertisers at some point realized that by executing their Javascript through the Flash plugin, Safari would always treat their code as the inline case, and thus, they were able to work around our popup blocker. 
2152
2153         * Plugins.subproj/WebBaseNetscapePluginView.h: Addded currentEventIsUserGesture boolean ivar. 
2154         * Plugins.subproj/WebBaseNetscapePluginView.m:
2155         (-[WebBaseNetscapePluginView sendEvent:]): If at any point the user clicks or presses a key from within a plugin, set the currentEventIsUserGesture flag to true. This is important to differentiate legitimate window.open() calls originating from plugins;  we still want to allow those. 
2156         (-[WebBaseNetscapePluginView initWithFrame:]): In our asynchronous load, pass along currentEventIsUserGesture to the PluginRequest. 
2157         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): Inform WebCore if this was a user originated gesture when calling executeScript(). 
2158         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]):
2159         (-[WebPluginRequest initWithRequest:frameName:notifyData:sendNotification:didStartFromUserGesture:]):
2160         (-[WebPluginRequest isCurrentEventUserGesture]): Added. 
2161
2162 2005-02-18  Chris Blumenberg  <cblu@apple.com>
2163
2164         Fixed: <rdar://problem/3945271> REGRESSION (Mail): pasted plain text should pick up typing style instead of being unstyled
2165
2166         Reviewed by kocienda.
2167
2168         * WebView.subproj/WebDataSource.m:
2169         (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): pass NO for matchStyle to replaceSelection
2170         * WebView.subproj/WebHTMLView.m:
2171         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:chosePlainText:]): return new chosePlainText parameter
2172         (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): pass chosePlainText for matchStyle to replaceSelection
2173         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): ditto
2174
2175 2005-02-17  Richard Williamson   <rjw@apple.com>
2176
2177         Removed code that should not have been checked in from
2178         last patch.
2179
2180         * WebCoreSupport.subproj/WebTextRendererFactory.m:
2181         (-[WebTextRendererFactory isFontFixedPitch:]):
2182
2183 2005-02-17  Richard Williamson   <rjw@apple.com>
2184
2185         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
2186
2187         Fixed w/o introducing a performance regression.
2188
2189         Reviewed by Vicki (and earlier by Dave Harrison).
2190
2191         * WebCoreSupport.subproj/WebTextRenderer.m:
2192         (-[WebTextRenderer _computeWidthForSpace]):
2193         (widthForNextCharacter):
2194         * WebCoreSupport.subproj/WebTextRendererFactory.h:
2195         * WebCoreSupport.subproj/WebTextRendererFactory.m:
2196         (-[NSFont _web_isFakeFixedPitch]):
2197         (-[WebTextRendererFactory isFontFixedPitch:]):
2198         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
2199
2200 2005-02-17  Richard Williamson   <rjw@apple.com>
2201
2202         Fixed <rdar://problem/3959304> PDF in img tag is not rendered correctly anymore
2203
2204         We were incorrectly adding image position when flipping coordinates.
2205
2206         Reviewed by David Harrison.
2207
2208         * WebCoreSupport.subproj/WebImageData.m:
2209         (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]):
2210
2211 2005-02-17  Richard Williamson   <rjw@apple.com>
2212
2213         Fixed <rdar://problem/4007262> Seed: Flight tracker scrolling moves to the left
2214
2215         Added SPI for dashboard to disable wheel scrolling of the WebClipView.
2216
2217         Reviewed by Ken.
2218
2219         * ChangeLog:
2220         * WebView.subproj/WebClipView.m:
2221         (-[WebClipView _focusRingVisibleRect]):
2222         (-[WebClipView scrollWheel:]):
2223         * WebView.subproj/WebView.m:
2224         (-[WebViewPrivate init]):
2225         (-[WebView drawRect:]):
2226         (-[WebView _dashboardBehavior:]):
2227         * WebView.subproj/WebViewInternal.h:
2228         * WebView.subproj/WebViewPrivate.h:
2229
2230 === Safari-187 ===
2231
2232 2005-02-17  Vicki Murley <vicki@apple.com>
2233
2234         - roll out this change, since it causes a 1.5% performance regression
2235
2236     2005-02-15  Richard Williamson   <rjw@apple.com>
2237         
2238         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
2239         
2240         Lie about Osaka-Mono.  Treat it as fixed pitch, even though,
2241         strictly speaking it isn't.  (Similar to what we do with
2242         Courier New.)
2243
2244         Reviewed by David Harrison.
2245
2246         * WebCoreSupport.subproj/WebTextRenderer.m:
2247         (-[WebTextRenderer _computeWidthForSpace]):
2248         * WebCoreSupport.subproj/WebTextRendererFactory.h:
2249         * WebCoreSupport.subproj/WebTextRendererFactory.m:
2250         (-[NSFont _web_isFakeFixedPitch]): 
2251         (-[WebTextRendererFactory isFontFixedPitch:]):
2252         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
2253
2254 2005-02-17  John Sullivan  <sullivan@apple.com>
2255
2256         Reviewed by Ken.
2257         
2258         - fixed <rdar://problem/3997185> The Web view on .Mac Prefs caused System Prefs 
2259         to lockup (resolved by re-boot only)
2260
2261         * WebCoreSupport.subproj/WebBridge.m:
2262         (-[WebBridge nextKeyViewOutsideWebFrameViews]):
2263         Don't allow recursion here; assert on debug build, return nil on deployment. I
2264         couldn't get my machine into a state to repro this problem (and neither could the
2265         originator), but it's obvious from the stack crawl that this method was recursing
2266         when it shouldn't have.
2267
2268 2005-02-16  John Sullivan  <sullivan@apple.com>
2269
2270         Written by Darin, reviewed by me.
2271         
2272         - WebKit part of fix for <rdar://problem/4007384> 
2273         FILTER: Bookmark of RSS with Japanese search word & multiple RSS pages loses filter
2274
2275         * DOM.subproj/DOMPrivate.h:
2276         updated this file, which is a copy of the WebCore version
2277
2278 2005-02-16  Richard Williamson   <rjw@apple.com>
2279
2280         Fixed <rdar://problem/3966973> Tiger 8A357: Binary Compatiblity: frequent Webstractor.app crashes [WebImageData _nextFrame]
2281
2282         Webstractor.app was playing tricks to create thumbnails of
2283         pages.  This caused the 'focusView' to be incorrect during
2284         animated GIF frame rendering.
2285
2286         Reviewed by Chris.
2287
2288         * WebCoreSupport.subproj/WebImageRenderer.m:
2289         (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
2290
2291 2005-02-16  Vicki Murley  <vicki@apple.com>
2292
2293         Reviewed by me, code change by Darin.
2294
2295         - fixed the build on Panther
2296
2297         * WebView.subproj/WebFormDataStream.m: (webSetHTTPBody):
2298         Added a Panther-specific code path that just loads all the data into one big
2299         NSData object. This means that bug 3686434 won't be fixed on SUPanWheat; we'll
2300         still load the file into memory before sending it to the server on Panther.
2301
2302 2005-02-15  Richard Williamson   <rjw@apple.com>
2303
2304         Fixed <rdar://problem/3998368> Tiger8A376: WebTextRenderer assertion failure in Safari while browsing news.bbc.co.uk
2305
2306         Removed use of FATAL_ALWAYS from getUncachedWidth().  It's unclear
2307         why we would trigger the FATAL_ALWAYS.  In the past we've seen
2308         the message triggered because of corrupt fonts.  Anyway, in this
2309         particular case, we will now return 0 for the character width,
2310         rather than exiting.
2311
2312         Reviewed by David Harrison.
2313
2314         * WebCoreSupport.subproj/WebTextRenderer.m:
2315         (getUncachedWidth):
2316
2317 2005-02-15  Richard Williamson   <rjw@apple.com>
2318
2319         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
2320
2321         Lie about Osaka-Mono.  Treat it as fixed pitch, even though,
2322         strictly speaking it isn't.  (Similar to what we do with
2323         Courier New.)
2324
2325         Reviewed by David Harrison.
2326
2327         * WebCoreSupport.subproj/WebTextRenderer.m:
2328         (-[WebTextRenderer _computeWidthForSpace]):
2329         * WebCoreSupport.subproj/WebTextRendererFactory.h:
2330         * WebCoreSupport.subproj/WebTextRendererFactory.m:
2331         (-[NSFont _web_isFakeFixedPitch]):
2332         (-[WebTextRendererFactory isFontFixedPitch:]):
2333         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
2334
2335 2005-02-14  Darin Adler  <darin@apple.com>
2336
2337         Reviewed by John.
2338
2339         - fixed <rdar://problem/3686434> Safari uses too much RAM on file upload, leading to malloc errors and crashes (HP printers)
2340
2341         * WebView.subproj/WebFormDataStream.h: Added webSetHTTPBody, which creates and connects an appropriate
2342         stream to an NSMutableURLRequest.
2343         * WebView.subproj/WebFormDataStream.m: Added implementation here.
2344
2345         * WebCoreSupport.subproj/WebBridge.m:
2346         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
2347         Use webSetHTTPBody.
2348         * WebCoreSupport.subproj/WebSubresourceClient.m:
2349         (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]):
2350         Use webSetHTTPBody.
2351         * WebView.subproj/WebFrame.m:
2352         (-[WebFrame _loadItem:withLoadType:]): Use webSetHTTPBody.
2353         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
2354
2355         * English.lproj/StringsNotToBeLocalized.txt: Updated for this change and other recent changes.
2356
2357 2005-02-11  Richard Williamson   <rjw@apple.com>
2358
2359         Fixed <rdar://problem/4002505> 8A378: Endlessly animating gif's on http://www.entropy.ch
2360         
2361         If animated images had no loop count property we were incorrectly
2362         looping forver.  Note, that in the course of fixing this bug
2363         I found that ImageIO is incorrectly NOT reporting the loop count
2364         for a whole class of animated GIFs.
2365
2366         Reviewed by Ken Kocienda.
2367
2368         * WebCoreSupport.subproj/WebImageData.m:
2369         (-[WebImageData _repetitionCount]):
2370
2371 === Safari-186 ===
2372
2373 2005-02-11  Vicki Murley  <vicki@apple.com>
2374
2375         Reviewed by Darin.
2376
2377         - fix deployment build on Panther
2378  
2379         * WebView.subproj/WebHTMLView.m:
2380         (-[WebHTMLView changeBaseWritingDirection:]): ifdef out NSWritingDirectionNatural
2381         (-[WebHTMLView toggleBaseWritingDirection:]): fix a spacing issue
2382
2383 2005-02-10  David Harrison  <harrison@apple.com>
2384
2385         Reviewed by Richard.
2386
2387         <rdar://problem/3991652> REGRESSION (Mail): Deleting entire line in reply deletes extra blank line and moves insertion point
2388         
2389         * WebView.subproj/WebHTMLView.m:
2390         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:]):
2391         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
2392         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
2393         (-[WebHTMLView selectToMark:]):
2394         (-[WebHTMLView swapWithMark:]):
2395         (-[WebHTMLView transpose:]):
2396         (-[WebHTMLView _selectMarkedText]):
2397         (-[WebHTMLView _selectRangeInMarkedText:]):
2398         Adopt new default affinity of NSSelectionAffinityDownstream as of <rdar://problem/3937447>.
2399         
2400 2005-02-10  Darin Adler  <darin@apple.com>
2401
2402         Reviewed by Harrison.
2403
2404         - fixed <rdar://problem/4002084> Setting ResourceLoadDelegate to nil can cause a crash
2405
2406         * WebView.subproj/WebView.m: (-[WebView _cacheResourceLoadDelegateImplementations]):
2407         Set booleans to either YES or NO, rather than setting them only in the YES case.
2408
2409 2005-02-10  Darin Adler  <darin@apple.com>
2410
2411         Reviewed by Harrison.
2412
2413         - fixed <rdar://problem/3991225> Format->Style->Underline menu item does not get checked when selected text is underlined
2414
2415         * WebView.subproj/WebHTMLView.m:
2416         (-[WebHTMLView validateUserInterfaceItem:]): Added tons of additional cases in here for all the
2417         "action" style methods in this class that don't always want to be valid. For the ones where state
2418         makes sense, added the state-checking code too for the menu item case.
2419         (-[WebHTMLView ignoreSpelling:]): Removed unnecessary "editable text only" check since this command
2420         would work fine on a non-editable selection.
2421         (-[WebHTMLView swapWithMark:]): Ditto.
2422         (-[WebHTMLView changeBaseWritingDirection:]): Added. Like toggle, but based on the sender's tag.
2423
2424 2005-02-08  Darin Adler  <darin@apple.com>
2425
2426         "Reviewed" by Richard (he told me the file was obsolete).
2427
2428         - got rid of an obsolete file
2429
2430         * Plugins.subproj/npsap.h: Removed.
2431         * copy-webcore-files-to-webkit: Removed npsap.h.
2432
2433 2005-02-09  Richard Williamson   <rjw@apple.com>
2434
2435         Fixed <rdar://problem/4000073> non-screen font error on www.worldofwarcraft.com
2436
2437         Reviewed by John Sullivan.
2438
2439         * WebCoreSupport.subproj/WebTextRenderer.m:
2440         (-[WebTextRenderer _smallCapsFont]):
2441
2442 === Safari-185 ===
2443
2444 2005-02-07  Chris Blumenberg  <cblu@apple.com>
2445
2446         Fixed: <rdar://problem/3993354> Safari claims to put RTFD on the pasteboard, but doesn't, in some cases
2447
2448         Reviewed by john.
2449
2450         * WebView.subproj/WebHTMLView.m:
2451         (-[WebHTMLView _stripAttachmentCharactersFromAttributedString:]): moved
2452         (-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]): take cachedAttributedString parameter in case the attributed string was gotten already
2453         (-[WebHTMLView _writeSelectionToPasteboard:]): omit RTFD from the types list when there are no attachments
2454
2455 2005-02-07  David Harrison  <harrison@apple.com>
2456
2457         Reviewed by Ken.
2458
2459         <rdar://problem/3990693> REGRESSION (8A373): ctrl-k now deletes just one character instead of line
2460         
2461         * WebView.subproj/WebHTMLView.m:
2462         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
2463         Set the selection so that deleteKeyPressedWithSmartDelete knows what to delete.
2464
2465 2005-02-06  Darin Adler  <darin@apple.com>
2466
2467         Reviewed by Maciej.
2468
2469         - fixed <rdar://problem/3963166> PDFView SPI print method is being deprecated, moving to PDFDocument; please update WebKit
2470
2471         * WebView.subproj/WebPDFView.m: (-[WebPDFView printOperationWithPrintInfo:]): Target the document instead of the view.
2472
2473         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes and also moved one translation to be a file-specific
2474         item rather than a file-independent one.
2475
2476 2005-02-05  Chris Blumenberg  <cblu@apple.com>
2477
2478         Fixed: <rdar://problem/3991974> REGRESSION: www.jabra.com world location screen does not work
2479
2480         Reviewed by hyatt.
2481
2482         * WebCoreSupport.subproj/WebBridge.m:
2483         (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): use the baseURL from the bridge rather than from the response
2484
2485 2005-02-04  Chris Blumenberg  <cblu@apple.com>
2486
2487         Fixed: <rdar://problem/3802781> rtf->html pasteboard conversion using xhtml
2488
2489         Reviewed by kocienda.
2490
2491         * WebView.subproj/WebHTMLView.m:
2492         (+[WebHTMLView _excludedElementsForAttributedStringConversion]): new
2493         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): call _excludedElementsForAttributedStringConversion
2494
2495 2005-02-04  Chris Blumenberg  <cblu@apple.com>
2496
2497         Fixed: <rdar://problem/3832973> copy text from PowerPoint, paste into Blot (or presumably Mail) and get a single missing image icon
2498
2499         Reviewed by john.
2500
2501         * WebView.subproj/WebHTMLView.m:
2502         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): prefer RTF and RTFD over images just as NSTextView does
2503
2504 2005-02-03  Chris Blumenberg  <cblu@apple.com>
2505
2506         Fixed: <rdar://problem/3555137> REGRESSION (125-173): Flash animation can erase parts of chrome (bookmarks bar & tab bar)
2507
2508         convertRect:toView: returns incorrect results inside of viewWillMoveToWindow: with a nil window. Workaround this by catching this case.
2509
2510         Reviewed by darin.
2511
2512         * Plugins.subproj/WebBaseNetscapePluginView.m:
2513         (-[WebBaseNetscapePluginView superviewsHaveSuperviews]): new
2514         (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]): clip out the plug-in view when superviewsHaveSuperviews returns NO
2515
2516 2005-02-03  Chris Blumenberg  <cblu@apple.com>
2517
2518         Fixed: <rdar://problem/3893513> Sun iPlanet app: when saving to a file it brings up a window with the thing to be saved instead
2519
2520         Reviewed by adele.
2521
2522         * WebView.subproj/WebTextView.m:
2523         (+[WebTextView unsupportedTextMIMETypes]): added "text/ldif" to the list of MIME types that our text view doesn't handle
2524
2525 === Safari-183 ===
2526
2527 2005-02-03  Chris Blumenberg  <cblu@apple.com>
2528
2529         * English.lproj/StringsNotToBeLocalized.txt: updated
2530
2531 2005-02-03  Chris Blumenberg  <cblu@apple.com>
2532
2533         Fixed: <rdar://problem/3989611> Evite style "add vCalendar to calendar" do not work
2534
2535         Reviewed by adele.
2536
2537         * WebView.subproj/WebTextView.m:
2538         (+[WebTextView unsupportedTextMIMETypes]): added "text/x-vcalendar" to the list of MIME types our text view doesn't handle
2539
2540 2005-02-03  Vicki Murley  <vicki@apple.com>
2541
2542         Reviewed by Darin.
2543
2544         - fix deployment build breakage on Panther
2545  
2546         * WebView.subproj/WebHTMLView.m:
2547         (-[WebHTMLView toggleBaseWritingDirection:]):
2548
2549 2005-02-02  John Sullivan  <sullivan@apple.com>
2550
2551         Reviewed by Chris.
2552         
2553         - WebKit part of fix for <rdar://problem/3980651> REGRESSION (125-180): Huge number of pages printed from certain page, 
2554         iFrame involved
2555         
2556         This also fixes the problems with printing from GMail, yay!
2557
2558         * WebView.subproj/WebHTMLView.m:
2559         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
2560         Don't adjust margins for header/footer here, because this is called for each subframe.
2561         (-[WebHTMLView knowsPageRange:]):
2562         Do adjust margins for header/footer here (analogous to WebTextView and WebImageView).
2563         Also, round the page height to an integer here (noticed in passing).
2564
2565 2005-02-02  Chris Blumenberg  <cblu@apple.com>
2566
2567         Fixed: <rdar://problem/3986546> Cut, delete, and paste menu items are active when a image is opened in window
2568
2569         Reviewed by john.
2570
2571         * WebView.subproj/WebView.m:
2572         (-[WebView _responderValidateUserInterfaceItem:]): new, has the responder validate the item 
2573         (-[WebView validateUserInterfaceItem:]): call VALIDATE for each repsonder selector using FOR_EACH_RESPONDER_SELECTOR macro
2574         (-[WebView _performResponderOperation:with:]): call factored out method _responderForResponderOperations
2575         (-[WebView _responderForResponderOperations]): new, code from _performResponderOperation:with:
2576
2577 2005-02-02  Chris Blumenberg  <cblu@apple.com>
2578
2579         Fixed: <rdar://problem/3983628> control-click on WebView is not selecting the word under the cursor (Mail, non-editable WebView)
2580
2581         Reviewed by rjw.
2582
2583         * WebCoreSupport.subproj/WebBridge.m:
2584         (-[WebBridge selectWordBeforeMenuEvent]): new
2585         * WebView.subproj/WebView.m:
2586         (-[WebView _selectWordBeforeMenuEvent]): new SPI
2587         (-[WebView _setSelectWordBeforeMenuEvent:]): new SPI
2588         * WebView.subproj/WebViewInternal.h:
2589         * WebView.subproj/WebViewPrivate.h:
2590
2591 2005-02-02  Chris Blumenberg  <cblu@apple.com>
2592
2593         Fixed: <rdar://problem/3986013> Assertion failure going back after page load error (no apparent problem in nondebug build)
2594
2595         Reviewed by rjw.
2596
2597         * WebView.subproj/WebDataSource.m:
2598         (-[WebDataSource _setPrimaryLoadComplete:]): don't set the data source data when the main client is nil
2599
2600 2005-02-02  Ken Kocienda  <kocienda@apple.com>
2601
2602         Reviewed by Darin
2603
2604         Fix for this bug:
2605         
2606         <rdar://problem/3823109> WebKit should support -toggleBaseWritingDirection: (bidi editing support)
2607
2608         * WebView.subproj/WebHTMLView.m:
2609         (-[WebHTMLView _applyParagraphStyleToSelection:withUndoAction:]): New function that calls through to
2610         new feature that allows callers to force all properties in a style to be applied as block styles.
2611         (-[WebHTMLView _alignSelectionUsingCSSValue:withUndoAction:]): Removed FIXME comment for something that has been fixed.
2612         (-[WebHTMLView toggleBaseWritingDirection:]): Implemented.
2613
2614 2005-02-01  Richard Williamson   <rjw@apple.com>
2615
2616         Fixed <rdar://problem/3977727> WebKit should use new SPI to support faster GIF rendering
2617
2618         Note:  This REQUIRES build >= 3A362 when building on Tiger.
2619
2620         Reviewed by John.
2621
2622         * WebCoreSupport.subproj/WebImageData.m:
2623         (-[WebImageData _imageSourceOptions]):
2624
2625 === Safari-182 ===
2626
2627 2005-02-01  Richard Williamson   <rjw@apple.com>
2628
2629         Added new SPI for <rdar://problem/3967063> need spi on WebView to turn of lcd text for Dashboard
2630
2631         Reviewed by Chris.
2632
2633         * WebCoreSupport.subproj/WebTextRenderer.m:
2634         (_drawGlyphs):
2635         * WebView.subproj/WebView.m:
2636         (-[WebView drawRect:]):
2637         (-[WebView _dashboardBehavior:]):
2638         (+[WebView _setShouldUseFontSmoothing:]):
2639         (+[WebView _shouldUseFontSmoothing]):
2640         * WebView.subproj/WebViewInternal.h:
2641         * WebView.subproj/WebViewPrivate.h:
2642
2643 2005-01-31  Chris Blumenberg  <cblu@apple.com>
2644
2645         Fixed: <rdar://problem/3949806> REGRESSION: Source window fails to refresh correctly on reload
2646
2647         The data method was being called on WebDataSource before the data was set. This fix makes WebDataSource set the data before releasing the main client instead of waiting for the main client to set it when it is dealloced.
2648
2649         Reviewed by darin.
2650
2651         * WebView.subproj/WebDataSource.m:
2652         (-[WebDataSource _setData:]): moved within file
2653         (-[WebDataSource _setPrimaryLoadComplete:]): call _setData: with the data from the main client before letting go of the main client
2654         * WebView.subproj/WebDataSourcePrivate.h:
2655         * WebView.subproj/WebMainResourceClient.m:
2656         (-[WebMainResourceClient releaseResources]): removed call to _setData: since the data source may need the data before releaseResources is called
2657
2658 2005-01-31  Chris Blumenberg  <cblu@apple.com>
2659
2660         Fixed: <rdar://problem/3946285> Seed: Safari crashed by selecting all at internet-moebel.com
2661
2662         Reviewed by john.
2663
2664         * WebView.subproj/WebHTMLView.m:
2665         (-[WebHTMLView _hitViewForEvent:]): new, factored hit test hack to this method
2666         (-[WebHTMLView _updateMouseoverWithEvent:): call _hitViewForEvent:
2667         (-[WebHTMLView acceptsFirstMouse:]): call _setMouseDownEvent: and _isSelectionEvent: on the hit HTMLView or else when it's asked to drag it will assert
2668         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
2669
2670 2005-01-31  David Harrison  <harrison@apple.com>
2671
2672         Reviewed by Darin.
2673
2674         <rdar://problem/3961239> AX Setting AXFocused on AXScrollArea of AXWebArea will cause keyboard selection change
2675
2676         * WebView.subproj/WebHTMLView.m:
2677         (-[WebHTMLView maintainsInactiveSelection]):
2678         Keep the selection when the new first respomder is our own scrollview, in both editable and non-editaqble content.
2679
2680 2005-01-31  Jens Alfke  <jens@apple.com>
2681
2682         Reviewed by John.
2683
2684         - Fixed <rdar://problem/3903199> REGRESSION: Large background patterns slide around while loading
2685
2686         * WebCoreSupport.subproj/WebImageData.m:
2687         (drawPattern):
2688         (-[WebImageData tileInRect:fromPoint:context:]):
2689
2690 2005-01-30  Darin Adler  <darin@apple.com>
2691
2692         Reviewed by John.
2693
2694         - fixed <rdar://problem/3965265> Safari displays HTML as source when default encoding is Hebrew (due to direction overrides added by encoding converter)
2695
2696         * WebView.subproj/WebPreferencesPrivate.h: Added _systemCFStringEncoding, and changed
2697         _setInitialDefaultTextEncodingToSystemEncoding to be a class method.
2698         * WebView.subproj/WebPreferences.m:
2699         (+[WebPreferences _systemCFStringEncoding]): Added. New SPI to be used by Safari. Broken out of
2700         _setInitialDefaultTextEncodingToSystemEncoding, but also added cases for MacArabic and MacHebrew.
2701         (+[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]): Refactor to use _systemCFStringEncoding.
2702
2703 2005-01-28  Jens Alfke  <jens@apple.com>
2704
2705         Reviewed by Richard.
2706
2707         <rdar://problem/3727680> printing some page with WebKit generates a PDF with a 1x1 image with soft mask (causes Acrobat to hang during print spooling)
2708
2709         Detect 1x1 images, extract and cache color of single pixel, reduce draw and tile operations to a color fill (or to a no-op if the pixel is clear.)
2710
2711         * WebCoreSupport.subproj/WebImageData.h:
2712         * WebCoreSupport.subproj/WebImageData.m:
2713         (-[WebImageData _invalidateImages]):
2714         (-[WebImageData _checkSolidColor:]):
2715         (-[WebImageData _cacheImages:allImages:]):
2716         (-[WebImageData _fillSolidColorInRect:compositeOperation:context:]):
2717         (-[WebImageData tileInRect:fromPoint:context:]):
2718
2719 2005-01-28  David Harrison  <harrison@apple.com>
2720
2721         Reviewed by Darin.
2722
2723         <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
2724
2725         Use AppKit SPI _accessibilityParentForSubview to return KWQAccObject parent of AppKit AX object.
2726         
2727         * WebView.subproj/WebHTMLView.m:
2728         (-[WebHTMLView _accessibilityParentForSubview:]):
2729         New.
2730
2731 2005-01-28  Chris Blumenberg  <cblu@apple.com>
2732
2733         WebKit side of: <rdar://problem/3951283> can view pages from the back/forward cache that should be disallowed by Parental Controls
2734
2735         Reviewed by john.
2736
2737         * WebView.subproj/WebDefaultPolicyDelegate.m:
2738         (-[WebDefaultPolicyDelegate webView:shouldGoToHistoryItem:]): new private delegate method
2739         * WebView.subproj/WebFrame.m:
2740         (-[WebFrame _goToItem:withLoadType:]): call new delegate method
2741         * WebView.subproj/WebPolicyDelegatePrivate.h:
2742
2743 2005-01-26  Maciej Stachowiak  <mjs@apple.com>
2744
2745         Reviewed by Darin, Hyatt and Ken.
2746
2747         <rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration
2748
2749         * WebView.subproj/WebHTMLView.m:
2750         (-[WebHTMLView _styleFromFontAttributes:]): Use new -khtml-text-decorations-in-effect
2751         property
2752         (-[WebHTMLView _styleForAttributeChange:]): likewise
2753         (-[WebHTMLView underline:]): likewise
2754
2755 2005-01-27  Ken Kocienda  <kocienda@apple.com>
2756
2757         Reviewed by Maciej
2758
2759         * WebView.subproj/WebHTMLView.m:
2760         (-[WebHTMLView _handleKillRing:prepend:]): New helper function. Code factored out from 
2761          _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:.
2762         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:]): No longer takes 
2763         unused preflight argument. Now takes new isTypingAction argument. Uses isTypingAction to
2764         determine which flavor of delete command to call.
2765         (-[WebHTMLView _deleteSelection]): No longer passes unused preflight argument. Now passes new isTypingAction argument.
2766         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Rearranged code to call
2767         correct flavor of delete command, based on whether typing should be preserved. Some other cleanups.
2768         (-[WebHTMLView deleteForward:]): Add _isEditable check.
2769         (-[WebHTMLView deleteBackward:]): Now calls _deleteWithDirection instead of having unique behavior different 
2770         from forward delete.
2771         (-[WebHTMLView deleteWordForward:]): Add new isTypingAction flag to _deleteWithDirection call.
2772         (-[WebHTMLView deleteWordBackward:]): Ditto.
2773         (-[WebHTMLView deleteToBeginningOfLine:]): Ditto.
2774         (-[WebHTMLView deleteToEndOfLine:]): Ditto.
2775         (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto.
2776         (-[WebHTMLView deleteToEndOfParagraph:]): Ditto.
2777         (-[WebHTMLView deleteToMark:]): Ditto.
2778
2779 === Safari-181 ===
2780
2781 2005-01-27  Chris Blumenberg  <cblu@apple.com>
2782
2783         Fixed: <rdar://problem/3973272> REGRESSION: Safari uses QT plugin to display PNG images
2784
2785         Reviewed by john.
2786
2787         * Plugins.subproj/WebBasePluginPackage.m: use renamed QT bundle ID
2788
2789 2005-01-26  Darin Adler  <darin@apple.com>
2790
2791         Reviewed by John.
2792
2793         - fixed <rdar://problem/3829517> WebView still draws white when setDrawsBackground set to NO and no content loaded yet
2794
2795         * WebView.subproj/WebFrameView.m: (-[WebFrameView drawRect:]): Check drawsBackground, and don't
2796         draw the white "no document" background if it's NO. This fixes things for frames with no document.
2797         * WebView.subproj/WebImageView.m: (-[WebImageView drawRect:]): Same as above. This fixes things
2798         for frames with just an image.
2799         * WebView.subproj/WebFrame.m: (-[WebFrame _updateDrawsBackground]): Call setDrawsBackground: on the
2800         document view if it implements it. This fixes things for frames with plain text.
2801
2802 2005-01-25  John Sullivan  <sullivan@apple.com>
2803
2804         Reviewed by Chris.
2805         
2806         - WebKit part of fix for: <rdar://problem/3970670> Text context menu 
2807           in WebKit needs "Look Up in Dictionary" item
2808
2809         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2810         (localizedMenuTitleFromAppKit):
2811         return English string in the case where AppKit bundle is found but doesn't
2812         contain the expected string. This case will be hit by people testing with
2813         an older AppKit.
2814         (-[WebDefaultUIDelegate menuItemWithTag:]):
2815         create Look Up in Dictionary item
2816         (-[WebDefaultUIDelegate contextMenuItemsForElement:]):
2817         add Look Up in Dictionary item and separator
2818         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]):
2819         ditto
2820
2821         * WebView.subproj/WebHTMLView.m:
2822         (-[WebHTMLView _lookUpInDictionaryFromMenu:]):
2823         new method, handles bringing up the Dictionary window. Includes FIXMEs
2824         for a couple of the known loose ends.
2825         (-[WebHTMLView validateUserInterfaceItem:]):
2826         handle Look Up in Dictionary item like the other new items
2827         
2828         * WebView.subproj/WebUIDelegatePrivate.h:
2829         added SPI constant for Look Up in Dictionary menu item
2830
2831 2005-01-24  Maciej Stachowiak  <mjs@apple.com>
2832
2833         Fixed Panther build (missing ifdef)
2834
2835         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2836
2837 2005-01-24  John Sullivan  <sullivan@apple.com>
2838
2839         Reviewed by Darin.
2840         
2841         - WebKit part of fix for <rdar://problem/3960231> Text context menu in WebKit needs Spotlight and Google items
2842         
2843         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2844         (localizedMenuTitleFromAppKit):
2845         new function, gets localized string from AppKit so we can avoid adding localized
2846         strings to WebKit at this late date in Tiger. Returns the non-localized English
2847         string if we can't find the localized string in AppKit.
2848         (-[WebDefaultUIDelegate menuItemWithTag:]):
2849         handle the two new menu items by tag name
2850         (-[WebDefaultUIDelegate contextMenuItemsForElement:]):
2851         add menu items for Search in Google and Search in Spotlight to selected-text menu item
2852         for the noneditable case
2853         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]):
2854         add menu items for Search in Google and Search in Spotlight to selected-text menu item
2855         for the editable case
2856
2857         * WebView.subproj/WebHTMLView.m:
2858         (-[WebHTMLView _searchWithGoogleFromMenu:]):
2859         implement this menu item action method, using same method name and implementation as NSTextView
2860         (-[WebHTMLView _searchWithSpotlightFromMenu:]):
2861         implement this menu item action method, using same basic implementation as NSTextView
2862         (-[WebHTMLView validateUserInterfaceItem:]):
2863         validate new menu items
2864         
2865         * WebView.subproj/WebUIDelegatePrivate.h:
2866         define new tags for new menu items
2867
2868         * English.lproj/StringsNotToBeLocalized.txt:
2869         updated for these changes
2870
2871 2005-01-24  Darin Adler  <darin@apple.com>
2872
2873         * WebView.subproj/WebDataSource.m: (+[WebDataSource _repTypesAllowImageTypeOmission:]):
2874         Do the same check as for view types, so the representation types are consistent.
2875
2876 2005-01-24  Darin Adler  <darin@apple.com>
2877
2878         Reviewed by John.
2879
2880         - fixed <rdar://problem/3791158> REGRESSION (Mail): copyFont: and pasteFont: copy and paste only the NSFont, not other attributes
2881
2882         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _styleFromFontAttributes:]): Added the last
2883         few loose ends here: strikethrough and underline.
2884
2885         - fixed <rdar://problem/3967393> add a user default that lets you turn off WebKit PDF support
2886
2887         * WebView.subproj/WebFrameView.m: (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
2888         Leave the PDF-handling classes out of the dictionary if the secret default is set.
2889
2890         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
2891
2892 2005-01-20  Darin Adler  <darin@apple.com>
2893
2894         Reviewed by Kristin Forster.
2895
2896         - fixed <rdar://problem/3964972> update _initWithCGSEvent:eventRef: call in mouse moved workaround (breaks cursors in Carbon WebKit applications)
2897
2898         * Carbon.subproj/HIWebView.m: (MouseMoved): Instead of munging the event record's window number directly
2899         before calling _initWithCGSEvent, on Tiger we call _eventRelativeToWindow on the event after creating it.
2900         Also added a check so that with Macromedia Contribute's workaround in place we don't do anything at all
2901         to the event. Tested with both Contribute and CarbonWeb.
2902
2903         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
2904
2905 2005-01-20  Richard Williamson   <rjw@apple.com>
2906
2907         Fixed <rdar://problem/3815672> REGRESSION (Mail): Japanese text cannot be made bold
2908
2909         The AppKit's font substitution API doesn't match font traits! 
2910         It only find fonts that contain the appropriate glyphs.  This
2911         patch attempts to find the best variation within a family.
2912
2913         Reviewed by Maciej.
2914
2915         * WebCoreSupport.subproj/WebTextRenderer.m:
2916         (-[WebTextRenderer _substituteFontForString:families:]):
2917
2918 === Safari-180 ===
2919
2920 2005-01-20  Ken Kocienda  <kocienda@apple.com>
2921
2922         Reviewed by John
2923
2924         Fix for this bug:
2925         
2926         <rdar://problem/3786659> REGRESSION (Mail): editable WebViews don't work with "size up" and "size down" NSFontManager changes
2927
2928         * WebView.subproj/WebHTMLView.m:
2929         (-[WebHTMLView _addToStyle:fontA:fontB:]): This is the WebKit side of the fix. Replaced unimplemented code blocks
2930         with FIXME's in them for make bigger and make smaller with real working code.
2931
2932 2005-01-19  David Hyatt  <hyatt@apple.com>
2933
2934         Fix for 3513067, spaces being lost when RTL text is rendered.  Make sure not to allow hangers or spaces
2935         in the margin.
2936         
2937         Reviewed by john
2938         
2939         * WebCoreSupport.subproj/WebTextRenderer.m:
2940         (-[WebTextRenderer _createATSUTextLayoutForRun:style:]):
2941
2942 2005-01-19  Darin Adler <darin@apple.com>
2943
2944         Reviewed by vicki
2945
2946         - fixed <rdar://problem/3962559> stopAnimationsInView leaks after cvs-base
2947  
2948         * WebCoreSupport.subproj/WebImageData.m: (+[WebImageData stopAnimationsInView:]): add a release
2949
2950 2005-01-19  Chris Blumenberg  <cblu@apple.com>
2951
2952         Fixed: <rdar://problem/3961809> plug-in code attempts to load empty URL
2953
2954         Reviewed by john.
2955
2956         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
2957         (-[WebNetscapePluginEmbeddedView didStart]): don't start load if URL is empty
2958
2959 2005-01-17  Darin Adler  <darin@apple.com>
2960
2961         * DOM.subproj/DOMPrivate.h: Check in generated file.
2962
2963 2005-01-17  Darin Adler  <darin@apple.com>
2964
2965         Reviewed by John and Richard.
2966
2967         - fixed <rdar://problem/3907453> printing a multi-page PDF document from Safari doesn't produce correct output
2968
2969         * WebView.subproj/WebFrameViewPrivate.h: Added.
2970         * WebView.subproj/WebFrameView.m:
2971         (-[WebFrameView canPrintHeadersAndFooters]): Added. Returnes NO for documents that can't print headers or footers,
2972         and delegates to the document view to answer the question. Defaults to NO, since only a view that actively does
2973         the work is compatible with our header and footer code.
2974         (-[WebFrameView printOperationWithPrintInfo:]): Added. Returns an NSPrintOperation set up for printing. The reason
2975         we return this rather than an NSView is that in the PDFView case, the print info is changed around before creating
2976         the NSPrintOperation, and also the PDFKit SPI works this way.
2977
2978         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView canPrintHeadersAndFooters]): Added. Returns YES.
2979         * WebView.subproj/WebImageView.m: (-[WebImageView canPrintHeadersAndFooters]): Ditto.
2980         * WebView.subproj/WebTextView.m: (-[WebTextView canPrintHeadersAndFooters]): Ditto.
2981
2982         * WebView.subproj/WebPDFView.m:
2983         (-[WebPDFView canPrintHeadersAndFooters]): Added. Returns NO.
2984         (-[WebPDFView printOperationWithPrintInfo:]): Added. Calls getPrintOperationForPrintInfo: autoRotate:YES on the PDFView.
2985
2986         * WebKit.pbproj/project.pbxproj: Added WebFrameViewPrivate.h as a new private header.
2987
2988 2005-01-13  Chris Blumenberg  <cblu@apple.com>
2989
2990         Fixed: <rdar://problem/3932107> Safari does not load QT Cocoa plug-in if the WebPluginMIMETypes key is not in the info.plist
2991
2992         Fixing this bug required that we allow WebKit plug-ins (as well as Netscape plug-ins) support BP_CreatePluginMIMETypesPreferences
2993         which allows plug-ins create an auxiliary MIME types file.
2994
2995         Reviewed by adele.
2996
2997         * Plugins.subproj/WebBasePluginPackage.h:
2998         * Plugins.subproj/WebBasePluginPackage.m:
2999         (+[WebBasePluginPackage preferredLocalizationName]): moved from WebNetscapePluginPackage
3000         (-[WebBasePluginPackage pListForPath:createFile:]): ditto
3001         (-[WebBasePluginPackage getPluginInfoFromPLists]): ditto
3002         (-[WebBasePluginPackage isLoaded]): return isLoaded ivar
3003         (-[WebBasePluginPackage load]): if loaded, get BP_CreatePluginMIMETypesPreferences symbol
3004         * Plugins.subproj/WebNetscapePluginPackage.h:
3005         * Plugins.subproj/WebNetscapePluginPackage.m:
3006         (-[WebNetscapePluginPackage load]): call super when done so BP_CreatePluginMIMETypesPreferences can be initialized
3007         * Plugins.subproj/WebPluginPackage.m:
3008         (-[WebPluginPackage initWithPath:]): call getPluginInfoFromPLists
3009         (-[WebPluginPackage load]): call super when done so BP_CreatePluginMIMETypesPreferences can be initialized
3010
3011 2005-01-13  Richard Williamson   <rjw@apple.com>
3012
3013         Fixed <rdar://problem/3952809> WebJavaPlugIn.h comments need method name corrected (webPlugInCallJava)
3014
3015         Reviewed by Maciej.
3016
3017         * Plugins.subproj/WebJavaPlugIn.h:
3018
3019 === Safari-179 ===
3020
3021 2005-01-13  Vicki Murley <vicki@apple.com>
3022
3023         Reviewed by Adele.
3024
3025         - fix <rdar://problem/3946836> Safari about box lists 2004 instead of 2005
3026
3027         * WebKit.pbproj/project.pbxproj: bump "2004" to "2005"
3028
3029 2005-01-13  Richard Williamson   <rjw@apple.com>
3030
3031         Fixed <rdar://problem/3951911> REGRESSION: Animated GIF images with loop counts no longer update
3032
3033         Draw last image after animation loop terminates.  (We
3034         were drawing the image at index+1, which doesn't exist!)
3035
3036         Reviewed by Darin.
3037
3038         * WebCoreSupport.subproj/WebImageData.m:
3039         (-[WebImageData _nextFrame:]):
3040
3041 2005-01-13  Richard Williamson   <rjw@apple.com>
3042
3043         Fixed <rdar://problem/3952084> REGRESSION: Links at projectseven.com now draw and update incorrectly during hover
3044
3045         Turn off use of new CGContextStrokeLineSegments API.  We should
3046         turn back on when 3952944 is fixed.
3047
3048         Reviewed by Darin.
3049
3050         * WebCoreSupport.subproj/WebTextRenderer.m:
3051         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
3052
3053 2005-01-13  Chris Blumenberg  <cblu@apple.com>
3054
3055         Fixed: <rdar://problem/3937663> repro assertion failure and crash dragging image that has PDF source
3056
3057         Reviewed by adele.
3058
3059         * Misc.subproj/WebNSViewExtras.m:
3060         (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]): if [WebImageRenderer image] returns nil, fallback to code that uses a file icon as the drag image
3061         * WebCoreSupport.subproj/WebImageRendererFactory.m:
3062         (-[WebImageRendererFactory supportedMIMETypes]): removed code that omits PDF and PostScript from the list since this omission is only needed in WebImageView
3063         * WebView.subproj/WebImageView.m:
3064         (+[WebImageView supportedImageMIMETypes]): added code that omits PDF and PostScript since we don't want WebImageView to render these types
3065
3066 2005-01-10  Maciej Stachowiak  <mjs@apple.com>
3067
3068         Reviewed by Darin.
3069
3070         <rdar://problem/3758033> REGRESSION (Mail): Support attributes in marked text (International input)
3071         
3072         * WebCoreSupport.subproj/WebTextRenderer.m:
3073         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]): Changed to support
3074         underline thickness. Also added a bit of a hack here to move thickness 2 underlines down by
3075         .5 pixels, since the rendering engine can't give a fractional pixel offset.
3076         * WebView.subproj/WebHTMLView.m:
3077         (-[WebHTMLView validAttributesForMarkedText]): Support underline, underline color and marked
3078         clause attributes. Others that NSText supports are unimplemented for now.
3079         (-[WebHTMLView firstRectForCharacterRange:]): Remove needless logging.
3080         (-[WebHTMLView unmarkText]): Updated for new WebCore SPI.
3081         (-[WebHTMLView _extractAttributes:ranges:fromAttributedString:]): New method to pull the attributes
3082         and ranges out of an attributed string.
3083         (-[WebHTMLView setMarkedText:selectedRange:]): Extract attributes and pass to WebCore.
3084         (-[WebHTMLView insertText:]): Add comment noting that we don't really handle attributed strings
3085         here.
3086
3087 2005-01-12  Darin Adler  <darin@apple.com>
3088
3089         Reviewed by Ken.
3090
3091         - fixed <rdar://problem/3848257> WebView will draw more than AppKit asks it to, so views behind won't redraw enough (transparent WebView)
3092
3093         * WebView.subproj/WebHTMLView.m:
3094         (-[WebHTMLView _propagateDirtyRectsToOpaqueAncestors]): As recommended by Troy Stephens, do the
3095         layouts here in this call, since it's before propagating the dirty rects to our ancestors.
3096         This fixes the bug, but we only do it if the WebView is not opaque, because otherwise we can
3097         optimize by only doing layouts you really need, and doing them later on is safe because we
3098         know we don't need to draw any of the views behind us.
3099         (-[WebHTMLView _layoutIfNeeded]): Added. Factored out from the method below.
3100         (-[WebHTMLView _web_layoutIfNeededRecursive]): Added. Like the other "layout if needed" call,
3101         but unconditional.
3102         (-[WebHTMLView _web_layoutIfNeededRecursive:testDirtyRect:]): Factored out the guts into the
3103         _layoutIfNeeded method above. Otherwise unchanged.
3104         (-[NSView _web_layoutIfNeededRecursive]): Added.
3105
3106         * WebView.subproj/WebFrame.m: (-[WebFrame _updateDrawsBackground]): Call setDrawsBackground:NO
3107         on the scroll view when changing the frame to no longer be in "draws background" mode. This
3108         is needed because the frame manages the "draws background" mode of the scroll view. It won't
3109         have any effect if you call setDrawsBackground:NO before starting to use a WebView, but without
3110         it calling setDrawsBackground:NO later won't have an immediate effect (easily visible in Safari).
3111         This was hidden before because the HTML view was filling with transparent color, which blew away
3112         the fill that was done by NSScrollView.
3113
3114         - fixed <rdar://problem/3921129> reproducible crash at www.funnychristmas.com in CFSet manipulation in WebImageData
3115
3116         * WebCoreSupport.subproj/WebImageData.m:
3117         (-[WebImageData _imageSourceOptions]): Changed types so we don't need a cast.
3118         (+[WebImageData stopAnimationsInView:]): Instead of building a set of sets, by putting in the sets with addObject,
3119         build a single set using unionSet, and then iterate the objects instead of having to iterate the sets and then the
3120         objects in each set. The old code ended up sharing the sets with the live code, when the whole idea was to gather
3121         all the renderers because the process of stopping modifies the active sets.
3122
3123 2005-01-12  Richard Williamson   <rjw@apple.com>
3124
3125         Fixed <rdar://problem/3926825> Safari ignores GIF loop count
3126
3127         Get loop count from file properties, not image properties.
3128
3129         Reviewed by Ken Kocienda.
3130
3131         * WebCoreSupport.subproj/WebImageData.h:
3132         * WebCoreSupport.subproj/WebImageData.m:
3133         (-[WebImageData _commonTermination]):
3134         (-[WebImageData fileProperties]):
3135         (-[WebImageData _floatProperty:type:at:]):
3136         (-[WebImageData _floatFileProperty:type:]):
3137         (-[WebImageData _repetitionCount]):
3138
3139 2005-01-11  Chris Blumenberg  <cblu@apple.com>
3140
3141         Fixed: <rdar://problem/3934749> assertion failure in WebBaseNetscapePluginView loading movie
3142
3143         Reviewed by john.
3144
3145         * Plugins.subproj/WebBaseNetscapePluginView.m:
3146         (-[WebBaseNetscapePluginView start]): call canStart before asserting about the webView
3147
3148 2005-01-11  John Sullivan  <sullivan@apple.com>
3149
3150         Reviewed by Darin.
3151         
3152         - fixed <rdar://problem/3446838> REGRESSION (Mail): text decorations don't print 
3153         (e.g. <strike>, underline)
3154
3155         * WebCoreSupport.subproj/WebTextRenderer.m:
3156         (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
3157         This bottleneck routine for drawing a line was setting the linewidth to 0 when
3158         the graphics context was not drawing to the screen. Thus, no lines. Now links
3159         are underlined when printing from Safari (as well as Mail).
3160
3161 2005-01-11  Richard Williamson   <rjw@apple.com>
3162
3163         Fixed 3949145.  CG has a much faster API for drawing lines.
3164         Switched over to that new API (CGContextStrokeLineSegments).
3165
3166         Reviewed by John Sullivan.
3167
3168         * WebCoreSupport.subproj/WebTextRenderer.m:
3169         (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
3170
3171 2005-01-10  Chris Blumenberg  <cblu@apple.com>
3172
3173         Fixed: <rdar://problem/3948862> REGRESSION: missing images when RTFD is pasted into editable WebView
3174
3175         This problem occurred because we were creating image elements before creating corresponding image resources. The fix is to have AppKit call us back to create the resources before it creates the elements.
3176
3177         Reviewed by john.
3178
3179         * WebView.subproj/WebHTMLView.m:
3180         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): don't deal with subresources since that's now done by the following method
3181         (-[WebHTMLView resourceForData:preferredFilename:]): new handler method called by AppKit
3182
3183 === Safari-178 ===
3184
3185 2005-01-06  David Harrison  <harrison@apple.com>
3186
3187         Reviewed by Dave Hyatt
3188
3189         <rdar://problem/3588548> AX: tabbing does not work correctly with the screen reader and a focused link; need AXFocusedUIElement to work.
3190
3191         * WebView.subproj/WebHTMLView.m:
3192         (-[WebHTMLView accessibilityFocusedUIElement]):
3193         Implement this so that AppKit can use it from NSAccessibilityHandleFocusChanged.
3194
3195 2005-01-05  Chris Blumenberg  <cblu@apple.com>
3196
3197         Fixed: <rdar://problem/3936865> REGRESSION: canvas.drawImage no longer scales properly
3198
3199         Reviewed by john.
3200
3201         * WebCoreSupport.subproj/WebImageData.m: use the height of the inRect instead of the fromRect when setting the origin of the context
3202
3203 2005-01-04  Chris Blumenberg  <cblu@apple.com>
3204
3205         Fixed: <rdar://problem/3928329> WebKit should pass nil for "language" to checkSpellingOfString:
3206
3207         Reviewed by kocienda.
3208
3209         * WebView.subproj/WebHTMLView.m:
3210         (-[WebHTMLView _isSelectionMisspelled]): pass nil not @"" for language
3211
3212 2004-12-21  Maciej Stachowiak  <mjs@apple.com>
3213
3214         Reviewed by Darin.
3215
3216         <rdar://problem/3888931> frame naming allows malicious site to bring up a window when you click on a link in another
3217
3218         Implement a security check on name frame visbility. This is the
3219         same rule as mozilla. You can only target frames by name if you
3220         are in the same window, have the same domain as the frame or an
3221         ancestor, or if it's a top level window have the same domain as
3222         the opener.
3223         
3224         * WebView.subproj/WebFrame.m:
3225         (-[WebFrame _shouldAllowAccessFrom:]):
3226         (-[WebFrame _descendantFrameNamed:sourceFrame:]):
3227         (-[WebFrame findFrameNamed:]):
3228         * WebView.subproj/WebFramePrivate.h:
3229         * WebView.subproj/WebView.m:
3230         (-[WebView _findFrameInThisWindowNamed:sourceFrame:]):
3231         (-[WebView _findFrameNamed:sourceFrame:]):
3232         * WebView.subproj/WebViewPrivate.h:
3233
3234 === Safari-177 ===
3235
3236 === Safari-176 ===
3237
3238 2004-12-20  Richard Williamson   <rjw@apple.com>
3239
3240         Add call to new API.  ImageIO deprecated some older (although
3241         quite new!) API.   This caused us to fail to build on 337 or later.
3242
3243         Developers wanting to build on older versions of Tiger must define
3244         USE_DEPRECATED_IMAGESOURCE_API in WebImageData.m.
3245
3246         Reviewed by Vicki.
3247
3248         * WebCoreSupport.subproj/WebImageData.m:
3249         (-[WebImageData propertiesAtIndex:]):
3250
3251 2004-12-20  Richard Williamson   <rjw@apple.com>
3252
3253         Don't call Tiger SPI on Panther.
3254
3255         Reviewed by Vicki.
3256
3257         * WebCoreSupport.subproj/WebTextRendererFactory.m:
3258         (+[WebTextRendererFactory createSharedFactory]):
3259
3260 2004-12-20  Richard Williamson   <rjw@apple.com>
3261
3262         Fixed <rdar://problem/3884448> WebKit should turn on CG local font cache
3263
3264         Enable mutli-tier font caching.  We should see a performance boost with this
3265         change.
3266
3267         Reviewed by Chris.
3268
3269         * WebCoreSupport.subproj/WebTextRendererFactory.m:
3270         (+[WebTextRendererFactory createSharedFactory]):
3271
3272 2004-12-20  Richard Williamson   <rjw@apple.com>
3273
3274         Fix image decoding to separately decode image meta data from actual image bits.  I
3275         incorrectly consolidated decode of meta data and image bits resulting in a huge
3276         performance regression.
3277
3278         Double size of WebCore cache on lower end machines.  On the PLT run on machines with
3279         256MB of memory, too many images were being evicted, causing a re-decode on the PLT.
3280         Upping the lower limit of the cache size ensure that no images are evicted (this
3281         goes hand-in-hand with the change to the minimum object size from 32K to 40K).
3282
3283         Reviewed by Ken.
3284
3285         * WebCoreSupport.subproj/WebImageData.h:
3286         * WebCoreSupport.subproj/WebImageData.m:
3287         (+[WebImageData initialize]):
3288         (-[WebImageData _commonTermination]):
3289         (-[WebImageData _invalidateImages]):
3290         (-[WebImageData _invalidateImageProperties]):
3291         (-[WebImageData imageAtIndex:]):
3292         (-[WebImageData propertiesAtIndex:]):
3293         (-[WebImageData _cacheImages:allImages:]):
3294         (-[WebImageData decodeData:isComplete:callback:]):
3295         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
3296         * WebView.subproj/WebPreferences.m:
3297         (+[WebPreferences initialize]):
3298
3299 2004-12-20  Richard Williamson   <rjw@apple.com>
3300
3301         Fixed build problem caused by change to ImageIO API.
3302
3303         Reviewed by Adele.
3304
3305         * WebCoreSupport.subproj/WebImageData.m:
3306
3307 2004-12-19  Darin Adler  <darin@apple.com>
3308
3309         Reviewed by Kevin.
3310
3311         - some garbage collection fixes
3312
3313         * Misc.subproj/WebNSObjectExtras.h: (WebCFAutorelease): Replaced the old WebNSRetainCFRelease with this
3314         much-easier-to-understand function cribbed from what David Harrison did in WebCore.
3315
3316         * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Use CFRelease here to
3317         get rid of an unnecessary use of WebNSRetainCFRelease.
3318         * Misc.subproj/WebNSURLExtras.m:
3319         (+[NSURL _web_URLWithData:relativeToURL:]): Use WebCFAutorelease instead of WebNSRetainCFRelease and autorelease.
3320         (-[NSURL _web_URLWithLowercasedScheme]): Ditto.
3321         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Use WebCFAutorelease here; the old code would not
3322         work correctly under GC.
3323         * Plugins.subproj/WebNetscapePluginPackage.m: (+[WebNetscapePluginPackage preferredLocalizationName]):
3324         Use WebCFAutorelease here; the old code would not work correctly under GC.
3325
3326 2004-12-18  Chris Blumenberg  <cblu@apple.com>
3327
3328         Fixed: <rdar://problem/3766915> PDF content needs search to work
3329
3330         Reviewed by kevin, john.
3331
3332         * WebView.subproj/WebPDFView.m:
3333         (-[WebPDFView searchFor:direction:caseSensitive:wrap:]): implemented
3334         (-[WebPDFView takeFindStringFromSelection:]): new
3335         (-[WebPDFView jumpToSelection:]): new
3336         (-[WebPDFView validateUserInterfaceItem:]): new
3337
3338 2004-12-17  Richard Williamson   <rjw@apple.com>
3339
3340         Make image decoding as lazy as possible for non threaded case; in some cases
3341         can avoid unnecessary decoding work.
3342
3343         Reviewed by Chris.
3344
3345         * WebCoreSupport.subproj/WebImageData.h:
3346         * WebCoreSupport.subproj/WebImageData.m:
3347         (-[WebImageData imageAtIndex:]):
3348         (-[WebImageData propertiesAtIndex:]):
3349         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
3350
3351 2004-12-16  John Sullivan  <sullivan@apple.com>
3352
3353         Reviewed by Chris.
3354         
3355         One of the assertions from my previous checkin fired, so
3356         I made this code more robust.
3357
3358         * WebCoreSupport.subproj/WebBridge.m:
3359         (-[WebBridge _preferences]):
3360         new helper method, returns global preferences if webView is nil,
3361         otherwise returns webView's preferences
3362         (-[WebBridge getObjectCacheSize]):
3363         use new helper method, remove now-unnecessary assert
3364         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
3365         ditto
3366
3367 2004-12-16  John Sullivan  <sullivan@apple.com>
3368
3369         Reviewed by Darin.
3370         
3371         - fixed <rdar://problem/3913523> Mail needs SPI for adding tooltips to links
3372         - cleaned up some calls to +[WebPreferences standardPreferences] that should
3373           have been using -[WebView preferences]
3374           
3375         This adds a (currently SPI-only) new feature that shows the URL of the link
3376         under the mouse in a toolTip. I tested this in Safari, but we're adding this
3377         feature for Mail, and Safari won't use it (unless of course you know the
3378         magic defaults command)
3379
3380         * Plugins.subproj/WebBaseNetscapePluginView.m:
3381         (-[WebBaseNetscapePluginView start]):
3382         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
3383         
3384         * WebCoreSupport.subproj/WebBridge.m:
3385         (-[WebBridge getObjectCacheSize]):
3386         ditto
3387         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
3388         ditto
3389         
3390         * WebView.subproj/WebBaseResourceHandleDelegate.m:
3391         (-[WebBaseResourceHandleDelegate willCacheResponse:]):
3392         ditto
3393         
3394         * WebView.subproj/WebFrame.m:
3395         (-[WebFrame _transitionToCommitted:]):
3396         ditto
3397         (-[WebFrame _loadItem:withLoadType:]):
3398         ditto
3399         
3400         * WebView.subproj/WebHTMLViewInternal.h:
3401         private struct now keeps ivar for cached value of showsURLsInToolTips
3402         so it doesn't have look it up in preferences a zillion times
3403         
3404         * WebView.subproj/WebHTMLView.m:
3405         (-[WebHTMLView _updateMouseoverWithEvent:]):
3406         if private->showsURLsInToolTips is true, set the toolTip from the URL.
3407         Fall back to showing the title attribute in case some element has a title
3408         attribute but no URL.
3409         (-[WebHTMLView _mayStartDragAtEventLocation:]):
3410         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
3411         (-[WebHTMLView _resetCachedWebPreferences:]):
3412         get a fresh value for private->showsURLsInToolTips
3413         (-[WebHTMLView initWithFrame:]):
3414         call _resetCachedWebPreferences the first time, and listen for WebPreferencesChanged notifications
3415         (-[WebHTMLView _handleStyleKeyEquivalent:]):
3416         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
3417         
3418         * WebView.subproj/WebPreferenceKeysPrivate.h:
3419         added WebKitShowsURLsInToolTipsPreferenceKey
3420         
3421         * WebView.subproj/WebPreferences.m:
3422         (+[WebPreferences initialize]):
3423         initialize WebKitShowsURLsInToolTipsPreferenceKey to 0
3424         (-[WebPreferences showsURLsInToolTips]):
3425         return WebKitShowsURLsInToolTipsPreferenceKey value
3426         (-[WebPreferences setShowsURLsInToolTips:]):
3427         set WebKitShowsURLsInToolTipsPreferenceKey value
3428         
3429         * WebView.subproj/WebPreferencesPrivate.h:
3430         add declarations for showsURLsInToolTips and setter
3431         
3432         * WebView.subproj/WebTextView.m:
3433         (-[WebTextView _preferences]):
3434         new helper method that gets preferences from webView if there is a webView,
3435         otherwise gets global preferences
3436         (-[WebTextView setFixedWidthFont]):
3437         use new helper method rather than always using global preferences
3438         (-[WebTextView initWithFrame:]):
3439         observe WebPreferencesChangedNotification instead of unnecessarily general
3440         NSUserDefaultsChangedNotification
3441
3442 2004-12-14  John Sullivan  <sullivan@apple.com>
3443
3444         Reviewed by Ken.
3445         
3446         - rest of WebKit fix for <rdar://problem/3790011> undoable operations all say "Undo" 
3447         in the menu, no specific action names
3448         
3449         I only know of one loose end currently, which I wrote up as <rdar://problem/3920971> Edit menu 
3450         says "Undo Change Attributes" when it should say "Undo Set Color", from font panel
3451
3452         * WebView.subproj/WebHTMLView.m:
3453         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]):
3454         use WebUndoActionSetColor when dragging color swatch
3455         (-[WebHTMLView _applyStyleToSelection:withUndoAction:]):
3456         new WebUndoAction parameter, passed across bridge
3457         (-[WebHTMLView _toggleBold]):
3458         use WebUndoActionSetFont
3459         (-[WebHTMLView _toggleItalic]):
3460         use WebUndoActionSetFont
3461         (-[WebHTMLView pasteFont:]):
3462         use WebUndoActionPasteFont
3463         (-[WebHTMLView changeFont:]):
3464         use WebUndoActionSetFont
3465         (-[WebHTMLView changeAttributes:]):
3466         use WebUndoActionChangeAttributes
3467         (-[WebHTMLView _undoActionFromColorPanelWithSelector:]):
3468         new method, returns WebUndoActionSetBackgroundColor or WebUndoActionSetColor
3469         (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]):
3470         now calls _undoActionFromColorPanelWithSelector
3471         (-[WebHTMLView changeColor:]):
3472         use WebUndoActionSetColor
3473         (-[WebHTMLView _alignSelectionUsingCSSValue:withUndoAction:]):
3474         new WebUndoAction parameter, passed through
3475         (-[WebHTMLView alignCenter:]):
3476         use WebUndoActionCenter
3477         (-[WebHTMLView alignJustified:]):
3478         use WebUndoActionJustify
3479      &n