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