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