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