eb44d6d07f21b481c95a2284fea42e2535f5ab5f
[WebKit-https.git] / WebKit / ChangeLog
1 2004-12-06  Chris Blumenberg  <cblu@apple.com>
2
3         Forgot to commit copied header.
4
5         * DOM.subproj/DOMPrivate.h:
6
7 2004-12-06  Chris Blumenberg  <cblu@apple.com>
8
9         Fixed: <rdar://problem/3907381> NSURLConnection and WebKit buffer 2 copies of incoming data
10
11         Reviewed by darin.
12
13         * WebView.subproj/WebBaseResourceHandleDelegate.h:
14         * WebView.subproj/WebBaseResourceHandleDelegate.m:
15         (+[WebBaseResourceHandleDelegate initialize]): cache check to see if Foundation supports access to its buffered data
16         (-[WebBaseResourceHandleDelegate addData:]): don't buffer data if Foundation is buffering it for us
17         (-[WebBaseResourceHandleDelegate saveResource]): when creating a WebResource, pass NO for copyData since we know it won't be mutated
18         (-[WebBaseResourceHandleDelegate resourceData]): return the buffered data from the connection if it supports it
19         (-[WebBaseResourceHandleDelegate willStopBufferingData:]): make a mutable copy of the data from NSURLConnection so we can continue buffering 
20         (-[WebBaseResourceHandleDelegate willCacheResponse:]): removed optimization that used the cached response data to save the resource since that is obsolete by this change
21         (-[WebBaseResourceHandleDelegate connection:willStopBufferingData:]): new callback from NSURLConnection, informs us that NSURLConnection has given up buffering
22         * WebView.subproj/WebDataSource.m:
23         (-[WebDataSource _receivedData:]): removed buffering code since that's done by NSURLConnection and the main client
24         (-[WebDataSource _setData:]): removed unnecessary cast since the resourceData ivar is now an NSData instead of NSMutableData
25         (-[WebDataSource data]): return resourceData ivar, else return the resourceData from the main client
26         * WebView.subproj/WebDataSourcePrivate.h:
27         * WebView.subproj/WebMainResourceClient.m:
28         (-[WebMainResourceClient releaseResources]): store resourceData on the data source so it can continue to have data after the main client has gone away 
29         (-[WebMainResourceClient connection:didReceiveData:lengthReceived:]):don't call [dataSource data] just to get the length of data received since [dataSource data] can now cause data to be copied
30         (-[WebMainResourceClient connectionDidFinishLoading:]): ditto
31         * WebView.subproj/WebResource.m:
32         (-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]): call following method with YES for copyData
33         (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:copyData:]): new initializer, allows caller to choose whether or not the data is copied
34         * WebView.subproj/WebResourcePrivate.h:
35
36 2004-12-06  Richard Williamson   <rjw@apple.com>
37
38         Fixed <rdar://problem/3903749> REGRESSION (8A321): WebKit gets incorrect glyph metrics due to change in how AppKit uses CGFont
39
40         Use CGFontRef direction when both getting font metrics and drawing
41         glyphs, instead on depending on [NSFont set].
42
43         Reviewed by John.
44
45         * WebCoreSupport.subproj/WebTextRenderer.m:
46         (getUncachedWidth):
47         (_drawGlyphs):
48
49 2004-12-06  Ken Kocienda  <kocienda@apple.com>
50
51         Reviewed by Harrison
52         
53         Fix for this bug:
54         
55         <rdar://problem/3906930> Hitting return key in editable content inserts br elements instead of blocks
56
57         * WebView.subproj/WebHTMLView.m:
58         (-[WebHTMLView insertNewline:]): One-line change to call insert-block rather than insert-br method 
59         on bridge.
60
61 2004-12-04  Darin Adler  <darin@apple.com>
62
63         Reviewed by John.
64
65         - fixed <rdar://problem/3846079> assertion failure in WebHTMLView(WebPrivate) removeTrackingRect at boots.com
66         - fixed <rdar://problem/3857737> REGRESSION (165-166): clicking in a text field that's scrolled to the right causes it to scroll all the way left
67         - fixed <rdar://problem/3861952> REGRESSION (165-166): selection is cleared when you start to scroll a frame
68
69         * WebView.subproj/WebHTMLViewInternal.h: Added handlingMouseDown flag.
70         * WebView.subproj/WebHTMLView.m:
71         (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Allow passing in a
72         tracking number of 0, which means no existing tracking number.
73         (-[WebHTMLView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Ditto.
74         (-[WebHTMLView removeTrackingRect:]): Allow removing a tracking number of 0, which is a no-op.
75         (-[WebHTMLView _removeTrackingRects:count:]): Ditto.
76         (-[WebHTMLView acceptsFirstResponder]): Changed check to use handlingMouseDown flag instead of mouseDownEvent
77         field since that field is set up too early in the mouse down event handling process.
78         (-[WebHTMLView mouseDown:]): Added code to set handlingMouseDown flag.
79
80         - fixed part of <rdar://problem/3829808> Safari crashes when adding a DOM node that was removed from an XMLHTTP request result
81
82         * WebCoreSupport.subproj/WebBridge.m:
83         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
84         Changed code around so that it won't try to create a WebResource when the load fails.
85
86         - moved next/previous links into private structure with the rest of WebFrame fields
87           (We have a rule against putting new fields into obejcts that are part of our public API.)
88
89         * WebView.subproj/WebFrame.h: Remove _nextSibling and _previousSibling.
90         * WebView.subproj/WebFramePrivate.h: Added nextSibling and previousSibling fields to private class.
91         * WebView.subproj/WebFrame.m: Got rid of some tabs in this file.
92         (-[WebFrame _addChild:]): Changed code to use fields inside _private.
93         (-[WebFrame _removeChild:]): Ditto.
94         (-[WebFrame _nextFrameWithWrap:]): Ditto.
95         (-[WebFrame _previousFrameWithWrap:]): Ditto.
96
97 2004-12-04  Chris Blumenberg  <cblu@apple.com>
98
99         New fixes for:
100         <rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
101         <rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
102         <rdar://problem/3903173> REGRESSION (172-TOT): assertion failure and crash in slotAllData logging into hotmail account
103         <rdar://problem/3902749> REGRESSION (Tiger): missing image symbol does not appear
104
105         Reviewed by darin, rjw, kocienda.
106
107         * WebCoreSupport.subproj/WebBridge.m:
108         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]):
109         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
110         * WebCoreSupport.subproj/WebSubresourceClient.m:
111         (-[WebSubresourceClient didFinishLoading]):
112         * WebView.subproj/WebFrame.m:
113         (-[WebFrame _opened]):
114         (-[WebFrame _internalLoadDelegate]):
115         (-[WebFrame _sendResourceLoadDelegateMessagesForURL:response:length:]):
116         * WebView.subproj/WebFrameInternal.h:
117
118 2004-12-04  Darin Adler  <darin@apple.com>
119
120         Reviewed by Maciej.
121
122         - fixed remaining bit of <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window
123
124         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _styleFromFontAttributes:]): When translating from
125         an attribute dictionary to a CSS declaration, treat missing values according to the defaults defined
126         in <AppKit/NSAttributedString.h>. Before the code was treating them as "no change", which is incorrect.
127
128         * English.lproj/StringsNotToBeLocalized.txt: Add a string from the above change.
129
130 === Safari-173 ===
131
132 2004-12-03  Ken Kocienda  <kocienda@apple.com>
133
134         Reviewed by me
135
136         Roll out some recent changes by Chris that caused a performance regression.
137         Fix is in hand, but it is a little risky this close to a submission. So,
138         we have decided to roll back the change with the regression and roll in
139         the new code after we submit.
140
141         * WebCoreSupport.subproj/WebBridge.m:
142         (-[WebBridge objectLoadedFromCacheWithURL:response:size:]):
143         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
144         * WebCoreSupport.subproj/WebSubresourceClient.m:
145         (-[WebSubresourceClient didFinishLoading]):
146         * WebView.subproj/WebFrame.m:
147         (-[WebFrame _opened]):
148         (-[WebFrame _internalLoadDelegate]):
149         * WebView.subproj/WebFrameInternal.h:
150
151 2004-12-02  Richard Williamson   <rjw@apple.com>
152
153         Fixed <rdar://problem/3841332> REGRESSION (125.9-167u): repro crash in -[KWQPageState invalidate] involving .Mac images
154
155         Ensure that the document is cleared when leaving a non-HTML page.  This ensures that
156         the b/f cache won't incorrectly trash the previous state when restoring.
157
158         Reviewed by John.
159
160         * WebView.subproj/WebFrame.m:
161         (-[WebFrame _setState:]):
162
163 2004-12-02  Ken Kocienda  <kocienda@apple.com>
164
165         Reviewed by Richard
166
167         <rdar://problem/3748323> Problem with -[WebView editableDOMRangeForPoint:] (-isFlipped not taken into account?)
168         <rdar://problem/3852590> REGRESSION (Mail): Dropped content appears in wrong place if Mail message is scrolled down
169
170         When implementing drag and drop, moveDragCaretToPoint: and editableDOMRangeForPoint: are used in
171         concert to track the mouse and determine a drop location, respectively. However, moveDragCaretToPoint:
172         did a conversion of the passed-in point to the document view's coordinate space, whereas 
173         editableDOMRangeForPoint: did not. Now it does.
174         
175         Note that I will need to coordinate with Grant to have him roll out some code in Mail that
176         attempts to work around this problem (unsuccessfully), and actually manages to block the
177         real fix (which needs to be in WebKit).
178
179         * WebView.subproj/WebView.m:
180         (-[WebView editableDOMRangeForPoint:]): Convert the passed-in point to the document view's coordinate space.
181
182 2004-12-02  Richard Williamson   <rjw@apple.com>
183
184         Fixed <rdar://problem/3895810> FATAL ERROR: <WebTextRenderer: 0x9328a20> unable to initialize with font "Times-Roman 16.00 pt. S ....
185
186         We have a hack to replace Times with Times New Roman if we fail
187         to setup Times.  If we then fail to setup Times New Roman we
188         don't attempt to further fallback to the system font.  Added
189         that additional fallback.
190
191         Reviewed by Ken.
192
193         * WebCoreSupport.subproj/WebTextRenderer.m:
194         (+[WebTextRenderer webFallbackFontFamily]):
195         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
196
197 2004-12-02  Richard Williamson   <rjw@apple.com>
198
199         Fixed build problem on Tiger8A821.  Private macro and function
200         we were using have been deprecated,
201
202         Reviewed by Vicki.
203
204         * WebCoreSupport.subproj/WebTextRenderer.m:
205         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
206
207 2004-12-01  Chris Blumenberg  <cblu@apple.com>
208
209         Fixed: <rdar://problem/3879870> Flash Player unable to stop data stream from continuing to download by returning -1 from NPP_Write
210         Also improved and cleaned-up the plug-in stream termination code.
211
212         Reviewed by john.
213
214         * Plugins.subproj/WebBaseNetscapePluginStream.h:
215         * Plugins.subproj/WebBaseNetscapePluginStream.m:
216         (+[WebBaseNetscapePluginStream reasonForError:]): return NPRES_DONE for a nil error
217         (-[WebBaseNetscapePluginStream _pluginCancelledConnectionError]): new, factored out from other methods
218         (-[WebBaseNetscapePluginStream errorForReason:]): new
219         (-[WebBaseNetscapePluginStream dealloc]): release MIME type
220         (-[WebBaseNetscapePluginStream setMIMEType:]): new
221         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): call setMIMEType so we can use it in _pluginCancelledConnectionError, call renamed methods
222         (-[WebBaseNetscapePluginStream _destroyStream]): prepended underscore, replaced some early returns with asserts as the callers are now smarter
223         (-[WebBaseNetscapePluginStream _destroyStreamWithReason:]): prepended underscore, only call _destroyStream if there is an error or if the load is complete and there is no more data to be streamed
224         (-[WebBaseNetscapePluginStream cancelLoadWithError:]): new, overridden by subclasses to cancel the actual NSURLConnection
225         (-[WebBaseNetscapePluginStream destroyStreamWithError:]): new, calls _destroyStreamWithReason
226         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): call renamed methods
227         (-[WebBaseNetscapePluginStream _deliverData]): prepended underscore, call cancelLoadAndDestroyStreamWithError if NPP_Write returns a negative number
228         * Plugins.subproj/WebBaseNetscapePluginView.m:
229         (-[WebBaseNetscapePluginView destroyStream:reason:]): call cancelLoadAndDestroyStreamWithError
230         * Plugins.subproj/WebNetscapePluginRepresentation.m:
231         (-[WebNetscapePluginRepresentation receivedError:withDataSource:]): call destroyStreamWithError
232         (-[WebNetscapePluginRepresentation cancelLoadWithError:]): new, override method, tell the data source to stop loading
233         * Plugins.subproj/WebNetscapePluginStream.m:
234         (-[WebNetscapePluginStream cancelLoadWithError:]): new, override method, tell the loader to stop
235         (-[WebNetscapePluginStream stop]): call cancelLoadAndDestroyStreamWithError
236         (-[WebNetscapePluginConnectionDelegate isDone]): new
237         (-[WebNetscapePluginConnectionDelegate didReceiveResponse:]): call cancelLoadAndDestroyStreamWithError
238         (-[WebNetscapePluginConnectionDelegate didFailWithError:]): call destroyStreamWithError
239
240 2004-12-01  Kevin Decker  <kdecker@apple.com>
241
242         Reviewed by Harrison.
243
244         Fixed: <rdar://problem/3228878> potential performance problem in finding in large framesets
245
246         Got rid of O(N^2) conditions in _nextSibling and _previousSibling of where we were looking up self in the parent array of frames.
247
248         * WebView.subproj/WebFrame.h: Added two new pointers, one for the previous kid and one for the next kid
249         * WebView.subproj/WebFrame.m: 
250         (-[WebFrame _addChild:]): Updates the previous frame and the next frame after this child
251         (-[WebFrame _removeChild:]): ditto
252         (-[WebFrame _nextSibling]): just return the pointer now
253         (-[WebFrame _previousSibling]): ditto
254
255 2004-11-30  Chris Blumenberg  <cblu@apple.com>
256
257         Fixed:
258         <rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
259         <rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
260
261         Reviewed by darin.
262
263         * WebCoreSupport.subproj/WebBridge.m:
264         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): renamed to pass all data for the resource, moved delegate code to new method
265         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): call renamed method
266         * WebCoreSupport.subproj/WebSubresourceClient.m:
267         (-[WebSubresourceClient didFinishLoading]): call renamed method
268         * WebView.subproj/WebFrame.m:
269         (-[WebFrame _opened]): call _sendResourceLoadDelegateMessagesForURL:response:length:, not objectLoadedFromCacheWithURL:response:data:
270         (-[WebFrame _internalLoadDelegate]):
271         (-[WebFrame _sendResourceLoadDelegateMessagesForURL:response:length:]): moved from objectLoadedFromCacheWithURL:response:data:
272         * WebView.subproj/WebFrameInternal.h:
273
274 2004-11-29  Darin Adler  <darin@apple.com>
275
276         Reviewed by John.
277
278         - worked around bug in Panther where NSScroller calls _destinationFloatValueForScroller: on superview
279           without first checking if it's implemented
280
281         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _destinationFloatValueForScroller:]):
282         Implemented. Calls floatValue on the scroller.
283
284         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
285
286 2004-11-23  Chris Blumenberg  <cblu@apple.com>
287
288         Fixed: <rdar://problem/3890944> disable icon database for Dashboard
289
290         Reviewed by kevin.
291
292         * Misc.subproj/WebIconDatabase.h:
293         * Misc.subproj/WebIconDatabase.m:
294         (-[WebIconDatabase init]): don't create dictionaries if disabled
295         (-[WebIconDatabase iconForURL:withSize:cache:]): return default icon if disabled
296         (-[WebIconDatabase iconURLForURL:]): return nil if disabled
297         (-[WebIconDatabase retainIconForURL:]): return if disabled
298         (-[WebIconDatabase releaseIconForURL:]): ditto
299         (-[WebIconDatabase delayDatabaseCleanup]): ditto
300         (-[WebIconDatabase allowDatabaseCleanup]): ditto
301         (-[WebIconDatabase _isEnabled]): new
302         (-[WebIconDatabase _setIcon:forIconURL:]): assert if called when disabled, moved to own category implementation
303         (-[WebIconDatabase _setHaveNoIconForIconURL:]): ditto
304         (-[WebIconDatabase _setIconURL:forURL:]): ditto
305         (-[WebIconDatabase _createFileDatabase]): tweak
306         (-[WebIconDatabase _applicationWillTerminate:]): moved out of public code
307         * Misc.subproj/WebIconDatabasePrivate.h:
308         * Misc.subproj/WebIconLoader.m:
309         * WebView.subproj/WebDataSource.m:
310         (-[WebDataSource _updateIconDatabaseWithURL:]): assert if called when icon DB is disabled
311         (-[WebDataSource _loadIcon]): don't load icon if icon DB is disabled
312
313 2004-11-22  David Hyatt  <hyatt@apple.com>
314
315         Make sure the WebCore cache grows at 512mb and at 1024mb exactly.
316         
317         Reviewed by mjs
318
319         * WebCoreSupport.subproj/WebBridge.m:
320         (-[WebBridge getObjectCacheSize]):
321
322 2004-11-22  Richard Williamson   <rjw@apple.com>
323
324         Fixed <rdar://problem/3891737> WebPreferences do not work if they are set before set on the WebView
325
326         John found this problem and suggested the fix.
327
328         Reviewed by John Louch.
329
330         * WebView.subproj/WebView.m:
331         (-[WebView setPreferences:]):
332
333 2004-11-22  Ken Kocienda  <kocienda@apple.com>
334
335         Reviewed by Harrison
336
337         * WebCoreSupport.subproj/WebBridge.m:
338         (-[WebBridge canPaste]): Call WebView _canPaste.
339         * WebView.subproj/WebView.m:
340         (-[WebView _canPaste]): Try to forward to document view's implementation. Only WebHTMLView
341         answers right now. Returns NO otherwise.
342         * WebView.subproj/WebViewInternal.h: Add _canPaste method to WebView.
343
344 2004-11-22  Maciej Stachowiak  <mjs@apple.com>
345
346         Back  out the window closing fix, it seems to be causing crashes.
347
348         * WebView.subproj/WebFrame.m:
349         (-[WebFrame _detachFromParent]):
350
351 2004-11-20  Maciej Stachowiak  <mjs@apple.com>
352  
353         Reviewed by John.
354  
355         <rdar://problem/3710101> _web_userVisibleString makes URL autocomplete roughly 2x slower
356          
357         * Misc.subproj/WebNSURLExtras.h:
358         * Misc.subproj/WebNSURLExtras.m:
359         (-[NSString _web_isUserVisibleURL]): New SPI to check if a URL
360         string is already in user-visible form (i.e. converting it to an
361         NSURL and then back via _web_userVisibleString would not change
362         anything).
363  
364 2004-11-19  Maciej Stachowiak  <mjs@apple.com>
365
366         Reviewed by John.
367
368         <rdar://problem/3190977> closing window with many tabs in it can be quite slow
369         
370         * WebView.subproj/WebFrame.m:
371         (-[WebFrame _detachFromParent]): autorelease bridge instead of releasing it,
372         to make window and tab closing more responsive - this way the deallocation happens
373         after the windoow or tab appears to close.
374
375 === Safari-172 ===
376
377 2004-11-19  Chris Blumenberg  <cblu@apple.com>
378
379         Fixed: <rdar://problem/3880387> REGRESSION: www.shockplay.com site gives "Unexpected server response"
380
381         Reviewed by mjs.
382
383         * Plugins.subproj/WebBaseNetscapePluginView.m:
384         (-[NSData _web_locationAfterFirstBlankLine]): support both formats ("\r\n\n" and "\r\n\r\n") for separating header data from body data because Shockwave still sends the prior format
385
386 2004-11-19  Ken Kocienda  <kocienda@apple.com>
387
388         Reviewed by Harrison
389
390         Fix for this bug:
391
392         <rdar://problem/3655241> setTypingStyle: does not set the real typing style, and typingStyle does not return it
393
394         * WebCoreSupport.subproj/WebBridge.m:
395         (-[WebBridge respondToChangedContents]): No longer call through to WebKit to set the typing style. The call
396         was part of the misguided use of the setTypingStyle: and typingStyle as a cache of what was stored on
397         the WebCore side.
398         (-[WebBridge respondToChangedSelection]): Ditto.
399         * WebView.subproj/WebView.m:
400         (-[WebViewPrivate dealloc]): Object no longer has typingStyle ivar.
401         (-[WebView setTypingStyle:]): Call over the bridge to set typing style.
402         (-[WebView typingStyle]): Call over the bridge to retrieve typing style.
403         * WebView.subproj/WebViewInternal.h: Object no longer has typingStyle ivar.
404
405 2004-11-18  John Sullivan  <sullivan@apple.com>
406
407         Reviewed by Darin.
408         
409         - fixed <rdar://problem/3886042> should save history file as binary XML so serialization, 
410         parsing, reading and writing is faster
411
412         * History.subproj/WebHistory.m:
413         (-[WebHistoryPrivate _saveHistoryGuts:URL:error:]):
414         convert dictionary to binary data before saving
415
416 2004-11-18  Chris Blumenberg  <cblu@apple.com>
417
418         * WebView.subproj/WebHTMLRepresentation.m:
419         (-[WebHTMLRepresentation currentForm]): removed stray ";"
420
421 2004-11-18  Chris Blumenberg  <cblu@apple.com>
422
423         Fixed development build failure.
424
425         * Misc.subproj/WebIconDatabase.m:
426         (+[WebIconDatabase sharedIconDatabase]): call LOG not Log
427
428 2004-11-18  Chris Blumenberg  <cblu@apple.com>
429
430         <rdar://problem/3885708> save memory in icon DB by not using NSSets when holding 1 object
431         
432         Reviewed by sullivan.
433
434         * Misc.subproj/WebIconDatabase.m:
435         (+[WebIconDatabase sharedIconDatabase]): added timing code
436         (-[WebIconDatabase _clearDictionaries]): new
437         (-[WebIconDatabase _loadIconDictionaries]): call _clearDictionaries in 2 places before we bail, use _web_setObjectUsingSetIfNecessary:forKey: when adding site URLs to the iconURLToURLs dictionary
438         (-[WebIconDatabase _updateFileDatabase]): fixed comment
439         (-[WebIconDatabase _setIconURL:forURL:]): use _web_setObjectUsingSetIfNecessary:forKey: when adding site URLs to the iconURLToURLs dictionary
440         (-[WebIconDatabase _releaseIconForIconURLString:]): handle NSString objects retured from iconURLToURLs
441         (-[NSMutableDictionary _web_setObjectUsingSetIfNecessary:forKey:]): new, puts a set on the dictionary when there are 2 or more object for s key
442
443 2004-11-17  Richard Williamson   <rjw@apple.com>
444
445         Fixed <rdar://problem/3885073> REGRESSION: Tab images at top of news.com.com replicated and squished
446
447         Correctly account for scaled image size and clipping.
448
449         Reviewed by Maciej.
450
451         * WebCoreSupport.subproj/WebImageData.h:
452         * WebCoreSupport.subproj/WebImageData.m:
453         * WebCoreSupport.subproj/WebImageRenderer.m:
454         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
455
456 2004-11-17  Maciej Stachowiak  <mjs@apple.com>
457
458         Reviewed by Richard.
459
460         <rdar://problem/3885076> Don't make IDN calls for all-ascii URLs to save about 3 pages
461         at Safari startup.
462         
463         * Misc.subproj/WebNSURLExtras.m:
464         (mapHostNames): If encoding and not decoding, then bail early if the URL is all ascii.
465         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Remove earlier special-case
466         check for localhost, no longer needed.
467
468 2004-11-17  Richard Williamson   <rjw@apple.com>
469
470         Fixed <rdar://problem/3863601> Legacy font cache code in [WebTextRendererFactory createSharedFactory] may be unnecesary
471
472         and added call to SPI for
473
474         <rdar://problem/3884448> WebKit should turn on CG local font cache
475
476         currently disabled until a Tiger build shows up with the SPI.
477
478         Reviewed by David Harrison.
479
480         * WebCoreSupport.subproj/WebTextRendererFactory.m:
481         (+[WebTextRendererFactory createSharedFactory]):
482
483 2004-11-17  Richard Williamson   <rjw@apple.com>
484
485         Fixed <rdar://problem/3882212> REGRESSION: Images clipped instead of scaled
486         Fixed <rdar://problem/3884088> Crash terminating image load
487
488         Also added code to turn off color correction for images created
489         via CGImageSources.  This code is currently disabled because CG  
490         can't change the color space of images loaded progressively.
491         Further, according to Dave Hayward, CG will no longer attempt
492         to color correct images that don't have embedded profiles as of
493         Tiger 8A306.
494
495         Reviewed by Chris.
496
497         * WebCoreSupport.subproj/WebImageData.m:
498         (-[WebImageData _commonTermination]):
499         (-[WebImageData dealloc]):
500         (-[WebImageData _invalidateImageProperties]):
501         (-[WebImageData imageAtIndex:]):
502         (-[WebImageData incrementalLoadWithBytes:length:complete:]):
503         (-[WebImageData propertiesAtIndex:]):
504
505 2004-11-16  Chris Blumenberg  <cblu@apple.com>
506
507         Fixed: <rdar://problem/3882034> REGRESSION: Context menu incorrect for PDF content
508
509         Reviewed by darin.
510
511         * WebView.subproj/WebPDFView.m:
512         (-[WebPDFView hitTest:]): return self if the current event is a context menu event
513         (-[WebPDFView menuForEvent:]): use the PDFView subview
514
515 2004-11-15  Chris Blumenberg  <cblu@apple.com>
516
517         Fixed: <rdar://problem/3880410> save 5 dirty pages by soft-linking against PDFKit framework
518
519         Reviewed by john.
520
521         * WebKit.pbproj/project.pbxproj:
522         * WebView.subproj/WebPDFRepresentation.m:
523         (+[WebPDFRepresentation PDFDocumentClass]): new
524         (-[WebPDFRepresentation finishedLoadingWithDataSource:]): use PDFDocumentClass
525         * WebView.subproj/WebPDFView.h:
526         * WebView.subproj/WebPDFView.m:
527         (+[WebPDFView PDFKitBundle]): new
528         (+[WebPDFView PDFViewClass]): new
529         (-[WebPDFView initWithFrame:]): create a PDFView subview
530         (-[WebPDFView dealloc]): release the PDFView subview
531         (-[WebPDFView PDFSubview]): new
532
533 2004-11-15  Chris Blumenberg  <cblu@apple.com>
534
535         Fixed: <rdar://problem/3879891> WebKit should link against PDFKit instead of Quartz
536
537         Reviewed by darin.
538
539         * WebKit.pbproj/project.pbxproj: link against PDFKit if it is present instead of Quartz.framework
540
541 2004-11-15  Richard Williamson   <rjw@apple.com>
542
543         Fixed missing retain of image property data.
544
545         Reviewed by John.
546
547         * WebCoreSupport.subproj/WebImageData.h:
548         * WebCoreSupport.subproj/WebImageData.m:
549         (-[WebImageData dealloc]):
550         (-[WebImageData _invalidateImages]):
551         (-[WebImageData imageAtIndex:]):
552         (-[WebImageData propertiesAtIndex:]):
553         (-[WebImageData _frameDuration]):
554
555 2004-11-15  Richard Williamson   <rjw@apple.com>
556
557         Cache image properties and frame durations.
558         Create NSImage and TIFF representations from CGImage, lazily, as needed for
559         dragging and element info dictionary.
560
561         Reviewed by John.
562
563         * WebCoreSupport.subproj/WebImageData.h:
564         * WebCoreSupport.subproj/WebImageData.m:
565         (-[WebImageData dealloc]):
566         (-[WebImageData size]):
567         (-[WebImageData propertiesAtIndex:]):
568         (-[WebImageData _frameDurationAt:]):
569         (-[WebImageData _frameDuration]):
570         * WebCoreSupport.subproj/WebImageRenderer.h:
571         * WebCoreSupport.subproj/WebImageRenderer.m:
572         (-[WebImageRenderer dealloc]):
573         (-[WebImageRenderer TIFFRepresentation]):
574         (-[WebImageRenderer image]):
575
576 2004-11-14  Maciej Stachowiak  <mjs@apple.com>
577
578         Reviewed by John.
579
580         <rdar://problem/3879226> WebKit needlessly uses extra memory to store icon refcounts as NSNumbers       
581
582         * Misc.subproj/WebIconDatabase.m:
583         (-[WebIconDatabase init]):
584         (-[WebIconDatabase _setIconURL:forURL:]):
585         (-[WebIconDatabase _retainIconForIconURLString:]):
586         (-[WebIconDatabase _releaseIconForIconURLString:]):
587         (-[WebIconDatabase _retainFutureIconForURL:]):
588         (-[WebIconDatabase _releaseFutureIconForURL:]):
589         * Misc.subproj/WebIconDatabasePrivate.h:
590
591 2004-11-15  John Sullivan  <sullivan@apple.com>
592
593         Reviewed by Ken.
594         
595         - fixed <rdar://problem/3879513> leak in [WebArchive _propertyListRepresentation] copying HTML to pasteboard
596
597         * WebView.subproj/WebArchive.m:
598         (-[WebArchive _propertyListRepresentation]):
599         the array holding the subresources was not released after use, oops!
600
601 2004-11-12  Chris Blumenberg  <cblu@apple.com>
602
603         Fixed: <rdar://problem/3874577> Opening restricted (parental) content in new window/tab reveals Safari's "Resources" folder
604         
605         Reviewed by john.
606
607         * WebView.subproj/WebDefaultContextMenuDelegate.m:
608         (-[WebDefaultUIDelegate openFrameInNewWindow:]): use the unreachable URL if there is one
609
610 === Safari-171 ===
611
612 2004-11-11  Richard Williamson   <rjw@apple.com>
613
614         Report actual size (not partial size) but use partial size
615         when drawing.
616
617         Reviewed by Maciej.
618
619         * WebCoreSupport.subproj/WebImageData.h:
620         * WebCoreSupport.subproj/WebImageData.m:
621         (-[WebImageData size]):
622
623 2004-11-11  Darin Adler  <darin@apple.com>
624
625         Reviewed by John.
626
627         - added _wasFirstResponderAtMouseDownTime method to bridge so we can fix
628           <rdar://problem/3846152> REGRESSION (125-166): can't drag text out of <input type=text> fields
629           with a subsequent change to WebCore.
630
631         * WebCoreSupport.subproj/WebBridge.m:
632         (wasFirstResponderAtMouseDownTime:): Added. Calls _wasFirstResponderAtMouseDownTime
633         on the WebHTMLView.
634         (_getPreSmartSet): Move global inside the function, add (void) for cleanliness.
635         (_getPostSmartSet): Ditto.
636
637         * WebView.subproj/WebHTMLView.m:
638         (-[WebHTMLViewPrivate dealloc]): Release firstResponderAtMouseDownTime.
639         (-[WebHTMLView _setMouseDownEvent:]): Early exit if event is not changing.
640         Set firstResponderAtMouseDownTime to the first responder.
641         (-[WebHTMLView mouseDown:]): Release firstResponderAtMouseDownTime after handling
642         the mouseDown event.
643         (-[WebHTMLView _wasFirstResponderAtMouseDownTime:]): Added. Uses the
644         firstResponderAtMouseDownTime field.
645         * WebView.subproj/WebHTMLViewInternal.h: Added firstResponderAtMouseDownTime field
646         and _wasFirstResponderAtMouseDownTime method.
647
648         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
649
650 2004-11-11  Richard Williamson   <rjw@apple.com>
651
652         Reviewed by Chris.
653
654         Work-around to minimize impact of 3876764.  Cache frame durations
655         after first call.  So we'll still leak 1K for each animated
656         image, but that's better than 1K each time the frame is drawn!
657         * WebCoreSupport.subproj/WebImageData.h:
658         * WebCoreSupport.subproj/WebImageData.m:
659         (-[WebImageData _frameDuration]):
660
661         Simplified animation cleanup code.  Fixed leak due to 
662         incorrect key passed to CFDictionaryRemoveValue.
663         
664         (+[WebImageData stopAnimationsInView:]):
665         (-[WebImageData addAnimatingRenderer:inView:]):
666         (-[WebImageData removeAnimatingRenderer:]):
667         (-[WebImageData _stopAnimation]):
668
669 2004-11-11  Darin Adler  <darin@apple.com>
670
671         Reviewed by Maciej.
672
673         - fixed <rdar://problem/3605906> Flash scrolled off the top and bottom cause CPU spin when combined with something dirty on the visible part of the page
674
675         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView drawRect:]):
676         Work around AppKit bug by using rectangles from getRectsBeingDrawn:count: instead of
677         using the passed-in rectangle.
678
679 2004-11-11  Richard Williamson   <rjw@apple.com>
680
681         Work-arounds to make new ImageIO code work correctly.  Still
682         disabled for now.  Requires at least Tiger 300.  Testing does
683         show a 3% improvement in PLT tests!  That's huge!
684
685         Reviewed by John.
686
687         * WebCoreSupport.subproj/WebImageData.m:
688         (-[WebImageData imageAtIndex:]):
689         (-[WebImageData incrementalLoadWithBytes:length:complete:]):
690         (-[WebImageData isNull]):
691
692 2004-11-10  Chris Blumenberg  <cblu@apple.com>
693
694         Fixed: <rdar://problem/3396872> ICONS: icon DB inconsistencies can cause slowness during startup, idle and quit
695
696         Reviewed by john.
697
698         * Misc.subproj/WebFileDatabase.m:
699         (-[WebFileDatabase objectForKey:]): added logging code
700         * Misc.subproj/WebIconDatabase.m:
701         (-[WebIconDatabase init]): use alloc, init rather than autorelease, retain
702         (-[WebIconDatabase _loadIconDictionaries]): use 1 object for mapping icon URLs to site URLs and vice versa rather than 3. This avoids inconsistencies and is faster.
703         (-[WebIconDatabase _updateFileDatabase]): write 1 object out
704
705 2004-11-09  David Hyatt  <hyatt@apple.com>
706
707         Fix for 3873234, Safari UI is unresponsive when parsing multiple HTML docs and 3873233, Safari hangs when
708         loading large local files.
709         
710         Reviewed by mjs
711
712         * WebCoreSupport.subproj/WebBridge.m:
713         (-[WebBridge tokenizerProcessedData]):
714         * WebView.subproj/WebDataSource.m:
715         (-[WebDataSource _receivedMainResourceError:complete:]):
716         (-[WebDataSource isLoading]):
717
718 2004-11-09  Richard Williamson   <rjw@apple.com>
719
720         Fixed <rdar://problem/3870964> 8A300: Safari not recognizing a PDF link (it displays raw data)
721
722         Add "text/pdf" as an acceptable PDF MIME type.
723
724         Reviewed by Chris.
725
726         * WebView.subproj/WebDataSource.m:
727         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
728         * WebView.subproj/WebFrameView.m:
729         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
730
731 2004-11-08  Chris Blumenberg  <cblu@apple.com>
732
733         Fixed: <rdar://problem/3783904> Return key behavior is confusingly different between popup menus and autofill menus
734
735         Reviewed by john.
736
737         * WebCoreSupport.subproj/WebBridge.m:
738         (-[WebBridge control:textView:shouldHandleEvent:]): new
739         * WebView.subproj/WebFormDelegate.h:
740         * WebView.subproj/WebFormDelegate.m:
741         (-[WebFormDelegate control:textView:shouldHandleEvent:inFrame:]): new
742
743 2004-11-05  Chris Blumenberg  <cblu@apple.com>
744
745         Fixed: <rdar://problem/3854218> Safari is sometimes really slow because of increased null events to plug-ins
746
747         * Plugins.subproj/WebBaseNetscapePluginView.m: reverted null event interval to 0.02
748
749 2004-11-05  Chris Blumenberg  <cblu@apple.com>
750
751         Fixed: <rdar://problem/3838413> REGRESSION (Mail): "Smart" word paste adds spaces before/after special characters
752
753         Reviewed by rjw.
754
755         * WebCoreSupport.subproj/WebBridge.m:
756         (_getPreSmartSet): copied from AppKit
757         (_getPostSmartSet): ditto
758         (-[WebBridge isCharacterSmartReplaceExempt:isPreviousCharacter:]): new
759
760 2004-11-05  Richard Williamson   <rjw@apple.com>
761
762         Fixed <rdar://problem/3810702> _checkNavigationPolicyForRequest:dataSource:formState:andCall:withSelector: ASSERTS when reentered from Xcode's man page viewer
763
764         Reviewed by Maciej (a long time ago).
765
766         * WebView.subproj/WebFrame.m:
767         (-[WebFrame _loadDataSource:withLoadType:formState:]):
768
769         Fixed <rdar://problem/3845307> WebKit needs to export _HIWebViewRegisterClass so HIWebViews can work in Carbon nib files
770
771         As suggested in the bug, the fix is to actually call 
772         HIWebViewRegisterClass in WebKitInitForCarbon, rather than
773         exporting the symbol.
774
775         Reviewed by Chris.
776
777         * Carbon.subproj/CarbonUtils.m:
778         (WebInitForCarbon):
779         * Carbon.subproj/HIWebView.m:
780         * WebKit.pbproj/project.pbxproj:
781
782 === Safari-170 ===
783
784 2004-11-05  Darin Adler  <darin@apple.com>
785
786         Reviewed by Chris.
787
788         - fixed <rdar://problem/3857151> Assertion failure in "trackingRectOwner" while moving mouse over Slashdot.org page
789
790         * WebView.subproj/WebHTMLView.m:
791         (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Changed to no longer call
792         addTrackingRect to do the work for consistency with the new method below. Not too much copied and pasted code.
793         (-[WebHTMLView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Added an override
794         for this new method in Tiger. No harm in implementing it on Panther, although it won't be called.
795         (-[WebHTMLView _removeTrackingRects:count:]): Ditto.
796
797 2004-11-04  David Hyatt  <hyatt@apple.com>
798
799         Make sure the dominant line direction is properly set for RTL runs so that spaces will reverse.
800
801         Change xHeight to measure the ascent of the x glyph, since the xHeight metrics appear to be
802         totally bogus in both CG and AppKit.
803         
804         Reviewed by darin
805
806         * WebCoreSupport.subproj/WebTextRenderer.m:
807         (-[WebTextRenderer xHeight]):
808         (-[WebTextRenderer _createATSUTextLayoutForRun:style:]):
809         (-[WebTextRenderer _trapezoidForRun:style:atPoint:]):
810         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):
811         (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
812         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
813
814 2004-11-02  Maciej Stachowiak  <mjs@apple.com>
815
816         Reviewed by Dave Hyatt (when I originally coded it).
817
818         Redid WebKit part of fix for:
819
820         <rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
821        
822         * WebView.subproj/WebHTMLView.m:
823         (-[WebHTMLView firstRectForCharacterRange:]): Call the appropriate new bridge method,
824         and translate to screen coordinates.
825
826 2004-11-02  John Sullivan  <sullivan@apple.com>
827
828         Reviewed by Hyatt.
829         
830         - [NSFont menuFontOfSize:], called from WebStringTruncator, was taking > 9% of the time creating a 
831         very large bookmarks menu, so I cached this one NSFont object.
832
833         * Misc.subproj/WebStringTruncator.m:
834         (defaultMenuFont):
835         new function, caches the font used when no font is specified
836         (+[WebStringTruncator centerTruncateString:toWidth:]):
837         call new function
838
839 2004-11-02  Ken Kocienda  <kocienda@apple.com>
840
841         Reviewed by Hyatt
842
843         WebCore now implements a command to insert a block in response to typing a return key, and
844         some names were improved in the course of this work.
845
846         * WebView.subproj/WebHTMLView.m:
847         (-[WebHTMLView insertNewline:]): Now calls insertLineBreak on bridge object.
848         (-[WebHTMLView insertLineBreak:]): New method.
849         (-[WebHTMLView insertParagraphSeparator:]): Now implemented.
850         * WebView.subproj/WebView.m: 
851
852 === Safari-169 ===
853
854 2004-10-29  Chris Blumenberg  <cblu@apple.com>
855
856         * WebKit.exp: added _WebPlugInModeKey, forgot to add it earlier
857
858 2004-10-29  Darin Adler  <darin@apple.com>
859
860         - fixed <rdar://problem/3855573> Remove reference to "WebScriptMethods" from WebScriptObject.h comments
861
862         * Plugins.subproj/WebScriptObject.h: Removed unneeded #ifdef protection for multiple includes (since
863         this is an Objective-C header and we use #import for those). Fixed comments as requested in the bug
864         report to match the contents of the file.
865
866 2004-10-27  Ken Kocienda  <kocienda@apple.com>
867
868         Reviewed by Chris
869
870         Added new SPI for Mail so it can get the behavior it needs when the user hits
871         the return key with the selection in quoted content.
872
873         * WebView.subproj/WebView.m
874         * WebView.subproj/WebViewPrivate.h
875
876 2004-10-26  Chris Blumenberg  <cblu@apple.com>
877
878         Fixed exception that Darin encountered in Mail.
879
880         Reviewed by darin.
881
882         * Plugins.subproj/WebPluginController.m:
883         (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): if the plug-in returns a nil view, return nil
884
885 2004-10-25  Chris Blumenberg  <cblu@apple.com>
886
887         Darin made an internal notification have the Web prefix.
888
889         Reviewed by me.
890
891         * Plugins.subproj/WebBaseNetscapePluginView.m:
892         (-[WebBaseNetscapePluginView addWindowObservers]):
893         (-[WebBaseNetscapePluginView removeWindowObservers]):
894         (ConsoleConnectionChangeNotifyProc):
895
896 2004-10-25  John Sullivan  <sullivan@apple.com>
897
898         Reviewed by Chris.
899         
900         - Cleanup from fix for <rdar://problem/3851676> bookmarks should not hold onto a WebHistoryItem object;
901           eliminated notificationsSuppressed mechanism, which was used only by WebBookmark
902
903         * History.subproj/WebHistoryItem.m:
904         removed notificationsSuppressed ivar from private data object
905         (-[WebHistoryItem setAlternateTitle:]):
906         remove notificationsSuppressed guard
907         (-[WebHistoryItem setURLString:]):
908         ditto
909         (-[WebHistoryItem setOriginalURLString:]):
910         ditto
911         (-[WebHistoryItem setTitle:]):
912         ditto
913         (-[WebHistoryItem _setLastVisitedTimeInterval:]):
914         ditto
915         (-[WebHistoryItem setNotificationsSuppressed:]):
916         removed this method
917         (-[WebHistoryItem notificationsSuppressed]):
918         ditto
919         
920         * History.subproj/WebHistoryItemPrivate.h:
921         removed notificationsSuppressed and setNotificationsSuppressed
922
923 2004-10-22  Chris Blumenberg  <cblu@apple.com>
924
925         Fixed: <rdar://problem/3851491> installedPlugins being called for a page without plugins
926
927         Reviewed by mjs.
928
929         * WebView.subproj/WebFrameView.m:
930         (+[WebFrameView _canShowMIMETypeAsHTML:]): call _viewTypesAllowImageTypeOmission instead of using ivar since the ivar is nil until _viewTypesAllowImageTypeOmission is called, this was causing [WebView canShowMIMEType:] to check plug-ins 
931
932 === Safari-168 ===
933
934 2004-10-22  Ken Kocienda  <kocienda@apple.com>
935
936         Reviewed by me
937
938         * WebKit.pbproj/project.pbxproj: Add GCC_ENABLE_OBJC_GC and GCC_FAST_OBJC_DISPATCH flags.
939
940 2004-10-21  Darin Adler  <darin@apple.com>
941
942         Reviewed by John.
943
944         - fixed <rdar://problem/3847994> REGRESSION: reproducible exception in WebImageRenderer releasePatternColor; afterwards get crash or no more browsing
945
946         * WebCoreSupport.subproj/WebImageRenderer.m:
947         (-[WebInternalImage createRendererIfNeeded]): Replaced retainOrCopyIfNeeded with this.
948         This returns nil if a copied renderer isn't needed, and returns a new renderer if a copy is.
949         The old version was sometimes returning a WebInternalImage and other times a WebImageRenderer.
950         (-[WebImageRenderer retainOrCopyIfNeeded]): Returns the result of createRendererIfNeeded
951         or retains self and returns self.
952
953 2004-10-20  Darin Adler  <darin@apple.com>
954
955         Reviewed by Dave.
956
957         - fixed <rdar://problem/3470715> Pattern cache can get huge with use of css background-image in Safari
958
959         * WebCoreSupport.subproj/WebImageRenderer.h: Change WebImageRenderer to be a subclass of NSObject
960         rather than NSImage and contain a pointer to a WebInternalImage.
961         * WebCoreSupport.subproj/WebImageRenderer.m:
962         (-[WebInternalImage releasePatternColor]): Added. Releases patternColor.
963         (-[WebImageRenderer initWithMIMEType:]): Added. Makes WebInternalImage and then self.
964         (-[WebImageRenderer initWithData:MIMEType:]): Ditto.
965         (-[WebImageRenderer initWithContentsOfFile:]): Ditto.
966         (-[WebImageRenderer dealloc]): Added. Calls releasePatternColor and then releases WebInternalImage.
967         (-[WebImageRenderer image]): Added. Returns pointer to image.
968         (-[WebImageRenderer MIMEType]): Added. Calls through to image.
969         (-[WebImageRenderer TIFFRepresentation]): Ditto.
970         (-[WebImageRenderer frameCount]): Ditto.
971         (-[WebImageRenderer setOriginalData:]): Added. Sets image data pointer.
972         (+[WebImageRenderer stopAnimationsInView:]): Added. Calls through to image.
973         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]): Ditto.
974         (-[WebImageRenderer size]): Ditto.
975         (-[WebImageRenderer resize:]): Ditto.
976         (-[WebImageRenderer drawImageInRect:fromRect:]): Ditto.
977         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]): Ditto.
978         (-[WebImageRenderer stopAnimation]): Ditto.
979         (-[WebImageRenderer tileInRect:fromPoint:context:]): Ditto.
980         (-[WebImageRenderer isNull]): Ditto.
981         (-[WebImageRenderer retainOrCopyIfNeeded]): Ditto.
982         (-[WebImageRenderer increaseUseCount]): Ditto.
983         (-[WebImageRenderer decreaseUseCount]): Ditto.
984         (-[WebImageRenderer flushRasterCache]): Ditto.
985         (-[WebImageRenderer imageRef]): Ditto.
986         (-[WebImageRenderer copyWithZone:]): Ditto.
987
988         * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]):
989         Update for slight changes to WebImageRenderer API.
990         * WebCoreSupport.subproj/WebImageRendererFactory.m:
991         (-[WebImageRendererFactory imageRendererWithMIMEType:]): Ditto.
992         (-[WebImageRendererFactory imageRendererWithData:MIMEType:]): Ditto.
993         (-[WebImageRendererFactory imageRendererWithSize:]): Ditto.
994         (-[WebImageRendererFactory imageRendererWithName:]): Ditto.
995         * WebView.subproj/WebImageView.m: (-[WebImageView image]): Ditto.
996
997 2004-10-20  Chris Blumenberg  <cblu@apple.com>
998         
999         Fixed: <rdar://problem/3846943> REGRESSION: JNLP files are rendered instead of downloaded
1000
1001         Reviewed by john.
1002
1003         * Plugins.subproj/WebBasePluginPackage.h:
1004         * Plugins.subproj/WebBasePluginPackage.m:
1005         (-[WebBasePluginPackage isJavaPlugIn]): new
1006         * Plugins.subproj/WebPluginDatabase.m:
1007         (-[WebPluginDatabase refresh]): don't register the Java plug-in for a document view since Java file should be downloaded when not embedded.
1008
1009 2004-10-20  Chris Blumenberg  <cblu@apple.com>
1010
1011         Fixed:
1012         <rdar://problem/3842030> WebKit needs to pass the mode (NP_FULL, NP_EMBED, etc) when calling plugInViewWithArguments
1013         <rdar://problem/3792852> Safari is loading the new QuickTime Cocoa plugin on Panther
1014
1015         Reviewed by darin.
1016
1017         * Plugins.subproj/WebPluginDocumentView.m:
1018         (-[WebPluginDocumentView setDataSource:]): pass "full" as the mode
1019         * Plugins.subproj/WebPluginPackage.m:
1020         (-[WebPluginPackage initWithPath:]): load plug-in with the "webplugin" extension
1021         * WebCoreSupport.subproj/WebBridge.m:
1022         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): pass "embed" as the mode
1023         * WebKit.pbproj/project.pbxproj:
1024
1025 2004-10-19  Vicki Murley <vicki@apple.com>
1026
1027         - bump WebKit version to 167.1, so that we can do a quick dot submission for <rdar://problem/3843951> 
1028
1029         * WebKit.pbproj/project.pbxproj:
1030
1031 2004-10-19  Darin Adler  <darin@apple.com>
1032
1033         Change suggested by Maciej during code review.
1034
1035         * WebCoreSupport.subproj/WebTextRenderer.m: Changed rounding hack table to be const so it can be in shared instead
1036         of private memory, and doesn't require an initialization function.
1037         (+[WebTextRenderer initialize]): Removed initialization.
1038
1039 2004-10-19  Darin Adler  <darin@apple.com>
1040
1041         Reviewed by Maciej.
1042
1043         - fixed <rdar://problem/3838934> Safari stops loading pages after rangeOfCharacterFromSet nil argument exception
1044         - fixed <rdar://problem/3843951> REGRESSION (166-167): Safari crashes in widthForNextCharacter (belkin.com, at startup for others)
1045         - fixed <rdar://problem/3841049> REGRESSION (109-110): control characters render as square boxes
1046
1047         * WebCoreSupport.subproj/WebTextRenderer.m:
1048         (isSpace): Merged in isAlternateSpace, never used.
1049         (setupRoundingHackCharacterTable): Fixed size of table, was 1 entry too short. Got rid of unneeded call to bzero,
1050         since globals start out zeroed automatically.
1051         (isRoundingHackCharacter): Fixed backwards logic causing the crash in widthForNextCharacter.
1052         Also removed explicit compare with 1; check for non-zero is just fine.
1053         (fontContainsString): Change code so we'll just skip the font if the covered character set returns nil rather than
1054         throwing an exception like the old version did. This should make bug 3838934 go away, although perhaps covering up
1055         the underlying problem.
1056         (-[WebTextRenderer _convertCharacters:length:toGlyphs:]): Removed unused skipControlCharacters: parameter and also
1057         the unnecessary code to copy the buffer to change newline characters and non-break spaces to spaces.
1058         (-[WebTextRenderer _convertUnicodeCharacters:length:toGlyphs:]): Removed unused local.
1059         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]): Added code to set up special cases for control characters,
1060         \n and non-break spaces.
1061         (-[WebTextRenderer _createATSUTextLayoutForRun:]): Added comment about the cases this code does not handle that
1062         are handled by the CG case.
1063         (widthForNextCharacter): Call isSpace instead of checking specifically for the space character here. The old code
1064         would not handle cases with '\n' coming across from WebCore properly.
1065
1066 2004-10-18  Chris Blumenberg  <cblu@apple.com>
1067
1068         Fixed: <rdar://problem/3840916> GC: -[WebNetscapePluginPackage initWithPath:] leaks an NSURL
1069
1070         Reviewed by kevin.
1071
1072         * Plugins.subproj/WebNetscapePluginPackage.m:
1073         (-[WebNetscapePluginPackage initWithPath:]): use executablePath on NSBundle instead of CFBundleCopyExecutableURL
1074
1075 2004-10-18  Chris Blumenberg  <cblu@apple.com>
1076
1077         * DOM.subproj/DOMPrivate.h: change to copied header that was never committed
1078
1079 2004-10-18  John Sullivan  <sullivan@apple.com>
1080
1081         Reviewed by Ken.
1082         
1083         - fixed <rdar://problem/3810183> Make WebHTMLView respect return value of webView:doCommandBySelector:
1084
1085         * WebView.subproj/WebHTMLView.m:
1086         (-[WebHTMLView doCommandBySelector:]):
1087         only do default action if delegate returns NO; this works with Mail as of Tiger 8A275.
1088
1089 === Safari-167 ===
1090
1091 2004-10-14  Ken Kocienda  <kocienda@apple.com>
1092
1093         Reviewed by John
1094
1095         Final fix for these bugs:
1096         
1097         <rdar://problem/3806306> HTML editing puts spaces at start of line
1098         <rdar://problem/3814252> HTML editing groups space with word causing wrapping
1099
1100         This change sets some new CSS properties that have been added to WebCore to 
1101         enable whitespace-handling and line-breaking features that make WebView work
1102         more like a text editor.
1103
1104         * WebView.subproj/WebHTMLRepresentation.m:
1105         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]): Turn on special editing
1106         CSS properties when loading an HTML document into a WebView that is editable.
1107         * WebView.subproj/WebView.m:
1108         (-[WebView setEditable:]): Add and remove special editing CSS properties in current
1109         document being displayed.
1110
1111 2004-10-14  Richard Williamson   <rjw@apple.com>
1112
1113         Fixed <rdar://problem/3823026> making isRoundingHackCharacter use -O3 and an 8-bit lookup-table will speed "XBS" test up by 3% (actually < 1%)
1114
1115         Careful testing shows a small performance gain on very large text files.  
1116         I saw large variations in timings, but taking the lowest PLT timing 
1117         with and without this change showed a 0.9% gain.  Note the cvs-base showed
1118         no improvement.  The improvement was for the large page attached to the
1119         bug.
1120
1121         Reviewed by Ken.
1122
1123         * WebCoreSupport.subproj/WebTextRenderer.m:
1124         (setupRoundingHackCharacterTable):
1125         (isRoundingHackCharacter):
1126         (+[WebTextRenderer initialize]):
1127
1128 2004-10-14  Ken Kocienda  <kocienda@apple.com>
1129
1130         Reviewed by me
1131
1132         Fix build breakage. These three functions need to return the values from their
1133         calls to WebCGColorSpaceCreateXXX.
1134
1135         * WebCoreSupport.subproj/WebGraphicsBridge.m:
1136         (-[WebGraphicsBridge createRGBColorSpace])
1137         (-[WebGraphicsBridge createGrayColorSpace])
1138         (-[WebGraphicsBridge createCMYKColorSpace])
1139
1140 2004-10-13  Richard Williamson   <rjw@apple.com>
1141
1142         Addressed concerns in <rdar://problem/3803117> RESP: High complexity in icu uidna_IDNToASCII called by [NSString(WebNSURLExtras) _web_mapHostNameWithRange:encode:makeString:]
1143
1144         In practice I saw NO improvement in performance.  Although,
1145         special-case tests could possibly show improvement.  Anyway,
1146         the changes don't hurt performance.
1147
1148         Reviewed by Maciej.
1149
1150         * Misc.subproj/WebNSURLExtras.m:
1151         (-[NSString _web_mapHostNameWithRange:encode:makeString:]):
1152
1153 2004-10-13  Maciej Stachowiak  <mjs@apple.com>
1154
1155         Reviewed by Ken.
1156
1157         <rdar://problem/3824626> Change to do colormatching for DeviceRGB colorspace causes ~11% Safari slowdown
1158         
1159         - I fixed this by turning off all colormatching for WebKit
1160         content. We might turn it back on later. For now, it's possible to
1161         turn it on temporarily by defining COLORMATCH_EVERYTHING.
1162         
1163         * WebCoreSupport.subproj/WebGraphicsBridge.m:
1164         (-[WebGraphicsBridge setFocusRingStyle:radius:color:]):
1165         (-[WebGraphicsBridge additionalPatternPhase]):
1166         (-[WebGraphicsBridge createRGBColorSpace]):
1167         (-[WebGraphicsBridge createGrayColorSpace]):
1168         (-[WebGraphicsBridge createCMYKColorSpace]):
1169         * WebCoreSupport.subproj/WebImageData.m:
1170         * WebCoreSupport.subproj/WebImageRenderer.h:
1171         * WebCoreSupport.subproj/WebImageRenderer.m:
1172         (-[WebImageRenderer _adjustSizeToPixelDimensions]):
1173         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
1174         (-[WebImageRenderer _adjustColorSpace]):
1175         (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
1176         (-[WebImageRenderer tileInRect:fromPoint:context:]):
1177         (_createImageRef):
1178         (WebCGColorSpaceCreateRGB):
1179         (WebCGColorSpaceCreateGray):
1180         (WebCGColorSpaceCreateCMYK):
1181         * WebKitPrefix.h:
1182
1183 2004-10-13  Richard Williamson   <rjw@apple.com>
1184
1185         Don't fill background with transparency unless debug flag
1186         is enabled.
1187
1188         Reviewed by Hyatt.
1189
1190         * WebView.subproj/WebHTMLView.m:
1191         (-[WebHTMLView drawRect:]):
1192
1193 2004-10-12  Richard Williamson   <rjw@apple.com>
1194
1195         Fixed <rdar://problem/3829705> Need to remove filling w/ transparency when not drawing backgroundy.
1196
1197         Reviewed by Ken.
1198
1199         * WebView.subproj/WebHTMLView.m:
1200         (-[WebHTMLView _transparentBackground]):
1201         (-[WebHTMLView _setTransparentBackground:]):
1202         (-[WebHTMLView drawRect:]):
1203         * WebView.subproj/WebHTMLViewInternal.h:
1204         * WebView.subproj/WebHTMLViewPrivate.h:
1205
1206 2004-10-11  Chris Blumenberg  <cblu@apple.com>
1207
1208         Fixed: <rdar://problem/3802039> 8A259: Can't use Grab services to grab selection from screen
1209
1210         Reviewed by john.
1211
1212         * WebView.subproj/WebHTMLView.m:
1213         (+[WebHTMLView initialize]): register service "return types" which are types that can be inserted into a WebView
1214         (-[WebHTMLView writeSelectionToPasteboard:types:]): service protocol method, be sure to only write specified types
1215         (-[WebHTMLView readSelectionFromPasteboard:]): new, service protocol method, insert types
1216         (-[WebHTMLView validRequestorForSendType:returnType:]): moved, handle return types
1217
1218 2004-10-11  Darin Adler  <darin@apple.com>
1219
1220         Reviewed by John.
1221
1222         - fixed <rdar://problem/3834130> nil-object-in-dictionary exception seen in -[WebView _elementAtWindowPoint:]
1223
1224         * WebView.subproj/WebView.m: (-[WebView _elementAtWindowPoint:]): Added a check for nil frame.
1225
1226 2004-10-11  Darin Adler  <darin@apple.com>
1227
1228         Reviewed by John.
1229
1230         - fixed <rdar://problem/3834166> <input type=file> sends onchange even when the same file is chosen twice
1231
1232         * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton chooseFilename:]):
1233         Do nothing if filename is the same as before.
1234
1235 2004-10-11  Ken Kocienda  <kocienda@apple.com>
1236
1237         Reviewed by Darin
1238
1239         * WebView.subproj/WebHTMLView.m:
1240         (-[WebTextCompleteController doCompletion]): bridge call to get caret rect at a node
1241         now takes an affinity: caretRectAtNode:offset:affinity:.
1242
1243 2004-10-10  Ken Kocienda  <kocienda@apple.com>
1244
1245         Reviewed by Chris
1246
1247         Fix for this bug:
1248         
1249         <rdar://problem/3814236> REGRESSION (Mail): Can't set the color of text in Mail compose window using drag/drag from color panel
1250
1251         * WebView.subproj/WebHTMLView.m:
1252         (+[WebHTMLView _insertablePasteboardTypes]): Add NSColorPboardType to list.
1253         (-[WebHTMLView _isNSColorDrag:]): New helper. Determines if drag is an NSColor drag.
1254         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): Add a case for NSColor drags,
1255         else do what we did before.
1256         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Add a case for NSColor drags, which creates
1257         a CSS style containing color info and calls the bridge to apply the style. Otherwise, do what we did before.
1258
1259 2004-10-11  Darin Adler  <darin@apple.com>
1260
1261         Reviewed by Ken.
1262
1263         - fixed <rdar://problem/3833848> REGRESSION (133-134): each keydown event is getting sent multiple times
1264
1265         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView performKeyEquivalent:]):
1266         Don't send an event through WebCore if it has already been through once.
1267
1268 2004-10-10  John Sullivan  <sullivan@apple.com>
1269
1270         Reviewed by Ken.
1271         
1272         - fixed <rdar://problem/3777253> Crash in redirect mechanism trying to display error page for bad scheme
1273
1274         * WebView.subproj/WebMainResourceClient.m:
1275         (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
1276         add retain/autorelease to the request returned from call to super. In this case, the return value
1277         was being dealloc'ed before being returned.
1278
1279 2004-10-09  Chris Blumenberg  <cblu@apple.com>
1280
1281         Fixed: 
1282         <rdar://problem/3625352> up and down arrow and page up/down keys don't work to scroll overflow:auto/scroll/overlay areas
1283         <rdar://problem/3397658> scroll wheel does not work to scroll overflow:auto/scroll/overlay areas (RSS)
1284
1285         Reviewed by hyatt.
1286
1287         * Plugins.subproj/WebBaseNetscapePluginStream.m:
1288         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): fixed typo in comment
1289         * Plugins.subproj/WebNetscapePluginStream.m:
1290         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): ditto
1291         * WebView.subproj/WebFramePrivate.h:
1292         * WebView.subproj/WebFrameView.m:
1293         (-[WebFrameView _bridge]): new
1294         (-[WebFrameView scrollToBeginningOfDocument:]): call the bridge to scroll, if that fails, scroll the document view
1295         (-[WebFrameView scrollToEndOfDocument:]): ditto
1296         (-[WebFrameView _pageVertically:]): ditto
1297         (-[WebFrameView _pageHorizontally:]): ditto
1298         (-[WebFrameView _scrollLineVertically:]): ditto
1299         (-[WebFrameView _scrollLineHorizontally:]): ditto
1300         * WebView.subproj/WebHTMLView.m:
1301         (-[WebHTMLView scrollWheel:]): call the bridge to scroll, if that fails, pass to next responder
1302
1303 === Safari-166 ===
1304
1305 2004-10-05  Chris Blumenberg  <cblu@apple.com>
1306
1307         Fixed: <rdar://problem/3827002> assertion failure in WebBaseNetscapePluginStream on abc.go.com
1308
1309         Reviewed by rjw.
1310
1311         * Plugins.subproj/WebBaseNetscapePluginStream.m:
1312         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): avoid assertion failure in dealloc by temporarily setting isTerminated to YES in case we are released in this method
1313         * Plugins.subproj/WebNetscapePluginStream.m:
1314         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): ditto
1315
1316 2004-10-05  John Sullivan  <sullivan@apple.com>
1317
1318         * WebCoreSupport.subproj/WebBridge.m:
1319         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]):
1320         initialize "arguments" var to nil to satisfy compiler on deployment build.
1321
1322 2004-10-05  Richard Williamson   <rjw@apple.com>
1323
1324         Fixed <rdar://problem/3825442> first click lost for Dashboard
1325         Allow dashboard to force acceptsFirstMouse:
1326
1327         Reviewed by Chris.
1328
1329         * WebView.subproj/WebHTMLView.m:
1330         (-[WebHTMLView acceptsFirstMouse:]):
1331         * WebView.subproj/WebView.m:
1332         (-[WebView _dashboardBehavior:]):
1333         * WebView.subproj/WebViewInternal.h:
1334         * WebView.subproj/WebViewPrivate.h:
1335
1336         * WebCoreSupport.subproj/WebImageRenderer.h:
1337         Comment change only
1338
1339 2004-10-05  Chris Blumenberg  <cblu@apple.com>
1340
1341         Fixed: <rdar://problem/3760920> Need to record plugin view instances
1342         
1343         Reviewed by rjw.
1344
1345         * Plugins.subproj/WebPluginController.h:
1346         * Plugins.subproj/WebPluginController.m:
1347         (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): new, creates plug-in view and adds it to global list
1348         (+[WebPluginController isPlugInView:]): new, checks if the plug-in view is in the global list
1349         (-[WebPluginController destroyAllPlugins]): remove the plug-in from the global list 
1350         * Plugins.subproj/WebPluginDocumentView.m:
1351         (-[WebPluginDocumentView setDataSource:]): call [WebPluginController plugInViewWithArguments:fromPluginPackage:]
1352         * WebCoreSupport.subproj/WebBridge.m:
1353         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): ditto
1354         * WebView.subproj/WebFrame.m:
1355         (-[WebFrame _reloadForPluginChanges]): call [WebPluginController isPlugInView:]
1356         * WebView.subproj/WebHTMLView.m:
1357         (-[WebHTMLView addSubview:]): ditto
1358
1359 2004-10-05  David Hyatt  <hyatt@apple.com>
1360
1361         Fix to make selection more like NSTextView.  All gap painting is now done by WebCore, so WebKit no longer
1362         needs to try to fill gaps around text.
1363         
1364         Reviewed by kocienda
1365
1366         * WebCoreSupport.subproj/WebTextRenderer.m:
1367         (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
1368         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):
1369
1370 2004-10-05  Darin Adler  <darin@apple.com>
1371
1372         Reviewed by John.
1373
1374         - fixed <rdar://problem/3577255> custom file icon shows up upside down in <input type=file>
1375
1376         * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton setFilename:]): Added a call to
1377         setFlipped that fixes the problem, even though I don't know why.
1378
1379 2004-10-04  Darin Adler  <darin@apple.com>
1380
1381         Reviewed by Maciej.
1382
1383         - fixed <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window
1384
1385         * WebView.subproj/WebHTMLView.m:
1386         (-[WebHTMLView _selectionStartFontAttributesAsRTF]): Changed to call new bridge method
1387         named fontAttributesForSelectionStart, deleted the method this used to use, and renamed
1388         this to have the word "start" in it.
1389         (-[WebHTMLView copyFont:]): Updated for name change.
1390
1391         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
1392
1393 2004-10-04  Chris Blumenberg  <cblu@apple.com>
1394
1395         * WebView.subproj/WebFrameInternal.h: removed constant declarations that I committed by mistake
1396
1397 2004-10-04  Chris Blumenberg  <cblu@apple.com>
1398
1399         Fixed: <rdar://problem/3798948> NPP_URLNotify is not called if plug-in calls NPN_*URLNotfy
1400         Fixed a number of FIXME's related to notifying plug-ins of loaded pages.
1401
1402         Reviewed by rjw.
1403
1404         * Plugins.subproj/WebBaseNetscapePluginStream.h: 
1405                 - replaced URL ivar with requestURL and responseURL ivars since we need to pass both to plug-ins
1406                 - added sendNotification boolean. Relying on notifyData not being NULL was not information to know whether to call NPP_URLNotify or not.
1407                 - added isTerminated boolean because determining whether or not stream.ndata is NULL is not enough to know if the stream has been cancelled.
1408         * Plugins.subproj/WebBaseNetscapePluginStream.m:
1409         (+[WebBaseNetscapePluginStream reasonForError:]): new, factored out from receivedError:
1410         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): new
1411         (-[WebBaseNetscapePluginStream dealloc]): release new ivars
1412         (-[WebBaseNetscapePluginStream finalize]): added assert
1413         (-[WebBaseNetscapePluginStream setRequestURL:]): new
1414         (-[WebBaseNetscapePluginStream setResponseURL:]): new
1415         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): renamed, use responseURL as it basically did before
1416         (-[WebBaseNetscapePluginStream startStreamWithResponse:]): call renamed method
1417         (-[WebBaseNetscapePluginStream destroyStream]): 
1418                 - do nothing if terminated
1419                 - call NPP_StreamAsFile and NPP_DestroyStream if stream.ndata is not NULL
1420                 - call NPP_URLNotify if sendNotification is YES regardless of value of notifyData
1421         (-[WebBaseNetscapePluginStream receivedError:]): call reasonForError
1422         (-[WebBaseNetscapePluginStream deliverData]): use renamed ivar
1423         * Plugins.subproj/WebBaseNetscapePluginView.h:
1424                 - added observingFrameLoadNotification boolean
1425                 - renamed dictionary ivar to pendingFrameLoads which has WebFrame keys and WebPluginRequest values
1426         * Plugins.subproj/WebBaseNetscapePluginView.m:
1427         (-[WebBaseNetscapePluginView addFrameLoadObserver]): new
1428         (-[WebBaseNetscapePluginView removeFrameLoadObserver]): new
1429         (-[WebBaseNetscapePluginView stop]): call removeFrameLoadObserver
1430         (-[WebBaseNetscapePluginView initWithFrame:]): use renamed pendingFrameLoads ivar
1431         (-[WebBaseNetscapePluginView dealloc]): ditto
1432         (-[WebBaseNetscapePluginView requestWithURLCString:]): set referrer on the request just as IE does
1433         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): 
1434                 - call NPP_URLNotify depending of value of sendNotification
1435                 - call new init method on WebBaseNetscapePluginStream rather then setting variables individually
1436         (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]): new, calls NPP_URLNotify at the right time with the right value
1437         (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithError:]): new, delegate method called from WebFrame
1438         (-[WebBaseNetscapePluginView loadPluginRequest:]): call addFrameLoadObserver
1439         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]): take new sendNotification parameter and pass it
1440         (-[WebBaseNetscapePluginView getURLNotify:target:notifyData:]): pass YES for sendNotification
1441         (-[WebBaseNetscapePluginView getURL:target:]): pass NO for sendNotification
1442         (-[WebBaseNetscapePluginView _postURL:target:len:buf:file:notifyData:sendNotification:allowHeaders:]): take new sendNotification parameter and pass it
1443         (-[WebBaseNetscapePluginView postURLNotify:target:len:buf:file:notifyData:]): pass YES for sendNotification
1444         (-[WebBaseNetscapePluginView postURL:target:len:buf:file:]): pass NO for sendNotification
1445         (-[WebPluginRequest initWithRequest:frameName:notifyData:sendNotification:]): take new sendNotification parameter
1446         (-[WebPluginRequest sendNotification]): new
1447         * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
1448         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
1449         (-[WebNetscapePluginEmbeddedView didStart]): set referrer on the request just as IE does
1450         * Plugins.subproj/WebNetscapePluginRepresentation.m:
1451         (-[WebNetscapePluginRepresentation receivedData:withDataSource:]): set the request URL on the stream
1452         * Plugins.subproj/WebNetscapePluginStream.h:
1453         * Plugins.subproj/WebNetscapePluginStream.m:
1454         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): take new sendNotification parameter and pass it
1455         (-[WebNetscapePluginStream dealloc]): use renamed ivar
1456         (-[WebNetscapePluginStream start]): ditto
1457         * WebView.subproj/WebFrame.m:
1458         (-[WebFrame _setState:]): removed notification posting code. This was only used by WebBaseNetscapePluginView and it was the wrong notification to send.
1459         (-[WebFrame _checkLoadCompleteForThisFrame]): call internal load delegate to tell it that the load has finished
1460         (-[WebFrame _loadItem:withLoadType:]): ditto
1461         (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:formState:]): ditto
1462         (-[WebFrame _setInternalLoadDelegate:]): new
1463         (-[WebFrame _internalLoadDelegate]): new
1464         * WebView.subproj/WebFrameInternal.h:
1465         * WebView.subproj/WebFramePrivate.h:
1466
1467 2004-10-04  Chris Blumenberg  <cblu@apple.com>
1468
1469         Fixed: <rdar://problem/3758113> REGRESSION: Macromedia ColdFusion page doesn't show main content
1470
1471         After bumping up our plug-in version, Flash now sends 2 CRLF's between the headers and body of their POST request. Our code was not prepared for this.
1472
1473         Reviewed by darin.
1474
1475         * Plugins.subproj/WebBaseNetscapePluginView.m:
1476         (-[NSData _web_locationAfterFirstBlankLine]): looks for 2 CRLF's, not for 2 LF's
1477
1478 2004-10-04  Darin Adler  <darin@apple.com>
1479
1480         Reviewed by Ken.
1481
1482         - fixed a potential storage leak when we turn on CGImageRef image rendering
1483
1484         * WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer dealloc]): Fix potential storage leak
1485         by adding [super dealloc], but leak was not real yet because the code is commented out.
1486
1487         - make paste style work with color as part of fix to <rdar://problem/3814237> REGRESSION (Mail):
1488           Copy/paste style does not set color in Mail compose window
1489
1490         * WebView.subproj/WebHTMLView.m:
1491         (-[WebHTMLView _selectionFontAttributes]): Change structure so it's easy to add more attributes.
1492         For now I haven't added any yet.
1493         (-[WebHTMLView _colorAsString:]): Moved this earlier in the file.
1494         (-[WebHTMLView _shadowAsString:]): Ditto.
1495         (-[WebHTMLView _styleFromFontAttributes:]): Add background color, foreground color, and text shadow.
1496
1497 2004-09-30  Richard Williamson   <rjw@apple.com>
1498
1499         Fixed <rdar://problem/3821215> NPN hasMethod and hasProperty functions should take NPObjects, not NPClass
1500
1501         Also changed dashboard regions dictionary to use "control"
1502         for scroller region label, instead of "scroller, per
1503         request from ouch. 
1504                 
1505         Reviewed by Chris.
1506
1507         * Plugins.subproj/npruntime.h:
1508         * WebView.subproj/WebView.m:
1509         (-[WebView _addScrollerDashboardRegions:from:]):
1510
1511 2004-09-30  Chris Blumenberg  <cblu@apple.com>
1512
1513         Fixed: <rdar://problem/3498680> switching back and forth between tabs stops calling anything in a plug-in
1514
1515         Reviewed by darin.
1516
1517         * Plugins.subproj/WebBaseNetscapePluginView.m:
1518         (-[WebBaseNetscapePluginView sendEvent:]): call setWindowIfNecessary because the window may have changed
1519         (-[WebBaseNetscapePluginView updateAndSetWindow]): new
1520         (-[WebBaseNetscapePluginView setWindowIfNecessary]): was setWindow, this method now just sets the window
1521         (-[WebBaseNetscapePluginView start]): call updateAndSetWindow
1522         (-[WebBaseNetscapePluginView viewDidMoveToWindow]): ditto
1523         (-[WebBaseNetscapePluginView viewHasMoved:]): ditto
1524
1525 2004-09-30  Chris Blumenberg  <cblu@apple.com>
1526
1527         Fixed: <rdar://problem/3498668> switching out of tab doesn't send loseFocusEvent to plug-in
1528
1529         Reviewed by rjw.
1530
1531         * Plugins.subproj/WebBaseNetscapePluginView.h:
1532         * Plugins.subproj/WebBaseNetscapePluginView.m:
1533         (-[WebBaseNetscapePluginView setHasFocus:]): new, sends events to plug-in
1534         (-[WebBaseNetscapePluginView becomeFirstResponder]): call setHasFocus
1535         (-[WebBaseNetscapePluginView resignFirstResponder]): ditto 
1536         (-[WebBaseNetscapePluginView viewWillMoveToWindow:]): ditto
1537
1538 2004-09-30  Chris Blumenberg  <cblu@apple.com>
1539
1540         Fixed:
1541         Assertion failure when loading standalone netscape plug-in content.
1542         Document loads of WebKit plug-in content should be cancelled since the plug-in does its own loading.
1543
1544         Reviewed by john.
1545
1546         * Misc.subproj/WebKitErrors.m: removed deprecated method
1547         * Misc.subproj/WebKitErrorsPrivate.h:
1548         * Plugins.subproj/WebNetscapePluginDocumentView.m:
1549         (-[WebNetscapePluginDocumentView setDataSource:]): fixed the assertion statement
1550         * Plugins.subproj/WebPluginDocumentView.h:
1551         * Plugins.subproj/WebPluginDocumentView.m:
1552         (-[WebPluginDocumentView dealloc]): remove retained plug-in
1553         (-[WebPluginDocumentView setDataSource:]): retain the plug-in, cancel the laod
1554
1555 2004-09-29  Chris Blumenberg  <cblu@apple.com>
1556         
1557         Fixed:
1558         <rdar://problem/3763832> Safari-155: Non-Embeded movies fail to open in Cocoa QT plug-in
1559         <rdar://problem/3820517> "*** -[WebPluginPackage NPP_New]: selector not recognized [self = 0x5552c10]"
1560
1561         Reviewed by rjw.
1562
1563         * History.subproj/WebHistoryItem.m:
1564         * Misc.subproj/WebNSViewExtras.h:
1565         * Misc.subproj/WebNSViewExtras.m:
1566         (-[NSView _web_firstResponderCausesFocusDisplay]):
1567         (-[NSView _webView]):
1568         (-[NSView _frame]):
1569         (-[NSView _bridge]):
1570         (-[NSView _dataSource]):
1571         * Plugins.subproj/WebBasePluginPackage.h:
1572         * Plugins.subproj/WebBasePluginPackage.m:
1573         (-[WebBasePluginPackage hash]):
1574         (-[WebBasePluginPackage isQuickTimePlugIn]):
1575         * Plugins.subproj/WebNetscapePluginDocumentView.m:
1576         (-[WebNetscapePluginDocumentView setDataSource:]):
1577         * Plugins.subproj/WebNetscapePluginRepresentation.m:
1578         * Plugins.subproj/WebPluginController.h:
1579         * Plugins.subproj/WebPluginController.m:
1580         (-[WebPluginController initWithDocumentView:]):
1581         (-[WebPluginController addPlugin:]):
1582         (-[WebPluginController destroyAllPlugins]):
1583         (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
1584         (-[WebPluginController webPlugInContainerShowStatus:]):
1585         (-[WebPluginController webPlugInContainerSelectionColor]):
1586         (-[WebPluginController webFrame]):
1587         * Plugins.subproj/WebPluginDatabase.h:
1588         * Plugins.subproj/WebPluginDatabase.m:
1589         (-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]):
1590         (-[WebPluginDatabase refresh]):
1591         (WebPluginDocumentView::while):
1592         * Plugins.subproj/WebPluginDocumentView.h: Added.
1593         * Plugins.subproj/WebPluginDocumentView.m: Added.
1594         (-[WebPluginDocumentView initWithFrame:]):
1595         (-[WebPluginDocumentView dealloc]):
1596         (-[WebPluginDocumentView drawRect:]):
1597         (-[WebPluginDocumentView setDataSource:]):
1598         (-[WebPluginDocumentView setNeedsLayout:]):
1599         (-[WebPluginDocumentView layout]):
1600         (-[WebPluginDocumentView currentWindow]):
1601         (-[WebPluginDocumentView viewWillMoveToWindow:]):
1602         (-[WebPluginDocumentView viewDidMoveToWindow]):
1603         (-[WebPluginDocumentView viewWillMoveToHostWindow:]):
1604         (-[WebPluginDocumentView viewDidMoveToHostWindow]):
1605         (-[WebPluginDocumentView receivedData:withDataSource:]):
1606         (-[WebPluginDocumentView receivedError:withDataSource:]):
1607         (-[WebPluginDocumentView finishedLoadingWithDataSource:]):
1608         (-[WebPluginDocumentView canProvideDocumentSource]):
1609         (-[WebPluginDocumentView documentSource]):
1610         (-[WebPluginDocumentView title]):
1611         * Plugins.subproj/npapi.m:
1612         (NPN_ReleaseVariantValue):
1613         (NPN_GetStringIdentifier):
1614         (NPN_GetStringIdentifiers):
1615         (NPN_GetIntIdentifier):
1616         (NPN_IdentifierIsString):
1617         (NPN_UTF8FromIdentifier):
1618         (NPN_IntFromIdentifier):
1619         (NPN_CreateObject):
1620         (NPN_RetainObject):
1621         (NPN_ReleaseObject):
1622         (NPN_Invoke):
1623         (NPN_InvokeDefault):
1624         (NPN_Evaluate):
1625         (NPN_GetProperty):
1626         (NPN_SetProperty):
1627         (NPN_RemoveProperty):
1628         (NPN_HasProperty):
1629         (NPN_HasMethod):
1630         (NPN_SetException):
1631         (NPN_Call):
1632         * WebCoreSupport.subproj/WebBridge.m:
1633         (-[WebBridge frameRequiredForMIMEType:URL:]):
1634         * WebCoreSupport.subproj/WebViewFactory.m:
1635         * WebKit.exp:
1636         * WebKit.pbproj/project.pbxproj:
1637         * WebView.subproj/WebDebugDOMNode.m:
1638         * WebView.subproj/WebDocumentInternal.h:
1639         * WebView.subproj/WebHTMLView.m:
1640         (-[WebHTMLView initWithFrame:]):
1641         * WebView.subproj/WebHTMLViewPrivate.h:
1642         * WebView.subproj/WebImageRepresentation.h:
1643         * WebView.subproj/WebRenderNode.m:
1644         * WebView.subproj/WebView.m:
1645
1646 2004-09-29  Richard Williamson   <rjw@apple.com>
1647
1648         Fixed <rdar://problem/3779998> bringing window to front or sending to back does not send focus/blur events to JavaScript window object
1649
1650         The fix has two parts, 1) make onblur and onfocus work for windows, 
1651         and 2), allow the dashboard to override WebKit's special key/non-key
1652         behaviors.
1653
1654         Reviewed by Maciej.
1655
1656         * Plugins.subproj/WebBaseNetscapePluginView.m:
1657         (-[WebBaseNetscapePluginView restartNullEvents]):
1658         * WebView.subproj/WebHTMLView.m:
1659         (-[WebHTMLView addMouseMovedObserver]):
1660         (-[WebHTMLView removeMouseMovedObserver]):
1661         * WebView.subproj/WebView.m:
1662         (-[WebView _dashboardBehavior:]):
1663         * WebView.subproj/WebViewInternal.h:
1664         * WebView.subproj/WebViewPrivate.h:
1665
1666 2004-09-29  Maciej Stachowiak  <mjs@apple.com>
1667
1668         Reviewed by John.
1669
1670         - consolidated OS version checks into prefix header
1671
1672         * Misc.subproj/WebFileDatabase.m:
1673         (-[WebFileDatabase _createLRUList:]):
1674         (+[WebFileDatabase _syncLoop:]):
1675         * Misc.subproj/WebKitErrors.m:
1676         (registerErrors):
1677         * Misc.subproj/WebNSObjectExtras.h:
1678         (WebNSRetainCFRelease):
1679         * Misc.subproj/WebNSPasteboardExtras.m:
1680         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
1681         * Misc.subproj/WebUnicode.m:
1682         (_unicodeDirection):
1683         * WebCoreSupport.subproj/WebImageData.h:
1684         * WebCoreSupport.subproj/WebImageRenderer.h:
1685         * WebCoreSupport.subproj/WebKeyGenerator.h:
1686         * WebCoreSupport.subproj/WebNewKeyGeneration.c:
1687         * WebKitPrefix.h:
1688         * WebView.subproj/WebDataSource.m:
1689         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
1690         (-[WebDataSource isLoading]):
1691         * WebView.subproj/WebFrameView.m:
1692         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
1693         * WebView.subproj/WebHTMLView.m:
1694         * WebView.subproj/WebPDFRepresentation.h:
1695         * WebView.subproj/WebPDFRepresentation.m:
1696         * WebView.subproj/WebPDFView.h:
1697         * WebView.subproj/WebPDFView.m:
1698
1699 2004-09-29  Ken Kocienda  <kocienda@apple.com>
1700
1701         Reviewed by Hyatt
1702
1703         Fix for this bug:
1704         
1705         <rdar://problem/3818296> REGRESSION (Mail): centerSelectionInVisibleArea does not work correctly
1706
1707         * WebView.subproj/WebHTMLView.m:
1708         (-[WebHTMLView centerSelectionInVisibleArea:]): Now calls new centerSelectionInVisibleArea
1709         bridge function instead of ensureCaretVisible. Now handles caret selections and range
1710         selections correctly.
1711
1712 2004-09-28  Chris Blumenberg  <cblu@apple.com>
1713
1714         Added timing code so that Doug can time RTF conversion. 
1715
1716         * WebView.subproj/WebHTMLView.m:
1717         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]):
1718         (-[WebHTMLView _attributeStringFromDOMRange:]):
1719
1720 2004-09-28  Richard Williamson   <rjw@apple.com>
1721
1722         <rdar://problem/3817421> add getter for dashboard regions (debugging)
1723         
1724         <rdar://problem/3817417> NSScrollView need autoregions for dashboard
1725         Also KWQScrollBars
1726
1727         Reviewed by Hyatt.
1728
1729         * WebCoreSupport.subproj/WebBridge.m:
1730         (-[WebBridge dashboardRegionsChanged:]):
1731         * WebView.subproj/WebView.m:
1732         (-[WebView _setInitiatedDrag:]):
1733         (-[WebView _addScrollerDashboardRegions:from:]):
1734         (-[WebView _addScrollerDashboardRegions:]):
1735         (-[WebView _dashboardRegions]):
1736         * WebView.subproj/WebViewPrivate.h:
1737
1738 2004-09-27  John Sullivan  <sullivan@apple.com>
1739
1740         - fixed <rdar://problem/3814705> 8A266: Safari authentication dialog "remember password" text should match Mail
1741
1742         * Panels.subproj/English.lproj/WebAuthenticationPanel.nib:
1743         changed "Remember this password" to "Remember this password in my keychain";
1744         this will need to go through CCC for this week's build.
1745
1746 2004-09-27  Chris Blumenberg  <cblu@apple.com>
1747
1748         Fixed: <rdar://problem/3594754> change null event interval from 20 ms to 10 ms to match speed on Windows
1749
1750         Reviewed by John.
1751
1752         * Plugins.subproj/WebBaseNetscapePluginView.m:
1753
1754 2004-09-27  Chris Blumenberg  <cblu@apple.com>
1755
1756         Fixed: <rdar://problem/3502138> text files don't remember scroll position when going back or reloading
1757
1758         Reviewed by john.
1759
1760         * WebView.subproj/WebTextView.m:
1761         (-[WebTextView layout]): implemented, call sizeToFit, without this scrollPoint: won't work
1762
1763 2004-09-27  John Sullivan  <sullivan@apple.com>
1764
1765         Reviewed by Ken.
1766
1767         - WebKit part of fix for <rdar://problem/3734466> ER: Support standard editing keystrokes 
1768         like Cmd-B while editing rich text
1769
1770         * WebView.subproj/WebHTMLView.m:
1771         (-[WebHTMLView _toggleBold]):
1772         new method, toggles font-weight from "bold" to "normal"
1773         (-[WebHTMLView _toggleItalic]):
1774         new method, toggles font-style from "italic" to "normal"
1775         (-[WebHTMLView _handleStyleKeyEquivalent:]):
1776         new method, if the new preference is set and we're in an editable state, check for standard
1777         key equivalents for toggling styles (just command-B and command-I for now).
1778         (-[WebHTMLView performKeyEquivalent:]):
1779         Moved in file, now calls _handleStyleKeyEquivalent:
1780         
1781         * WebView.subproj/WebPreferenceKeysPrivate.h:
1782         new preference key WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
1783         * WebView.subproj/WebPreferences.m:
1784         (+[WebPreferences initialize]):
1785         initial value of WebKitRespectStandardStyleKeyEquivalentsPreferenceKey is NO (maybe we'll
1786         change our minds about this, but this is more guaranteed to be backward-compatible)
1787         (-[WebPreferences respectStandardStyleKeyEquivalents]):
1788         read WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
1789         (-[WebPreferences setRespectStandardStyleKeyEquivalents:]):
1790         write WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
1791         
1792         * WebView.subproj/WebPreferencesPrivate.h:
1793         declare getter and setter
1794         
1795         * English.lproj/StringsNotToBeLocalized.txt:
1796         updated for these and other recent changes
1797
1798 2004-09-27  Chris Blumenberg  <cblu@apple.com>
1799
1800         Fixed: <rdar://problem/3806649> assertion failure after control-click of webcam
1801
1802         Reviewed by john.
1803
1804         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1805         (-[WebDefaultUIDelegate contextMenuItemsForElement:]): don't provide "Copy Image" if the image is not fully loaded
1806
1807 2004-09-27  Chris Blumenberg  <cblu@apple.com>
1808
1809         Fixed: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil to dictionary in dragging code
1810
1811         Reviewed by john.
1812
1813         * WebView.subproj/WebHTMLView.m:
1814         (-[WebHTMLView _setMouseDownEvent:]): new
1815         (-[WebHTMLView acceptsFirstMouse:]): call _setMouseDownEvent
1816         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
1817         (-[WebHTMLView mouseDown:]): ditto
1818         (-[WebHTMLView _delegateDragSourceActionMask]): removed temp fix, assert that the mouse event is not nil
1819
1820 2004-09-27  Darin Adler  <darin@apple.com>
1821
1822         * WebKit.pbproj/project.pbxproj: Added WebDashboardRegion.h as a private header.
1823
1824 2004-09-24  Chris Blumenberg  <cblu@apple.com>
1825
1826         Reviewed by rjw.
1827
1828         * WebView.subproj/WebHTMLView.m:
1829         (-[WebHTMLView _selectedArchive]): added timing code for copying markup
1830
1831 === Safari-165 ===
1832
1833 2004-09-24  Chris Blumenberg  <cblu@apple.com>
1834
1835         Temp fix for: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil to dictionary in dragging code
1836
1837         Reviewed by john.
1838
1839         * WebView.subproj/WebHTMLView.m:
1840         (-[WebHTMLView _delegateDragSourceActionMask]): return none if the mouse down event is nil
1841
1842 2004-09-24  Ken Kocienda  <kocienda@apple.com>
1843
1844         Reviewed by John
1845
1846         Fix for this bug:
1847         
1848         <rdar://problem/3813917> REGRESSION (125-163): The font panel will change the font of any web page
1849         
1850         We were doing a laughably bad job at preventing edits in documents that were not editable.
1851         This change fixes the specific case of the bug mentioned above, and makes an attempt to
1852         fix similar bugs by checking for whether the view is in editing mode before making edits.
1853
1854         * WebView.subproj/WebHTMLView.m:
1855         (-[WebHTMLView _canEdit]): Renamed from _canType. Used in many more places in the code now.
1856         (-[WebHTMLView _isMoveDrag]): Change around code to make the meaning more clear. This one
1857         was actually performing a correct check before.
1858         (-[WebHTMLView keyDown:]): Renamed _canType to _canEdit.
1859         (-[WebHTMLView paste:]): Don't beep if can't paste. This matches AppKit. Any paste-related beeps
1860         will come from failure to handle key equivalent. Menu validation will kick in to dim menu.
1861         (-[WebHTMLView _applyStyleToSelection:]): Bail if !_canEdit.
1862         (-[WebHTMLView pasteAsPlainText:]): Ditto.
1863         (-[WebHTMLView _alignSelectionUsingCSSValue:]): Ditto.
1864         (-[WebHTMLView insertNewline:]): Ditto.
1865         (-[WebHTMLView insertParagraphSeparator:]): Ditto.
1866         (-[WebHTMLView _changeWordCaseWithSelector:]): Ditto.
1867         (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): Ditto.
1868         (-[WebHTMLView complete:]): Ditto.
1869         (-[WebHTMLView _changeSpellingToWord:]): Ditto. Some code rearranging to eliminate bridge local variable.
1870         (-[WebHTMLView ignoreSpelling:]): Ditto.
1871         (-[WebHTMLView yank:]): Bail if !_canEdit.
1872         (-[WebHTMLView yankAndSelect:]): Ditto.
1873         (-[WebHTMLView deleteToMark:]): Ditto.
1874         (-[WebHTMLView swapWithMark:]): Ditto.
1875         (-[WebHTMLView transpose:]): Ditto.
1876         (-[WebHTMLView _updateFontPanel]): Ditto. Some code rearranging to eliminate bridge local variable.
1877         (-[WebHTMLView setMarkedText:selectedRange:]): Bail if !_canEdit.
1878         (-[WebHTMLView _insertText:selectInsertedText:]): Ditto. Some code rearranging to eliminate bridge local variable.
1879         * WebView.subproj/WebHTMLViewPrivate.h: Renamed _canType to _canEdit.
1880
1881 2004-09-24  Ken Kocienda  <kocienda@apple.com>
1882
1883         Reviewed by me
1884
1885         * WebCoreSupport.subproj/WebDashboardRegion.h: Check in file copied from WebCore.
1886
1887 2004-09-23  Maciej Stachowiak  <mjs@apple.com>
1888
1889         Reviewed by Darin.
1890
1891         <rdar://problem/3685235> REGRESSION (Mail): links are not properly editable
1892         
1893         * WebView.subproj/WebDefaultUIDelegate.m: By default, don't allow
1894         link dragging if the element under the mouse pointer is
1895         editable. This way, you can drag-select starting inside a link.
1896
1897 2004-09-23  John Sullivan  <sullivan@apple.com>
1898
1899         Reviewed by Chris.
1900         
1901         - WebKit part of fix for <rdar://problem/3415264> 
1902         Default encoding should initially be set to current system encoding
1903
1904         * WebView.subproj/WebPreferences.m:
1905         (-[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]):
1906         new SPI that sets the initial value of the default text encoding to
1907         be the system encoding, with a special-case conversion of MacRoman->Latin1.
1908         This is not done automatically for WebKit clients for fear of breaking them.
1909         
1910         * WebView.subproj/WebPreferencesPrivate.h:
1911         declare new SPI
1912
1913 2004-09-23  Darin Adler  <darin@apple.com>
1914
1915         Reviewed by Ken.
1916
1917         - fixed <rdar://problem/3811584> REGRESSION (85-125): iframe.document undefined in function called from button onclick; works from img onclick
1918
1919         The fix is to not let "defers callbacks" have any effect on loading "about:blank".
1920         I also had to fix one bug in WebCore that could then be reproduced by going to "about:blank"
1921         while using a button.
1922
1923         * WebView.subproj/WebMainResourceClient.m:
1924         (-[WebMainResourceClient connection:didReceiveResponse:]): Loosen asserts to allow this callback
1925         for the specific case of "about:blank" even if the defers callbacks flag is true.
1926         (-[WebMainResourceClient connectionDidFinishLoading:]): Ditto.
1927         (-[WebMainResourceClient loadWithRequestNow:]): Added NSURLRequest return value. Loosened asserts
1928         as above. Changed code to return a new request if we get a new request back that is not empty
1929         when the defers callbacks flag is true.
1930         (-[WebMainResourceClient loadWithRequest:]): If the defers callbacks flag is set, but the
1931         URL is one that gives us an empty document, then do the work right away, don't defer it.
1932
1933 2004-09-23  Darin Adler  <darin@apple.com>
1934
1935         - fixed B&I builds by checking in generated file
1936
1937         * WebCoreSupport.subproj/WebDashboardRegion.h: Added.
1938
1939 2004-09-22  Richard Williamson   <rjw@apple.com>
1940
1941         Pass dashboard regions to UI delegate.
1942
1943         Reviewed by Hyatt.
1944
1945         * WebCoreSupport.subproj/WebBridge.m:
1946         (-[WebBridge dashboardRegionsChanged:]):
1947         * WebView.subproj/WebUIDelegatePrivate.h:
1948         * copy-webcore-files-to-webkit:
1949
1950 2004-09-22  Chris Blumenberg  <cblu@apple.com>
1951
1952         Fixed build that I just broke.
1953
1954         * WebView.subproj/WebHTMLView.m:
1955         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]):
1956
1957 2004-09-22  Chris Blumenberg  <cblu@apple.com>
1958
1959         <rdar://problem/3812091> REGRESSION (Mail): double-clicked word is not smart inserted on drag
1960
1961         Reviewed by john.
1962
1963         * WebView.subproj/WebHTMLView.m:
1964         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): pass value for smartMove
1965
1966 2004-09-22  Chris Blumenberg  <cblu@apple.com>
1967
1968         Fixed:
1969         <rdar://problem/3667301> Frequent crashes in Mail when viewing HTML messages (CFURLGetByteRangeForComponent)
1970         <rdar://problem/3810354> WebResourceLoadDelegate can't refuse requests by returning nil; code asserts/crashes instead
1971
1972         Reviewed by rjw.
1973
1974         * WebCoreSupport.subproj/WebSubresourceClient.m:
1975         (+[WebSubresourceClient startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]): removed broken code that handled loadWithRequest returning NO
1976         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1977         (-[WebBaseResourceHandleDelegate loadWithRequest:]): if nil is returned from the client for willSendRequest, report the cancelled error and return
1978
1979 2004-09-22  Ken Kocienda  <kocienda@apple.com>
1980
1981         Reviewed by Darin
1982
1983         * WebView.subproj/WebFrameView.m:
1984         (-[WebFrameView _webcore_effectiveFirstResponder]): New function to yield the correct responder
1985         to check for firstResponder-ness before calling makeFirstResonder. This helps to prevent 
1986         unwanted firstResponder switching.
1987         * WebView.subproj/WebView.m:
1988         (-[WebView _webcore_effectiveFirstResponder]): Ditto.
1989
1990 2004-09-21  Chris Blumenberg  <cblu@apple.com
1991
1992         Fixed:
1993         <rdar://problem/3735071> REGRESSION (Mail): WebCore Editing must do smart paste
1994         <rdar://problem/3799163> REGRESSION (Mail): Deleting a word doesn't delete whitespace
1995
1996         Reviewed by darin.
1997
1998         * WebView.subproj/WebDataSource.m:
1999         (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): pass NO for smartReplace
2000         * WebView.subproj/WebHTMLView.m:
2001         (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
2002         (-[WebHTMLView _changeSpellingFromMenu:]): pass NO for smartReplace
2003         (-[WebHTMLView pasteboardTypesForSelection]): include WebSmartPastePboardType when _canSmartCopyOrDelete return YES
2004         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): ditto
2005         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
2006         (-[WebHTMLView delete:]): call _deleteSelection
2007         (-[WebHTMLView cut:]): don't call delegate twice, call _deleteRange to delete
2008         (-[WebHTMLView pasteAsPlainText:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
2009         (-[WebHTMLView _changeWordCaseWithSelector:]): pass NO for smartReplace
2010         (-[WebHTMLView deleteBackward:]): call _deleteSelection when there is a selected range
2011         (-[WebHTMLView _changeSpellingToWord:]): pass NO for smartReplace
2012         (-[WebHTMLView deleteToMark:]): pass NO for smartDeleteOK
2013         (-[WebHTMLView transpose:]): pass NO for smartReplace
2014         (-[WebHTMLView _shouldDeleteRange:]): moved
2015         (-[WebHTMLView _deleteRange:preflight:killRing:prepend:smartDeleteOK:]): moved, handle smartDelete
2016         (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): moved
2017         (-[WebHTMLView _deleteSelection]): new
2018         (-[WebHTMLView _canSmartReplaceWithPasteboard]): new
2019         (-[WebHTMLView _canSmartCopyOrDelete]): new
2020         (-[WebHTMLView setMarkedText:selectedRange:]): pass NO for smartReplace
2021         (-[WebHTMLView _discardMarkedText]): call _deleteSelection
2022         (-[WebTextCompleteController _insertMatch:]): pass NO for smartReplace
2023         (-[WebTextCompleteController endRevertingChange:moveLeft:]): pass NO for smartReplace
2024         * WebView.subproj/WebHTMLViewInternal.h:
2025         * WebView.subproj/WebView.m:
2026         (-[WebView _commonInitializationWithFrameName:groupName:]): set smartInsertDeleteEnabled to YES
2027         (-[WebView replaceSelectionWithNode:]): pass NO for smartReplace
2028         (-[WebView replaceSelectionWithText:]): pass NO for smartReplace
2029         (-[WebView replaceSelectionWithMarkupString:]): pass NO for smartReplace
2030         (-[WebView deleteSelection]): call _deleteSelection on WebHTMLView
2031
2032 2004-09-21  John Sullivan  <sullivan@apple.com>
2033
2034         Reviewed by Darin.
2035
2036         - WebKit part of fix for <rdar://problem/3618274> REGRESSION (125-135): 
2037         Option-tab doesn't always work as expected
2038
2039         * WebCoreSupport.subproj/WebBridge.m:
2040         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
2041         Don't set WebCoreKeyboardAccessFull when setting WebCoreKeyboardAccessTabsToLinks
2042         after all; these need to be tested independently to get the option-tab behavior
2043         correct.
2044
2045 2004-09-21  John Sullivan  <sullivan@apple.com>
2046
2047         * WebView.subproj/WebHTMLView.m:
2048         (-[WebHTMLView doCommandBySelector:]):
2049         Commented out part of previous change; it breaks Mail editing until Mail
2050         fixes bug 3810158.
2051
2052 2004-09-21  John Sullivan  <sullivan@apple.com>
2053
2054         Reviewed by Ken.
2055
2056         * WebView.subproj/WebHTMLView.m:
2057         (-[WebHTMLView doCommandBySelector:]):
2058         Fix build failure from previous checkin, d'oh! Didn't set up webview variable.
2059
2060 2004-09-21  John Sullivan  <sullivan@apple.com>
2061
2062         Reviewed by Ken.
2063         
2064         - fixed <rdar://problem/3809477> WebHTMLView needs to pass doCommandBySelector through delegate
2065
2066         * WebView.subproj/WebHTMLView.m:
2067         (-[WebHTMLView doCommandBySelector:]):
2068         Call through to editing delegate. If editing delegate returns YES, don't call super.
2069
2070         * WebView.subproj/WebDefaultEditingDelegate.m:
2071         (-[WebDefaultEditingDelegate webView:doCommandBySelector:]):
2072         default implementation (which was never called) was returning YES, but it should
2073         return NO to signal that it didn't handle the selector.
2074         
2075 2004-09-21  Chris Blumenberg  <cblu@apple.com>
2076
2077         Fixed: <rdar://problem/3647229> Safari does not play inline Windows Media Content on some sites (miggy.net and ministryofsound.com)
2078
2079         Reviewed by john.
2080
2081         * Plugins.subproj/WebBaseNetscapePluginView.m:
2082         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
2083         (-[WebNetscapePluginEmbeddedView initWithFrame:plugin:URL:baseURL:MIMEType:attributeKeys:attributeValues:]): set the plug-in before calling setting the attributes, so we can avoid passing certain attributes to the WMP plug-in that cause it to crash
2084
2085 2004-09-20  Chris Blumenberg  <cblu@apple.com>
2086
2087         Fixed: <rdar://problem/3781290> REGRESSION (Mail): Crash in ReplaceSelectionCommandImpl attaching file to new message
2088
2089         Reviewed by kocienda.
2090
2091         * WebView.subproj/WebView.m:
2092         (-[WebView setEditable:]): call updateSelectionFromEmpty on the bridge if there is no selection
2093
2094 2004-09-20  Chris Blumenberg  <cblu@apple.com>
2095
2096         Changes to implement renamed bridge methods.
2097
2098         Reviewed by darin.
2099
2100         * ChangeLog:
2101         * DOM.subproj/WebDOMOperations.m:
2102         (-[DOMDocument URLWithAttributeString:]): call renamed bridge method
2103         * WebCoreSupport.subproj/WebBridge.m:
2104         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): take 2 parameter arrays rather than 1 which will have to be parsed
2105         (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): ditto
2106
2107 2004-09-20  Darin Adler  <darin@apple.com>
2108
2109         Reviewed by Chris.
2110
2111         * WebView.subproj/WebFramePrivate.h: Added back.
2112         * WebView.subproj/WebFrameViewPrivate.h: Removed.
2113
2114 2004-09-20  Darin Adler  <darin@apple.com>
2115
2116         Reviewed by Ken.
2117
2118         - fixed <rdar://problem/3655360> REGRESSION (Mail): Ctrl-V emacs key binding, -pageDown: method, unimplemented (and pageUp, and selection-modifying versions)
2119         - fixed <rdar://problem/3792138> REGRESSION (Mail): Spell checker doesn't check current selected word
2120
2121         * WebView.subproj/WebFrameViewInternal.h: Moved WebFrameViewPrivate inside the WebFrameView.m file.
2122         Removed a bunch of methods that don't need to be seen in other files, and added _verticalPageScrollDistance.
2123         * WebView.subproj/WebFrameViewPrivate.h: Removed. Renamed to WebFrameViewInternal.h.
2124         * WebView.subproj/WebFrameView.m:
2125         (-[WebFrameView _verticalKeyboardScrollDistance]): Move in the file because of internal vs. private.
2126         (-[WebFrameView _shouldDrawBorder]): Ditto.
2127         (-[WebFrameView _tile]): Ditto.
2128         (-[WebFrameView _verticalPageScrollDistance]): Added. Separate method so it can be called
2129         by the code to implement pageDown:.
2130         (-[WebFrameView _drawBorder]): Move in the file because of internal vs. private.
2131         (-[WebFrameView _goBack]): Ditto.
2132         (-[WebFrameView _goForward]): Ditto.
2133         (-[WebFrameView _scrollVerticallyBy:]): Ditto.
2134         (-[WebFrameView _scrollHorizontallyBy:]): Ditto.
2135         (-[WebFrameView _horizontalKeyboardScrollDistance]): Ditto.
2136         (-[WebFrameView _horizontalPageScrollDistance]): Added. Separate method for consistency with
2137         vertical method above.
2138         (-[WebFrameView _pageVertically:]): Moved and changed to use _verticalPageScrollDistance.
2139         (-[WebFrameView _pageHorizontally:]): Moved and changed to use _horizontalPageScrollDistance.
2140         (-[WebFrameView _scrollLineVertically:]): Move in the file because of internal vs. private.
2141         (-[WebFrameView _scrollLineHorizontally:]): Ditto.
2142         (-[WebFrameView scrollPageUp:]): Ditto.
2143         (-[WebFrameView scrollPageDown:]): Ditto.
2144         (-[WebFrameView scrollLineUp:]): Ditto.
2145         (-[WebFrameView scrollLineDown:]): Ditto.
2146         (-[WebFrameView _firstResponderIsControl]): Ditto.
2147         (-[WebFrameView keyDown:]): Changed to eliminate _pageLeft, _lineLeft, _pageRight, and _lineRight.
2148
2149         * WebView.subproj/WebDataSource.m: Use WebFrameView.h instead of WebFrameViewPrivate.h.
2150
2151         * WebView.subproj/WebHTMLView.m:
2152         (-[WebHTMLView _alterCurrentSelection:verticalDistance:]): Added.
2153         (-[WebHTMLView moveToBeginningOfDocument:]): Use WebSelectToDocumentBoundary.
2154         (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
2155         (-[WebHTMLView moveToEndOfDocument:]): Ditto.
2156         (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
2157         (-[WebHTMLView moveParagraphBackwardAndModifySelection:]): Added.
2158         (-[WebHTMLView moveParagraphForwardAndModifySelection:]): Added.
2159         (-[WebHTMLView pageUp:]): Added.
2160         (-[WebHTMLView pageDown:]): Added.
2161         (-[WebHTMLView pageUpAndModifySelection:]): Added.
2162         (-[WebHTMLView pageDownAndModifySelection:]): Added.
2163         (-[WebHTMLView showGuessPanel:]): Changed to call advanceToNextMisspellingStartingJustBeforeSelection.
2164         This fixes the problem with spell checking.
2165
2166         * WebView.subproj/WebImageView.m:
2167         (-[WebImageView webView]): Changed to use _web_parentWebView.
2168         (-[WebImageView menuForEvent:]): Changed to use [self webView].
2169         (-[WebImageView mouseDown:]): Ditto.
2170         (-[WebImageView mouseDragged:]): Ditto.
2171         (-[WebImageView draggedImage:endedAt:operation:]): Ditto.
2172
2173         * WebView.subproj/WebTextView.m:
2174         (-[WebTextView _textSizeMultiplierFromWebView]): Changed to use _web_parentWebView.
2175         (-[WebTextView menuForEvent:]): Ditto.
2176         (-[WebTextView drawPageBorderWithSize:]): Ditto.
2177         (-[WebTextView knowsPageRange:]): Ditto.
2178
2179         * Plugins.subproj/WebPluginDatabase.m: Updated filename of WebFrameViewInternal.h.
2180         * WebCoreSupport.subproj/WebBridge.m: Ditto.
2181         * WebKit.pbproj/project.pbxproj: Ditto.
2182         * WebView.subproj/WebFrame.m: Ditto.
2183         * WebView.subproj/WebView.m: Ditto.
2184         * Misc.subproj/WebNSViewExtras.m: Ditto.
2185
2186 2004-09-20  Darin Adler  <darin@apple.com>
2187
2188         Reviewed by Ken.
2189
2190         - added helper method _web_parentWebView so fewer files need to get at WebFrame private methods
2191
2192         * Misc.subproj/WebNSViewExtras.h: Added _web_parentWebView.
2193         * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_parentWebView]): Added.
2194
2195 === Safari-164 ===
2196
2197 2004-09-17  Chris Blumenberg  <cblu@apple.com>
2198         
2199         Fixed:
2200         <rdar://problem/3805757> don't unnecessarily put RTFD on the pasteboard
2201         <rdar://problem/3805756> strip attachments before generating RTF
2202
2203         Reviewed by john.
2204
2205         * WebView.subproj/WebHTMLView.m:
2206         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): only put RTFD on the pasteboard if it has attachments, strip attachments when writing RTF
2207
2208 2004-09-16  Darin Adler  <darin@apple.com>
2209
2210         Reviewed by John.
2211
2212         - fixed <rdar://problem/3804648> 8A262: Safari crashed in -[WebView(WebPrivate) _editingDelegateForwarder] inside QuickTime Cocoa Plug-in during WebView deallocation
2213
2214         * WebView.subproj/WebView.m: (-[WebView _editingDelegateForwarder]):
2215         Check _private for nil before dereferencing it.
2216
2217 2004-09-16  Chris Blumenberg  <cblu@apple.com>
2218
2219         Fixed: <rdar://problem/3779150> REGRESSION: images not copied when copying HTML in Safari and pasting into TextEdit
2220
2221         Reviewed by john.
2222
2223         * WebView.subproj/WebHTMLView.m:
2224         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): use RTFDFromRange:: for RTFD
2225         * WebView.subproj/WebHTMLViewPrivate.h:
2226
2227 2004-09-15  Darin Adler  <darin@apple.com>
2228
2229         Reviewed by John.
2230
2231         - fixed assertion I saw using the font panel
2232
2233         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _colorAsString:]):
2234         Convert color space before trying to get R, G, and B components.
2235
2236 2004-09-15  Chris Blumenberg  <cblu@apple.com>
2237
2238         Fixed: <rdar://problem/3802232> REGRESSION (Mail): WebCore Editing must do smart copy
2239         
2240         Reviewed by kocienda.
2241
2242         * WebView.subproj/WebHTMLView.m:
2243         (-[WebHTMLView _writeSelectionToPasteboard:]): call instance method not class method to get pasteboard types since the types depends on the current selection granularity
2244         (-[WebHTMLView pasteboardTypesForSelection]): if the selection granularity is "word" include the smart pasteboard type
2245         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): put nil on the pasteboard for smart copy
2246
2247 2004-09-14  Darin Adler  <darin@apple.com>
2248
2249         Reviewed by Maciej.
2250
2251         - fixed <rdar://problem/3788894> REGRESSION (Mail): ctrl-t emacs key binding does not work (transpose)
2252         - fixed <rdar://problem/3798946> REGRESSION (Mail): Cursor does not disappear when typing
2253
2254         * WebView.subproj/WebHTMLView.m:
2255         (-[WebHTMLView keyDown:]): Hide cursor by calling setHiddenUntilMouseMoves:YES.
2256         (-[WebHTMLView transpose:]): Added.
2257
2258 2004-09-14  Richard Williamson   <rjw@apple.com>
2259
2260         1.  Add class parameter to object allocation function.  This is somewhat redundant, given that
2261         the allocation function is in the class function vector, but people wanted to use the same
2262         allocation function for different classes.
2263         
2264         2.  Renamed NPN_Class to NPN_Invoke to match the name in the function vector.
2265         
2266         3.  Add support for a default function on an object.  This is a feature that ActiveX supports,
2267         and will allow JavaScript code to be written that will look exactly the same for both ActiveX
2268         plugins and Netscape or WebKit plugins.  There are implementations included for the 'C' and
2269         'Objective-C' bindings.
2270         
2271         There bugs are covered by
2272         
2273         <rdar://problem/3776343> Support for default functions in the JavaScript bindings
2274         <rdar://problem/3779186> NPN_Call needs to be renamed to NPN_Invoke
2275         <rdar://problem/3674754> Need to implement latest npruntime.h
2276
2277         Reviewed by John.
2278
2279         * Plugins.subproj/WebNetscapePluginPackage.m:
2280         (-[WebNetscapePluginPackage load]):
2281         * Plugins.subproj/WebScriptObject.h:
2282         * Plugins.subproj/npfunctions.h:
2283         * Plugins.subproj/npruntime.h:
2284
2285 2004-09-13  Richard Williamson   <rjw@apple.com>
2286
2287         D'oh.  How many times can I screw up a simple fix!
2288
2289         * WebCoreSupport.subproj/WebTextRenderer.m:
2290         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
2291
2292 2004-09-13  Richard Williamson   <rjw@apple.com>
2293
2294         Fixed snafu from 3782533 checkin.
2295         
2296         Reviewed by John.
2297
2298         * WebCoreSupport.subproj/WebTextRenderer.m:
2299         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
2300
2301 2004-09-12  Chris Blumenberg  <cblu@apple.com>
2302
2303         Support for: <rdar://problem/3794790> drop rate or time remaining from download status when window is too small to fit it
2304
2305         Reviewed by john.
2306
2307         * Misc.subproj/WebStringTruncator.h:
2308         * Misc.subproj/WebStringTruncator.m:
2309         (+[WebStringTruncator widthOfString:font:]): new
2310
2311 2004-09-10  Richard Williamson   <rjw@apple.com>
2312
2313         Fixed <rdar://problem/3782533> CrashTracer: .1459 crashes at com.apple.WebKit: -[WebTextRenderer initWithFont:usingPrinterFont:] + 0x138
2314
2315         We were explicitly failing when we encountered deprecated fonts.
2316         (Those with unsupported glyph packings).
2317         Deprecated fonts should only appear on a system that have 
2318         stuff migrated from OS 9.  Ugh, thats probably why we've never seen
2319         the problem here.
2320         
2321         Reviewed by John.
2322
2323         * WebCoreSupport.subproj/WebTextRenderer.m:
2324         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
2325
2326 2004-09-10  John Sullivan  <sullivan@apple.com>
2327
2328         Reviewed by Chris.
2329         
2330         - added _isFrameSet as a private method, so it can be used in WebBrowser.
2331         This is needed to merge the fix for 3123987 to SUPanNavy.
2332
2333         * WebView.subproj/WebFrame.m:
2334         (-[WebFrame _isFrameSet]):
2335         new method
2336         
2337         * WebView.subproj/WebFramePrivate.h:
2338         declare new method
2339
2340 2004-09-09  Chris Blumenberg  <cblu@apple.com>
2341
2342         Support for: <rdar://problem/3795485> debug menu item to enable RSS animation on first layout
2343
2344         Reviewed by rjw.
2345
2346         * WebCoreSupport.subproj/WebBridge.m:
2347         (-[WebBridge didFirstLayout]): new
2348         * WebView.subproj/WebDefaultFrameLoadDelegate.m:
2349         (-[WebDefaultFrameLoadDelegate webView:didFirstLayoutInFrame:]): new
2350         * WebView.subproj/WebViewPrivate.h:
2351
2352 2004-09-09  Richard Williamson   <rjw@apple.com>
2353
2354         Alternate implementation of image rendering.  Use CGImageRefs instead
2355         of NSImages.
2356         
2357         Mostly works, but currently disabled because of issues w/ CG.
2358         
2359         Reviewed by Chris.
2360
2361         * ChangeLog:
2362         * WebCoreSupport.subproj/WebImageData.h: Added.
2363         * WebCoreSupport.subproj/WebImageData.m: Added.
2364         (-[WebImageData _commonTermination]):
2365         (-[WebImageData dealloc]):
2366         (-[WebImageData finalize]):
2367         (-[WebImageData copyWithZone:]):
2368         (-[WebImageData numberOfImages]):
2369         (-[WebImageData currentFrame]):
2370         (-[WebImageData _invalidateImages]):
2371         (-[WebImageData imageAtIndex:]):
2372         (-[WebImageData incrementalLoadWithBytes:length:complete:]):
2373         (drawPattern):
2374         (-[WebImageData tileInRect:fromPoint:context:]):
2375         (-[WebImageData isNull]):
2376         (-[WebImageData size]):
2377         (-[WebImageData _frameDuration]):
2378         (-[WebImageData _repetitionCount]):
2379         (-[WebImageData isAnimationFinished]):
2380         (+[WebImageData stopAnimationsInView:]):
2381         (-[WebImageData addAnimatingRenderer:inView:]):
2382         (-[WebImageData removeAnimatingRenderer:]):
2383         (-[WebImageData _stopAnimation]):
2384         (-[WebImageData _nextFrame:]):
2385         (-[WebImageData animate]):
2386         * WebCoreSupport.subproj/WebImageRenderer.h:
2387         * WebCoreSupport.subproj/WebImageRenderer.m:
2388         (-[WebImageRenderer initWithMIMEType:]):
2389         (-[WebImageRenderer initWithData:MIMEType:]):
2390         (-[WebImageRenderer initWithContentsOfFile:]):
2391         (-[WebImageRenderer dealloc]):
2392         (-[WebImageRenderer copyWithZone:]):
2393         (-[WebImageRenderer retainOrCopyIfNeeded]):
2394         (-[WebImageRenderer resize:]):
2395         (-[WebImageRenderer size]):
2396         (-[WebImageRenderer MIMEType]):
2397         (-[WebImageRenderer frameCount]):
2398         (-[WebImageRenderer isNull]):
2399         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
2400         (-[WebImageRenderer drawImageInRect:fromRect:]):
2401         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
2402         (-[WebImageRenderer tileInRect:fromPoint:context:]):
2403         (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
2404         (+[WebImageRenderer stopAnimationsInView:]):
2405         (-[WebImageRenderer stopAnimation]):
2406         (-[WebImageRenderer targetAnimationRect]):
2407         (-[WebImageRenderer increaseUseCount]):
2408         (-[WebImageRenderer decreaseUseCount]):
2409         (-[WebImageRenderer flushRasterCache]):
2410         (-[WebImageRenderer imageRef]):
2411         (-[WebImageRenderer TIFFRepresentation]):
2412         (-[WebImageRenderer image]):
2413         * WebCoreSupport.subproj/WebImageRendererFactory.m:
2414         (-[WebImageRendererFactory imageRendererWithMIMEType:]):
2415         (-[WebImageRendererFactory imageRendererWithData:MIMEType:]):
2416         (-[WebImageRendererFactory imageRendererWithSize:]):
2417         (-[WebImageRendererFactory imageRendererWithName:]):
2418         * WebKit.pbproj/project.pbxproj:
2419         * WebView.subproj/WebImageView.m:
2420         (-[WebImageView image]):
2421
2422 === Safari-163 ===
2423
2424 2004-09-09  Maciej Stachowiak  <mjs@apple.com>
2425
2426         - rolled out last two changes, they seem to cause a performance regression
2427
2428         * WebView.subproj/WebHTMLView.m:
2429         (-[WebHTMLView firstRectForCharacterRange:]):
2430
2431 2004-09-09  Maciej Stachowiak  <mjs@apple.com>
2432
2433         - fixed build
2434
2435         * WebView.subproj/WebHTMLView.m:
2436         (-[WebHTMLView firstRectForCharacterRange:]):
2437
2438 2004-09-08  Maciej Stachowiak  <mjs@apple.com>
2439
2440         Reviewed by Dave.
2441
2442         WebKit part of fix for:
2443         
2444         <rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
2445
2446         * WebView.subproj/WebHTMLView.m:
2447         (-[WebHTMLView firstRectForCharacterRange:]): Call the appropriate new bridge method,
2448         and translate to screen coordinates.
2449
2450 2004-09-09  Darin Adler  <darin@apple.com>
2451
2452         Reviewed by Ken.
2453
2454         - fixed <rdar://problem/3790526> mark-related methods not implemented (needed for people with them in their key bindings files)
2455
2456         * WebKit.pbproj/project.pbxproj: Update MACOSX_DEPLOYMENT_TARGET to 10.3 and add -fobjc-exceptions
2457         so we can use new exceptions.
2458
2459         * WebView.subproj/WebHTMLView.m:
2460         (-[WebHTMLView setMark:]): Added.
2461         (unionDOMRanges): Added.
2462         (-[WebHTMLView deleteToMark:]): Added.
2463         (-[WebHTMLView selectToMark:]): Added.
2464         (-[WebHTMLView swapWithMark:]): Added.
2465         (-[WebHTMLView markedRange]): Updated for change to bridge method names.
2466         (-[WebHTMLView hasMarkedText]): Ditto.
2467         (-[WebHTMLView unmarkText]): Ditto.
2468         (-[WebHTMLView _selectMarkedText]): Ditto.
2469         (-[WebHTMLView _selectRangeInMarkedText:]): Ditto.
2470         (-[WebHTMLView setMarkedText:selectedRange:]): Ditto.
2471         (-[WebHTMLView _insertText:selectInsertedText:]): Removed check for empty string. An empty string
2472         should not be filtered out here. We need to allow inserting an empty string.
2473         (-[WebHTMLView _selectionIsInsideMarkedText]): Updated for change to bridge method names.
2474         (-[WebHTMLView _updateSelectionForInputManager]): Ditto.
2475
2476         * WebView.subproj/WebView.m: (-[WebView searchFor:direction:caseSensitive:wrap:]):
2477         Changed to use selectionDOMRange instead of selectionStart.
2478
2479         * WebView.subproj/WebHTMLRepresentation.h: Removed unused setSelectionFrom method.
2480         * WebView.subproj/WebHTMLRepresentation.m: Ditto.
2481
2482 2004-09-08  John Sullivan  <sullivan@apple.com>
2483
2484         Reviewed by Darin.
2485         
2486         - fixed the localization aspect of: 
2487         <rdar://problem/3790011> undoable operations all say "Undo" in the menu, no specific action names
2488         
2489         We now have all the strings ready for localization; we just don't actually use them yet.
2490
2491         * English.lproj/Localizable.strings:
2492         updated for this change
2493         
2494         * WebCoreSupport.subproj/WebBridge.m:
2495         (-[WebBridge setUndoActionNamePlaceholder]):
2496         added this placeholder method whose purpose is to hold localizable strings for all the Undo
2497         action names that NSTextView uses. Later we will use some or all of these, but we can do
2498         that part after the localization freeze.
2499
2500 2004-09-08  Chris Blumenberg  <cblu@apple.com>
2501
2502         Fixed: <rdar://problem/3778785> REGRESSION (Mail): copying from MS word and pasting into editable region leaves internal clipboard data
2503
2504         Reviewed by kocienda.
2505
2506         * WebView.subproj/WebHTMLView.m:
2507         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): ignore Microsoft's header meta data
2508
2509 2004-09-08  Chris Blumenberg  <cblu@apple.com>
2510
2511         Fixed: <rdar://problem/3792893> WebBaseResourceHandleDelegate always returns cached data for subresource loads
2512
2513         Reviewed by rjw.
2514
2515         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2516         (-[WebBaseResourceHandleDelegate _canUseResourceForRequest:]): new
2517         (-[WebBaseResourceHandleDelegate loadWithRequest:]): call _canUseResourceForRequest:
2518
2519 2004-09-08  Chris Blumenberg  <cblu@apple.com>
2520
2521         Forgot to add this in previous check-in.        
2522
2523         * English.lproj/WebViewEditingContextMenu.nib: Added.
2524
2525 2004-09-08  Chris Blumenberg  <cblu@apple.com>
2526
2527         Fixed: <rdar://problem/3791240> WebKit uses the NSTextViewContextMenu nib from inside AppKit
2528
2529         Reviewed by john.
2530
2531         * English.lproj/StringsNotToBeLocalized.txt:
2532         * WebKit.pbproj/project.pbxproj:
2533         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2534         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]): use our copy of the nib
2535
2536 2004-09-07  Darin Adler  <darin@apple.com>
2537
2538         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
2539
2540 2004-09-07  Chris Blumenberg  <cblu@apple.com>
2541
2542         Fixed: <rdar://problem/3790143> exception raised when dragging a URL with 2-byte characters
2543
2544         (checked in with last check-in)
2545
2546 2004-09-07  Chris Blumenberg  <cblu@apple.com>
2547
2548         Fixed:
2549         <rdar://problem/3080103> Need to pass cmd-modified keys to plug-ins
2550         <rdar://problem/3751509> can't use safari edit menu to copy and paste with Vantage Learning's My Access
2551
2552         Reviewed by john.
2553
2554         * Plugins.subproj/WebBaseNetscapePluginView.m: fake up command-key events for cut, copy, paste and select all so these menu items work for plug-ins
2555         (-[WebBaseNetscapePluginView sendModifierEventWithKeyCode:character:]):
2556         (-[WebBaseNetscapePluginView cut:]):
2557         (-[WebBaseNetscapePluginView copy:]):
2558         (-[WebBaseNetscapePluginView paste:]):
2559         (-[WebBaseNetscapePluginView selectAll:]):
2560
2561 2004-09-07  Darin Adler  <darin@apple.com>
2562
2563         - fixed deployment build
2564
2565         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _deleteWithDirection:granularity:killRing:]):
2566         Initialize prepend variable.
2567
2568 2004-09-06  Darin Adler  <darin@apple.com>
2569
2570         Reviewed by John.
2571
2572         - fixed <rdar://problem/3696542> REGRESSION (Mail): Editable WebKit doesn't support underline yet (in the iChat profile window, at least)
2573         - fixed <rdar://problem/3780249> REGRESSION (Mail): copy style/paste style doesn't work in HTML editing in Mail
2574         - fixed <rdar://problem/3788857> REGRESSION (Mail): Home and End keys don't work in message composer
2575         - fixed <rdar://problem/3788884> REGRESSION (Mail): ctrl-d emacs key binding does not work (delete forward)
2576         - fixed <rdar://problem/3788890> REGRESSION (Mail): ctrl-k emacs key binding does not work (delete to end of paragraph)
2577         - fixed <rdar://problem/3788899> REGRESSION (Mail): ctrl-y emacs key binding does not work (yank)
2578         - fixed <rdar://problem/3788901> REGRESSION (Mail): ctrl-o emacs key binding does not work (insert newline in front of insertion point)
2579         - fixed <rdar://problem/3788908> REGRESSION (Mail): ctrl-left-arrow emacs key binding does not work (move to beginning of line)
2580         - fixed <rdar://problem/3788913> REGRESSION (Mail): ctrl-right-arrow emacs key binding does not work (move to end of line)
2581         - implemented a first cut at other attribute changes from Text Panel besides underline (bugs?)
2582         - dealt with a couple of FIXMEs in WebHTMLView.m
2583         - updated list of not-yet-implemented methods in WebHTMLView.m
2584         - fixed many deletion operations to call the correct editing delegate methods
2585
2586         * WebView.subproj/WebFrameViewPrivate.h: Remove _scrollToTopLeft and _scrollToBottomLeft.
2587         No one was calling them anyway, so they should really have been marked internal and not private.
2588         * WebView.subproj/WebFrameView.m:
2589         (-[WebFrameView scrollToBeginningOfDocument:]): Renamed _scrollToTopLeft to this, so the home key
2590         would start working with the key bindings machinery.
2591         (-[WebFrameView scrollToEndOfDocument:]): Same thing, for end key.
2592         (-[WebFrameView keyDown:]): Update for name changes, and also make sure we don't try to grab
2593         control-arrow keys here (probably not necessary, but good anyway).
2594
2595         * WebView.subproj/WebHTMLViewInternal.h: Added keyDownEvent field, and startNewKillRingSequence
2596         and nextResponderDisabledOnce flags.
2597         * WebView.subproj/WebHTMLView.m:
2598         Rearrange declarations at the top of the file so that external things are up with
2599         the #import directives and things inside this file are declared below.
2600         (-[WebHTMLView _shouldReplaceSelectionWithText:givenAction:]): Ditto.
2601         (-[WebHTMLView _calculatePrintHeight]): Moved up into the "internal to file" category.
2602         (-[WebHTMLView _updateTextSizeMultiplier]): Ditto.
2603         (-[WebHTMLView _selectedRange]): Added.
2604         (-[WebHTMLView _openLinkFromMenu:]): Left this method lying around even though I deleted the
2605         other APPKIT_CODE_FOR_REFERENCE in case this shows up in the context menu we are now sharing
2606         with the AppKit. Chris will look at this later, and he can delete it then.
2607         (+[WebHTMLView initialize]): Call _NSInitializeKillRing.
2608         (-[WebHTMLView _documentRange]): Added.
2609         (-[WebHTMLView string]): Call the bridge to get the plain text rather than making an attributed
2610         string and then getting the text from there.
2611         (-[WebHTMLView becomeFirstResponder]): Set startNewKillRingSequence flag, so that new deletions
2612         will create a new kill ring entry.
2613         (-[WebHTMLView moveToBeginningOfDocument:]): Use backward direction instead of left direction.
2614         (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
2615         (-[WebHTMLView moveToBeginningOfLine:]): Ditto.
2616         (-[WebHTMLView moveToBeginningOfLineAndModifySelection:]): Ditto.
2617         (-[WebHTMLView moveToBeginningOfParagraph:]): Ditto, also use WebSelectToParagraphBoundary.
2618         (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]): Ditto.
2619         (-[WebHTMLView moveToEndOfDocument:]): Use forward direction instead of right direction.
2620         (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
2621         (-[WebHTMLView moveToEndOfLine:]): Ditto.
2622         (-[WebHTMLView moveToEndOfLineAndModifySelection:]): Ditto.
2623         (-[WebHTMLView moveToEndOfParagraph:]): Ditto, also use WebSelectToParagraphBoundary.
2624         (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]): Ditto.
2625         (-[WebHTMLView _shouldDeleteRange:]): Added.
2626         (-[WebHTMLView _deleteRange:preflight:killRing:prepend:]): Added.
2627         (-[WebHTMLView delete:]): Changed to call new _deleteRange method.
2628         (-[WebHTMLView cut:]): Changed to preflight property and call new _deleteRange method.
2629         (-[WebHTMLView _selectionFontAttributes]): Added.
2630         (-[WebHTMLView _selectionFontAttributesAsRTF]): Added.
2631         (-[WebHTMLView _fontAttributesFromFontPasteboard]): Added.
2632         (-[WebHTMLView _emptyStyle]): Added.
2633         (-[WebHTMLView _styleFromFontAttributes:]): Added.
2634         (-[WebHTMLView _applyStyleToSelection:]): Added.
2635         (-[WebHTMLView copyFont:]): Implemented.
2636         (-[WebHTMLView pasteFont:]): Implemented.
2637         (-[WebHTMLView _originalFontA]): Added.
2638         (-[WebHTMLView _originalFontB]): Added.
2639         (-[WebHTMLView _addToStyle:fontA:fontB:]): Added. Has code from the method that figures out
2640         what the font manager is doing for changeFont:, now needed for changeAttribute: too.
2641         (-[WebHTMLView _styleFromFontManagerOperation]): Renamed and now calls shared methods.
2642         (-[WebHTMLView changeFont:]): Call shared method, still does the same thing.
2643         (-[WebHTMLView _colorAsString:]): Added. Has code from the method we were using with the
2644         color panel before.
2645         (-[WebHTMLView _shadowAsString:]): Added.
2646         (-[WebHTMLView _styleForAttributeChange:]): Added.
2647         (-[WebHTMLView changeAttributes:]): Implemented.
2648         (-[WebHTMLView _styleFromColorPanelWithSelector:]): Renamed and now calls shared methods.
2649         (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]): Call method by new name.
2650         (-[WebHTMLView changeDocumentBackgroundColor:]): Call method by new name.
2651         (-[WebHTMLView changeColor:]): Changed around a bit; still doesn't work yet.
2652         (-[WebHTMLView _alignSelectionUsingCSSValue:]): Call shared methods.
2653         (-[WebHTMLView indent:]): Removed, since NSTextView doesn't implement this method. Added to list
2654         of methods to possibly implement later in the file.
2655         (-[WebHTMLView insertTab:]): Call insertText: to save code and so we get WebViewInsertActionTyped
2656         instead of WebViewInsertActionPasted.
2657         (-[WebHTMLView changeCaseOfLetter:]): Removed, since NSTextView doesn't implement this method.
2658         Added to list of methods to possibly implement later in the file.
2659         (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): Added.
2660         (-[WebHTMLView deleteForward:]): Implemented. This makes Control-D work.
2661         (-[WebHTMLView deleteBackwardByDecomposingPreviousCharacter:]): Implemented by just calling
2662         deleteBackward for now; probably better than doing nothing.
2663         (-[WebHTMLView deleteWordForward:]): Changed to call new _delete method above. Fixes things
2664         so that we delete the selection if there is one, get the appropriate delegate calls, handle
2665         the kill ring properly, and don't do any selection if we can't delete.
2666         (-[WebHTMLView deleteWordBackward:]): Ditto.
2667         (-[WebHTMLView deleteToBeginningOfLine:]): Ditto.
2668         (-[WebHTMLView deleteToEndOfLine:]): Ditto.
2669         (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto.
2670         (-[WebHTMLView deleteToEndOfParagraph:]): Ditto. Added additional behavior needed since this
2671         is bound to Control-K, so it's not really just delete to end of paragraph.
2672         (-[WebHTMLView insertNewlineIgnoringFieldEditor:]): Added. Calls insertNewline:.
2673         (-[WebHTMLView insertTabIgnoringFieldEditor:]): Added. Calls insertTab:.
2674         (-[WebHTMLView subscript:]): Added.
2675         (-[WebHTMLView superscript:]): Added.
2676         (-[WebHTMLView unscript:]): Added.
2677         (-[WebHTMLView underline:]): Added.
2678         (-[WebHTMLView yank:]): Added.
2679         (-[WebHTMLView yankAndSelect:]): Added. Calls _insertText.
2680         (-[WebHTMLView _arrowKeyDownEventSelectorIfPreprocessing:]): Added. Part of workaround for
2681         control-arrow key trouble.
2682         (-[WebHTMLView respondsToSelector:]): Added. More of workaround.
2683         (-[WebHTMLView nextResponder:]): Added. More of workaround.
2684         (-[WebHTMLView _selectionChanged]): Set startNewKillRingSequence flag, so that new deletions
2685         will create a new kill ring entry.
2686         (-[WebHTMLView _updateFontPanel]): Remove a bunch of code here that wasn't working very well
2687         because it walked a DOM range incorrectly, and instead use the new method that does all the
2688         right stuff on the other side of the bridge.
2689         (-[WebHTMLView _insertText:selectInsertedText:]): Added new helper method for use by both
2690         insertText and yankAndSelect, with most of the guts of insertText and one additional parameter.
2691         (-[WebHTMLView insertText:]): Call the new _insertText.
2692
2693         * WebView.subproj/WebView.m: Use macros to make the forwarding from WebView more terse.
2694         Updated the list to include a few methods it didn't before.
2695
2696 2004-09-06  John Sullivan  <sullivan@apple.com>
2697
2698         Reviewed by Darin.
2699         
2700         - put preference keys in a private header file so Safari can use them for Managed Preferences
2701
2702         * WebView.subproj/WebPreferenceKeysPrivate.h:
2703         new Private header file, includes the #defines for NSUserDefaults preference keys
2704         
2705         * WebView.subproj/WebPreferences.m:
2706         moved the preference key #defines out of here; now imports WebPreferenceKeysPrivate.h
2707
2708         * WebKit.pbproj/project.pbxproj:
2709         updated for new file
2710
2711 2004-09-03  Chris Blumenberg  <cblu@apple.com>
2712
2713         Fixed: <rdar://problem/3782543> CrashTracer: ...87 crashes at com.apple.WebKit: -[WebNetscapePluginPackage initWithPath:] + 0x18c
2714
2715         Reviewed by john.
2716
2717         * Plugins.subproj/WebNetscapePluginPackage.m:
2718         (-[WebNetscapePluginPackage initWithPath:]): make sure the file is at least 8 bytes long before calling memcmp
2719
2720 2004-09-03  Chris Blumenberg  <cblu@apple.com>
2721         
2722         Fixed:
2723         <rdar://problem/3788328> assertion failure when moving an image
2724         <rdar://problem/3783628> REGRESSION (Mail): when I try to reorder an image, the image is duplicated
2725
2726         Reviewed by NOBODY (OOPS!).
2727
2728         * DOM.subproj/WebDOMOperations.m:
2729         (-[DOMDocument _createRangeWithNode:]): new, convenience
2730         (-[DOMDocument _documentRange]): use _ createRangeWithNode:
2731         * DOM.subproj/WebDOMOperationsPrivate.h:
2732         * WebView.subproj/WebHTMLView.m:
2733         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): set the selection to the image when starting the drag. This allows "move selection" to work and this matches NSText's behavior
2734
2735 === Safari-162 ===
2736
2737 2004-09-02  Richard Williamson   <rjw@apple.com>
2738
2739         Support for patterns in <canvas>.  
2740         (These changes attempt to create a CGImageRef from a WebImageRenderer that
2741         is used by the pattern drawing function.)
2742         
2743         Reviewed by Hyatt.
2744
2745         * WebCoreSupport.subproj/WebImageRenderer.h:
2746         * WebCoreSupport.subproj/WebImageRenderer.m:
2747         (-[WebImageRenderer dealloc]):
2748         (-[WebImageRenderer finalize]):
2749         (-[WebImageRenderer imageRef]):
2750         (_createImageRef):
2751         * WebView.subproj/WebPDFView.h:
2752         * WebView.subproj/WebPDFView.m:
2753
2754 2004-09-01  Chris Blumenberg  <cblu@apple.com>
2755
2756         Fixed deployment build failure.
2757
2758         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2759         (-[WebDefaultUIDelegate menuItemWithTag:]):
2760
2761 2004-08-31  Chris Blumenberg  <cblu@apple.com>
2762
2763         Fixed: 
2764         <rdar://problem/3699498> Context menu for editable WebViews should provide items like Cut and Paste
2765         <rdar://problem/3781535> REGRESSION (Mail): no context menu after ctrl-clicking a misspelled word
2766
2767         Reviewed by kocienda.
2768
2769         * English.lproj/Localizable.strings:
2770         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2771         (-[WebDefaultUIDelegate menuItemWithTag:]): updated to handle new menu items
2772         (-[WebDefaultUIDelegate contextMenuItemsForElement:]): renamed from webView:contextMenuItemsForElement:defaultMenuItems:
2773         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]): new
2774         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): moved, now call contextMenuItemsForElement: or editingContextMenuItemsForElement:
2775         * WebView.subproj/WebDefaultUIDelegate.h:
2776         * WebView.subproj/WebHTMLView.m:
2777         (-[WebHTMLView _isSelectionMisspelled]): new
2778         (-[WebHTMLView _guessesForMisspelledSelection]): new
2779         (-[WebHTMLView _changeSpellingFromMenu:]): new
2780         (-[WebHTMLView _ignoreSpellingFromMenu:]): new
2781         (-[WebHTMLView _learnSpellingFromMenu:]): new
2782         * WebView.subproj/WebHTMLViewPrivate.h:
2783         * WebView.subproj/WebUIDelegate.h:
2784
2785 2004-08-31  Darin Adler  <darin@apple.com>
2786
2787         - fixed B&I build failure
2788
2789         * WebView.subproj/WebHTMLView.m: (-[WebTextCompleteController _buildUI]):
2790         Work around unwanted warning by adding a cast.
2791
2792 2004-08-27  Maciej Stachowiak  <mjs@apple.com>
2793
2794         Reviewed by John.
2795
2796         <rdar://problem/3778314> REGRESSION: Can't proceed to survey questions on Lominger's Apple website
2797         
2798         Because we will stop parsing when there is a pending redirection,
2799         avoid setting one if no navigation would actually take place
2800         because the number of steps is out of range.
2801
2802         * WebCoreSupport.subproj/WebBridge.m:
2803         (-[WebBridge canGoBackOrForward:]):
2804
2805 2004-08-30  Darin Adler  <darin@apple.com>
2806
2807         Reviewed by John.
2808
2809         - part of fix for <rdar://problem/3637519> REGRESSION (125-128): unrepro crash in QListBox::sizeForNumberOfLines at istweb.apple.com
2810
2811         * WebCoreSupport.subproj/WebTextRendererFactory.m: (-[WebTextRendererFactory clearCaches]):
2812         Call [super clearCaches].
2813
2814 2004-08-30  Darin Adler  <darin@apple.com>
2815
2816         Reviewed by Chris.
2817
2818         - did work to prepare for uploading files incrementally when submitting forms
2819
2820         * History.subproj/WebHistoryItem.m:
2821         (-[WebHistoryItem _setFormInfoFromRequest:]): Use NSArray instead of NSData for form data.
2822         (-[WebHistoryItem formData]): Ditto.
2823         * History.subproj/WebHistoryItemPrivate.h: Ditto.
2824         * WebCoreSupport.subproj/WebBridge.m:
2825         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]): Ditto.
2826         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): Ditto.
2827         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
2828         * WebCoreSupport.subproj/WebSubresourceClient.h: Ditto.
2829         * WebCoreSupport.subproj/WebSubresourceClient.m:
2830         (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]): Ditto.
2831         * WebView.subproj/WebFrame.m:
2832         (-[WebFrame _loadItem:withLoadType:]): Ditto.
2833         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
2834         * WebView.subproj/WebFramePrivate.h: Ditto.
2835
2836         * WebView.subproj/WebFormDataStream.h: Added.
2837         * WebView.subproj/WebFormDataStream.m:
2838         (-[WebFormDataStream initWithFormDataArray:]): Placeholder; not done yet.
2839         (-[WebFormDataStream formDataArray]): Ditto.
2840         * WebKit.pbproj/project.pbxproj: Added WebFormDataStream files.
2841
2842 2004-08-30  John Sullivan  <sullivan@apple.com>
2843
2844         Reviewed by Ken.
2845
2846         - WebKit part of fix for <rdar://problem/3607720> myFrame.print() prints the window 
2847         but should only print the frame
2848
2849         * WebView.subproj/WebUIDelegatePrivate.h:
2850         declare new delegate method that includes which frame to print
2851
2852         * WebView.subproj/WebDefaultUIDelegate.m:
2853         (-[WebDefaultUIDelegate webView:printFrameView:]):
2854         implement default (no-op) version of new delegate method
2855
2856         * WebCoreSupport.subproj/WebBridge.m:
2857         (-[WebBridge print]):
2858         call new delegate method if available, otherwise call old delegate method, for
2859         backward compatibility.
2860
2861 2004-08-27  Maciej Stachowiak  <mjs@apple.com>
2862
2863         Reviewed by John. 
2864         Checked in by Ken
2865         
2866         Ken comments: It looks like Maciej forgot to land this when he checked in the
2867         WebCore portion of this change.
2868
2869         <rdar://problem/3778314> REGRESSION: Can't proceed to survey questions on Lominger's Apple website
2870             
2871         Because we will stop parsing when there is a pending redirection,
2872         avoid setting one if no navigation would actually take place
2873         because the number of steps is out of range.
2874     
2875         * WebCoreSupport.subproj/WebBridge.m:
2876         (-[WebBridge canGoBackOrForward:]):
2877
2878 2004-08-27  Ken Kocienda  <kocienda@apple.com>
2879
2880         Reviewed by Chris
2881
2882         Fix for this bug:
2883         
2884         <rdar://problem/3756997> WebKit aggressive in making pasted text into a URL, even when it's not much like a URL
2885
2886         * WebView.subproj/WebHTMLView.m:
2887         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): Don't try so hard to coerce data
2888         on the pasteboard into a URL, and do not make an anchor with an href for any URLs that are 
2889         explicitly present on the pasteboard. Also, move URL pasteboard type check beneath the RTF
2890         checks.
2891
2892 === Safari-161 ===
2893
2894 2004-08-26  Chris Blumenberg  <cblu@apple.com>
2895
2896         Fixed build failure on Panther.
2897
2898         Reviewed by john.
2899
2900         * WebView.subproj/WebHTMLView.m:
2901         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): ifdef'd out call to AppKit SPI
2902         (-[WebHTMLView _attributeStringFromDOMRange:]): ditto
2903
2904 2004-08-26  Chris Blumenberg  <cblu@apple.com>
2905
2906         Tweak to last check-in.
2907
2908         * WebView.subproj/WebHTMLView.m:
2909         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]):
2910
2911 2004-08-26  Chris Blumenberg  <cblu@apple.com>
2912
2913         Fixed: 
2914         <rdar://problem/3546412> support for pasting and drag and dropping of RTF and RTFD to editable WebViews
2915         <rdar://problem/3745345> use AppKit for converting from DOM to RTF
2916
2917         Reviewed by rjw.
2918
2919         * DOM.subproj/WebDOMOperations.m:
2920         (-[DOMDocument _documentRange]): new
2921         * DOM.subproj/WebDOMOperationsPrivate.h:
2922         * WebView.subproj/WebHTMLView.m:
2923         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): call AppKit SPI to get a document fragment from an attributed string
2924         (-[WebHTMLView string]): added a FIXME
2925         (-[WebHTMLView _attributeStringFromDOMRange:]): new, calls AppKit SPI that creates an attributed string from a DOM Range
2926         (-[WebHTMLView attributedString]): call _attributeStringFromDOMRange:, fallback to old code if it returns nil
2927         (-[WebHTMLView selectedAttributedString]): ditto
2928
2929 2004-08-26  Chris Blumenberg  <cblu@apple.com>
2930
2931         Fixed: <rdar://problem/3774178> Plugin hooks for selected state aren't being called
2932
2933         Reviewed by darin.
2934
2935         * WebCoreSupport.subproj/WebBridge.m:
2936         (-[WebBridge setIsSelected:forView:]): don't forget colons in method names
2937
2938 2004-08-26  Chris Blumenberg  <cblu@apple.com>
2939
2940         Fixed: <rdar://problem/3768439> can't click in WebView in Carbon WebKit apps (GetEventPlatformEventRecord returns false)
2941
2942         Reviewed by rjw.
2943
2944         * Carbon.subproj/HIWebView.m:
2945         (Click): use WebGetEventPlatformEventRecord not GetEventPlatformEventRecord
2946         (MouseUp): ditto
2947         (MouseMoved): ditto
2948         (MouseDragged): ditto
2949         (MouseWheelMoved): ditto
2950         (WindowHandler): ditto
2951         (HIWebViewEventHandler): ditto
2952         (UpdateObserver): ditto
2953         (WebGetEventPlatformEventRecord): Call GetEventPlatformEventRecord, if that fails fallback to the current event. This is code Eric Schlegel to me to use. 
2954
2955 2004-08-24  Chris Blumenberg  <cblu@apple.com>
2956
2957         Fixed with help from Trey:
2958         <rdar://problem/3764856> REGRESSION !25-154): Safari accepts mouse clicks (follows links) when not key
2959
2960         Reviewed by rjw.
2961
2962         * WebView.subproj/WebHTMLView.m:
2963         (-[WebHTMLView _isSelectionEvent:]): brought back from CVS
2964         (-[WebHTMLView acceptsFirstMouse:]): only call eventMayStartDrag if _isSelectionEvent returns YES since we only want to allow selection dragging on the first mouse down
2965         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
2966
2967 2004-08-24  Ken Kocienda  <kocienda@apple.com>
2968
2969         Reviewed by Hyatt
2970
2971         Improved the checks used to see if certain operations can be done based
2972         on the state of the selection and whether the selection is editable. I
2973         added some helpers and improved some others to assist in making these
2974         determinations.
2975         
2976         This helps to fix this bug:
2977         <rdar://problem/3764987> Crash after adding newline to quoted text
2978         
2979         Since some editing methods expect the the selection to be in a certain state 
2980         in order to work, these checks help obviate crashes like 3764987.
2981
2982         * WebView.subproj/WebHTMLView.m:
2983         (-[WebHTMLView _writeSelectionToPasteboard:]): _haveSelection name changed to _hasSelection.
2984         (-[WebHTMLView _canCopy]): Checks to see if state is appropriate to perform this operation.
2985         (-[WebHTMLView _canCut]): Ditto. Function added.
2986         (-[WebHTMLView _canDelete]): Ditto. Function refined.
2987         (-[WebHTMLView _canPaste]): Ditto. Function refined.
2988         (-[WebHTMLView _canType]): Ditto. Function added.
2989         (-[WebHTMLView _hasSelection]): Name changed from _haveSelection.
2990         (-[WebHTMLView _hasSelectionOrInsertionPoint]): Added.
2991         (-[WebHTMLView _isEditable]): Added.
2992         (-[WebHTMLView takeFindStringFromSelection:]): _haveSelection name changed to _hasSelection.
2993         (-[WebHTMLView validateUserInterfaceItem:]): Ditto
2994         (-[WebHTMLView validRequestorForSendType:returnType:]): Ditto
2995         (-[WebHTMLView keyDown:]):
2996         (-[WebHTMLView copy:]): Uses new _canCopy check.
2997         (-[WebHTMLView cut:]): Uses new _canCut check.
2998         (-[WebHTMLView delete:]): Now uses _canDelete check.
2999         (-[WebHTMLView paste:]): Now uses _canPaste check.
3000         (-[WebHTMLView _updateFontPanel]): _haveSelection name changed to _hasSelection.
3001         * WebView.subproj/WebHTMLViewPrivate.h:
3002         * WebView.subproj/WebView.m:
3003         (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]): Use selectionState check to
3004         determine whether or not operation can be done.
3005
3006 2004-08-24  Richard Williamson   <rjw@apple.com>
3007
3008         Fixed <rdar://problem/3770469> Some PDFs open with line of previous page above PDF view
3009         
3010         Set height resize flags on WebPDFView.
3011                 
3012         Reviewed by Chris.
3013
3014         * WebView.subproj/WebPDFView.m:
3015         (-[WebPDFView initWithFrame:]):
3016
3017 2004-08-24  David Hyatt  <hyatt@apple.com>
3018
3019         Add Atom and RSS MIME types to set of supported XML types.
3020         
3021         Reviewed by rjw
3022
3023         * WebView.subproj/WebDataSource.m:
3024         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
3025         * WebView.subproj/WebFrameView.m:
3026         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
3027
3028 2004-08-23  Maciej Stachowiak  <mjs@apple.com>
3029
3030         Reviewed by Kevin.
3031
3032         - remove annoying ERROR spew and replace with comment
3033         
3034         * WebView.subproj/WebHTMLView.m:
3035         (-[WebHTMLView validAttributesForMarkedText]):
3036
3037 2004-08-23  Maciej Stachowiak  <mjs@apple.com>
3038
3039         Reviewed by Richard.
3040
3041         - a bit of code cleanup
3042
3043         * WebView.subproj/WebDataSource.m:
3044         (-[WebDataSource _stringWithData:]): Call textEncodingName instead of
3045         copying it's code.
3046         (-[WebDataSource textEncodingName]): Tweak formatting.
3047
3048 2004-08-23  Chris Blumenberg  <cblu@apple.com>
3049
3050         Fixed build.
3051
3052         * WebKit.pbproj/project.pbxproj: make sure we're doing -f on a file, not a directory
3053
3054 2004-08-23  Chris Blumenberg  <cblu@apple.com>
3055
3056         Fixed: <rdar://problem/3674867> use new Security framework SPI's to reenable cert acquisition
3057
3058         Reviewed by john.
3059
3060         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
3061         * WebCoreSupport.subproj/WebKeyGeneration.h:
3062         * WebCoreSupport.subproj/WebKeyGenerator.h:
3063         * WebCoreSupport.subproj/WebKeyGenerator.m:
3064         (-[WebKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]): re-enabled cert code, call Panther version on Panther, Tiger version on Tiger
3065         (-[WebKeyGenerator addCertificatesToKeychainFromData:]): ditto
3066         * WebCoreSupport.subproj/WebNewKeyGeneration.c: Added.
3067         (gnrAddContextAttribute):
3068         (gnrGetSubjPubKey):
3069         (gnrNullAlgParams):
3070         (gnrSign):
3071         (gnrFreeCssmData):
3072         (nssArraySize):
3073         (signedPublicKeyAndChallengeString):
3074         (addCertificateToKeychainFromData):
3075         (addCertificatesToKeychainFromData):
3076         * WebCoreSupport.subproj/WebNewKeyGeneration.h: Added.
3077         * WebKit.pbproj/project.pbxproj:
3078
3079 2004-08-20  David Hyatt  <hyatt@apple.com>
3080
3081         Fix the directionality of the unicode hyphen so that on Panther it now matches Tiger.
3082         
3083         Reviewed by darin
3084
3085         * Misc.subproj/WebUnicode.m:
3086         (_unicodeDirection):
3087
3088 2004-08-20  Richard Williamson   <rjw@apple.com>
3089
3090             Implemented new JNI abstraction.  We no longer invoke Java methods
3091             directly with JNI, rather we call into the plugin.  This allows the
3092             plugin to dispatch the call to the appropriate VM thread.  This
3093             change should (will?) fix a whole class of threading related problems with
3094             the Java VM.
3095
3096         Reviewed by Hyatt.
3097
3098         * WebCoreSupport.subproj/WebBridge.m:
3099         (-[WebBridge getAppletInView:]):
3100
3101 2004-08-20  Trey Matteson  <trey@apple.com>
3102
3103         3655407 - Editing: -complete: method unimplemented (WebKit editing API)
3104
3105         This feature is mostly implemented.  The only loose ends I know of are:
3106
3107         3769654 - text insertions done via complete: should preserve case of full replacement string
3108         3769652 - positioning of complete: popup window wrong for right-to-left languages
3109
3110         Reviewed by John
3111
3112         * WebView.subproj/WebHTMLView.m:
3113         (-[WebHTMLViewPrivate dealloc]):  Free new object.
3114         (-[WebHTMLView menuForEvent:]):  Bail on completion session.
3115         (-[WebHTMLView windowDidResignKey:]):  Ditto.
3116         (-[WebHTMLView windowWillClose:]):  Ditto.
3117         (-[WebHTMLView mouseDown:]):  Ditto.
3118         (-[WebHTMLView resignFirstResponder]):  Ditto.
3119         (-[WebHTMLView keyDown:]):  Bail on completion session if WebCore takes the event.
3120         Give the CompleteController a crack at the key event.
3121         (-[WebHTMLView _expandSelectionToGranularity:]):  Adopt method rename
3122         (-[WebHTMLView complete:]):  Make CompleteController, tell it to do its thing.
3123         (-[WebHTMLView checkSpelling:]):  Add ERROR().
3124         (-[WebHTMLView showGuessPanel:]): Add ERROR().
3125         (-[WebHTMLView _changeSpellingToWord:]): Add ERROR().
3126         (-[WebHTMLView ignoreSpelling:]): Add ERROR().
3127
3128         (-[WebTextCompleteController initWithHTMLView:]):
3129         (-[WebTextCompleteController dealloc]):
3130         (-[WebTextCompleteController _insertMatch:]): Stick the new string into the doc.
3131         (-[WebTextCompleteController _buildUI]):  Make popup window.
3132         (-[WebTextCompleteController _placePopupWindow:]):  Position popup window.
3133         (-[WebTextCompleteController doCompletion]):  Lookup matches, display window.
3134         (-[WebTextCompleteController endRevertingChange:moveLeft:]):  Bail on complete: session.
3135         (-[WebTextCompleteController filterKeyDown:]):  Process keys while popup is up.
3136         (-[WebTextCompleteController _reflectSelection]):  Handle choice in popup.
3137         (-[WebTextCompleteController tableAction:]):  Handle double click in popup
3138         (-[WebTextCompleteController numberOfRowsInTableView:]):  Fill table with matches.
3139         (-[WebTextCompleteController tableView:objectValueForTableColumn:row:]):  Ditto.
3140         (-[WebTextCompleteController tableViewSelectionDidChange:]):  Handle selection change.
3141         * WebView.subproj/WebHTMLViewInternal.h:
3142
3143 2004-08-20  John Sullivan  <sullivan@apple.com>
3144
3145         * English.lproj/StringsNotToBeLocalized.txt:
3146         checked this in; the only difference is that
3147         the strings were out of order.
3148
3149 2004-08-19  Richard Williamson   <rjw@apple.com>
3150
3151         Continue to call old pollForAppletInView: in Tiger until
3152         we get an plugin that supports the new API.
3153                 
3154         Reviewed by Chris.
3155
3156         * WebCoreSupport.subproj/WebBridge.m:
3157         (-[WebBridge getAppletInView:]):
3158         * WebKit.pbproj/project.pbxproj:
3159
3160 === Safari-158 ===
3161
3162 2004-08-19  Chris Blumenberg  <cblu@apple.com>
3163
3164         Fixed typo in comment.
3165
3166         * Misc.subproj/WebIconDatabase.m:
3167         (-[WebIconDatabase _updateFileDatabase]):
3168
3169 2004-08-19  Chris Blumenberg  <cblu@apple.com>
3170
3171         Fixed: <rdar://problem/3566336> CrashTracer: .2403 crashes at com.apple.WebKit: -[WebFileDatabase performSetObject:forKey:] + 0x94
3172
3173         Reviewed by trey.
3174
3175         * Misc.subproj/WebIconDatabase.m:
3176         (-[WebIconDatabase _updateFileDatabase]): pass WebFileDatabase copies of the mutable dictionaries or else they may be accessed on a separate thread as the main thread is modifying them
3177
3178 2004-08-18  Richard Williamson   <rjw@apple.com>
3179
3180         Replace horrible pollForAppletInView: with new
3181         webPlugInGetApplet.  The details of how the applet instance
3182         is provided now belong to the Java team.  Yeh.
3183                 
3184         Reviewed by Chris.
3185
3186         * WebCoreSupport.subproj/WebBridge.m:
3187         (-[WebBridge getAppletInView:]):
3188
3189 2004-08-17  Richard Williamson   <rjw@apple.com>
3190
3191         Fixed <rdar://problem/3759093> Need PDF context menu: "Open in Preview" or other external app
3192
3193         Added support for "Open with ..." in PDF view.
3194                 
3195         Reviewed by Chris and Trey.
3196
3197         * ChangeLog:
3198         * English.lproj/Localizable.strings:
3199         * English.lproj/StringsNotToBeLocalized.txt:
3200         * WebView.subproj/WebPDFView.h:
3201         * WebView.subproj/WebPDFView.m:
3202         (-[WebPDFView initWithFrame:]):
3203         (-[WebPDFView dealloc]):
3204         (applicationInfoForMIMEType):
3205         (-[WebPDFView path]):
3206         (-[WebPDFView menuForEvent:]):
3207         (-[WebPDFView setDataSource:]):
3208         (-[WebPDFView layout]):
3209         (-[WebPDFView viewDidMoveToHostWindow]):
3210         (-[WebPDFView openWithFinder:]):
3211
3212 2004-08-17  Richard Williamson   <rjw@apple.com>
3213
3214         JNI needs both the jmethodID and return type.  Changed API to 
3215         pass both.
3216                 
3217         Reviewed by Chris.
3218
3219         * Plugins.subproj/WebJavaPlugIn.h:
3220
3221 2004-08-17  Trey Matteson  <trey@apple.com>
3222
3223         3764147 - failure of subframe to load leaves links in parent doc broken
3224
3225         Reviewed by Maciej.
3226
3227         * WebView.subproj/WebDataSource.m:
3228         (-[WebDataSource _receivedMainResourceError:complete:]):
3229         Need to call [bridge end] in the case of an error, so WC can clean up.
3230
3231 === Safari-157 ===
3232
3233 2004-08-15  Richard Williamson   <rjw@apple.com>
3234
3235         More changes to np headers.
3236         
3237         Reviewed by Darin.
3238
3239         * Plugins.subproj/WebNetscapePluginPackage.m:
3240         (-[WebNetscapePluginPackage load]):
3241         * Plugins.subproj/npapi.h:
3242         * Plugins.subproj/npfunctions.h:
3243         * Plugins.subproj/npruntime.h:
3244
3245 2004-08-13  Darin Adler  <darin@apple.com>
3246
3247         Reviewed by Chris.
3248
3249         - fixed <rdar://problem/3760924> Carbon path passed in NPP_StreamAsFile must be in local character set, not UTF-8
3250
3251         * Plugins.subproj/WebBaseNetscapePluginStream.m:
3252         (CarbonPathFromPOSIXPath): Added. New function that uses the path pieces from an FSSpec.
3253         This has many advantages; the big one that fixes the bug is that it gives the mangled names
3254         that work even for files that have names that can't otherwise be encoded in Carbon-style
3255         path names. I didn't write this from scratch: I started with the method in Foundation
3256         and just changed it to use FSSpec.
3257         (-[WebBaseNetscapePluginStream destroyStream]): Remove code that used NSString and just call
3258         CarbonPathFromPOSIXPath instead.
3259
3260         * Plugins.subproj/npapi.h: The Revision tag wanted to touch this file.
3261         I think we are going to have some trouble with this; I'd like to take that out.
3262
3263         * English.lproj/StringsNotToBeLocalized.txt: Updated.
3264
3265 2004-08-12  Trey Matteson  <trey@apple.com>
3266
3267         3761329 - query result links all dead in ingrammicro.com (sometimes)
3268         3761328 - links in some docs dead when doc is loaded from WebArchive
3269
3270         Nasty problem.  It turns out that these result pages are a parent frame with two child
3271         frames.  One of the child frames is a 1 or 2 byte text document.  When the text child
3272         is the last doc to complete, because we use a Text rep instead of an HTMLRep, it turns
3273         out we never send [bridge end] from WebKit.  That mistake results in checkCompleted not
3274         being called enough in the part, and we never realize the load is done.  WebCore does
3275         not allow redirects to happen until the entire load is complete,  and  the links on this
3276         results page are actually little pieces of JS that set location to a generated URL.  Since
3277         redirects are not allowed these links all silently fail to do anything, and the doc never
3278         achieves a completed state where they will work.
3279
3280         Solution is to make sure we always call [bridge end] from the DataSource instead of only
3281         the HTML rep doing it.
3282
3283         Reviewed by Richard and Darin.
3284
3285         * WebView.subproj/WebDataSource.m:
3286         (-[WebDataSource _finishedLoading]):  Call [bridge end] here for all kinds of docs.
3287         * WebView.subproj/WebHTMLRepresentation.m:
3288         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]):  Don't call is just for HTMLReps.
3289
3290 2004-08-12  Richard Williamson   <rjw@apple.com>
3291
3292         Bring npruntime.h and friends closer to compliance with
3293         latest spec.
3294
3295         Reviewed by Maciej.
3296
3297         * Plugins.subproj/npapi.h:
3298         * Plugins.subproj/npfunctions.h:
3299         * Plugins.subproj/npruntime.h:
3300         (_NPString::):
3301         (_NPString::_NPVariant::):
3302         * copy-webcore-files-to-webkit:
3303
3304 2004-08-12  Chris Blumenberg  <cblu@apple.com>
3305
3306         Fixed: <rdar://problem/3761097> should be able to option-drag selection so HTML can be copied within a page
3307
3308         Reviewed by rjw.
3309
3310         * WebView.subproj/WebHTMLView.m:
3311         (-[WebHTMLView _isMoveDrag]): new, take into account the option key
3312         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): call _isMoveDrag
3313         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): call _isMoveDrag
3314
3315 2004-08-12  Richard Williamson   <rjw@apple.com>
3316
3317         Quick fix for 3760903.  The real fix is described in 3760920.  Needed
3318         by Java plugin guys so they can be unblocked for feature freeze.
3319                 
3320         Reviewed by Chris.
3321
3322         * WebView.subproj/WebFrame.m:
3323         (-[WebFrame _reloadForPluginChanges]):
3324         * WebView.subproj/WebHTMLView.m:
3325         (-[WebHTMLView addSubview:]):
3326
3327 2004-08-12  Chris Blumenberg  <cblu@apple.com>
3328
3329         Fixed: <rdar://problem/3760898> error pages in subframes attempt to load appledata URLs when reloaded
3330
3331         Reviewed by darin.
3332
3333         * WebView.subproj/WebFrame.m:
3334         (-[WebFrame _createItem:]): when setting the original URL of the history item, use the unreachable URL
3335
3336 === Safari-156 ===
3337
3338 2004-08-11  Adele Amchan  <adele@apple.com>
3339
3340         Reviewed by me, bug fix by Darin.
3341
3342         - fixed <rdar://problem/3736477> Pages don't load if hard drive is named with non-ASCII Symbol
3343
3344         * Plugins.subproj/WebBaseNetscapePluginStream.m:
3345         (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]):
3346         Use UTF8String instead of cString to convert the MIME type to a C string. Safer, since it can't
3347         ever fail due to encoding problems even though this string should always be ASCII.
3348         (-[WebBaseNetscapePluginStream destroyStream]): Use stringWithUTF8String to convert the path name
3349         to an NSString, since stringWithCString is deprecated (doesn't really matter since the path is always
3350         all ASCII). Fix the bug by calling fileSystemRepresentation on the NSString to turn it into a C
3351         string form. Even though the POSIX path can't have any non-ASCII characters in it, the Carbon path
3352         can, so we need to use this instead of cString which can fail depending on characters and encoding.
3353
3354 2004-08-09  Maciej Stachowiak  <mjs@apple.com>
3355
3356         Reviewed by Trey.
3357
3358         WebKit part of:
3359
3360         - made basic marked text highlighting work to complete basic level of <rdar://problem/3704359> input method support not yet implemented for HTML editing
3361
3362         * WebView.subproj/WebHTMLView.m:
3363         (-[WebHTMLView markedRange]): Use new bridge calls instead of internal marked range storage.
3364         (-[WebHTMLView hasMarkedText]): Likewise.
3365         (-[WebHTMLView unmarkText]): Likewise.
3366         (-[WebHTMLView _selectMarkedText]): Likewise.
3367         (-[WebHTMLView _selectRangeInMarkedText:]): Likewise.
3368         (-[WebHTMLView _selectionIsInsideMarkedText]): Likewise.
3369         (-[WebHTMLView _updateSelectionForInputManager]): Likewise.
3370         (-[WebHTMLView setMarkedText:selectedRange:]): Use direct bridge call instead
3371         of private _selectMarkedDOMRange: method, which would now be trivial.
3372         * WebView.subproj/WebHTMLViewInternal.h: Remove unneeded
3373
3374 2004-08-10  Darin Adler  <darin@apple.com>
3375
3376         Reviewed by Ken.
3377
3378         - change name of WebMakeCollectable to WebNSRetainCFRelease so it fits into the
3379           "NS and CF retain counts are separate" mental model, rather than the "think about
3380           how garbage collection works" one
3381
3382         * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Rename.
3383         * Misc.subproj/WebNSObjectExtras.h: (WebNSRetainCFRelease): Ditto.
3384         * Misc.subproj/WebNSURLExtras.m:
3385         (+[NSURL _web_URLWithData:relativeToURL:]): Ditto.
3386         (-[NSURL _web_URLWithLowercasedScheme]): Ditto.
3387
3388 2004-08-09  Trey Matteson  <trey@apple.com>
3389
3390         3756599 - REGRESSION: hit assertion in KWQPageState invalidate
3391
3392         By inspection I found a flaw in the recently added logic, although
3393         I have no steps to repro.  My theoretical explanation is that we would
3394         get two errors and go through _receivedMainResourceError: twice, which
3395         would cause the pageState to be invalidated twice, which is the only
3396         way I can see to hit the assert.
3397
3398         Reviewed by Darin
3399
3400         * WebView.subproj/WebFrame.m:
3401         (-[WebFrame _receivedMainResourceError:]):  Clear the pageState out
3402         of the history item after it's been invalidated by WebCore.
3403
3404 2004-08-09  Richard Williamson   <rjw@apple.com>
3405
3406         Inspired by Trey we have a much better approach for conditionally
3407         linking Quart.framework.  Instead of multiple targets we use 
3408         `` to invoke some inline script to extend COMMON_LDFLAGS as
3409         necessary.  Thanks Trey!
3410         
3411         Reviewed by Trey.
3412
3413         * WebKit.pbproj/project.pbxproj:
3414
3415 2004-08-09  Trey Matteson  <trey@apple.com>
3416
3417         Hookup UI for "Continuous Spelling" menu item.
3418
3419         Reviewed by Richard.
3420
3421         * WebView.subproj/WebView.m:
3422         (-[WebView validateUserInterfaceItem:]):  Enable and check the
3423         menu item to reflect our state.
3424         (-[WebView toggleContinuousSpellChecking:]):  Change type to
3425         IBAction, just cosmetic.
3426         * WebView.subproj/WebViewPrivate.h:
3427
3428 2004-08-08  Trey Matteson  <trey@apple.com>
3429
3430         3745023 - Safari crashes trying to access anchor while downloading
3431
3432         I bet this is behind a few other crashers as well.  In this bug the start of the
3433         download leaves a KWQPageState hanging around, and when that is freed it damages
3434         the part and view.  If you're still using that page, you're dead.
3435
3436         The fix is to properly invalidate the PageState when we receive an error before
3437         reaching WebFrameCommitted state.  Normally this happens when a page is reheated
3438         from the PageState, but in this case we never manage to leave the page to begin
3439         with, although we've already created the PageState.
3440
3441         Other errors besides the synthetic one download generates would have caused similar
3442         crashing.  Another example would be clicking on a second link before the load
3443         caused by clicking on the first link reached committed state.
3444
3445         Reviewed by Richard
3446
3447         * WebView.subproj/WebDataSource.m:
3448         (-[WebDataSource _receivedMainResourceError:complete:]):  Let the frame do the
3449         main work (since it has access to the pageCache state).  Also renamed to make
3450         it clear that this is about an error for the main resource.
3451         * WebView.subproj/WebDataSourcePrivate.h:
3452         * WebView.subproj/WebFrame.m:
3453         (-[WebFrame _receivedMainResourceError:]):  Let WC know about the failure, as
3454         the DataSource used to, but now pass the pageCache state along too.
3455         * WebView.subproj/WebFramePrivate.h:
3456         * WebView.subproj/WebMainResourceClient.m:
3457         (-[WebMainResourceClient receivedError:]):  Call renamed method.
3458         (-[WebMainResourceClient cancelWithError:]):  Ditto.
3459
3460 2004-08-08  Vicki Murley  <vicki@apple.com>
3461
3462         Reviewed by vicki (changes by rjw)
3463  
3464         - make "weak" linking with Quartz work with buildit
3465
3466         * WebKit.pbproj/project.pbxproj: 
3467
3468 2004-08-06  Ken Kocienda  <kocienda@apple.com>
3469
3470         Reviewed by Maciej
3471
3472         Finish off spellchecking support to HTML editing. Includes work to
3473         enable continuous spellchecking.
3474
3475         * WebCoreSupport.subproj/WebBridge.m:
3476         (-[WebBridge isContinuousSpellCheckingEnabled]): Simple bridge method.
3477         * WebCoreSupport.subproj/WebTextRenderer.m:
3478         (-[WebTextRenderer drawLineForMisspelling:withWidth:]): New method to add
3479         AppKit-style misspelling underline.
3480
3481 === Safari-155 ===
3482
3483 2004-08-05  Darin Adler  <darin@apple.com>
3484
3485         * WebView.subproj/WebHTMLView.m: Added a list of methods that NSTextView implements that we don't.
3486         All inside #if 0.
3487
3488 2004-08-05  Chris Blumenberg  <cblu@apple.com>
3489
3490         Fixed unnecessary import of NSURLFileTypeMappings.
3491
3492         * WebView.subproj/WebMainResourceClient.m:
3493
3494 20