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