Reviewed by Ken.
[WebKit-https.git] / WebKit / ChangeLog
1 2005-02-17  John Sullivan  <sullivan@apple.com>
2
3         Reviewed by Ken.
4         
5         - fixed <rdar://problem/3997185> The Web view on .Mac Prefs caused System Prefs 
6         to lockup (resolved by re-boot only)
7
8         * WebCoreSupport.subproj/WebBridge.m:
9         (-[WebBridge nextKeyViewOutsideWebFrameViews]):
10         Don't allow recursion here; assert on debug build, return nil on deployment. I
11         couldn't get my machine into a state to repro this problem (and neither could the
12         originator), but it's obvious from the stack crawl that this method was recursing
13         when it shouldn't have.
14
15 2005-02-16  John Sullivan  <sullivan@apple.com>
16
17         Written by Darin, reviewed by me.
18         
19         - WebKit part of fix for <rdar://problem/4007384> 
20         FILTER: Bookmark of RSS with Japanese search word & multiple RSS pages loses filter
21
22         * DOM.subproj/DOMPrivate.h:
23         updated this file, which is a copy of the WebCore version
24
25 2005-02-16  Richard Williamson   <rjw@apple.com>
26
27         Fixed <rdar://problem/3966973> Tiger 8A357: Binary Compatiblity: frequent Webstractor.app crashes [WebImageData _nextFrame]
28
29         Webstractor.app was playing tricks to create thumbnails of
30         pages.  This caused the 'focusView' to be incorrect during
31         animated GIF frame rendering.
32
33         Reviewed by Chris.
34
35         * WebCoreSupport.subproj/WebImageRenderer.m:
36         (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
37
38 2005-02-16  Vicki Murley  <vicki@apple.com>
39
40         Reviewed by me, code change by Darin.
41
42         - fixed the build on Panther
43
44         * WebView.subproj/WebFormDataStream.m: (webSetHTTPBody):
45         Added a Panther-specific code path that just loads all the data into one big
46         NSData object. This means that bug 3686434 won't be fixed on SUPanWheat; we'll
47         still load the file into memory before sending it to the server on Panther.
48
49 2005-02-15  Richard Williamson   <rjw@apple.com>
50
51         Fixed <rdar://problem/3998368> Tiger8A376: WebTextRenderer assertion failure in Safari while browsing news.bbc.co.uk
52
53         Removed use of FATAL_ALWAYS from getUncachedWidth().  It's unclear
54         why we would trigger the FATAL_ALWAYS.  In the past we've seen
55         the message triggered because of corrupt fonts.  Anyway, in this
56         particular case, we will now return 0 for the character width,
57         rather than exiting.
58
59         Reviewed by David Harrison.
60
61         * WebCoreSupport.subproj/WebTextRenderer.m:
62         (getUncachedWidth):
63
64 2005-02-15  Richard Williamson   <rjw@apple.com>
65
66         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
67
68         Lie about Osaka-Mono.  Treat it as fixed pitch, even though,
69         strictly speaking it isn't.  (Similar to what we do with
70         Courier New.)
71
72         Reviewed by David Harrison.
73
74         * WebCoreSupport.subproj/WebTextRenderer.m:
75         (-[WebTextRenderer _computeWidthForSpace]):
76         * WebCoreSupport.subproj/WebTextRendererFactory.h:
77         * WebCoreSupport.subproj/WebTextRendererFactory.m:
78         (-[NSFont _web_isFakeFixedPitch]):
79         (-[WebTextRendererFactory isFontFixedPitch:]):
80         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
81
82 2005-02-14  Darin Adler  <darin@apple.com>
83
84         Reviewed by John.
85
86         - fixed <rdar://problem/3686434> Safari uses too much RAM on file upload, leading to malloc errors and crashes (HP printers)
87
88         * WebView.subproj/WebFormDataStream.h: Added webSetHTTPBody, which creates and connects an appropriate
89         stream to an NSMutableURLRequest.
90         * WebView.subproj/WebFormDataStream.m: Added implementation here.
91
92         * WebCoreSupport.subproj/WebBridge.m:
93         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
94         Use webSetHTTPBody.
95         * WebCoreSupport.subproj/WebSubresourceClient.m:
96         (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]):
97         Use webSetHTTPBody.
98         * WebView.subproj/WebFrame.m:
99         (-[WebFrame _loadItem:withLoadType:]): Use webSetHTTPBody.
100         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
101
102         * English.lproj/StringsNotToBeLocalized.txt: Updated for this change and other recent changes.
103
104 2005-02-11  Richard Williamson   <rjw@apple.com>
105
106         Fixed <rdar://problem/4002505> 8A378: Endlessly animating gif's on http://www.entropy.ch
107         
108         If animated images had no loop count property we were incorrectly
109         looping forver.  Note, that in the course of fixing this bug
110         I found that ImageIO is incorrectly NOT reporting the loop count
111         for a whole class of animated GIFs.
112
113         Reviewed by Ken Kocienda.
114
115         * WebCoreSupport.subproj/WebImageData.m:
116         (-[WebImageData _repetitionCount]):
117
118 === Safari-186 ===
119
120 2005-02-11  Vicki Murley  <vicki@apple.com>
121
122         Reviewed by Darin.
123
124         - fix deployment build on Panther
125  
126         * WebView.subproj/WebHTMLView.m:
127         (-[WebHTMLView changeBaseWritingDirection:]): ifdef out NSWritingDirectionNatural
128         (-[WebHTMLView toggleBaseWritingDirection:]): fix a spacing issue
129
130 2005-02-10  David Harrison  <harrison@apple.com>
131
132         Reviewed by Richard.
133
134         <rdar://problem/3991652> REGRESSION (Mail): Deleting entire line in reply deletes extra blank line and moves insertion point
135         
136         * WebView.subproj/WebHTMLView.m:
137         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:]):
138         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
139         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
140         (-[WebHTMLView selectToMark:]):
141         (-[WebHTMLView swapWithMark:]):
142         (-[WebHTMLView transpose:]):
143         (-[WebHTMLView _selectMarkedText]):
144         (-[WebHTMLView _selectRangeInMarkedText:]):
145         Adopt new default affinity of NSSelectionAffinityDownstream as of <rdar://problem/3937447>.
146         
147 2005-02-10  Darin Adler  <darin@apple.com>
148
149         Reviewed by Harrison.
150
151         - fixed <rdar://problem/4002084> Setting ResourceLoadDelegate to nil can cause a crash
152
153         * WebView.subproj/WebView.m: (-[WebView _cacheResourceLoadDelegateImplementations]):
154         Set booleans to either YES or NO, rather than setting them only in the YES case.
155
156 2005-02-10  Darin Adler  <darin@apple.com>
157
158         Reviewed by Harrison.
159
160         - fixed <rdar://problem/3991225> Format->Style->Underline menu item does not get checked when selected text is underlined
161
162         * WebView.subproj/WebHTMLView.m:
163         (-[WebHTMLView validateUserInterfaceItem:]): Added tons of additional cases in here for all the
164         "action" style methods in this class that don't always want to be valid. For the ones where state
165         makes sense, added the state-checking code too for the menu item case.
166         (-[WebHTMLView ignoreSpelling:]): Removed unnecessary "editable text only" check since this command
167         would work fine on a non-editable selection.
168         (-[WebHTMLView swapWithMark:]): Ditto.
169         (-[WebHTMLView changeBaseWritingDirection:]): Added. Like toggle, but based on the sender's tag.
170
171 2005-02-08  Darin Adler  <darin@apple.com>
172
173         "Reviewed" by Richard (he told me the file was obsolete).
174
175         - got rid of an obsolete file
176
177         * Plugins.subproj/npsap.h: Removed.
178         * copy-webcore-files-to-webkit: Removed npsap.h.
179
180 2005-02-09  Richard Williamson   <rjw@apple.com>
181
182         Fixed <rdar://problem/4000073> non-screen font error on www.worldofwarcraft.com
183
184         Reviewed by John Sullivan.
185
186         * WebCoreSupport.subproj/WebTextRenderer.m:
187         (-[WebTextRenderer _smallCapsFont]):
188
189 === Safari-185 ===
190
191 2005-02-07  Chris Blumenberg  <cblu@apple.com>
192
193         Fixed: <rdar://problem/3993354> Safari claims to put RTFD on the pasteboard, but doesn't, in some cases
194
195         Reviewed by john.
196
197         * WebView.subproj/WebHTMLView.m:
198         (-[WebHTMLView _stripAttachmentCharactersFromAttributedString:]): moved
199         (-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]): take cachedAttributedString parameter in case the attributed string was gotten already
200         (-[WebHTMLView _writeSelectionToPasteboard:]): omit RTFD from the types list when there are no attachments
201
202 2005-02-07  David Harrison  <harrison@apple.com>
203
204         Reviewed by Ken.
205
206         <rdar://problem/3990693> REGRESSION (8A373): ctrl-k now deletes just one character instead of line
207         
208         * WebView.subproj/WebHTMLView.m:
209         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
210         Set the selection so that deleteKeyPressedWithSmartDelete knows what to delete.
211
212 2005-02-06  Darin Adler  <darin@apple.com>
213
214         Reviewed by Maciej.
215
216         - fixed <rdar://problem/3963166> PDFView SPI print method is being deprecated, moving to PDFDocument; please update WebKit
217
218         * WebView.subproj/WebPDFView.m: (-[WebPDFView printOperationWithPrintInfo:]): Target the document instead of the view.
219
220         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes and also moved one translation to be a file-specific
221         item rather than a file-independent one.
222
223 2005-02-05  Chris Blumenberg  <cblu@apple.com>
224
225         Fixed: <rdar://problem/3991974> REGRESSION: www.jabra.com world location screen does not work
226
227         Reviewed by hyatt.
228
229         * WebCoreSupport.subproj/WebBridge.m:
230         (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): use the baseURL from the bridge rather than from the response
231
232 2005-02-04  Chris Blumenberg  <cblu@apple.com>
233
234         Fixed: <rdar://problem/3802781> rtf->html pasteboard conversion using xhtml
235
236         Reviewed by kocienda.
237
238         * WebView.subproj/WebHTMLView.m:
239         (+[WebHTMLView _excludedElementsForAttributedStringConversion]): new
240         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): call _excludedElementsForAttributedStringConversion
241
242 2005-02-04  Chris Blumenberg  <cblu@apple.com>
243
244         Fixed: <rdar://problem/3832973> copy text from PowerPoint, paste into Blot (or presumably Mail) and get a single missing image icon
245
246         Reviewed by john.
247
248         * WebView.subproj/WebHTMLView.m:
249         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): prefer RTF and RTFD over images just as NSTextView does
250
251 2005-02-03  Chris Blumenberg  <cblu@apple.com>
252
253         Fixed: <rdar://problem/3555137> REGRESSION (125-173): Flash animation can erase parts of chrome (bookmarks bar & tab bar)
254
255         convertRect:toView: returns incorrect results inside of viewWillMoveToWindow: with a nil window. Workaround this by catching this case.
256
257         Reviewed by darin.
258
259         * Plugins.subproj/WebBaseNetscapePluginView.m:
260         (-[WebBaseNetscapePluginView superviewsHaveSuperviews]): new
261         (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]): clip out the plug-in view when superviewsHaveSuperviews returns NO
262
263 2005-02-03  Chris Blumenberg  <cblu@apple.com>
264
265         Fixed: <rdar://problem/3893513> Sun iPlanet app: when saving to a file it brings up a window with the thing to be saved instead
266
267         Reviewed by adele.
268
269         * WebView.subproj/WebTextView.m:
270         (+[WebTextView unsupportedTextMIMETypes]): added "text/ldif" to the list of MIME types that our text view doesn't handle
271
272 === Safari-183 ===
273
274 2005-02-03  Chris Blumenberg  <cblu@apple.com>
275
276         * English.lproj/StringsNotToBeLocalized.txt: updated
277
278 2005-02-03  Chris Blumenberg  <cblu@apple.com>
279
280         Fixed: <rdar://problem/3989611> Evite style "add vCalendar to calendar" do not work
281
282         Reviewed by adele.
283
284         * WebView.subproj/WebTextView.m:
285         (+[WebTextView unsupportedTextMIMETypes]): added "text/x-vcalendar" to the list of MIME types our text view doesn't handle
286
287 2005-02-03  Vicki Murley  <vicki@apple.com>
288
289         Reviewed by Darin.
290
291         - fix deployment build breakage on Panther
292  
293         * WebView.subproj/WebHTMLView.m:
294         (-[WebHTMLView toggleBaseWritingDirection:]):
295
296 2005-02-02  John Sullivan  <sullivan@apple.com>
297
298         Reviewed by Chris.
299         
300         - WebKit part of fix for <rdar://problem/3980651> REGRESSION (125-180): Huge number of pages printed from certain page, 
301         iFrame involved
302         
303         This also fixes the problems with printing from GMail, yay!
304
305         * WebView.subproj/WebHTMLView.m:
306         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
307         Don't adjust margins for header/footer here, because this is called for each subframe.
308         (-[WebHTMLView knowsPageRange:]):
309         Do adjust margins for header/footer here (analogous to WebTextView and WebImageView).
310         Also, round the page height to an integer here (noticed in passing).
311
312 2005-02-02  Chris Blumenberg  <cblu@apple.com>
313
314         Fixed: <rdar://problem/3986546> Cut, delete, and paste menu items are active when a image is opened in window
315
316         Reviewed by john.
317
318         * WebView.subproj/WebView.m:
319         (-[WebView _responderValidateUserInterfaceItem:]): new, has the responder validate the item 
320         (-[WebView validateUserInterfaceItem:]): call VALIDATE for each repsonder selector using FOR_EACH_RESPONDER_SELECTOR macro
321         (-[WebView _performResponderOperation:with:]): call factored out method _responderForResponderOperations
322         (-[WebView _responderForResponderOperations]): new, code from _performResponderOperation:with:
323
324 2005-02-02  Chris Blumenberg  <cblu@apple.com>
325
326         Fixed: <rdar://problem/3983628> control-click on WebView is not selecting the word under the cursor (Mail, non-editable WebView)
327
328         Reviewed by rjw.
329
330         * WebCoreSupport.subproj/WebBridge.m:
331         (-[WebBridge selectWordBeforeMenuEvent]): new
332         * WebView.subproj/WebView.m:
333         (-[WebView _selectWordBeforeMenuEvent]): new SPI
334         (-[WebView _setSelectWordBeforeMenuEvent:]): new SPI
335         * WebView.subproj/WebViewInternal.h:
336         * WebView.subproj/WebViewPrivate.h:
337
338 2005-02-02  Chris Blumenberg  <cblu@apple.com>
339
340         Fixed: <rdar://problem/3986013> Assertion failure going back after page load error (no apparent problem in nondebug build)
341
342         Reviewed by rjw.
343
344         * WebView.subproj/WebDataSource.m:
345         (-[WebDataSource _setPrimaryLoadComplete:]): don't set the data source data when the main client is nil
346
347 2005-02-02  Ken Kocienda  <kocienda@apple.com>
348
349         Reviewed by Darin
350
351         Fix for this bug:
352         
353         <rdar://problem/3823109> WebKit should support -toggleBaseWritingDirection: (bidi editing support)
354
355         * WebView.subproj/WebHTMLView.m:
356         (-[WebHTMLView _applyParagraphStyleToSelection:withUndoAction:]): New function that calls through to
357         new feature that allows callers to force all properties in a style to be applied as block styles.
358         (-[WebHTMLView _alignSelectionUsingCSSValue:withUndoAction:]): Removed FIXME comment for something that has been fixed.
359         (-[WebHTMLView toggleBaseWritingDirection:]): Implemented.
360
361 2005-02-01  Richard Williamson   <rjw@apple.com>
362
363         Fixed <rdar://problem/3977727> WebKit should use new SPI to support faster GIF rendering
364
365         Note:  This REQUIRES build >= 3A362 when building on Tiger.
366
367         Reviewed by John.
368
369         * WebCoreSupport.subproj/WebImageData.m:
370         (-[WebImageData _imageSourceOptions]):
371
372 === Safari-182 ===
373
374 2005-02-01  Richard Williamson   <rjw@apple.com>
375
376         Added new SPI for <rdar://problem/3967063> need spi on WebView to turn of lcd text for Dashboard
377
378         Reviewed by Chris.
379
380         * WebCoreSupport.subproj/WebTextRenderer.m:
381         (_drawGlyphs):
382         * WebView.subproj/WebView.m:
383         (-[WebView drawRect:]):
384         (-[WebView _dashboardBehavior:]):
385         (+[WebView _setShouldUseFontSmoothing:]):
386         (+[WebView _shouldUseFontSmoothing]):
387         * WebView.subproj/WebViewInternal.h:
388         * WebView.subproj/WebViewPrivate.h:
389
390 2005-01-31  Chris Blumenberg  <cblu@apple.com>
391
392         Fixed: <rdar://problem/3949806> REGRESSION: Source window fails to refresh correctly on reload
393
394         The data method was being called on WebDataSource before the data was set. This fix makes WebDataSource set the data before releasing the main client instead of waiting for the main client to set it when it is dealloced.
395
396         Reviewed by darin.
397
398         * WebView.subproj/WebDataSource.m:
399         (-[WebDataSource _setData:]): moved within file
400         (-[WebDataSource _setPrimaryLoadComplete:]): call _setData: with the data from the main client before letting go of the main client
401         * WebView.subproj/WebDataSourcePrivate.h:
402         * WebView.subproj/WebMainResourceClient.m:
403         (-[WebMainResourceClient releaseResources]): removed call to _setData: since the data source may need the data before releaseResources is called
404
405 2005-01-31  Chris Blumenberg  <cblu@apple.com>
406
407         Fixed: <rdar://problem/3946285> Seed: Safari crashed by selecting all at internet-moebel.com
408
409         Reviewed by john.
410
411         * WebView.subproj/WebHTMLView.m:
412         (-[WebHTMLView _hitViewForEvent:]): new, factored hit test hack to this method
413         (-[WebHTMLView _updateMouseoverWithEvent:): call _hitViewForEvent:
414         (-[WebHTMLView acceptsFirstMouse:]): call _setMouseDownEvent: and _isSelectionEvent: on the hit HTMLView or else when it's asked to drag it will assert
415         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
416
417 2005-01-31  David Harrison  <harrison@apple.com>
418
419         Reviewed by Darin.
420
421         <rdar://problem/3961239> AX Setting AXFocused on AXScrollArea of AXWebArea will cause keyboard selection change
422
423         * WebView.subproj/WebHTMLView.m:
424         (-[WebHTMLView maintainsInactiveSelection]):
425         Keep the selection when the new first respomder is our own scrollview, in both editable and non-editaqble content.
426
427 2005-01-31  Jens Alfke  <jens@apple.com>
428
429         Reviewed by John.
430
431         - Fixed <rdar://problem/3903199> REGRESSION: Large background patterns slide around while loading
432
433         * WebCoreSupport.subproj/WebImageData.m:
434         (drawPattern):
435         (-[WebImageData tileInRect:fromPoint:context:]):
436
437 2005-01-30  Darin Adler  <darin@apple.com>
438
439         Reviewed by John.
440
441         - fixed <rdar://problem/3965265> Safari displays HTML as source when default encoding is Hebrew (due to direction overrides added by encoding converter)
442
443         * WebView.subproj/WebPreferencesPrivate.h: Added _systemCFStringEncoding, and changed
444         _setInitialDefaultTextEncodingToSystemEncoding to be a class method.
445         * WebView.subproj/WebPreferences.m:
446         (+[WebPreferences _systemCFStringEncoding]): Added. New SPI to be used by Safari. Broken out of
447         _setInitialDefaultTextEncodingToSystemEncoding, but also added cases for MacArabic and MacHebrew.
448         (+[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]): Refactor to use _systemCFStringEncoding.
449
450 2005-01-28  Jens Alfke  <jens@apple.com>
451
452         Reviewed by Richard.
453
454         <rdar://problem/3727680> printing some page with WebKit generates a PDF with a 1x1 image with soft mask (causes Acrobat to hang during print spooling)
455
456         Detect 1x1 images, extract and cache color of single pixel, reduce draw and tile operations to a color fill (or to a no-op if the pixel is clear.)
457
458         * WebCoreSupport.subproj/WebImageData.h:
459         * WebCoreSupport.subproj/WebImageData.m:
460         (-[WebImageData _invalidateImages]):
461         (-[WebImageData _checkSolidColor:]):
462         (-[WebImageData _cacheImages:allImages:]):
463         (-[WebImageData _fillSolidColorInRect:compositeOperation:context:]):
464         (-[WebImageData tileInRect:fromPoint:context:]):
465
466 2005-01-28  David Harrison  <harrison@apple.com>
467
468         Reviewed by Darin.
469
470         <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
471
472         Use AppKit SPI _accessibilityParentForSubview to return KWQAccObject parent of AppKit AX object.
473         
474         * WebView.subproj/WebHTMLView.m:
475         (-[WebHTMLView _accessibilityParentForSubview:]):
476         New.
477
478 2005-01-28  Chris Blumenberg  <cblu@apple.com>
479
480         WebKit side of: <rdar://problem/3951283> can view pages from the back/forward cache that should be disallowed by Parental Controls
481
482         Reviewed by john.
483
484         * WebView.subproj/WebDefaultPolicyDelegate.m:
485         (-[WebDefaultPolicyDelegate webView:shouldGoToHistoryItem:]): new private delegate method
486         * WebView.subproj/WebFrame.m:
487         (-[WebFrame _goToItem:withLoadType:]): call new delegate method
488         * WebView.subproj/WebPolicyDelegatePrivate.h:
489
490 2005-01-26  Maciej Stachowiak  <mjs@apple.com>
491
492         Reviewed by Darin, Hyatt and Ken.
493
494         <rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration
495
496         * WebView.subproj/WebHTMLView.m:
497         (-[WebHTMLView _styleFromFontAttributes:]): Use new -khtml-text-decorations-in-effect
498         property
499         (-[WebHTMLView _styleForAttributeChange:]): likewise
500         (-[WebHTMLView underline:]): likewise
501
502 2005-01-27  Ken Kocienda  <kocienda@apple.com>
503
504         Reviewed by Maciej
505
506         * WebView.subproj/WebHTMLView.m:
507         (-[WebHTMLView _handleKillRing:prepend:]): New helper function. Code factored out from 
508          _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:.
509         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:]): No longer takes 
510         unused preflight argument. Now takes new isTypingAction argument. Uses isTypingAction to
511         determine which flavor of delete command to call.
512         (-[WebHTMLView _deleteSelection]): No longer passes unused preflight argument. Now passes new isTypingAction argument.
513         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Rearranged code to call
514         correct flavor of delete command, based on whether typing should be preserved. Some other cleanups.
515         (-[WebHTMLView deleteForward:]): Add _isEditable check.
516         (-[WebHTMLView deleteBackward:]): Now calls _deleteWithDirection instead of having unique behavior different 
517         from forward delete.
518         (-[WebHTMLView deleteWordForward:]): Add new isTypingAction flag to _deleteWithDirection call.
519         (-[WebHTMLView deleteWordBackward:]): Ditto.
520         (-[WebHTMLView deleteToBeginningOfLine:]): Ditto.
521         (-[WebHTMLView deleteToEndOfLine:]): Ditto.
522         (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto.
523         (-[WebHTMLView deleteToEndOfParagraph:]): Ditto.
524         (-[WebHTMLView deleteToMark:]): Ditto.
525
526 === Safari-181 ===
527
528 2005-01-27  Chris Blumenberg  <cblu@apple.com>
529
530         Fixed: <rdar://problem/3973272> REGRESSION: Safari uses QT plugin to display PNG images
531
532         Reviewed by john.
533
534         * Plugins.subproj/WebBasePluginPackage.m: use renamed QT bundle ID
535
536 2005-01-26  Darin Adler  <darin@apple.com>
537
538         Reviewed by John.
539
540         - fixed <rdar://problem/3829517> WebView still draws white when setDrawsBackground set to NO and no content loaded yet
541
542         * WebView.subproj/WebFrameView.m: (-[WebFrameView drawRect:]): Check drawsBackground, and don't
543         draw the white "no document" background if it's NO. This fixes things for frames with no document.
544         * WebView.subproj/WebImageView.m: (-[WebImageView drawRect:]): Same as above. This fixes things
545         for frames with just an image.
546         * WebView.subproj/WebFrame.m: (-[WebFrame _updateDrawsBackground]): Call setDrawsBackground: on the
547         document view if it implements it. This fixes things for frames with plain text.
548
549 2005-01-25  John Sullivan  <sullivan@apple.com>
550
551         Reviewed by Chris.
552         
553         - WebKit part of fix for: <rdar://problem/3970670> Text context menu 
554           in WebKit needs "Look Up in Dictionary" item
555
556         * WebView.subproj/WebDefaultContextMenuDelegate.m:
557         (localizedMenuTitleFromAppKit):
558         return English string in the case where AppKit bundle is found but doesn't
559         contain the expected string. This case will be hit by people testing with
560         an older AppKit.
561         (-[WebDefaultUIDelegate menuItemWithTag:]):
562         create Look Up in Dictionary item
563         (-[WebDefaultUIDelegate contextMenuItemsForElement:]):
564         add Look Up in Dictionary item and separator
565         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]):
566         ditto
567
568         * WebView.subproj/WebHTMLView.m:
569         (-[WebHTMLView _lookUpInDictionaryFromMenu:]):
570         new method, handles bringing up the Dictionary window. Includes FIXMEs
571         for a couple of the known loose ends.
572         (-[WebHTMLView validateUserInterfaceItem:]):
573         handle Look Up in Dictionary item like the other new items
574         
575         * WebView.subproj/WebUIDelegatePrivate.h:
576         added SPI constant for Look Up in Dictionary menu item
577
578 2005-01-24  Maciej Stachowiak  <mjs@apple.com>
579
580         Fixed Panther build (missing ifdef)
581
582         * WebView.subproj/WebDefaultContextMenuDelegate.m:
583
584 2005-01-24  John Sullivan  <sullivan@apple.com>
585
586         Reviewed by Darin.
587         
588         - WebKit part of fix for <rdar://problem/3960231> Text context menu in WebKit needs Spotlight and Google items
589         
590         * WebView.subproj/WebDefaultContextMenuDelegate.m:
591         (localizedMenuTitleFromAppKit):
592         new function, gets localized string from AppKit so we can avoid adding localized
593         strings to WebKit at this late date in Tiger. Returns the non-localized English
594         string if we can't find the localized string in AppKit.
595         (-[WebDefaultUIDelegate menuItemWithTag:]):
596         handle the two new menu items by tag name
597         (-[WebDefaultUIDelegate contextMenuItemsForElement:]):
598         add menu items for Search in Google and Search in Spotlight to selected-text menu item
599         for the noneditable case
600         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]):
601         add menu items for Search in Google and Search in Spotlight to selected-text menu item
602         for the editable case
603
604         * WebView.subproj/WebHTMLView.m:
605         (-[WebHTMLView _searchWithGoogleFromMenu:]):
606         implement this menu item action method, using same method name and implementation as NSTextView
607         (-[WebHTMLView _searchWithSpotlightFromMenu:]):
608         implement this menu item action method, using same basic implementation as NSTextView
609         (-[WebHTMLView validateUserInterfaceItem:]):
610         validate new menu items
611         
612         * WebView.subproj/WebUIDelegatePrivate.h:
613         define new tags for new menu items
614
615         * English.lproj/StringsNotToBeLocalized.txt:
616         updated for these changes
617
618 2005-01-24  Darin Adler  <darin@apple.com>
619
620         * WebView.subproj/WebDataSource.m: (+[WebDataSource _repTypesAllowImageTypeOmission:]):
621         Do the same check as for view types, so the representation types are consistent.
622
623 2005-01-24  Darin Adler  <darin@apple.com>
624
625         Reviewed by John.
626
627         - fixed <rdar://problem/3791158> REGRESSION (Mail): copyFont: and pasteFont: copy and paste only the NSFont, not other attributes
628
629         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _styleFromFontAttributes:]): Added the last
630         few loose ends here: strikethrough and underline.
631
632         - fixed <rdar://problem/3967393> add a user default that lets you turn off WebKit PDF support
633
634         * WebView.subproj/WebFrameView.m: (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
635         Leave the PDF-handling classes out of the dictionary if the secret default is set.
636
637         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
638
639 2005-01-20  Darin Adler  <darin@apple.com>
640
641         Reviewed by Kristin Forster.
642
643         - fixed <rdar://problem/3964972> update _initWithCGSEvent:eventRef: call in mouse moved workaround (breaks cursors in Carbon WebKit applications)
644
645         * Carbon.subproj/HIWebView.m: (MouseMoved): Instead of munging the event record's window number directly
646         before calling _initWithCGSEvent, on Tiger we call _eventRelativeToWindow on the event after creating it.
647         Also added a check so that with Macromedia Contribute's workaround in place we don't do anything at all
648         to the event. Tested with both Contribute and CarbonWeb.
649
650         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
651
652 2005-01-20  Richard Williamson   <rjw@apple.com>
653
654         Fixed <rdar://problem/3815672> REGRESSION (Mail): Japanese text cannot be made bold
655
656         The AppKit's font substitution API doesn't match font traits! 
657         It only find fonts that contain the appropriate glyphs.  This
658         patch attempts to find the best variation within a family.
659
660         Reviewed by Maciej.
661
662         * WebCoreSupport.subproj/WebTextRenderer.m:
663         (-[WebTextRenderer _substituteFontForString:families:]):
664
665 === Safari-180 ===
666
667 2005-01-20  Ken Kocienda  <kocienda@apple.com>
668
669         Reviewed by John
670
671         Fix for this bug:
672         
673         <rdar://problem/3786659> REGRESSION (Mail): editable WebViews don't work with "size up" and "size down" NSFontManager changes
674
675         * WebView.subproj/WebHTMLView.m:
676         (-[WebHTMLView _addToStyle:fontA:fontB:]): This is the WebKit side of the fix. Replaced unimplemented code blocks
677         with FIXME's in them for make bigger and make smaller with real working code.
678
679 2005-01-19  David Hyatt  <hyatt@apple.com>
680
681         Fix for 3513067, spaces being lost when RTL text is rendered.  Make sure not to allow hangers or spaces
682         in the margin.
683         
684         Reviewed by john
685         
686         * WebCoreSupport.subproj/WebTextRenderer.m:
687         (-[WebTextRenderer _createATSUTextLayoutForRun:style:]):
688
689 2005-01-19  Darin Adler <darin@apple.com>
690
691         Reviewed by vicki
692
693         - fixed <rdar://problem/3962559> stopAnimationsInView leaks after cvs-base
694  
695         * WebCoreSupport.subproj/WebImageData.m: (+[WebImageData stopAnimationsInView:]): add a release
696
697 2005-01-19  Chris Blumenberg  <cblu@apple.com>
698
699         Fixed: <rdar://problem/3961809> plug-in code attempts to load empty URL
700
701         Reviewed by john.
702
703         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
704         (-[WebNetscapePluginEmbeddedView didStart]): don't start load if URL is empty
705
706 2005-01-17  Darin Adler  <darin@apple.com>
707
708         * DOM.subproj/DOMPrivate.h: Check in generated file.
709
710 2005-01-17  Darin Adler  <darin@apple.com>
711
712         Reviewed by John and Richard.
713
714         - fixed <rdar://problem/3907453> printing a multi-page PDF document from Safari doesn't produce correct output
715
716         * WebView.subproj/WebFrameViewPrivate.h: Added.
717         * WebView.subproj/WebFrameView.m:
718         (-[WebFrameView canPrintHeadersAndFooters]): Added. Returnes NO for documents that can't print headers or footers,
719         and delegates to the document view to answer the question. Defaults to NO, since only a view that actively does
720         the work is compatible with our header and footer code.
721         (-[WebFrameView printOperationWithPrintInfo:]): Added. Returns an NSPrintOperation set up for printing. The reason
722         we return this rather than an NSView is that in the PDFView case, the print info is changed around before creating
723         the NSPrintOperation, and also the PDFKit SPI works this way.
724
725         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView canPrintHeadersAndFooters]): Added. Returns YES.
726         * WebView.subproj/WebImageView.m: (-[WebImageView canPrintHeadersAndFooters]): Ditto.
727         * WebView.subproj/WebTextView.m: (-[WebTextView canPrintHeadersAndFooters]): Ditto.
728
729         * WebView.subproj/WebPDFView.m:
730         (-[WebPDFView canPrintHeadersAndFooters]): Added. Returns NO.
731         (-[WebPDFView printOperationWithPrintInfo:]): Added. Calls getPrintOperationForPrintInfo: autoRotate:YES on the PDFView.
732
733         * WebKit.pbproj/project.pbxproj: Added WebFrameViewPrivate.h as a new private header.
734
735 2005-01-13  Chris Blumenberg  <cblu@apple.com>
736
737         Fixed: <rdar://problem/3932107> Safari does not load QT Cocoa plug-in if the WebPluginMIMETypes key is not in the info.plist
738
739         Fixing this bug required that we allow WebKit plug-ins (as well as Netscape plug-ins) support BP_CreatePluginMIMETypesPreferences
740         which allows plug-ins create an auxiliary MIME types file.
741
742         Reviewed by adele.
743
744         * Plugins.subproj/WebBasePluginPackage.h:
745         * Plugins.subproj/WebBasePluginPackage.m:
746         (+[WebBasePluginPackage preferredLocalizationName]): moved from WebNetscapePluginPackage
747         (-[WebBasePluginPackage pListForPath:createFile:]): ditto
748         (-[WebBasePluginPackage getPluginInfoFromPLists]): ditto
749         (-[WebBasePluginPackage isLoaded]): return isLoaded ivar
750         (-[WebBasePluginPackage load]): if loaded, get BP_CreatePluginMIMETypesPreferences symbol
751         * Plugins.subproj/WebNetscapePluginPackage.h:
752         * Plugins.subproj/WebNetscapePluginPackage.m:
753         (-[WebNetscapePluginPackage load]): call super when done so BP_CreatePluginMIMETypesPreferences can be initialized
754         * Plugins.subproj/WebPluginPackage.m:
755         (-[WebPluginPackage initWithPath:]): call getPluginInfoFromPLists
756         (-[WebPluginPackage load]): call super when done so BP_CreatePluginMIMETypesPreferences can be initialized
757
758 2005-01-13  Richard Williamson   <rjw@apple.com>
759
760         Fixed <rdar://problem/3952809> WebJavaPlugIn.h comments need method name corrected (webPlugInCallJava)
761
762         Reviewed by Maciej.
763
764         * Plugins.subproj/WebJavaPlugIn.h:
765
766 === Safari-179 ===
767
768 2005-01-13  Vicki Murley <vicki@apple.com>
769
770         Reviewed by Adele.
771
772         - fix <rdar://problem/3946836> Safari about box lists 2004 instead of 2005
773
774         * WebKit.pbproj/project.pbxproj: bump "2004" to "2005"
775
776 2005-01-13  Richard Williamson   <rjw@apple.com>
777
778         Fixed <rdar://problem/3951911> REGRESSION: Animated GIF images with loop counts no longer update
779
780         Draw last image after animation loop terminates.  (We
781         were drawing the image at index+1, which doesn't exist!)
782
783         Reviewed by Darin.
784
785         * WebCoreSupport.subproj/WebImageData.m:
786         (-[WebImageData _nextFrame:]):
787
788 2005-01-13  Richard Williamson   <rjw@apple.com>
789
790         Fixed <rdar://problem/3952084> REGRESSION: Links at projectseven.com now draw and update incorrectly during hover
791
792         Turn off use of new CGContextStrokeLineSegments API.  We should
793         turn back on when 3952944 is fixed.
794
795         Reviewed by Darin.
796
797         * WebCoreSupport.subproj/WebTextRenderer.m:
798         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
799
800 2005-01-13  Chris Blumenberg  <cblu@apple.com>
801
802         Fixed: <rdar://problem/3937663> repro assertion failure and crash dragging image that has PDF source
803
804         Reviewed by adele.
805
806         * Misc.subproj/WebNSViewExtras.m:
807         (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]): if [WebImageRenderer image] returns nil, fallback to code that uses a file icon as the drag image
808         * WebCoreSupport.subproj/WebImageRendererFactory.m:
809         (-[WebImageRendererFactory supportedMIMETypes]): removed code that omits PDF and PostScript from the list since this omission is only needed in WebImageView
810         * WebView.subproj/WebImageView.m:
811         (+[WebImageView supportedImageMIMETypes]): added code that omits PDF and PostScript since we don't want WebImageView to render these types
812
813 2005-01-10  Maciej Stachowiak  <mjs@apple.com>
814
815         Reviewed by Darin.
816
817         <rdar://problem/3758033> REGRESSION (Mail): Support attributes in marked text (International input)
818         
819         * WebCoreSupport.subproj/WebTextRenderer.m:
820         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]): Changed to support
821         underline thickness. Also added a bit of a hack here to move thickness 2 underlines down by
822         .5 pixels, since the rendering engine can't give a fractional pixel offset.
823         * WebView.subproj/WebHTMLView.m:
824         (-[WebHTMLView validAttributesForMarkedText]): Support underline, underline color and marked
825         clause attributes. Others that NSText supports are unimplemented for now.
826         (-[WebHTMLView firstRectForCharacterRange:]): Remove needless logging.
827         (-[WebHTMLView unmarkText]): Updated for new WebCore SPI.
828         (-[WebHTMLView _extractAttributes:ranges:fromAttributedString:]): New method to pull the attributes
829         and ranges out of an attributed string.
830         (-[WebHTMLView setMarkedText:selectedRange:]): Extract attributes and pass to WebCore.
831         (-[WebHTMLView insertText:]): Add comment noting that we don't really handle attributed strings
832         here.
833
834 2005-01-12  Darin Adler  <darin@apple.com>
835
836         Reviewed by Ken.
837
838         - fixed <rdar://problem/3848257> WebView will draw more than AppKit asks it to, so views behind won't redraw enough (transparent WebView)
839
840         * WebView.subproj/WebHTMLView.m:
841         (-[WebHTMLView _propagateDirtyRectsToOpaqueAncestors]): As recommended by Troy Stephens, do the
842         layouts here in this call, since it's before propagating the dirty rects to our ancestors.
843         This fixes the bug, but we only do it if the WebView is not opaque, because otherwise we can
844         optimize by only doing layouts you really need, and doing them later on is safe because we
845         know we don't need to draw any of the views behind us.
846         (-[WebHTMLView _layoutIfNeeded]): Added. Factored out from the method below.
847         (-[WebHTMLView _web_layoutIfNeededRecursive]): Added. Like the other "layout if needed" call,
848         but unconditional.
849         (-[WebHTMLView _web_layoutIfNeededRecursive:testDirtyRect:]): Factored out the guts into the
850         _layoutIfNeeded method above. Otherwise unchanged.
851         (-[NSView _web_layoutIfNeededRecursive]): Added.
852
853         * WebView.subproj/WebFrame.m: (-[WebFrame _updateDrawsBackground]): Call setDrawsBackground:NO
854         on the scroll view when changing the frame to no longer be in "draws background" mode. This
855         is needed because the frame manages the "draws background" mode of the scroll view. It won't
856         have any effect if you call setDrawsBackground:NO before starting to use a WebView, but without
857         it calling setDrawsBackground:NO later won't have an immediate effect (easily visible in Safari).
858         This was hidden before because the HTML view was filling with transparent color, which blew away
859         the fill that was done by NSScrollView.
860
861         - fixed <rdar://problem/3921129> reproducible crash at www.funnychristmas.com in CFSet manipulation in WebImageData
862
863         * WebCoreSupport.subproj/WebImageData.m:
864         (-[WebImageData _imageSourceOptions]): Changed types so we don't need a cast.
865         (+[WebImageData stopAnimationsInView:]): Instead of building a set of sets, by putting in the sets with addObject,
866         build a single set using unionSet, and then iterate the objects instead of having to iterate the sets and then the
867         objects in each set. The old code ended up sharing the sets with the live code, when the whole idea was to gather
868         all the renderers because the process of stopping modifies the active sets.
869
870 2005-01-12  Richard Williamson   <rjw@apple.com>
871
872         Fixed <rdar://problem/3926825> Safari ignores GIF loop count
873
874         Get loop count from file properties, not image properties.
875
876         Reviewed by Ken Kocienda.
877
878         * WebCoreSupport.subproj/WebImageData.h:
879         * WebCoreSupport.subproj/WebImageData.m:
880         (-[WebImageData _commonTermination]):
881         (-[WebImageData fileProperties]):
882         (-[WebImageData _floatProperty:type:at:]):
883         (-[WebImageData _floatFileProperty:type:]):
884         (-[WebImageData _repetitionCount]):
885
886 2005-01-11  Chris Blumenberg  <cblu@apple.com>
887
888         Fixed: <rdar://problem/3934749> assertion failure in WebBaseNetscapePluginView loading movie
889
890         Reviewed by john.
891
892         * Plugins.subproj/WebBaseNetscapePluginView.m:
893         (-[WebBaseNetscapePluginView start]): call canStart before asserting about the webView
894
895 2005-01-11  John Sullivan  <sullivan@apple.com>
896
897         Reviewed by Darin.
898         
899         - fixed <rdar://problem/3446838> REGRESSION (Mail): text decorations don't print 
900         (e.g. <strike>, underline)
901
902         * WebCoreSupport.subproj/WebTextRenderer.m:
903         (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
904         This bottleneck routine for drawing a line was setting the linewidth to 0 when
905         the graphics context was not drawing to the screen. Thus, no lines. Now links
906         are underlined when printing from Safari (as well as Mail).
907
908 2005-01-11  Richard Williamson   <rjw@apple.com>
909
910         Fixed 3949145.  CG has a much faster API for drawing lines.
911         Switched over to that new API (CGContextStrokeLineSegments).
912
913         Reviewed by John Sullivan.
914
915         * WebCoreSupport.subproj/WebTextRenderer.m:
916         (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
917
918 2005-01-10  Chris Blumenberg  <cblu@apple.com>
919
920         Fixed: <rdar://problem/3948862> REGRESSION: missing images when RTFD is pasted into editable WebView
921
922         This problem occurred because we were creating image elements before creating corresponding image resources. The fix is to have AppKit call us back to create the resources before it creates the elements.
923
924         Reviewed by john.
925
926         * WebView.subproj/WebHTMLView.m:
927         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): don't deal with subresources since that's now done by the following method
928         (-[WebHTMLView resourceForData:preferredFilename:]): new handler method called by AppKit
929
930 === Safari-178 ===
931
932 2005-01-06  David Harrison  <harrison@apple.com>
933
934         Reviewed by Dave Hyatt
935
936         <rdar://problem/3588548> AX: tabbing does not work correctly with the screen reader and a focused link; need AXFocusedUIElement to work.
937
938         * WebView.subproj/WebHTMLView.m:
939         (-[WebHTMLView accessibilityFocusedUIElement]):
940         Implement this so that AppKit can use it from NSAccessibilityHandleFocusChanged.
941
942 2005-01-05  Chris Blumenberg  <cblu@apple.com>
943
944         Fixed: <rdar://problem/3936865> REGRESSION: canvas.drawImage no longer scales properly
945
946         Reviewed by john.
947
948         * WebCoreSupport.subproj/WebImageData.m: use the height of the inRect instead of the fromRect when setting the origin of the context
949
950 2005-01-04  Chris Blumenberg  <cblu@apple.com>
951
952         Fixed: <rdar://problem/3928329> WebKit should pass nil for "language" to checkSpellingOfString:
953
954         Reviewed by kocienda.
955
956         * WebView.subproj/WebHTMLView.m:
957         (-[WebHTMLView _isSelectionMisspelled]): pass nil not @"" for language
958
959 2004-12-21  Maciej Stachowiak  <mjs@apple.com>
960
961         Reviewed by Darin.
962
963         <rdar://problem/3888931> frame naming allows malicious site to bring up a window when you click on a link in another
964
965         Implement a security check on name frame visbility. This is the
966         same rule as mozilla. You can only target frames by name if you
967         are in the same window, have the same domain as the frame or an
968         ancestor, or if it's a top level window have the same domain as
969         the opener.
970         
971         * WebView.subproj/WebFrame.m:
972         (-[WebFrame _shouldAllowAccessFrom:]):
973         (-[WebFrame _descendantFrameNamed:sourceFrame:]):
974         (-[WebFrame findFrameNamed:]):
975         * WebView.subproj/WebFramePrivate.h:
976         * WebView.subproj/WebView.m:
977         (-[WebView _findFrameInThisWindowNamed:sourceFrame:]):
978         (-[WebView _findFrameNamed:sourceFrame:]):
979         * WebView.subproj/WebViewPrivate.h:
980
981 === Safari-177 ===
982
983 === Safari-176 ===
984
985 2004-12-20  Richard Williamson   <rjw@apple.com>
986
987         Add call to new API.  ImageIO deprecated some older (although
988         quite new!) API.   This caused us to fail to build on 337 or later.
989
990         Developers wanting to build on older versions of Tiger must define
991         USE_DEPRECATED_IMAGESOURCE_API in WebImageData.m.
992
993         Reviewed by Vicki.
994
995         * WebCoreSupport.subproj/WebImageData.m:
996         (-[WebImageData propertiesAtIndex:]):
997
998 2004-12-20  Richard Williamson   <rjw@apple.com>
999
1000         Don't call Tiger SPI on Panther.
1001
1002         Reviewed by Vicki.
1003
1004         * WebCoreSupport.subproj/WebTextRendererFactory.m:
1005         (+[WebTextRendererFactory createSharedFactory]):
1006
1007 2004-12-20  Richard Williamson   <rjw@apple.com>
1008
1009         Fixed <rdar://problem/3884448> WebKit should turn on CG local font cache
1010
1011         Enable mutli-tier font caching.  We should see a performance boost with this
1012         change.
1013
1014         Reviewed by Chris.
1015
1016         * WebCoreSupport.subproj/WebTextRendererFactory.m:
1017         (+[WebTextRendererFactory createSharedFactory]):
1018
1019 2004-12-20  Richard Williamson   <rjw@apple.com>
1020
1021         Fix image decoding to separately decode image meta data from actual image bits.  I
1022         incorrectly consolidated decode of meta data and image bits resulting in a huge
1023         performance regression.
1024
1025         Double size of WebCore cache on lower end machines.  On the PLT run on machines with
1026         256MB of memory, too many images were being evicted, causing a re-decode on the PLT.
1027         Upping the lower limit of the cache size ensure that no images are evicted (this
1028         goes hand-in-hand with the change to the minimum object size from 32K to 40K).
1029
1030         Reviewed by Ken.
1031
1032         * WebCoreSupport.subproj/WebImageData.h:
1033         * WebCoreSupport.subproj/WebImageData.m:
1034         (+[WebImageData initialize]):
1035         (-[WebImageData _commonTermination]):
1036         (-[WebImageData _invalidateImages]):
1037         (-[WebImageData _invalidateImageProperties]):
1038         (-[WebImageData imageAtIndex:]):
1039         (-[WebImageData propertiesAtIndex:]):
1040         (-[WebImageData _cacheImages:allImages:]):
1041         (-[WebImageData decodeData:isComplete:callback:]):
1042         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
1043         * WebView.subproj/WebPreferences.m:
1044         (+[WebPreferences initialize]):
1045
1046 2004-12-20  Richard Williamson   <rjw@apple.com>
1047
1048         Fixed build problem caused by change to ImageIO API.
1049
1050         Reviewed by Adele.
1051
1052         * WebCoreSupport.subproj/WebImageData.m:
1053
1054 2004-12-19  Darin Adler  <darin@apple.com>
1055
1056         Reviewed by Kevin.
1057
1058         - some garbage collection fixes
1059
1060         * Misc.subproj/WebNSObjectExtras.h: (WebCFAutorelease): Replaced the old WebNSRetainCFRelease with this
1061         much-easier-to-understand function cribbed from what David Harrison did in WebCore.
1062
1063         * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Use CFRelease here to
1064         get rid of an unnecessary use of WebNSRetainCFRelease.
1065         * Misc.subproj/WebNSURLExtras.m:
1066         (+[NSURL _web_URLWithData:relativeToURL:]): Use WebCFAutorelease instead of WebNSRetainCFRelease and autorelease.
1067         (-[NSURL _web_URLWithLowercasedScheme]): Ditto.
1068         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Use WebCFAutorelease here; the old code would not
1069         work correctly under GC.
1070         * Plugins.subproj/WebNetscapePluginPackage.m: (+[WebNetscapePluginPackage preferredLocalizationName]):
1071         Use WebCFAutorelease here; the old code would not work correctly under GC.
1072
1073 2004-12-18  Chris Blumenberg  <cblu@apple.com>
1074
1075         Fixed: <rdar://problem/3766915> PDF content needs search to work
1076
1077         Reviewed by kevin, john.
1078
1079         * WebView.subproj/WebPDFView.m:
1080         (-[WebPDFView searchFor:direction:caseSensitive:wrap:]): implemented
1081         (-[WebPDFView takeFindStringFromSelection:]): new
1082         (-[WebPDFView jumpToSelection:]): new
1083         (-[WebPDFView validateUserInterfaceItem:]): new
1084
1085 2004-12-17  Richard Williamson   <rjw@apple.com>
1086
1087         Make image decoding as lazy as possible for non threaded case; in some cases
1088         can avoid unnecessary decoding work.
1089
1090         Reviewed by Chris.
1091
1092         * WebCoreSupport.subproj/WebImageData.h:
1093         * WebCoreSupport.subproj/WebImageData.m:
1094         (-[WebImageData imageAtIndex:]):
1095         (-[WebImageData propertiesAtIndex:]):
1096         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
1097
1098 2004-12-16  John Sullivan  <sullivan@apple.com>
1099
1100         Reviewed by Chris.
1101         
1102         One of the assertions from my previous checkin fired, so
1103         I made this code more robust.
1104
1105         * WebCoreSupport.subproj/WebBridge.m:
1106         (-[WebBridge _preferences]):
1107         new helper method, returns global preferences if webView is nil,
1108         otherwise returns webView's preferences
1109         (-[WebBridge getObjectCacheSize]):
1110         use new helper method, remove now-unnecessary assert
1111         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
1112         ditto
1113
1114 2004-12-16  John Sullivan  <sullivan@apple.com>
1115
1116         Reviewed by Darin.
1117         
1118         - fixed <rdar://problem/3913523> Mail needs SPI for adding tooltips to links
1119         - cleaned up some calls to +[WebPreferences standardPreferences] that should
1120           have been using -[WebView preferences]
1121           
1122         This adds a (currently SPI-only) new feature that shows the URL of the link
1123         under the mouse in a toolTip. I tested this in Safari, but we're adding this
1124         feature for Mail, and Safari won't use it (unless of course you know the
1125         magic defaults command)
1126
1127         * Plugins.subproj/WebBaseNetscapePluginView.m:
1128         (-[WebBaseNetscapePluginView start]):
1129         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
1130         
1131         * WebCoreSupport.subproj/WebBridge.m:
1132         (-[WebBridge getObjectCacheSize]):
1133         ditto
1134         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
1135         ditto
1136         
1137         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1138         (-[WebBaseResourceHandleDelegate willCacheResponse:]):
1139         ditto
1140         
1141         * WebView.subproj/WebFrame.m:
1142         (-[WebFrame _transitionToCommitted:]):
1143         ditto
1144         (-[WebFrame _loadItem:withLoadType:]):
1145         ditto
1146         
1147         * WebView.subproj/WebHTMLViewInternal.h:
1148         private struct now keeps ivar for cached value of showsURLsInToolTips
1149         so it doesn't have look it up in preferences a zillion times
1150         
1151         * WebView.subproj/WebHTMLView.m:
1152         (-[WebHTMLView _updateMouseoverWithEvent:]):
1153         if private->showsURLsInToolTips is true, set the toolTip from the URL.
1154         Fall back to showing the title attribute in case some element has a title
1155         attribute but no URL.
1156         (-[WebHTMLView _mayStartDragAtEventLocation:]):
1157         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
1158         (-[WebHTMLView _resetCachedWebPreferences:]):
1159         get a fresh value for private->showsURLsInToolTips
1160         (-[WebHTMLView initWithFrame:]):
1161         call _resetCachedWebPreferences the first time, and listen for WebPreferencesChanged notifications
1162         (-[WebHTMLView _handleStyleKeyEquivalent:]):
1163         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
1164         
1165         * WebView.subproj/WebPreferenceKeysPrivate.h:
1166         added WebKitShowsURLsInToolTipsPreferenceKey
1167         
1168         * WebView.subproj/WebPreferences.m:
1169         (+[WebPreferences initialize]):
1170         initialize WebKitShowsURLsInToolTipsPreferenceKey to 0
1171         (-[WebPreferences showsURLsInToolTips]):
1172         return WebKitShowsURLsInToolTipsPreferenceKey value
1173         (-[WebPreferences setShowsURLsInToolTips:]):
1174         set WebKitShowsURLsInToolTipsPreferenceKey value
1175         
1176         * WebView.subproj/WebPreferencesPrivate.h:
1177         add declarations for showsURLsInToolTips and setter
1178         
1179         * WebView.subproj/WebTextView.m:
1180         (-[WebTextView _preferences]):
1181         new helper method that gets preferences from webView if there is a webView,
1182         otherwise gets global preferences
1183         (-[WebTextView setFixedWidthFont]):
1184         use new helper method rather than always using global preferences
1185         (-[WebTextView initWithFrame:]):
1186         observe WebPreferencesChangedNotification instead of unnecessarily general
1187         NSUserDefaultsChangedNotification
1188
1189 2004-12-14  John Sullivan  <sullivan@apple.com>
1190
1191         Reviewed by Ken.
1192         
1193         - rest of WebKit fix for <rdar://problem/3790011> undoable operations all say "Undo" 
1194         in the menu, no specific action names
1195         
1196         I only know of one loose end currently, which I wrote up as <rdar://problem/3920971> Edit menu 
1197         says "Undo Change Attributes" when it should say "Undo Set Color", from font panel
1198
1199         * WebView.subproj/WebHTMLView.m:
1200         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]):
1201         use WebUndoActionSetColor when dragging color swatch
1202         (-[WebHTMLView _applyStyleToSelection:withUndoAction:]):
1203         new WebUndoAction parameter, passed across bridge
1204         (-[WebHTMLView _toggleBold]):
1205         use WebUndoActionSetFont
1206         (-[WebHTMLView _toggleItalic]):
1207         use WebUndoActionSetFont
1208         (-[WebHTMLView pasteFont:]):
1209         use WebUndoActionPasteFont
1210         (-[WebHTMLView changeFont:]):
1211         use WebUndoActionSetFont
1212         (-[WebHTMLView changeAttributes:]):
1213         use WebUndoActionChangeAttributes
1214         (-[WebHTMLView _undoActionFromColorPanelWithSelector:]):
1215         new method, returns WebUndoActionSetBackgroundColor or WebUndoActionSetColor
1216         (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]):
1217         now calls _undoActionFromColorPanelWithSelector
1218         (-[WebHTMLView changeColor:]):
1219         use WebUndoActionSetColor
1220         (-[WebHTMLView _alignSelectionUsingCSSValue:withUndoAction:]):
1221         new WebUndoAction parameter, passed through
1222         (-[WebHTMLView alignCenter:]):
1223         use WebUndoActionCenter
1224         (-[WebHTMLView alignJustified:]):
1225         use WebUndoActionJustify
1226         (-[WebHTMLView alignLeft:]):
1227         use WebUndoActionAlignLeft
1228         (-[WebHTMLView alignRight:]):
1229         use WebUndoActionAlignRight
1230         (-[WebHTMLView subscript:]):
1231         use WebUndoActionAlignSubscript
1232         (-[WebHTMLView superscript:]):
1233         use WebUndoActionAlignSuperscript
1234         (-[WebHTMLView unscript:]):
1235         use WebUndoActionAlignUnscript
1236         (-[WebHTMLView underline:]):
1237         use WebUndoActionAlignUnderline
1238         
1239         * WebView.subproj/WebView.m:
1240         (-[WebView setTypingStyle:]):
1241         pass WebUndoActionUnspecified through as new parameter since we don't have any more specific info
1242         (-[WebView applyStyle:]):
1243         ditto
1244
1245 2004-12-14  Richard Williamson   <rjw@apple.com>
1246
1247         Helper method to get URL of plugin view.
1248
1249         Reviewed by Chris.
1250
1251         * Misc.subproj/WebNSViewExtras.m:
1252         (-[NSView _webViewURL]):
1253
1254 2004-12-14  Vicki Murley <vicki@apple.com>
1255
1256         Reviewed by rjw.
1257  
1258         <rdar://problem/3855573> Remove reference to "WebScriptMethods" from WebScriptObject.h comments
1259
1260         * Plugins.subproj/WebPlugin.h: changed instances of "WebScriptMethods" to "WebScripting" in this
1261         file as well, as requested in the bug report
1262
1263 2004-12-13  Maciej Stachowiak  <mjs@apple.com>
1264
1265         Reviewed by John.
1266
1267         <rdar://problem/3912488> Mail throws an exception after backspacing "away" inline input
1268         
1269         * WebView.subproj/WebHTMLView.m:
1270         (-[WebHTMLView setMarkedText:selectedRange:]): Don't try to set a selection if
1271         we end up with no marked text, since that case fails and is unnecessary.
1272
1273 2004-12-14  John Sullivan  <sullivan@apple.com>
1274
1275         Reviewed by Ken.
1276
1277         - WebKit part of plumbing of fix for <rdar://problem/3790011> undoable operations all say "Undo" in the menu, 
1278         no specific action names
1279
1280         * WebCoreSupport.subproj/WebBridge.m:
1281         (-[WebBridge nameForUndoAction:]):
1282         renamed from setUndoActionNamePlaceholder, replaced arbitrary integers with enum values, and
1283         handled new "unspecified" case as a fallback
1284
1285 2004-12-13  Richard Williamson   <rjw@apple.com>
1286
1287         Fixed <rdar://problem/3887767> LiveConnect doesn't propagate Java exceptions back to JavaScript (prevents security suite from running)
1288
1289         Reviewed by John.
1290
1291         * Plugins.subproj/WebJavaPlugIn.h:
1292
1293 2004-12-13  John Sullivan  <sullivan@apple.com>
1294
1295         Reviewed by Maciej.
1296         
1297         - fixed <rdar://problem/3744583> Safari can not quit when a webpage has a login sheet 
1298         that can't be cancelled.
1299         
1300         The proper fix for this would be to change the class of the NSPanel in the nib file.
1301         But since this would require a localization change, I did a run-time hack instead.
1302         I'll file a bug about fixing this when we're out of localization freeze.
1303
1304         * Panels.subproj/WebAuthenticationPanel.m:
1305         (-[WebAuthenticationPanel replacePanelWithSubclassHack]):
1306         new method, creates a new panel that is identical to the original one except that
1307         it's our subclass, and moves all the subviews of the original panel into the new one.
1308         (-[WebAuthenticationPanel loadNib]):
1309         call replacePanelWithSubclassHack
1310         (-[NonBlockingPanel _blocksActionWhenModal:]):
1311         only method of new NSPanel subclass; overrides this SPI to allow the user to quit
1312         when one of these panels/sheets is on-screen
1313
1314 2004-12-10  Richard Williamson   <rjw@apple.com>
1315
1316         Fixed <rdar://problem/3898708> REGRESSION (8A314-8A317): World Clock's short hand not displayed (ImageIO problem with PDF?)
1317         Fixed <rdar://problem/3914012> use CG directly for pdf images not ImageIO
1318
1319         Create a PDF document and draw that instead of using ImageIO to create a rasterized image.
1320
1321         Reviewed by Maciej.
1322
1323         * WebCoreSupport.subproj/WebImageData.h:
1324         * WebCoreSupport.subproj/WebImageData.m:
1325         (-[WebImageData setIsPDF:]):
1326         (-[WebImageData isPDF]):
1327         (-[WebImageData dealloc]):
1328         (-[WebImageData decodeData:isComplete:callback:]):
1329         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
1330         (-[WebImageData size]):
1331         (-[WebImageData animate]):
1332         (-[WebImageData _createPDFWithData:]):
1333         (-[WebImageData _PDFDocumentRef]):
1334         (-[WebImageData _PDFDrawInContext:]):
1335         (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]):
1336         * WebCoreSupport.subproj/WebImageRenderer.h:
1337         * WebCoreSupport.subproj/WebImageRenderer.m:
1338         (-[WebImageRenderer size]):
1339         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:callback:]):
1340         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
1341         (_createImageRef):
1342
1343 2004-12-10  John Sullivan  <sullivan@apple.com>
1344
1345         Reviewed by Ken.
1346         
1347         - fixed <rdar://problem/3855127> Error while printing w/o sheet, then window is left in a bad state, 
1348         if there's no default printer set
1349
1350         * WebView.subproj/WebHTMLView.m:
1351         (-[WebHTMLView beginDocument]):
1352         Our implementation of knowsPageRange puts the WebHTMLView into a special "printing mode". We must
1353         exit the "printing mode" to return to normal behavior. This is normally done in endDocument.
1354         However, it turns out that if there's an exception in [super beginDocument], then endDocument
1355         will not be called (lame-o AppKit API). So, we handle that case by catching the exception and
1356         exiting the "printing mode" in beginDocument when it occurs.
1357
1358 2004-12-09  Richard Williamson   <rjw@apple.com>
1359
1360         Fixed <rdar://problem/3905789> Burn Disc image vibrates rapidly
1361
1362         Restrict our support for animated images to GIF.  We used to
1363         use presence of more than one image in a resource to determine
1364         if an image should be animated.  This caused us to animate icns!
1365         If we ever support any other animated image formats we'll have
1366         to extend.
1367
1368         Reviewed by Hyatt.
1369
1370         * WebCoreSupport.subproj/WebImageData.h:
1371         * WebCoreSupport.subproj/WebImageData.m:
1372         (-[WebImageData shouldAnimate]):
1373         * WebCoreSupport.subproj/WebImageRenderer.m:
1374         (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
1375
1376 2004-12-09  Richard Williamson   <rjw@apple.com>
1377
1378         Make WebPluginDatabase.h private (Dashboard needs SPI).
1379
1380         * WebKit.pbproj/project.pbxproj:
1381
1382 === Safari-175 ===
1383
1384 2004-12-09  Chris Blumenberg  <cblu@apple.com>
1385
1386         Workaround for this exception being raised during download:
1387         [WebDownload connection:willStopBufferingData:]: selector not recognized
1388
1389         Reviewed by john.
1390
1391         * Misc.subproj/WebDownload.m:
1392         (-[WebDownload connection:willStopBufferingData:]): implement this method so no exception is raised. It is a bug in Foundation that this method is being called, but it's too late to fix Foundation since it has already been submitted this week. This workaround will prevent any problems from affecting users.
1393
1394 2004-12-08  Richard Williamson   <rjw@apple.com>
1395
1396         Fixed <rdar://problem/3911719> REGRESSION: Images no longer scale vertically
1397         Account for scaling correctly when taking into account progressively
1398         loaded images.
1399
1400         Also added implementation of repetition count for animated GIF images.
1401         Also replaced strings with new constants from CFImageProperties.h
1402
1403         Also fixed possible problem with -(NSSize)size implementation,
1404         relevant to Panther only.
1405
1406         Reviewed by Chris.
1407
1408         * WebCoreSupport.subproj/WebImageData.m:
1409         (-[WebImageData _floatProperty:type:at:]):
1410         (-[WebImageData _frameDurationAt:]):
1411         (-[WebImageData _repetitionCount]):
1412         * WebCoreSupport.subproj/WebImageRenderer.m:
1413         (-[WebImageRenderer size]):
1414
1415 2004-12-08  Chris Blumenberg  <cblu@apple.com>
1416
1417         Removed NPN wrappers since these no longer need to be defined to make the QT plug-in work
1418         since 3828925 has been fixed.
1419
1420         Reviewed by john.
1421
1422         * Plugins.subproj/WebNetscapePluginPackage.m:
1423         (-[WebNetscapePluginPackage load]): use under-bar symbols since non-under-bar wrappers have been removed
1424         * Plugins.subproj/npapi.m: removed NPN wrappers
1425         * WebKit.exp: removed symbols
1426
1427 2004-12-08  Ken Kocienda  <kocienda@apple.com>
1428
1429         Reviewed by Darin
1430
1431         * WebView.subproj/WebHTMLView.m:
1432         (-[WebHTMLView drawRect:]): Work around for this bug:
1433         <rdar://problem/3908282> REGRESSION (Mail): No drag image dragging selected text in Blot and Mail
1434         The reason for the workaround is that this method is called explicitly from the code
1435         to generate a drag image, and at that time, getRectsBeingDrawn:count: will return a zero count.
1436         This code change uses the passed-in rect when the count is zero.
1437
1438 2004-12-07  Administrator  <cblu@apple.com>
1439
1440         Support for fix for:
1441         <rdar://problem/3734309> Safari doesn't open folders in title bar menu with non-Roman names using Cmd+click
1442
1443         Reviewed by john.
1444
1445         * Misc.subproj/WebNSURLExtras.h:
1446         * Misc.subproj/WebNSURLExtras.m:
1447         (+[NSURL _web_URLWithUserTypedString:relativeToURL:]): renamed to take relativeToURL parameter
1448         (+[NSURL _web_URLWithUserTypedString:]): call _web_URLWithUserTypedString:relativeToURL: with nil for URL
1449
1450 2004-12-07  Richard Williamson   <rjw@apple.com>
1451
1452         Fixed <rdar://problem/3905564> REGRESSION (Tiger); in History menu, pixel size appears but is wrong for standalone images in Safari.
1453
1454         Reviewed by Chris.
1455
1456         * WebCoreSupport.subproj/WebImageRenderer.m:
1457         (-[WebImageRenderer size]):
1458
1459 2004-12-07  Richard Williamson   <rjw@apple.com>
1460
1461         Support threaded image decoding on machines w/ >= 2 CPUs.
1462
1463         Reviewed by Maciej and Chris.
1464
1465         * Misc.subproj/WebKitSystemBits.h:
1466         * Misc.subproj/WebKitSystemBits.m:
1467         (WebSystemMainMemory):
1468         (WebNumberOfCPUs):
1469         * WebCoreSupport.subproj/WebImageData.h:
1470         * WebCoreSupport.subproj/WebImageData.m:
1471         (+[WebImageData initialize]):
1472         (-[WebImageData init]):
1473         (-[WebImageData _commonTermination]):
1474         (-[WebImageData dealloc]):
1475         (-[WebImageData _invalidateImages]):
1476         (-[WebImageData _imageSourceOptions]):
1477         (-[WebImageData imageAtIndex:]):
1478         (-[WebImageData propertiesAtIndex:]):
1479         (-[WebImageData _createImages]):
1480         (-[WebImageData decodeData:isComplete:callback:]):
1481         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
1482         (drawPattern):
1483         (-[WebImageData tileInRect:fromPoint:context:]):
1484         (-[WebImageData isNull]):
1485         (-[WebImageData size]):
1486         (-[WebImageData _frameDurationAt:]):
1487         (-[WebImageData _frameDuration]):
1488         (+[WebImageData stopAnimationsInView:]):
1489         (-[WebImageData addAnimatingRenderer:inView:]):
1490         (-[WebImageData removeAnimatingRenderer:]):
1491         * WebCoreSupport.subproj/WebImageDecodeItem.h: Added.
1492         * WebCoreSupport.subproj/WebImageDecodeItem.m: Added.
1493         (+[WebImageDecodeItem decodeItemWithImage:data:isComplete:callback:]):
1494         (-[WebImageDecodeItem initWithImage:data:isComplete:callback:]):
1495         (-[WebImageDecodeItem finalize]):
1496         (-[WebImageDecodeItem dealloc]):
1497         * WebCoreSupport.subproj/WebImageDecoder.h: Added.
1498         * WebCoreSupport.subproj/WebImageDecoder.m: Added.
1499         (decoderNotifications):
1500         (+[WebImageDecoder initialize]):
1501         (+[WebImageDecoder notifyMainThread]):
1502         (+[WebImageDecoder sharedDecoder]):
1503         (+[WebImageDecoder performDecodeWithImage:data:isComplete:callback:]):
1504         (+[WebImageDecoder imageDecodesPending]):
1505         (+[WebImageDecoder decodeComplete:status:]):
1506         (-[WebImageDecoder init]):
1507         (-[WebImageDecoder dealloc]):
1508         (-[WebImageDecoder finalize]):
1509         (-[WebImageDecoder removeItem]):
1510         (-[WebImageDecoder addItem:]):
1511         (-[WebImageDecoder decodeItem:]):
1512         (decoderThread):
1513         (startDecoderThread):
1514         * WebCoreSupport.subproj/WebImageRenderer.m:
1515         (-[WebImageRenderer initWithData:MIMEType:]):
1516         (-[WebImageRenderer initWithContentsOfFile:]):
1517         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:callback:]):
1518         (-[WebInternalImage incrementalLoadWithBytes:length:complete:callback:]):
1519         * WebKit.pbproj/project.pbxproj:
1520         * WebView.subproj/WebImageRepresentation.m:
1521         (-[WebImageRepresentation receivedData:withDataSource:]):
1522         (-[WebImageRepresentation receivedError:withDataSource:]):
1523         (-[WebImageRepresentation finishedLoadingWithDataSource:]):
1524
1525 2004-12-07  Chris Blumenberg  <cblu@apple.com>
1526
1527         Fix for performance regression.
1528
1529         Reviewed by kevin.
1530
1531         * WebCoreSupport.subproj/WebBridge.m:
1532         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): construct the WebResource without copying the data
1533
1534 2004-12-07  Chris Blumenberg  <cblu@apple.com>
1535
1536         Fixed: <rdar://problem/3909243> REGRESSION: large standalone images stop loading part way through
1537
1538         Reviewed by kevin.
1539
1540         * WebView.subproj/WebBaseResourceHandleDelegate.h:
1541         * WebView.subproj/WebMainResourceClient.m:
1542         (-[WebMainResourceClient addData:]): call super so it buffers the data
1543
1544 2004-12-06  Richard Williamson   <rjw@apple.com>
1545
1546         Use the AppKit's font rendering mode.  This fixes 3905347, but we still need to track down
1547         and resolve why metrics have changed for Courier.  This may be caused by changes in
1548         AppKit for 3902394.
1549
1550         Reviewed by John.
1551
1552         * WebCoreSupport.subproj/WebTextRenderer.m:
1553         (_AppkitGetCGRenderingMode):
1554         (getUncachedWidth):
1555         (_drawGlyphs):
1556
1557 2004-12-06  Chris Blumenberg  <cblu@apple.com>
1558
1559         Forgot to commit copied header.
1560
1561         * DOM.subproj/DOMPrivate.h:
1562
1563 2004-12-06  Chris Blumenberg  <cblu@apple.com>
1564
1565         Fixed: <rdar://problem/3907381> NSURLConnection and WebKit buffer 2 copies of incoming data
1566
1567         Reviewed by darin.
1568
1569         * WebView.subproj/WebBaseResourceHandleDelegate.h:
1570         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1571         (+[WebBaseResourceHandleDelegate initialize]): cache check to see if Foundation supports access to its buffered data
1572         (-[WebBaseResourceHandleDelegate addData:]): don't buffer data if Foundation is buffering it for us
1573         (-[WebBaseResourceHandleDelegate saveResource]): when creating a WebResource, pass NO for copyData since we know it won't be mutated
1574         (-[WebBaseResourceHandleDelegate resourceData]): return the buffered data from the connection if it supports it
1575         (-[WebBaseResourceHandleDelegate willStopBufferingData:]): make a mutable copy of the data from NSURLConnection so we can continue buffering 
1576         (-[WebBaseResourceHandleDelegate willCacheResponse:]): removed optimization that used the cached response data to save the resource since that is obsolete by this change
1577         (-[WebBaseResourceHandleDelegate connection:willStopBufferingData:]): new callback from NSURLConnection, informs us that NSURLConnection has given up buffering
1578         * WebView.subproj/WebDataSource.m:
1579         (-[WebDataSource _receivedData:]): removed buffering code since that's done by NSURLConnection and the main client
1580         (-[WebDataSource _setData:]): removed unnecessary cast since the resourceData ivar is now an NSData instead of NSMutableData
1581         (-[WebDataSource data]): return resourceData ivar, else return the resourceData from the main client
1582         * WebView.subproj/WebDataSourcePrivate.h:
1583         * WebView.subproj/WebMainResourceClient.m:
1584         (-[WebMainResourceClient releaseResources]): store resourceData on the data source so it can continue to have data after the main client has gone away 
1585         (-[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
1586         (-[WebMainResourceClient connectionDidFinishLoading:]): ditto
1587         * WebView.subproj/WebResource.m:
1588         (-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]): call following method with YES for copyData
1589         (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:copyData:]): new initializer, allows caller to choose whether or not the data is copied
1590         * WebView.subproj/WebResourcePrivate.h:
1591
1592 2004-12-06  Richard Williamson   <rjw@apple.com>
1593
1594         Fixed <rdar://problem/3903749> REGRESSION (8A321): WebKit gets incorrect glyph metrics due to change in how AppKit uses CGFont
1595
1596         Use CGFontRef direction when both getting font metrics and drawing
1597         glyphs, instead on depending on [NSFont set].
1598
1599         Reviewed by John.
1600
1601         * WebCoreSupport.subproj/WebTextRenderer.m:
1602         (getUncachedWidth):
1603         (_drawGlyphs):
1604
1605 2004-12-06  Ken Kocienda  <kocienda@apple.com>
1606
1607         Reviewed by Harrison
1608         
1609         Fix for this bug:
1610         
1611         <rdar://problem/3906930> Hitting return key in editable content inserts br elements instead of blocks
1612
1613         * WebView.subproj/WebHTMLView.m:
1614         (-[WebHTMLView insertNewline:]): One-line change to call insert-block rather than insert-br method 
1615         on bridge.
1616
1617 2004-12-04  Darin Adler  <darin@apple.com>
1618
1619         Reviewed by John.
1620
1621         - fixed <rdar://problem/3846079> assertion failure in WebHTMLView(WebPrivate) removeTrackingRect at boots.com
1622         - 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
1623         - fixed <rdar://problem/3861952> REGRESSION (165-166): selection is cleared when you start to scroll a frame
1624
1625         * WebView.subproj/WebHTMLViewInternal.h: Added handlingMouseDown flag.
1626         * WebView.subproj/WebHTMLView.m:
1627         (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Allow passing in a
1628         tracking number of 0, which means no existing tracking number.
1629         (-[WebHTMLView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Ditto.
1630         (-[WebHTMLView removeTrackingRect:]): Allow removing a tracking number of 0, which is a no-op.
1631         (-[WebHTMLView _removeTrackingRects:count:]): Ditto.
1632         (-[WebHTMLView acceptsFirstResponder]): Changed check to use handlingMouseDown flag instead of mouseDownEvent
1633         field since that field is set up too early in the mouse down event handling process.
1634         (-[WebHTMLView mouseDown:]): Added code to set handlingMouseDown flag.
1635
1636         - fixed part of <rdar://problem/3829808> Safari crashes when adding a DOM node that was removed from an XMLHTTP request result
1637
1638         * WebCoreSupport.subproj/WebBridge.m:
1639         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
1640         Changed code around so that it won't try to create a WebResource when the load fails.
1641
1642         - moved next/previous links into private structure with the rest of WebFrame fields
1643           (We have a rule against putting new fields into obejcts that are part of our public API.)
1644
1645         * WebView.subproj/WebFrame.h: Remove _nextSibling and _previousSibling.
1646         * WebView.subproj/WebFramePrivate.h: Added nextSibling and previousSibling fields to private class.
1647         * WebView.subproj/WebFrame.m: Got rid of some tabs in this file.
1648         (-[WebFrame _addChild:]): Changed code to use fields inside _private.
1649         (-[WebFrame _removeChild:]): Ditto.
1650         (-[WebFrame _nextFrameWithWrap:]): Ditto.
1651         (-[WebFrame _previousFrameWithWrap:]): Ditto.
1652
1653 2004-12-04  Chris Blumenberg  <cblu@apple.com>
1654
1655         New fixes for:
1656         <rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
1657         <rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
1658         <rdar://problem/3903173> REGRESSION (172-TOT): assertion failure and crash in slotAllData logging into hotmail account
1659         <rdar://problem/3902749> REGRESSION (Tiger): missing image symbol does not appear
1660
1661         Reviewed by darin, rjw, kocienda.
1662
1663         * WebCoreSupport.subproj/WebBridge.m:
1664         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]):
1665         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
1666         * WebCoreSupport.subproj/WebSubresourceClient.m:
1667         (-[WebSubresourceClient didFinishLoading]):
1668         * WebView.subproj/WebFrame.m:
1669         (-[WebFrame _opened]):
1670         (-[WebFrame _internalLoadDelegate]):
1671         (-[WebFrame _sendResourceLoadDelegateMessagesForURL:response:length:]):
1672         * WebView.subproj/WebFrameInternal.h:
1673
1674 2004-12-04  Darin Adler  <darin@apple.com>
1675
1676         Reviewed by Maciej.
1677
1678         - fixed remaining bit of <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window
1679
1680         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _styleFromFontAttributes:]): When translating from
1681         an attribute dictionary to a CSS declaration, treat missing values according to the defaults defined
1682         in <AppKit/NSAttributedString.h>. Before the code was treating them as "no change", which is incorrect.
1683
1684         * English.lproj/StringsNotToBeLocalized.txt: Add a string from the above change.
1685
1686 === Safari-173 ===
1687
1688 2004-12-03  Ken Kocienda  <kocienda@apple.com>
1689
1690         Reviewed by me
1691
1692         Roll out some recent changes by Chris that caused a performance regression.
1693         Fix is in hand, but it is a little risky this close to a submission. So,
1694         we have decided to roll back the change with the regression and roll in
1695         the new code after we submit.
1696
1697         * WebCoreSupport.subproj/WebBridge.m:
1698         (-[WebBridge objectLoadedFromCacheWithURL:response:size:]):
1699         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
1700         * WebCoreSupport.subproj/WebSubresourceClient.m:
1701         (-[WebSubresourceClient didFinishLoading]):
1702         * WebView.subproj/WebFrame.m:
1703         (-[WebFrame _opened]):
1704         (-[WebFrame _internalLoadDelegate]):
1705         * WebView.subproj/WebFrameInternal.h:
1706
1707 2004-12-02  Richard Williamson   <rjw@apple.com>
1708
1709         Fixed <rdar://problem/3841332> REGRESSION (125.9-167u): repro crash in -[KWQPageState invalidate] involving .Mac images
1710
1711         Ensure that the document is cleared when leaving a non-HTML page.  This ensures that
1712         the b/f cache won't incorrectly trash the previous state when restoring.
1713
1714         Reviewed by John.
1715
1716         * WebView.subproj/WebFrame.m:
1717         (-[WebFrame _setState:]):
1718
1719 2004-12-02  Ken Kocienda  <kocienda@apple.com>
1720
1721         Reviewed by Richard
1722
1723         <rdar://problem/3748323> Problem with -[WebView editableDOMRangeForPoint:] (-isFlipped not taken into account?)
1724         <rdar://problem/3852590> REGRESSION (Mail): Dropped content appears in wrong place if Mail message is scrolled down
1725
1726         When implementing drag and drop, moveDragCaretToPoint: and editableDOMRangeForPoint: are used in
1727         concert to track the mouse and determine a drop location, respectively. However, moveDragCaretToPoint:
1728         did a conversion of the passed-in point to the document view's coordinate space, whereas 
1729         editableDOMRangeForPoint: did not. Now it does.
1730         
1731         Note that I will need to coordinate with Grant to have him roll out some code in Mail that
1732         attempts to work around this problem (unsuccessfully), and actually manages to block the
1733         real fix (which needs to be in WebKit).
1734
1735         * WebView.subproj/WebView.m:
1736         (-[WebView editableDOMRangeForPoint:]): Convert the passed-in point to the document view's coordinate space.
1737
1738 2004-12-02  Richard Williamson   <rjw@apple.com>
1739
1740         Fixed <rdar://problem/3895810> FATAL ERROR: <WebTextRenderer: 0x9328a20> unable to initialize with font "Times-Roman 16.00 pt. S ....
1741
1742         We have a hack to replace Times with Times New Roman if we fail
1743         to setup Times.  If we then fail to setup Times New Roman we
1744         don't attempt to further fallback to the system font.  Added
1745         that additional fallback.
1746
1747         Reviewed by Ken.
1748
1749         * WebCoreSupport.subproj/WebTextRenderer.m:
1750         (+[WebTextRenderer webFallbackFontFamily]):
1751         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
1752
1753 2004-12-02  Richard Williamson   <rjw@apple.com>
1754
1755         Fixed build problem on Tiger8A821.  Private macro and function
1756         we were using have been deprecated,
1757
1758         Reviewed by Vicki.
1759
1760         * WebCoreSupport.subproj/WebTextRenderer.m:
1761         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
1762
1763 2004-12-01  Chris Blumenberg  <cblu@apple.com>
1764
1765         Fixed: <rdar://problem/3879870> Flash Player unable to stop data stream from continuing to download by returning -1 from NPP_Write
1766         Also improved and cleaned-up the plug-in stream termination code.
1767
1768         Reviewed by john.
1769
1770         * Plugins.subproj/WebBaseNetscapePluginStream.h:
1771         * Plugins.subproj/WebBaseNetscapePluginStream.m:
1772         (+[WebBaseNetscapePluginStream reasonForError:]): return NPRES_DONE for a nil error
1773         (-[WebBaseNetscapePluginStream _pluginCancelledConnectionError]): new, factored out from other methods
1774         (-[WebBaseNetscapePluginStream errorForReason:]): new
1775         (-[WebBaseNetscapePluginStream dealloc]): release MIME type
1776         (-[WebBaseNetscapePluginStream setMIMEType:]): new
1777         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): call setMIMEType so we can use it in _pluginCancelledConnectionError, call renamed methods
1778         (-[WebBaseNetscapePluginStream _destroyStream]): prepended underscore, replaced some early returns with asserts as the callers are now smarter
1779         (-[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
1780         (-[WebBaseNetscapePluginStream cancelLoadWithError:]): new, overridden by subclasses to cancel the actual NSURLConnection
1781         (-[WebBaseNetscapePluginStream destroyStreamWithError:]): new, calls _destroyStreamWithReason
1782         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): call renamed methods
1783         (-[WebBaseNetscapePluginStream _deliverData]): prepended underscore, call cancelLoadAndDestroyStreamWithError if NPP_Write returns a negative number
1784         * Plugins.subproj/WebBaseNetscapePluginView.m:
1785         (-[WebBaseNetscapePluginView destroyStream:reason:]): call cancelLoadAndDestroyStreamWithError
1786         * Plugins.subproj/WebNetscapePluginRepresentation.m:
1787         (-[WebNetscapePluginRepresentation receivedError:withDataSource:]): call destroyStreamWithError
1788         (-[WebNetscapePluginRepresentation cancelLoadWithError:]): new, override method, tell the data source to stop loading
1789         * Plugins.subproj/WebNetscapePluginStream.m:
1790         (-[WebNetscapePluginStream cancelLoadWithError:]): new, override method, tell the loader to stop
1791         (-[WebNetscapePluginStream stop]): call cancelLoadAndDestroyStreamWithError
1792         (-[WebNetscapePluginConnectionDelegate isDone]): new
1793         (-[WebNetscapePluginConnectionDelegate didReceiveResponse:]): call cancelLoadAndDestroyStreamWithError
1794         (-[WebNetscapePluginConnectionDelegate didFailWithError:]): call destroyStreamWithError
1795
1796 2004-12-01  Kevin Decker  <kdecker@apple.com>
1797
1798         Reviewed by Harrison.
1799
1800         Fixed: <rdar://problem/3228878> potential performance problem in finding in large framesets
1801
1802         Got rid of O(N^2) conditions in _nextSibling and _previousSibling of where we were looking up self in the parent array of frames.
1803
1804         * WebView.subproj/WebFrame.h: Added two new pointers, one for the previous kid and one for the next kid
1805         * WebView.subproj/WebFrame.m: 
1806         (-[WebFrame _addChild:]): Updates the previous frame and the next frame after this child
1807         (-[WebFrame _removeChild:]): ditto
1808         (-[WebFrame _nextSibling]): just return the pointer now
1809         (-[WebFrame _previousSibling]): ditto
1810
1811 2004-11-30  Chris Blumenberg  <cblu@apple.com>
1812
1813         Fixed:
1814         <rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
1815         <rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
1816
1817         Reviewed by darin.
1818
1819         * WebCoreSupport.subproj/WebBridge.m:
1820         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): renamed to pass all data for the resource, moved delegate code to new method
1821         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): call renamed method
1822         * WebCoreSupport.subproj/WebSubresourceClient.m:
1823         (-[WebSubresourceClient didFinishLoading]): call renamed method
1824         * WebView.subproj/WebFrame.m:
1825         (-[WebFrame _opened]): call _sendResourceLoadDelegateMessagesForURL:response:length:, not objectLoadedFromCacheWithURL:response:data:
1826         (-[WebFrame _internalLoadDelegate]):
1827         (-[WebFrame _sendResourceLoadDelegateMessagesForURL:response:length:]): moved from objectLoadedFromCacheWithURL:response:data:
1828         * WebView.subproj/WebFrameInternal.h:
1829
1830 2004-11-29  Darin Adler  <darin@apple.com>
1831
1832         Reviewed by John.
1833
1834         - worked around bug in Panther where NSScroller calls _destinationFloatValueForScroller: on superview
1835           without first checking if it's implemented
1836
1837         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _destinationFloatValueForScroller:]):
1838         Implemented. Calls floatValue on the scroller.
1839
1840         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
1841
1842 2004-11-23  Chris Blumenberg  <cblu@apple.com>
1843
1844         Fixed: <rdar://problem/3890944> disable icon database for Dashboard
1845
1846         Reviewed by kevin.
1847
1848         * Misc.subproj/WebIconDatabase.h:
1849         * Misc.subproj/WebIconDatabase.m:
1850         (-[WebIconDatabase init]): don't create dictionaries if disabled
1851         (-[WebIconDatabase iconForURL:withSize:cache:]): return default icon if disabled
1852         (-[WebIconDatabase iconURLForURL:]): return nil if disabled
1853         (-[WebIconDatabase retainIconForURL:]): return if disabled
1854         (-[WebIconDatabase releaseIconForURL:]): ditto
1855         (-[WebIconDatabase delayDatabaseCleanup]): ditto
1856         (-[WebIconDatabase allowDatabaseCleanup]): ditto
1857         (-[WebIconDatabase _isEnabled]): new
1858         (-[WebIconDatabase _setIcon:forIconURL:]): assert if called when disabled, moved to own category implementation
1859         (-[WebIconDatabase _setHaveNoIconForIconURL:]): ditto
1860         (-[WebIconDatabase _setIconURL:forURL:]): ditto
1861         (-[WebIconDatabase _createFileDatabase]): tweak
1862         (-[WebIconDatabase _applicationWillTerminate:]): moved out of public code
1863         * Misc.subproj/WebIconDatabasePrivate.h:
1864         * Misc.subproj/WebIconLoader.m:
1865         * WebView.subproj/WebDataSource.m:
1866         (-[WebDataSource _updateIconDatabaseWithURL:]): assert if called when icon DB is disabled
1867         (-[WebDataSource _loadIcon]): don't load icon if icon DB is disabled
1868
1869 2004-11-22  David Hyatt  <hyatt@apple.com>
1870
1871         Make sure the WebCore cache grows at 512mb and at 1024mb exactly.
1872         
1873         Reviewed by mjs
1874
1875         * WebCoreSupport.subproj/WebBridge.m:
1876         (-[WebBridge getObjectCacheSize]):
1877
1878 2004-11-22  Richard Williamson   <rjw@apple.com>
1879
1880         Fixed <rdar://problem/3891737> WebPreferences do not work if they are set before set on the WebView
1881
1882         John found this problem and suggested the fix.
1883
1884         Reviewed by John Louch.
1885
1886         * WebView.subproj/WebView.m:
1887         (-[WebView setPreferences:]):
1888
1889 2004-11-22  Ken Kocienda  <kocienda@apple.com>
1890
1891         Reviewed by Harrison
1892
1893         * WebCoreSupport.subproj/WebBridge.m:
1894         (-[WebBridge canPaste]): Call WebView _canPaste.
1895         * WebView.subproj/WebView.m:
1896         (-[WebView _canPaste]): Try to forward to document view's implementation. Only WebHTMLView
1897         answers right now. Returns NO otherwise.
1898         * WebView.subproj/WebViewInternal.h: Add _canPaste method to WebView.
1899
1900 2004-11-22  Maciej Stachowiak  <mjs@apple.com>
1901
1902         Back  out the window closing fix, it seems to be causing crashes.
1903
1904         * WebView.subproj/WebFrame.m:
1905         (-[WebFrame _detachFromParent]):
1906
1907 2004-11-20  Maciej Stachowiak  <mjs@apple.com>
1908  
1909         Reviewed by John.
1910  
1911         <rdar://problem/3710101> _web_userVisibleString makes URL autocomplete roughly 2x slower
1912          
1913         * Misc.subproj/WebNSURLExtras.h:
1914         * Misc.subproj/WebNSURLExtras.m:
1915         (-[NSString _web_isUserVisibleURL]): New SPI to check if a URL
1916         string is already in user-visible form (i.e. converting it to an
1917         NSURL and then back via _web_userVisibleString would not change
1918         anything).
1919  
1920 2004-11-19  Maciej Stachowiak  <mjs@apple.com>
1921
1922         Reviewed by John.
1923
1924         <rdar://problem/3190977> closing window with many tabs in it can be quite slow
1925         
1926         * WebView.subproj/WebFrame.m:
1927         (-[WebFrame _detachFromParent]): autorelease bridge instead of releasing it,
1928         to make window and tab closing more responsive - this way the deallocation happens
1929         after the windoow or tab appears to close.
1930
1931 === Safari-172 ===
1932
1933 2004-11-19  Chris Blumenberg  <cblu@apple.com>
1934
1935         Fixed: <rdar://problem/3880387> REGRESSION: www.shockplay.com site gives "Unexpected server response"
1936
1937         Reviewed by mjs.
1938
1939         * Plugins.subproj/WebBaseNetscapePluginView.m:
1940         (-[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
1941
1942 2004-11-19  Ken Kocienda  <kocienda@apple.com>
1943
1944         Reviewed by Harrison
1945
1946         Fix for this bug:
1947
1948         <rdar://problem/3655241> setTypingStyle: does not set the real typing style, and typingStyle does not return it
1949
1950         * WebCoreSupport.subproj/WebBridge.m:
1951         (-[WebBridge respondToChangedContents]): No longer call through to WebKit to set the typing style. The call
1952         was part of the misguided use of the setTypingStyle: and typingStyle as a cache of what was stored on
1953         the WebCore side.
1954         (-[WebBridge respondToChangedSelection]): Ditto.
1955         * WebView.subproj/WebView.m:
1956         (-[WebViewPrivate dealloc]): Object no longer has typingStyle ivar.
1957         (-[WebView setTypingStyle:]): Call over the bridge to set typing style.
1958         (-[WebView typingStyle]): Call over the bridge to retrieve typing style.
1959         * WebView.subproj/WebViewInternal.h: Object no longer has typingStyle ivar.
1960
1961 2004-11-18  John Sullivan  <sullivan@apple.com>
1962
1963         Reviewed by Darin.
1964         
1965         - fixed <rdar://problem/3886042> should save history file as binary XML so serialization, 
1966         parsing, reading and writing is faster
1967
1968         * History.subproj/WebHistory.m:
1969         (-[WebHistoryPrivate _saveHistoryGuts:URL:error:]):
1970         convert dictionary to binary data before saving
1971
1972 2004-11-18  Chris Blumenberg  <cblu@apple.com>
1973
1974         * WebView.subproj/WebHTMLRepresentation.m:
1975         (-[WebHTMLRepresentation currentForm]): removed stray ";"
1976
1977 2004-11-18  Chris Blumenberg  <cblu@apple.com>
1978
1979         Fixed development build failure.
1980
1981         * Misc.subproj/WebIconDatabase.m:
1982         (+[WebIconDatabase sharedIconDatabase]): call LOG not Log
1983
1984 2004-11-18  Chris Blumenberg  <cblu@apple.com>
1985
1986         <rdar://problem/3885708> save memory in icon DB by not using NSSets when holding 1 object
1987         
1988         Reviewed by sullivan.
1989
1990         * Misc.subproj/WebIconDatabase.m:
1991         (+[WebIconDatabase sharedIconDatabase]): added timing code
1992         (-[WebIconDatabase _clearDictionaries]): new
1993         (-[WebIconDatabase _loadIconDictionaries]): call _clearDictionaries in 2 places before we bail, use _web_setObjectUsingSetIfNecessary:forKey: when adding site URLs to the iconURLToURLs dictionary
1994         (-[WebIconDatabase _updateFileDatabase]): fixed comment
1995         (-[WebIconDatabase _setIconURL:forURL:]): use _web_setObjectUsingSetIfNecessary:forKey: when adding site URLs to the iconURLToURLs dictionary
1996         (-[WebIconDatabase _releaseIconForIconURLString:]): handle NSString objects retured from iconURLToURLs
1997         (-[NSMutableDictionary _web_setObjectUsingSetIfNecessary:forKey:]): new, puts a set on the dictionary when there are 2 or more object for s key
1998
1999 2004-11-17  Richard Williamson   <rjw@apple.com>
2000
2001         Fixed <rdar://problem/3885073> REGRESSION: Tab images at top of news.com.com replicated and squished
2002
2003         Correctly account for scaled image size and clipping.
2004
2005         Reviewed by Maciej.
2006
2007         * WebCoreSupport.subproj/WebImageData.h:
2008         * WebCoreSupport.subproj/WebImageData.m:
2009         * WebCoreSupport.subproj/WebImageRenderer.m:
2010         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
2011
2012 2004-11-17  Maciej Stachowiak  <mjs@apple.com>
2013
2014         Reviewed by Richard.
2015
2016         <rdar://problem/3885076> Don't make IDN calls for all-ascii URLs to save about 3 pages
2017         at Safari startup.
2018         
2019         * Misc.subproj/WebNSURLExtras.m:
2020         (mapHostNames): If encoding and not decoding, then bail early if the URL is all ascii.
2021         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Remove earlier special-case
2022         check for localhost, no longer needed.
2023
2024 2004-11-17  Richard Williamson   <rjw@apple.com>
2025
2026         Fixed <rdar://problem/3863601> Legacy font cache code in [WebTextRendererFactory createSharedFactory] may be unnecesary
2027
2028         and added call to SPI for
2029
2030         <rdar://problem/3884448> WebKit should turn on CG local font cache
2031
2032         currently disabled until a Tiger build shows up with the SPI.
2033
2034         Reviewed by David Harrison.
2035
2036         * WebCoreSupport.subproj/WebTextRendererFactory.m:
2037         (+[WebTextRendererFactory createSharedFactory]):
2038
2039 2004-11-17  Richard Williamson   <rjw@apple.com>
2040
2041         Fixed <rdar://problem/3882212> REGRESSION: Images clipped instead of scaled
2042         Fixed <rdar://problem/3884088> Crash terminating image load
2043
2044         Also added code to turn off color correction for images created
2045         via CGImageSources.  This code is currently disabled because CG  
2046         can't change the color space of images loaded progressively.
2047         Further, according to Dave Hayward, CG will no longer attempt
2048         to color correct images that don't have embedded profiles as of
2049         Tiger 8A306.
2050
2051         Reviewed by Chris.
2052
2053         * WebCoreSupport.subproj/WebImageData.m:
2054         (-[WebImageData _commonTermination]):
2055         (-[WebImageData dealloc]):
2056         (-[WebImageData _invalidateImageProperties]):
2057         (-[WebImageData imageAtIndex:]):
2058         (-[WebImageData incrementalLoadWithBytes:length:complete:]):
2059         (-[WebImageData propertiesAtIndex:]):
2060
2061 2004-11-16  Chris Blumenberg  <cblu@apple.com>
2062
2063         Fixed: <rdar://problem/3882034> REGRESSION: Context menu incorrect for PDF content
2064
2065         Reviewed by darin.
2066
2067         * WebView.subproj/WebPDFView.m:
2068         (-[WebPDFView hitTest:]): return self if the current event is a context menu event
2069         (-[WebPDFView menuForEvent:]): use the PDFView subview
2070
2071 2004-11-15  Chris Blumenberg  <cblu@apple.com>
2072
2073         Fixed: <rdar://problem/3880410> save 5 dirty pages by soft-linking against PDFKit framework
2074
2075         Reviewed by john.
2076
2077         * WebKit.pbproj/project.pbxproj:
2078         * WebView.subproj/WebPDFRepresentation.m:
2079         (+[WebPDFRepresentation PDFDocumentClass]): new
2080         (-[WebPDFRepresentation finishedLoadingWithDataSource:]): use PDFDocumentClass
2081         * WebView.subproj/WebPDFView.h:
2082         * WebView.subproj/WebPDFView.m:
2083         (+[WebPDFView PDFKitBundle]): new
2084         (+[WebPDFView PDFViewClass]): new
2085         (-[WebPDFView initWithFrame:]): create a PDFView subview
2086         (-[WebPDFView dealloc]): release the PDFView subview
2087         (-[WebPDFView PDFSubview]): new
2088
2089 2004-11-15  Chris Blumenberg  <cblu@apple.com>
2090
2091         Fixed: <rdar://problem/3879891> WebKit should link against PDFKit instead of Quartz
2092
2093         Reviewed by darin.
2094
2095         * WebKit.pbproj/project.pbxproj: link against PDFKit if it is present instead of Quartz.framework
2096
2097 2004-11-15  Richard Williamson   <rjw@apple.com>
2098
2099         Fixed missing retain of image property data.
2100
2101         Reviewed by John.
2102
2103         * WebCoreSupport.subproj/WebImageData.h:
2104         * WebCoreSupport.subproj/WebImageData.m:
2105         (-[WebImageData dealloc]):
2106         (-[WebImageData _invalidateImages]):
2107         (-[WebImageData imageAtIndex:]):
2108         (-[WebImageData propertiesAtIndex:]):
2109         (-[WebImageData _frameDuration]):
2110
2111 2004-11-15  Richard Williamson   <rjw@apple.com>
2112
2113         Cache image properties and frame durations.
2114         Create NSImage and TIFF representations from CGImage, lazily, as needed for
2115         dragging and element info dictionary.
2116
2117         Reviewed by John.
2118
2119         * WebCoreSupport.subproj/WebImageData.h:
2120         * WebCoreSupport.subproj/WebImageData.m:
2121         (-[WebImageData dealloc]):
2122         (-[WebImageData size]):
2123         (-[WebImageData propertiesAtIndex:]):
2124         (-[WebImageData _frameDurationAt:]):
2125         (-[WebImageData _frameDuration]):
2126         * WebCoreSupport.subproj/WebImageRenderer.h:
2127         * WebCoreSupport.subproj/WebImageRenderer.m:
2128         (-[WebImageRenderer dealloc]):
2129         (-[WebImageRenderer TIFFRepresentation]):
2130         (-[WebImageRenderer image]):
2131
2132 2004-11-14  Maciej Stachowiak  <mjs@apple.com>
2133
2134         Reviewed by John.
2135
2136         <rdar://problem/3879226> WebKit needlessly uses extra memory to store icon refcounts as NSNumbers       
2137
2138         * Misc.subproj/WebIconDatabase.m:
2139         (-[WebIconDatabase init]):
2140         (-[WebIconDatabase _setIconURL:forURL:]):
2141         (-[WebIconDatabase _retainIconForIconURLString:]):
2142         (-[WebIconDatabase _releaseIconForIconURLString:]):
2143         (-[WebIconDatabase _retainFutureIconForURL:]):
2144         (-[WebIconDatabase _releaseFutureIconForURL:]):
2145         * Misc.subproj/WebIconDatabasePrivate.h:
2146
2147 2004-11-15  John Sullivan  <sullivan@apple.com>
2148
2149         Reviewed by Ken.
2150         
2151         - fixed <rdar://problem/3879513> leak in [WebArchive _propertyListRepresentation] copying HTML to pasteboard
2152
2153         * WebView.subproj/WebArchive.m:
2154         (-[WebArchive _propertyListRepresentation]):
2155         the array holding the subresources was not released after use, oops!
2156
2157 2004-11-12  Chris Blumenberg  <cblu@apple.com>
2158
2159         Fixed: <rdar://problem/3874577> Opening restricted (parental) content in new window/tab reveals Safari's "Resources" folder
2160         
2161         Reviewed by john.
2162
2163         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2164         (-[WebDefaultUIDelegate openFrameInNewWindow:]): use the unreachable URL if there is one
2165
2166 === Safari-171 ===
2167
2168 2004-11-11  Richard Williamson   <rjw@apple.com>
2169
2170         Report actual size (not partial size) but use partial size
2171         when drawing.
2172
2173         Reviewed by Maciej.
2174
2175         * WebCoreSupport.subproj/WebImageData.h:
2176         * WebCoreSupport.subproj/WebImageData.m:
2177         (-[WebImageData size]):
2178
2179 2004-11-11  Darin Adler  <darin@apple.com>
2180
2181         Reviewed by John.
2182
2183         - added _wasFirstResponderAtMouseDownTime method to bridge so we can fix
2184           <rdar://problem/3846152> REGRESSION (125-166): can't drag text out of <input type=text> fields
2185           with a subsequent change to WebCore.
2186
2187         * WebCoreSupport.subproj/WebBridge.m:
2188         (wasFirstResponderAtMouseDownTime:): Added. Calls _wasFirstResponderAtMouseDownTime
2189         on the WebHTMLView.
2190         (_getPreSmartSet): Move global inside the function, add (void) for cleanliness.
2191         (_getPostSmartSet): Ditto.
2192
2193         * WebView.subproj/WebHTMLView.m:
2194         (-[WebHTMLViewPrivate dealloc]): Release firstResponderAtMouseDownTime.
2195         (-[WebHTMLView _setMouseDownEvent:]): Early exit if event is not changing.
2196         Set firstResponderAtMouseDownTime to the first responder.
2197         (-[WebHTMLView mouseDown:]): Release firstResponderAtMouseDownTime after handling
2198         the mouseDown event.
2199         (-[WebHTMLView _wasFirstResponderAtMouseDownTime:]): Added. Uses the
2200         firstResponderAtMouseDownTime field.
2201         * WebView.subproj/WebHTMLViewInternal.h: Added firstResponderAtMouseDownTime field
2202         and _wasFirstResponderAtMouseDownTime method.
2203
2204         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
2205
2206 2004-11-11  Richard Williamson   <rjw@apple.com>
2207
2208         Reviewed by Chris.
2209
2210         Work-around to minimize impact of 3876764.  Cache frame durations
2211         after first call.  So we'll still leak 1K for each animated
2212         image, but that's better than 1K each time the frame is drawn!
2213         * WebCoreSupport.subproj/WebImageData.h:
2214         * WebCoreSupport.subproj/WebImageData.m:
2215         (-[WebImageData _frameDuration]):
2216
2217         Simplified animation cleanup code.  Fixed leak due to 
2218         incorrect key passed to CFDictionaryRemoveValue.
2219         
2220         (+[WebImageData stopAnimationsInView:]):
2221         (-[WebImageData addAnimatingRenderer:inView:]):
2222         (-[WebImageData removeAnimatingRenderer:]):
2223         (-[WebImageData _stopAnimation]):
2224
2225 2004-11-11  Darin Adler  <darin@apple.com>
2226
2227         Reviewed by Maciej.
2228
2229         - 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
2230
2231         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView drawRect:]):
2232         Work around AppKit bug by using rectangles from getRectsBeingDrawn:count: instead of
2233         using the passed-in rectangle.
2234
2235 2004-11-11  Richard Williamson   <rjw@apple.com>
2236
2237         Work-arounds to make new ImageIO code work correctly.  Still
2238         disabled for now.  Requires at least Tiger 300.  Testing does
2239         show a 3% improvement in PLT tests!  That's huge!
2240
2241         Reviewed by John.
2242
2243         * WebCoreSupport.subproj/WebImageData.m:
2244         (-[WebImageData imageAtIndex:]):
2245         (-[WebImageData incrementalLoadWithBytes:length:complete:]):
2246         (-[WebImageData isNull]):
2247
2248 2004-11-10  Chris Blumenberg  <cblu@apple.com>
2249
2250         Fixed: <rdar://problem/3396872> ICONS: icon DB inconsistencies can cause slowness during startup, idle and quit
2251
2252         Reviewed by john.
2253
2254         * Misc.subproj/WebFileDatabase.m:
2255         (-[WebFileDatabase objectForKey:]): added logging code
2256         * Misc.subproj/WebIconDatabase.m:
2257         (-[WebIconDatabase init]): use alloc, init rather than autorelease, retain
2258         (-[WebIconDatabase _loadIconDictionaries]): use 1 object for mapping icon URLs to site URLs and vice versa rather than 3. This avoids inconsistencies and is faster.
2259         (-[WebIconDatabase _updateFileDatabase]): write 1 object out
2260
2261 2004-11-09  David Hyatt  <hyatt@apple.com>
2262
2263         Fix for 3873234, Safari UI is unresponsive when parsing multiple HTML docs and 3873233, Safari hangs when
2264         loading large local files.
2265         
2266         Reviewed by mjs
2267
2268         * WebCoreSupport.subproj/WebBridge.m:
2269         (-[WebBridge tokenizerProcessedData]):
2270         * WebView.subproj/WebDataSource.m:
2271         (-[WebDataSource _receivedMainResourceError:complete:]):
2272         (-[WebDataSource isLoading]):
2273
2274 2004-11-09  Richard Williamson   <rjw@apple.com>
2275
2276         Fixed <rdar://problem/3870964> 8A300: Safari not recognizing a PDF link (it displays raw data)
2277
2278         Add "text/pdf" as an acceptable PDF MIME type.
2279
2280         Reviewed by Chris.
2281
2282         * WebView.subproj/WebDataSource.m:
2283         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
2284         * WebView.subproj/WebFrameView.m:
2285         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
2286
2287 2004-11-08  Chris Blumenberg  <cblu@apple.com>
2288
2289         Fixed: <rdar://problem/3783904> Return key behavior is confusingly different between popup menus and autofill menus
2290
2291         Reviewed by john.
2292
2293         * WebCoreSupport.subproj/WebBridge.m:
2294         (-[WebBridge control:textView:shouldHandleEvent:]): new
2295         * WebView.subproj/WebFormDelegate.h:
2296         * WebView.subproj/WebFormDelegate.m:
2297         (-[WebFormDelegate control:textView:shouldHandleEvent:inFrame:]): new
2298
2299 2004-11-05  Chris Blumenberg  <cblu@apple.com>
2300
2301         Fixed: <rdar://problem/3854218> Safari is sometimes really slow because of increased null events to plug-ins
2302
2303         * Plugins.subproj/WebBaseNetscapePluginView.m: reverted null event interval to 0.02
2304
2305 2004-11-05  Chris Blumenberg  <cblu@apple.com>
2306
2307         Fixed: <rdar://problem/3838413> REGRESSION (Mail): "Smart" word paste adds spaces before/after special characters
2308
2309         Reviewed by rjw.
2310
2311         * WebCoreSupport.subproj/WebBridge.m:
2312         (_getPreSmartSet): copied from AppKit
2313         (_getPostSmartSet): ditto
2314         (-[WebBridge isCharacterSmartReplaceExempt:isPreviousCharacter:]): new
2315
2316 2004-11-05  Richard Williamson   <rjw@apple.com>
2317
2318         Fixed <rdar://problem/3810702> _checkNavigationPolicyForRequest:dataSource:formState:andCall:withSelector: ASSERTS when reentered from Xcode's man page viewer
2319
2320         Reviewed by Maciej (a long time ago).
2321
2322         * WebView.subproj/WebFrame.m:
2323         (-[WebFrame _loadDataSource:withLoadType:formState:]):
2324
2325         Fixed <rdar://problem/3845307> WebKit needs to export _HIWebViewRegisterClass so HIWebViews can work in Carbon nib files
2326
2327         As suggested in the bug, the fix is to actually call 
2328         HIWebViewRegisterClass in WebKitInitForCarbon, rather than
2329         exporting the symbol.
2330
2331         Reviewed by Chris.
2332
2333         * Carbon.subproj/CarbonUtils.m:
2334         (WebInitForCarbon):
2335         * Carbon.subproj/HIWebView.m:
2336         * WebKit.pbproj/project.pbxproj:
2337
2338 === Safari-170 ===
2339
2340 2004-11-05  Darin Adler  <darin@apple.com>
2341
2342         Reviewed by Chris.
2343
2344         - fixed <rdar://problem/3857151> Assertion failure in "trackingRectOwner" while moving mouse over Slashdot.org page
2345
2346         * WebView.subproj/WebHTMLView.m:
2347         (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Changed to no longer call
2348         addTrackingRect to do the work for consistency with the new method below. Not too much copied and pasted code.
2349         (-[WebHTMLView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Added an override
2350         for this new method in Tiger. No harm in implementing it on Panther, although it won't be called.
2351         (-[WebHTMLView _removeTrackingRects:count:]): Ditto.
2352
2353 2004-11-04  David Hyatt  <hyatt@apple.com>
2354
2355         Make sure the dominant line direction is properly set for RTL runs so that spaces will reverse.
2356
2357         Change xHeight to measure the ascent of the x glyph, since the xHeight metrics appear to be
2358         totally bogus in both CG and AppKit.
2359         
2360         Reviewed by darin
2361
2362         * WebCoreSupport.subproj/WebTextRenderer.m:
2363         (-[WebTextRenderer xHeight]):
2364         (-[WebTextRenderer _createATSUTextLayoutForRun:style:]):
2365         (-[WebTextRenderer _trapezoidForRun:style:atPoint:]):
2366         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):
2367         (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
2368         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
2369
2370 2004-11-02  Maciej Stachowiak  <mjs@apple.com>
2371
2372         Reviewed by Dave Hyatt (when I originally coded it).
2373
2374         Redid WebKit part of fix for:
2375
2376         <rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
2377        
2378         * WebView.subproj/WebHTMLView.m:
2379         (-[WebHTMLView firstRectForCharacterRange:]): Call the appropriate new bridge method,
2380         and translate to screen coordinates.
2381
2382 2004-11-02  John Sullivan  <sullivan@apple.com>
2383
2384         Reviewed by Hyatt.
2385         
2386         - [NSFont menuFontOfSize:], called from WebStringTruncator, was taking > 9% of the time creating a 
2387         very large bookmarks menu, so I cached this one NSFont object.
2388
2389         * Misc.subproj/WebStringTruncator.m:
2390         (defaultMenuFont):
2391         new function, caches the font used when no font is specified
2392         (+[WebStringTruncator centerTruncateString:toWidth:]):
2393         call new function
2394
2395 2004-11-02  Ken Kocienda  <kocienda@apple.com>
2396
2397         Reviewed by Hyatt
2398
2399         WebCore now implements a command to insert a block in response to typing a return key, and
2400         some names were improved in the course of this work.
2401
2402         * WebView.subproj/WebHTMLView.m:
2403         (-[WebHTMLView insertNewline:]): Now calls insertLineBreak on bridge object.
2404         (-[WebHTMLView insertLineBreak:]): New method.
2405         (-[WebHTMLView insertParagraphSeparator:]): Now implemented.
2406         * WebView.subproj/WebView.m: 
2407
2408 === Safari-169 ===
2409
2410 2004-10-29  Chris Blumenberg  <cblu@apple.com>
2411
2412         * WebKit.exp: added _WebPlugInModeKey, forgot to add it earlier
2413
2414 2004-10-29  Darin Adler  <darin@apple.com>
2415
2416         - fixed <rdar://problem/3855573> Remove reference to "WebScriptMethods" from WebScriptObject.h comments
2417
2418         * Plugins.subproj/WebScriptObject.h: Removed unneeded #ifdef protection for multiple includes (since
2419         this is an Objective-C header and we use #import for those). Fixed comments as requested in the bug
2420         report to match the contents of the file.
2421
2422 2004-10-27  Ken Kocienda  <kocienda@apple.com>
2423
2424         Reviewed by Chris
2425
2426         Added new SPI for Mail so it can get the behavior it needs when the user hits
2427         the return key with the selection in quoted content.
2428
2429         * WebView.subproj/WebView.m
2430         * WebView.subproj/WebViewPrivate.h
2431
2432 2004-10-26  Chris Blumenberg  <cblu@apple.com>
2433
2434         Fixed exception that Darin encountered in Mail.
2435
2436         Reviewed by darin.
2437
2438         * Plugins.subproj/WebPluginController.m:
2439         (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): if the plug-in returns a nil view, return nil
2440
2441 2004-10-25  Chris Blumenberg  <cblu@apple.com>
2442
2443         Darin made an internal notification have the Web prefix.
2444
2445         Reviewed by me.
2446
2447         * Plugins.subproj/WebBaseNetscapePluginView.m:
2448         (-[WebBaseNetscapePluginView addWindowObservers]):
2449         (-[WebBaseNetscapePluginView removeWindowObservers]):
2450         (ConsoleConnectionChangeNotifyProc):
2451
2452 2004-10-25  John Sullivan  <sullivan@apple.com>
2453
2454         Reviewed by Chris.
2455         
2456         - Cleanup from fix for <rdar://problem/3851676> bookmarks should not hold onto a WebHistoryItem object;
2457           eliminated notificationsSuppressed mechanism, which was used only by WebBookmark
2458
2459         * History.subproj/WebHistoryItem.m:
2460         removed notificationsSuppressed ivar from private data object
2461         (-[WebHistoryItem setAlternateTitle:]):
2462         remove notificationsSuppressed guard
2463         (-[WebHistoryItem setURLString:]):
2464         ditto
2465         (-[WebHistoryItem setOriginalURLString:]):
2466         ditto
2467         (-[WebHistoryItem setTitle:]):
2468         ditto
2469         (-[WebHistoryItem _setLastVisitedTimeInterval:]):
2470         ditto
2471         (-[WebHistoryItem setNotificationsSuppressed:]):
2472         removed this method
2473         (-[WebHistoryItem notificationsSuppressed]):
2474         ditto
2475         
2476         * History.subproj/WebHistoryItemPrivate.h:
2477         removed notificationsSuppressed and setNotificationsSuppressed
2478
2479 2004-10-22  Chris Blumenberg  <cblu@apple.com>
2480
2481         Fixed: <rdar://problem/3851491> installedPlugins being called for a page without plugins
2482
2483         Reviewed by mjs.
2484
2485         * WebView.subproj/WebFrameView.m:
2486         (+[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 
2487
2488 === Safari-168 ===
2489
2490 2004-10-22  Ken Kocienda  <kocienda@apple.com>
2491
2492         Reviewed by me
2493
2494         * WebKit.pbproj/project.pbxproj: Add GCC_ENABLE_OBJC_GC and GCC_FAST_OBJC_DISPATCH flags.
2495
2496 2004-10-21  Darin Adler  <darin@apple.com>
2497
2498         Reviewed by John.
2499
2500         - fixed <rdar://problem/3847994> REGRESSION: reproducible exception in WebImageRenderer releasePatternColor; afterwards get crash or no more browsing
2501
2502         * WebCoreSupport.subproj/WebImageRenderer.m:
2503         (-[WebInternalImage createRendererIfNeeded]): Replaced retainOrCopyIfNeeded with this.
2504         This returns nil if a copied renderer isn't needed, and returns a new renderer if a copy is.
2505         The old version was sometimes returning a WebInternalImage and other times a WebImageRenderer.
2506         (-[WebImageRenderer retainOrCopyIfNeeded]): Returns the result of createRendererIfNeeded
2507         or retains self and returns self.
2508
2509 2004-10-20  Darin Adler  <darin@apple.com>
2510
2511         Reviewed by Dave.
2512
2513         - fixed <rdar://problem/3470715> Pattern cache can get huge with use of css background-image in Safari
2514
2515         * WebCoreSupport.subproj/WebImageRenderer.h: Change WebImageRenderer to be a subclass of NSObject
2516         rather than NSImage and contain a pointer to a WebInternalImage.
2517         * WebCoreSupport.subproj/WebImageRenderer.m:
2518         (-[WebInternalImage releasePatternColor]): Added. Releases patternColor.
2519         (-[WebImageRenderer initWithMIMEType:]): Added. Makes WebInternalImage and then self.
2520         (-[WebImageRenderer initWithData:MIMEType:]): Ditto.
2521         (-[WebImageRenderer initWithContentsOfFile:]): Ditto.
2522         (-[WebImageRenderer dealloc]): Added. Calls releasePatternColor and then releases WebInternalImage.
2523         (-[WebImageRenderer image]): Added. Returns pointer to image.
2524         (-[WebImageRenderer MIMEType]): Added. Calls through to image.
2525         (-[WebImageRenderer TIFFRepresentation]): Ditto.
2526         (-[WebImageRenderer frameCount]): Ditto.
2527         (-[WebImageRenderer setOriginalData:]): Added. Sets image data pointer.
2528         (+[WebImageRenderer stopAnimationsInView:]): Added. Calls through to image.
2529         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]): Ditto.
2530         (-[WebImageRenderer size]): Ditto.
2531         (-[WebImageRenderer resize:]): Ditto.
2532         (-[WebImageRenderer drawImageInRect:fromRect:]): Ditto.
2533         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]): Ditto.
2534         (-[WebImageRenderer stopAnimation]): Ditto.
2535         (-[WebImageRenderer tileInRect:fromPoint:context:]): Ditto.
2536         (-[WebImageRenderer isNull]): Ditto.
2537         (-[WebImageRenderer retainOrCopyIfNeeded]): Ditto.
2538         (-[WebImageRenderer increaseUseCount]): Ditto.
2539         (-[WebImageRenderer decreaseUseCount]): Ditto.
2540         (-[WebImageRenderer flushRasterCache]): Ditto.
2541         (-[WebImageRenderer imageRef]): Ditto.
2542         (-[WebImageRenderer copyWithZone:]): Ditto.
2543
2544         * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]):
2545         Update for slight changes to WebImageRenderer API.
2546         * WebCoreSupport.subproj/WebImageRendererFactory.m:
2547         (-[WebImageRendererFactory imageRendererWithMIMEType:]): Ditto.
2548         (-[WebImageRendererFactory imageRendererWithData:MIMEType:]): Ditto.
2549         (-[WebImageRendererFactory imageRendererWithSize:]): Ditto.
2550         (-[WebImageRendererFactory imageRendererWithName:]): Ditto.
2551         * WebView.subproj/WebImageView.m: (-[WebImageView image]): Ditto.
2552
2553 2004-10-20  Chris Blumenberg  <cblu@apple.com>
2554         
2555         Fixed: <rdar://problem/3846943> REGRESSION: JNLP files are rendered instead of downloaded
2556
2557         Reviewed by john.
2558
2559         * Plugins.subproj/WebBasePluginPackage.h:
2560         * Plugins.subproj/WebBasePluginPackage.m:
2561         (-[WebBasePluginPackage isJavaPlugIn]): new
2562         * Plugins.subproj/WebPluginDatabase.m:
2563         (-[WebPluginDatabase refresh]): don't register the Java plug-in for a document view since Java file should be downloaded when not embedded.
2564
2565 2004-10-20  Chris Blumenberg  <cblu@apple.com>
2566
2567         Fixed:
2568         <rdar://problem/3842030> WebKit needs to pass the mode (NP_FULL, NP_EMBED, etc) when calling plugInViewWithArguments
2569         <rdar://problem/3792852> Safari is loading the new QuickTime Cocoa plugin on Panther
2570
2571         Reviewed by darin.
2572
2573         * Plugins.subproj/WebPluginDocumentView.m:
2574         (-[WebPluginDocumentView setDataSource:]): pass "full" as the mode
2575         * Plugins.subproj/WebPluginPackage.m:
2576         (-[WebPluginPackage initWithPath:]): load plug-in with the "webplugin" extension
2577         * WebCoreSupport.subproj/WebBridge.m:
2578         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): pass "embed" as the mode
2579         * WebKit.pbproj/project.pbxproj:
2580
2581 2004-10-19  Vicki Murley <vicki@apple.com>
2582
2583         - bump WebKit version to 167.1, so that we can do a quick dot submission for <rdar://problem/3843951> 
2584
2585         * WebKit.pbproj/project.pbxproj:
2586
2587 2004-10-19  Darin Adler  <darin@apple.com>
2588
2589         Change suggested by Maciej during code review.
2590
2591         * WebCoreSupport.subproj/WebTextRenderer.m: Changed rounding hack table to be const so it can be in shared instead
2592         of private memory, and doesn't require an initialization function.
2593         (+[WebTextRenderer initialize]): Removed initialization.
2594
2595 2004-10-19  Darin Adler  <darin@apple.com>
2596
2597         Reviewed by Maciej.
2598
2599         - fixed <rdar://problem/3838934> Safari stops loading pages after rangeOfCharacterFromSet nil argument exception
2600         - fixed <rdar://problem/3843951> REGRESSION (166-167): Safari crashes in widthForNextCharacter (belkin.com, at startup for others)
2601         - fixed <rdar://problem/3841049> REGRESSION (109-110): control characters render as square boxes
2602
2603         * WebCoreSupport.subproj/WebTextRenderer.m:
2604         (isSpace): Merged in isAlternateSpace, never used.
2605         (setupRoundingHackCharacterTable): Fixed size of table, was 1 entry too short. Got rid of unneeded call to bzero,
2606         since globals start out zeroed automatically.
2607         (isRoundingHackCharacter): Fixed backwards logic causing the crash in widthForNextCharacter.
2608         Also removed explicit compare with 1; check for non-zero is just fine.
2609         (fontContainsString): Change code so we'll just skip the font if the covered character set returns nil rather than
2610         throwing an exception like the old version did. This should make bug 3838934 go away, although perhaps covering up
2611         the underlying problem.
2612         (-[WebTextRenderer _convertCharacters:length:toGlyphs:]): Removed unused skipControlCharacters: parameter and also
2613         the unnecessary code to copy the buffer to change newline characters and non-break spaces to spaces.
2614         (-[WebTextRenderer _convertUnicodeCharacters:length:toGlyphs:]): Removed unused local.
2615         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]): Added code to set up special cases for control characters,
2616         \n and non-break spaces.
2617         (-[WebTextRenderer _createATSUTextLayoutForRun:]): Added comment about the cases this code does not handle that
2618         are handled by the CG case.
2619         (widthForNextCharacter): Call isSpace instead of checking specifically for the space character here. The old code
2620         would not handle cases with '\n' coming across from WebCore properly.
2621
2622 2004-10-18  Chris Blumenberg  <cblu@apple.com>
2623
2624         Fixed: <rdar://problem/3840916> GC: -[WebNetscapePluginPackage initWithPath:] leaks an NSURL
2625
2626         Reviewed by kevin.
2627
2628         * Plugins.subproj/WebNetscapePluginPackage.m:
2629         (-[WebNetscapePluginPackage initWithPath:]): use executablePath on NSBundle instead of CFBundleCopyExecutableURL
2630
2631 2004-10-18  Chris Blumenberg  <cblu@apple.com>
2632
2633         * DOM.subproj/DOMPrivate.h: change to copied header that was never committed
2634
2635 2004-10-18  John Sullivan  <sullivan@apple.com>
2636
2637         Reviewed by Ken.
2638         
2639         - fixed <rdar://problem/3810183> Make WebHTMLView respect return value of webView:doCommandBySelector:
2640
2641         * WebView.subproj/WebHTMLView.m:
2642         (-[WebHTMLView doCommandBySelector:]):
2643         only do default action if delegate returns NO; this works with Mail as of Tiger 8A275.
2644
2645 === Safari-167 ===
2646
2647 2004-10-14  Ken Kocienda  <kocienda@apple.com>
2648
2649         Reviewed by John
2650
2651         Final fix for these bugs:
2652         
2653         <rdar://problem/3806306> HTML editing puts spaces at start of line
2654         <rdar://problem/3814252> HTML editing groups space with word causing wrapping
2655
2656         This change sets some new CSS properties that have been added to WebCore to 
2657         enable whitespace-handling and line-breaking features that make WebView work
2658         more like a text editor.
2659
2660         * WebView.subproj/WebHTMLRepresentation.m:
2661         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]): Turn on special editing
2662         CSS properties when loading an HTML document into a WebView that is editable.
2663         * WebView.subproj/WebView.m:
2664         (-[WebView setEditable:]): Add and remove special editing CSS properties in current
2665         document being displayed.
2666
2667 2004-10-14  Richard Williamson   <rjw@apple.com>
2668
2669         Fixed <rdar://problem/3823026> making isRoundingHackCharacter use -O3 and an 8-bit lookup-table will speed "XBS" test up by 3% (actually < 1%)
2670
2671         Careful testing shows a small performance gain on very large text files.  
2672         I saw large variations in timings, but taking the lowest PLT timing 
2673         with and without this change showed a 0.9% gain.  Note the cvs-base showed
2674         no improvement.  The improvement was for the large page attached to the
2675         bug.
2676
2677         Reviewed by Ken.
2678
2679         * WebCoreSupport.subproj/WebTextRenderer.m:
2680         (setupRoundingHackCharacterTable):
2681         (isRoundingHackCharacter):
2682         (+[WebTextRenderer initialize]):
2683
2684 2004-10-14  Ken Kocienda  <kocienda@apple.com>
2685
2686         Reviewed by me
2687
2688         Fix build breakage. These three functions need to return the values from their
2689         calls to WebCGColorSpaceCreateXXX.
2690
2691         * WebCoreSupport.subproj/WebGraphicsBridge.m:
2692         (-[WebGraphicsBridge createRGBColorSpace])
2693         (-[WebGraphicsBridge createGrayColorSpace])
2694         (-[WebGraphicsBridge createCMYKColorSpace])
2695
2696 2004-10-13  Richard Williamson   <rjw@apple.com>
2697
2698         Addressed concerns in <rdar://problem/3803117> RESP: High complexity in icu uidna_IDNToASCII called by [NSString(WebNSURLExtras) _web_mapHostNameWithRange:encode:makeString:]
2699
2700         In practice I saw NO improvement in performance.  Although,
2701         special-case tests could possibly show improvement.  Anyway,
2702         the changes don't hurt performance.
2703
2704         Reviewed by Maciej.
2705
2706         * Misc.subproj/WebNSURLExtras.m:
2707         (-[NSString _web_mapHostNameWithRange:encode:makeString:]):
2708
2709 2004-10-13  Maciej Stachowiak  <mjs@apple.com>
2710
2711         Reviewed by Ken.
2712
2713         <rdar://problem/3824626> Change to do colormatching for DeviceRGB colorspace causes ~11% Safari slowdown
2714         
2715         - I fixed this by turning off all colormatching for WebKit
2716         content. We might turn it back on later. For now, it's possible to
2717         turn it on temporarily by defining COLORMATCH_EVERYTHING.
2718         
2719         * WebCoreSupport.subproj/WebGraphicsBridge.m:
2720         (-[WebGraphicsBridge setFocusRingStyle:radius:color:]):
2721         (-[WebGraphicsBridge additionalPatternPhase]):
2722         (-[WebGraphicsBridge createRGBColorSpace]):
2723         (-[WebGraphicsBridge createGrayColorSpace]):
2724         (-[WebGraphicsBridge createCMYKColorSpace]):
2725         * WebCoreSupport.subproj/WebImageData.m:
2726         * WebCoreSupport.subproj/WebImageRenderer.h:
2727         * WebCoreSupport.subproj/WebImageRenderer.m:
2728         (-[WebImageRenderer _adjustSizeToPixelDimensions]):
2729         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
2730         (-[WebImageRenderer _adjustColorSpace]):
2731         (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
2732         (-[WebImageRenderer tileInRect:fromPoint:context:]):
2733         (_createImageRef):
2734         (WebCGColorSpaceCreateRGB):
2735         (WebCGColorSpaceCreateGray):
2736         (WebCGColorSpaceCreateCMYK):
2737         * WebKitPrefix.h:
2738
2739 2004-10-13  Richard Williamson   <rjw@apple.com>
2740
2741         Don't fill background with transparency unless debug flag
2742         is enabled.
2743
2744         Reviewed by Hyatt.
2745
2746         * WebView.subproj/WebHTMLView.m:
2747         (-[WebHTMLView drawRect:]):
2748
2749 2004-10-12  Richard Williamson   <rjw@apple.com>
2750
2751         Fixed <rdar://problem/3829705> Need to remove filling w/ transparency when not drawing backgroundy.
2752
2753         Reviewed by Ken.
2754
2755         * WebView.subproj/WebHTMLView.m:
2756         (-[WebHTMLView _transparentBackground]):
2757         (-[WebHTMLView _setTransparentBackground:]):
2758         (-[WebHTMLView drawRect:]):
2759         * WebView.subproj/WebHTMLViewInternal.h:
2760         * WebView.subproj/WebHTMLViewPrivate.h:
2761
2762 2004-10-11  Chris Blumenberg  <cblu@apple.com>
2763
2764         Fixed: <rdar://problem/3802039> 8A259: Can't use Grab services to grab selection from screen
2765
2766         Reviewed by john.
2767
2768         * WebView.subproj/WebHTMLView.m:
2769         (+[WebHTMLView initialize]): register service "return types" which are types that can be inserted into a WebView
2770         (-[WebHTMLView writeSelectionToPasteboard:types:]): service protocol method, be sure to only write specified types
2771         (-[WebHTMLView readSelectionFromPasteboard:]): new, service protocol method, insert types
2772         (-[WebHTMLView validRequestorForSendType:returnType:]): moved, handle return types
2773
2774 2004-10-11  Darin Adler  <darin@apple.com>
2775
2776         Reviewed by John.
2777
2778         - fixed <rdar://problem/3834130> nil-object-in-dictionary exception seen in -[WebView _elementAtWindowPoint:]
2779
2780         * WebView.subproj/WebView.m: (-[WebView _elementAtWindowPoint:]): Added a check for nil frame.
2781
2782 2004-10-11  Darin Adler  <darin@apple.com>
2783
2784         Reviewed by John.
2785
2786         - fixed <rdar://problem/3834166> <input type=file> sends onchange even when the same file is chosen twice
2787
2788         * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton chooseFilename:]):
2789         Do nothing if filename is the same as before.
2790
2791 2004-10-11  Ken Kocienda  <kocienda@apple.com>
2792
2793         Reviewed by Darin
2794
2795         * WebView.subproj/WebHTMLView.m:
2796         (-[WebTextCompleteController doCompletion]): bridge call to get caret rect at a node
2797         now takes an affinity: caretRectAtNode:offset:affinity:.
2798
2799 2004-10-10  Ken Kocienda  <kocienda@apple.com>
2800
2801         Reviewed by Chris
2802
2803         Fix for this bug:
2804         
2805         <rdar://problem/3814236> REGRESSION (Mail): Can't set the color of text in Mail compose window using drag/drag from color panel
2806
2807         * WebView.subproj/WebHTMLView.m:
2808         (+[WebHTMLView _insertablePasteboardTypes]): Add NSColorPboardType to list.
2809         (-[WebHTMLView _isNSColorDrag:]): New helper. Determines if drag is an NSColor drag.
2810         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): Add a case for NSColor drags,
2811         else do what we did before.
2812         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Add a case for NSColor drags, which creates
2813         a CSS style containing color info and calls the bridge to apply the style. Otherwise, do what we did before.
2814
2815 2004-10-11  Darin Adler  <darin@apple.com>
2816
2817         Reviewed by Ken.
2818
2819         - fixed <rdar://problem/3833848> REGRESSION (133-134): each keydown event is getting sent multiple times
2820
2821         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView performKeyEquivalent:]):
2822         Don't send an event through WebCore if it has already been through once.
2823
2824 2004-10-10  John Sullivan  <sullivan@apple.com>
2825
2826         Reviewed by Ken.
2827         
2828         - fixed <rdar://problem/3777253> Crash in redirect mechanism trying to display error page for bad scheme
2829
2830         * WebView.subproj/WebMainResourceClient.m:
2831         (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
2832         add retain/autorelease to the request returned from call to super. In this case, the return value
2833         was being dealloc'ed before being returned.
2834
2835 2004-10-09  Chris Blumenberg  <cblu@apple.com>
2836
2837         Fixed: 
2838         <rdar://problem/3625352> up and down arrow and page up/down keys don't work to scroll overflow:auto/scroll/overlay areas
2839         <rdar://problem/3397658> scroll wheel does not work to scroll overflow:auto/scroll/overlay areas (RSS)
2840
2841         Reviewed by hyatt.
2842
2843         * Plugins.subproj/WebBaseNetscapePluginStream.m:
2844         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): fixed typo in comment
2845         * Plugins.subproj/WebNetscapePluginStream.m:
2846         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): ditto
2847         * WebView.subproj/WebFramePrivate.h:
2848         * WebView.subproj/WebFrameView.m:
2849         (-[WebFrameView _bridge]): new
2850         (-[WebFrameView scrollToBeginningOfDocument:]): call the bridge to scroll, if that fails, scroll the document view
2851         (-[WebFrameView scrollToEndOfDocument:]): ditto
2852         (-[WebFrameView _pageVertically:]): ditto
2853         (-[WebFrameView _pageHorizontally:]): ditto
2854         (-[WebFrameView _scrollLineVertically:]): ditto
2855         (-[WebFrameView _scrollLineHorizontally:]): ditto
2856         * WebView.subproj/WebHTMLView.m:
2857         (-[WebHTMLView scrollWheel:]): call the bridge to scroll, if that fails, pass to next responder
2858
2859 === Safari-166 ===
2860
2861 2004-10-05  Chris Blumenberg  <cblu@apple.com>
2862
2863         Fixed: <rdar://problem/3827002> assertion failure in WebBaseNetscapePluginStream on abc.go.com
2864
2865         Reviewed by rjw.
2866
2867         * Plugins.subproj/WebBaseNetscapePluginStream.m:
2868         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): avoid assertion failure in dealloc by temporarily setting isTerminated to YES in case we are released in this method
2869         * Plugins.subproj/WebNetscapePluginStream.m:
2870         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): ditto
2871
2872 2004-10-05  John Sullivan  <sullivan@apple.com>
2873
2874         * WebCoreSupport.subproj/WebBridge.m:
2875         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]):
2876         initialize "arguments" var to nil to satisfy compiler on deployment build.
2877
2878 2004-10-05  Richard Williamson   <rjw@apple.com>
2879
2880         Fixed <rdar://problem/3825442> first click lost for Dashboard
2881         Allow dashboard to force acceptsFirstMouse:
2882
2883         Reviewed by Chris.
2884
2885         * WebView.subproj/WebHTMLView.m:
2886         (-[WebHTMLView acceptsFirstMouse:]):
2887         * WebView.subproj/WebView.m:
2888         (-[WebView _dashboardBehavior:]):
2889         * WebView.subproj/WebViewInternal.h:
2890         * WebView.subproj/WebViewPrivate.h:
2891
2892         * WebCoreSupport.subproj/WebImageRenderer.h:
2893         Comment change only
2894
2895 2004-10-05  Chris Blumenberg  <cblu@apple.com>
2896
2897         Fixed: <rdar://problem/3760920> Need to record plugin view instances
2898         
2899         Reviewed by rjw.
2900
2901         * Plugins.subproj/WebPluginController.h:
2902         * Plugins.subproj/WebPluginController.m:
2903         (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): new, creates plug-in view and adds it to global list
2904         (+[WebPluginController isPlugInView:]): new, checks if the plug-in view is in the global list
2905         (-[WebPluginController destroyAllPlugins]): remove the plug-in from the global list 
2906         * Plugins.subproj/WebPluginDocumentView.m:
2907         (-[WebPluginDocumentView setDataSource:]): call [WebPluginController plugInViewWithArguments:fromPluginPackage:]
2908         * WebCoreSupport.subproj/WebBridge.m:
2909         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): ditto
2910         * WebView.subproj/WebFrame.m:
2911         (-[WebFrame _reloadForPluginChanges]): call [WebPluginController isPlugInView:]
2912         * WebView.subproj/WebHTMLView.m:
2913         (-[WebHTMLView addSubview:]): ditto
2914
2915 2004-10-05  David Hyatt  <hyatt@apple.com>
2916
2917         Fix to make selection more like NSTextView.  All gap painting is now done by WebCore, so WebKit no longer
2918         needs to try to fill gaps around text.
2919         
2920         Reviewed by kocienda
2921
2922         * WebCoreSupport.subproj/WebTextRenderer.m:
2923         (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
2924         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):
2925
2926 2004-10-05  Darin Adler  <darin@apple.com>
2927
2928         Reviewed by John.
2929
2930         - fixed <rdar://problem/3577255> custom file icon shows up upside down in <input type=file>
2931
2932         * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton setFilename:]): Added a call to
2933         setFlipped that fixes the problem, even though I don't know why.
2934
2935 2004-10-04  Darin Adler  <darin@apple.com>
2936
2937         Reviewed by Maciej.
2938
2939         - fixed <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window
2940
2941         * WebView.subproj/WebHTMLView.m:
2942         (-[WebHTMLView _selectionStartFontAttributesAsRTF]): Changed to call new bridge method
2943         named fontAttributesForSelectionStart, deleted the method this used to use, and renamed
2944         this to have the word "start" in it.
2945         (-[WebHTMLView copyFont:]): Updated for name change.
2946
2947         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
2948
2949 2004-10-04  Chris Blumenberg  <cblu@apple.com>
2950
2951         * WebView.subproj/WebFrameInternal.h: removed constant declarations that I committed by mistake
2952
2953 2004-10-04  Chris Blumenberg  <cblu@apple.com>
2954
2955         Fixed: <rdar://problem/3798948> NPP_URLNotify is not called if plug-in calls NPN_*URLNotfy
2956         Fixed a number of FIXME's related to notifying plug-ins of loaded pages.
2957
2958         Reviewed by rjw.
2959
2960         * Plugins.subproj/WebBaseNetscapePluginStream.h: 
2961                 - replaced URL ivar with requestURL and responseURL ivars since we need to pass both to plug-ins
2962                 - added sendNotification boolean. Relying on notifyData not being NULL was not information to know whether to call NPP_URLNotify or not.
2963                 - added isTerminated boolean because determining whether or not stream.ndata is NULL is not enough to know if the stream has been cancelled.
2964         * Plugins.subproj/WebBaseNetscapePluginStream.m:
2965         (+[WebBaseNetscapePluginStream reasonForError:]): new, factored out from receivedError:
2966         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): new
2967         (-[WebBaseNetscapePluginStream dealloc]): release new ivars
2968         (-[WebBaseNetscapePluginStream finalize]): added assert
2969         (-[WebBaseNetscapePluginStream setRequestURL:]): new
2970         (-[WebBaseNetscapePluginStream setResponseURL:]): new
2971         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): renamed, use responseURL as it basically did before
2972         (-[WebBaseNetscapePluginStream startStreamWithResponse:]): call renamed method
2973         (-[WebBaseNetscapePluginStream destroyStream]): 
2974                 - do nothing if terminated
2975                 - call NPP_StreamAsFile and NPP_DestroyStream if stream.ndata is not NULL
2976                 - call NPP_URLNotify if sendNotification is YES regardless of value of notifyData
2977         (-[WebBaseNetscapePluginStream receivedError:]): call reasonForError
2978         (-[WebBaseNetscapePluginStream deliverData]): use renamed ivar
2979         * Plugins.subproj/WebBaseNetscapePluginView.h:
2980                 - added observingFrameLoadNotification boolean
2981                 - renamed dictionary ivar to pendingFrameLoads which has WebFrame keys and WebPluginRequest values
2982         * Plugins.subproj/WebBaseNetscapePluginView.m:
2983         (-[WebBaseNetscapePluginView addFrameLoadObserver]): new
2984         (-[WebBaseNetscapePluginView removeFrameLoadObserver]): new
2985         (-[WebBaseNetscapePluginView stop]): call removeFrameLoadObserver
2986         (-[WebBaseNetscapePluginView initWithFrame:]): use renamed pendingFrameLoads ivar
2987         (-[WebBaseNetscapePluginView dealloc]): ditto
2988         (-[WebBaseNetscapePluginView requestWithURLCString:]): set referrer on the request just as IE does
2989         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): 
2990                 - call NPP_URLNotify depending of value of sendNotification
2991                 - call new init method on WebBaseNetscapePluginStream rather then setting variables individually
2992         (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]): new, calls NPP_URLNotify at the right time with the right value
2993         (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithError:]): new, delegate method called from WebFrame
2994         (-[WebBaseNetscapePluginView loadPluginRequest:]): call addFrameLoadObserver
2995         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]): take new sendNotification parameter and pass it
2996         (-[WebBaseNetscapePluginView getURLNotify:target:notifyData:]): pass YES for sendNotification
2997         (-[WebBaseNetscapePluginView getURL:target:]): pass NO for sendNotification
2998         (-[WebBaseNetscapePluginView _postURL:target:len:buf:file:notifyData:sendNotification:allowHeaders:]): take new sendNotification parameter and pass it
2999         (-[WebBaseNetscapePluginView postURLNotify:target:len:buf:file:notifyData:]): pass YES for sendNotification
3000         (-[WebBaseNetscapePluginView postURL:target:len:buf:file:]): pass NO for sendNotification
3001         (-[WebPluginRequest initWithRequest:frameName:notifyData:sendNotification:]): take new sendNotification parameter
3002         (-[WebPluginRequest sendNotification]): new
3003         * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
3004         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
3005         (-[WebNetscapePluginEmbeddedView didStart]): set referrer on the request just as IE does
3006         * Plugins.subproj/WebNetscapePluginRepresentation.m:
3007         (-[WebNetscapePluginRepresentation receivedData:withDataSource:]): set the request URL on the stream
3008         * Plugins.subproj/WebNetscapePluginStream.h:
3009         * Plugins.subproj/WebNetscapePluginStream.m:
3010         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): take new sendNotification parameter and pass it
3011         (-[WebNetscapePluginStream dealloc]): use renamed ivar
3012         (-[WebNetscapePluginStream start]): ditto
3013         * WebView.subproj/WebFrame.m:
3014         (-[WebFrame _setState:]): removed notification posting code. This was only used by WebBaseNetscapePluginView and it was the wrong notification to send.
3015         (-[WebFrame _checkLoadCompleteForThisFrame]): call internal load delegate to tell it that the load has finished
3016         (-[WebFrame _loadItem:withLoadType:]): ditto
3017         (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:formState:]): ditto
3018         (-[WebFrame _setInternalLoadDelegate:]): new
3019         (-[WebFrame _internalLoadDelegate]): new
3020         * WebView.subproj/WebFrameInternal.h:
3021         * WebView.subproj/WebFramePrivate.h:
3022
3023 2004-10-04  Chris Blumenberg  <cblu@apple.com>
3024
3025         Fixed: <rdar://problem/3758113> REGRESSION: Macromedia ColdFusion page doesn't show main content
3026
3027         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.
3028
3029         Reviewed by darin.
3030
3031         * Plugins.subproj/WebBaseNetscapePluginView.m:
3032         (-[NSData _web_locationAfterFirstBlankLine]): looks for 2 CRLF's, not for 2 LF's
3033
3034 2004-10-04  Darin Adler  <darin@apple.com>
3035
3036         Reviewed by Ken.
3037
3038         - fixed a potential storage leak when we turn on CGImageRef image rendering
3039
3040         * WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer dealloc]): Fix potential storage leak
3041         by adding [super dealloc], but leak was not real yet because the code is commented out.
3042
3043         - make paste style work with color as part of fix to <rdar://problem/3814237> REGRESSION (Mail):
3044           Copy/paste style does not set color in Mail compose window
3045
3046         * WebView.subproj/WebHTMLView.m:
3047         (-[WebHTMLView _selectionFontAttributes]): Change structure so it's easy to add more attributes.
3048         For now I haven't added any yet.
3049         (-[WebHTMLView _colorAsString:]): Moved this earlier in the file.
3050         (-[WebHTMLView _shadowAsString:]): Ditto.
3051         (-[WebHTMLView _styleFromFontAttributes:]): Add background color, foreground color, and text shadow.
3052
3053 2004-09-30  Richard Williamson   <rjw@apple.com>
3054
3055         Fixed <rdar://problem/3821215> NPN hasMethod and hasProperty functions should take NPObjects, not NPClass
3056
3057         Also changed dashboard regions dictionary to use "control"
3058         for scroller region label, instead of "scroller, per
3059         request from ouch. 
3060                 
3061         Reviewed by Chris.
3062
3063         * Plugins.subproj/npruntime.h:
3064         * WebView.subproj/WebView.m:
3065         (-[WebView _addScrollerDashboardRegions:from:]):
3066
3067 2004-09-30  Chris Blumenberg  <cblu@apple.com>
3068
3069         Fixed: <rdar://problem/3498680> switching back and forth between tabs stops calling anything in a plug-in
3070
3071         Reviewed by darin.
3072
3073         * Plugins.subproj/WebBaseNetscapePluginView.m:
3074         (-[WebBaseNetscapePluginView sendEvent:]): call setWindowIfNecessary because the window may have changed
3075         (-[WebBaseNetscapePluginView updateAndSetWindow]): new
3076         (-[WebBaseNetscapePluginView setWindowIfNecessary]): was setWindow, this method now just sets the window
3077         (-[WebBaseNetscapePluginView start]): call updateAndSetWindow
3078         (-[WebBaseNetscapePluginView viewDidMoveToWindow]): ditto
3079         (-[WebBaseNetscapePluginView viewHasMoved:]): ditto
3080
3081 2004-09-30  Chris Blumenberg  <cblu@apple.com>
3082
3083         Fixed: <rdar://problem/3498668> switching out of tab doesn't send loseFocusEvent to plug-in
3084
3085         Reviewed by rjw.
3086
3087         * Plugins.subproj/WebBaseNetscapePluginView.h:
3088         * Plugins.subproj/WebBaseNetscapePluginView.m:
3089         (-[WebBaseNetscapePluginView setHasFocus:]): new, sends events to plug-in
3090         (-[WebBaseNetscapePluginView becomeFirstResponder]): call setHasFocus
3091         (-[WebBaseNetscapePluginView resignFirstResponder]): ditto 
3092         (-[WebBaseNetscapePluginView viewWillMoveToWindow:]): ditto
3093
3094 2004-09-30  Chris Blumenberg  <cblu@apple.com>
3095
3096         Fixed:
3097         Assertion failure when loading standalone netscape plug-in content.
3098         Document loads of WebKit plug-in content should be cancelled since the plug-in does its own loading.
3099
3100         Reviewed by john.
3101
3102         * Misc.subproj/WebKitErrors.m: removed deprecated method
3103         * Misc.subproj/WebKitErrorsPrivate.h:
3104         * Plugins.subproj/WebNetscapePluginDocumentView.m:
3105         (-[WebNetscapePluginDocumentView setDataSource:]): fixed the assertion statement
3106         * Plugins.subproj/WebPluginDocumentView.h:
3107         * Plugins.subproj/WebPluginDocumentView.m:
3108         (-[WebPluginDocumentView dealloc]): remove retained plug-in
3109         (-[WebPluginDocumentView setDataSource:]): retain the plug-in, cancel the laod
3110
3111 2004-09-29  Chris Blumenberg  <cblu@apple.com>
3112         
3113         Fixed:
3114         <rdar://problem/3763832> Safari-155: Non-Embeded movies fail to open in Cocoa QT plug-in
3115         <rdar://problem/3820517> "*** -[WebPluginPackage NPP_New]: selector not recognized [self = 0x5552c10]"
3116
3117         Reviewed by rjw.
3118
3119         * History.subproj/WebHistoryItem.m:
3120         * Misc.subproj/WebNSViewExtras.h:
3121         * Misc.subproj/WebNSViewExtras.m:
3122         (-[NSView _web_firstResponderCausesFocusDisplay]):
3123         (-[NSView _webView]):
3124         (-[NSView _frame]):
3125         (-[NSView _bridge]):
3126         (-[NSView _dataSource]):
3127         * Plugins.subproj/WebBasePluginPackage.h:
3128         * Plugins.subproj/WebBasePluginPackage.m:
3129         (-[WebBasePluginPackage hash]):
3130         (-[WebBasePluginPackage isQuickTimePlugIn]):
3131         * Plugins.subproj/WebNetscapePluginDocumentView.m:
3132         (-[WebNetscapePluginDocumentView setDataSource:]):
3133         * Plugins.subproj/WebNetscapePluginRepresentation.m:
3134         * Plugins.subproj/WebPluginController.h:
3135         * Plugins.subproj/WebPluginController.m:
3136         (-[WebPluginController initWithDocumentView:]):
3137         (-[WebPluginController addPlugin:]):
3138         (-[WebPluginController destroyAllPlugins]):
3139         (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
3140         (-[WebPluginController webPlugInContainerShowStatus:]):
3141         (-[WebPluginController webPlugInContainerSelectionColor]):
3142         (-[WebPluginController webFrame]):
3143         * Plugins.subproj/WebPluginDatabase.h:
3144         * Plugins.subproj/WebPluginDatabase.m:
3145         (-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]):
3146         (-[WebPluginDatabase refresh]):
3147         (WebPluginDocumentView::while):
3148         * Plugins.subproj/WebPluginDocumentView.h: Added.
3149         * Plugins.subproj/WebPluginDocumentView.m: Added.
3150         (-[WebPluginDocumentView initWithFrame:]):
3151         (-[WebPluginDocumentView dealloc]):
3152         (-[WebPluginDocumentView drawRect:]):
3153         (-[WebPluginDocumentView setDataSource:]):
3154         (-[WebPluginDocumentView setNeedsLayout:]):
3155         (-[WebPluginDocumentView layout]):
3156         (-[WebPluginDocumentView currentWindow]):
3157         (-[WebPluginDocumentView viewWillMoveToWindow:]):
3158         (-[WebPluginDocumentView viewDidMoveToWindow]):
3159         (-[WebPluginDocumentView viewWillMoveToHostWindow:]):
3160         (-[WebPluginDocumentView viewDidMoveToHostWindow]):
3161         (-[WebPluginDocumentView receivedData:withDataSource:]):
3162         (-[WebPluginDocumentView receivedError:withDataSource:]):
3163         (-[WebPluginDocumentView finishedLoadingWithDataSource:]):
3164         (-[WebPluginDocumentView canProvideDocumentSource]):
3165         (-[WebPluginDocumentView documentSource]):
3166         (-[WebPluginDocumentView title]):
3167         * Plugins.subproj/npapi.m:
3168         (NPN_ReleaseVariantValue):
3169         (NPN_GetStringIdentifier):
3170         (NPN_GetStringIdentifiers):
3171         (NPN_GetIntIdentifier):
3172         (NPN_IdentifierIsString):
3173         (NPN_UTF8FromIdentifier):
3174         (NPN_IntFromIdentifier):
3175         (NPN_CreateObject):
3176         (NPN_RetainObject):
3177         (NPN_ReleaseObject):
3178         (NPN_Invoke):
3179         (NPN_InvokeDefault):
3180         (NPN_Evaluate):
3181         (NPN_GetProperty):
3182         (NPN_SetProperty):
3183         (NPN_RemoveProperty):
3184         (NPN_HasProperty):
3185         (NPN_HasMethod):
3186         (NPN_SetException):
3187         (NPN_Call):
3188         * WebCoreSupport.subproj/WebBridge.m:
3189         (-[WebBridge frameRequiredForMIMEType:URL:]):
3190         * WebCoreSupport.subproj/WebViewFactory.m:
3191         * WebKit.exp:
3192         * WebKit.pbproj/project.pbxproj:
3193         * WebView.subproj/WebDebugDOMNode.m:
3194         * WebView.subproj/WebDocumentInternal.h:
3195         * WebView.subproj/WebHTMLView.m:
3196         (-[WebHTMLView initWithFrame:]):
3197         * WebView.subproj/WebHTMLViewPrivate.h:
3198         * WebView.subproj/WebImageRepresentation.h:
3199         * WebView.subproj/WebRenderNode.m:
3200         * WebView.subproj/WebView.m:
3201
3202 2004-09-29  Richard Williamson   <rjw@apple.com>
3203
3204         Fixed <rdar://problem/3779998> bringing window to front or sending to back does not send focus/blur events to JavaScript window object
3205
3206         The fix has two parts, 1) make onblur and onfocus work for windows, 
3207         and 2), allow the dashboard to override WebKit's special key/non-key
3208         behaviors.
3209
3210         Reviewed by Maciej.
3211
3212         * Plugins.subproj/WebBaseNetscapePluginView.m:
3213         (-[WebBaseNetscapePluginView restartNullEvents]):
3214         * WebView.subproj/WebHTMLView.m:
3215         (-[WebHTMLView addMouseMovedObserver]):
3216         (-[WebHTMLView removeMouseMovedObserver]):
3217         * WebView.subproj/WebView.m:
3218         (-[WebView _dashboardBehavior:]):
3219         * WebView.subproj/WebViewInternal.h:
3220         * WebView.subproj/WebViewPrivate.h:
3221
3222 2004-09-29  Maciej Stachowiak  <mjs@apple.com>
3223
3224         Reviewed by John.
3225
3226         - consolidated OS version checks into prefix header
3227
3228         * Misc.subproj/WebFileDatabase.m:
3229         (-[WebFileDatabase _createLRUList:]):
3230         (+[WebFileDatabase _syncLoop:]):
3231         * Misc.subproj/WebKitErrors.m:
3232         (registerErrors):
3233         * Misc.subproj/WebNSObjectExtras.h:
3234         (WebNSRetainCFRelease):
3235         * Misc.subproj/WebNSPasteboardExtras.m:
3236         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
3237         * Misc.subproj/WebUnicode.m:
3238         (_unicodeDirection):
3239         * WebCoreSupport.subproj/WebImageData.h:
3240         * WebCoreSupport.subproj/WebImageRenderer.h:
3241         * WebCoreSupport.subproj/WebKeyGenerator.h:
3242         * WebCoreSupport.subproj/WebNewKeyGeneration.c:
3243         * WebKitPrefix.h:
3244         * WebView.subproj/WebDataSource.m:
3245         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
3246         (-[WebDataSource isLoading]):
3247         * WebView.subproj/WebFrameView.m:
3248         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
3249         * WebView.subproj/WebHTMLView.m:
3250         * WebView.subproj/WebPDFRepresentation.h:
3251         * WebView.subproj/WebPDFRepresentation.m:
3252         * WebView.subproj/WebPDFView.h:
3253         * WebView.subproj/WebPDFView.m:
3254
3255 2004-09-29  Ken Kocienda  <kocienda@apple.com>
3256
3257         Reviewed by Hyatt
3258
3259         Fix for this bug:
3260         
3261         <rdar://problem/3818296> REGRESSION (Mail): centerSelectionInVisibleArea does not work correctly
3262
3263         * WebView.subproj/WebHTMLView.m:
3264         (-[WebHTMLView centerSelectionInVisibleArea:]): Now calls new centerSelectionInVisibleArea
3265         bridge function instead of ensureCaretVisible. Now handles caret selections and range
3266         selections correctly.
3267
3268 2004-09-28  Chris Blumenberg  <cblu@apple.com>
3269
3270         Added timing code so that Doug can time RTF conversion. 
3271
3272         * WebView.subproj/WebHTMLView.m:
3273         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]):
3274         (-[WebHTMLView _attributeStringFromDOMRange:]):
3275
3276 2004-09-28  Richard Williamson   <rjw@apple.com>
3277
3278         <rdar://problem/3817421> add getter for dashboard regions (debugging)
3279         
3280         <rdar://problem/3817417> NSScrollView need autoregions for dashboard
3281         Also KWQScrollBars
3282
3283         Reviewed by Hyatt.
3284
3285         * WebCoreSupport.subproj/WebBridge.m:
3286         (-[WebBridge dashboardRegionsChanged:]):
3287         * WebView.subproj/WebView.m:
3288         (-[WebView _setInitiatedDrag:]):
3289         (-[WebView _addScrollerDashboardRegions:from:]):
3290         (-[WebView _addScrollerDashboardRegions:]):
3291         (-[WebView _dashboardRegions]):
3292         * WebView.subproj/WebViewPrivate.h:
3293
3294 2004-09-27  John Sullivan  <sullivan@apple.com>
3295
3296         - fixed <rdar://problem/3814705> 8A266: Safari authentication dialog "remember password" text should match Mail
3297
3298         * Panels.subproj/English.lproj/WebAuthenticationPanel.nib:
3299         changed "Remember this password" to "Remember this password in my keychain";
3300         this will need to go through CCC for this week's build.
3301
3302 2004-09-27  Chris Blumenberg  <cblu@apple.com>
3303
3304         Fixed: <rdar://problem/3594754> change null event interval from 20 ms to 10 ms to match speed on Windows
3305
3306         Reviewed by John.
3307
3308         * Plugins.subproj/WebBaseNetscapePluginView.m:
3309
3310 2004-09-27  Chris Blumenberg  <cblu@apple.com>
3311
3312         Fixed: <rdar://problem/3502138> text files don't remember scroll position when going back or reloading
3313
3314         Reviewed by john.
3315
3316         * WebView.subproj/WebTextView.m:
3317         (-[WebTextView layout]): implemented, call sizeToFit, without this scrollPoint: won't work
3318
3319 2004-09-27  John Sullivan  <sullivan@apple.com>
3320
3321         Reviewed by Ken.
3322
3323         - WebKit part of fix for <rdar://problem/3734466> ER: Support standard editing keystrokes 
3324         like Cmd-B while editing rich text
3325
3326         * WebView.subproj/WebHTMLView.m:
3327         (-[WebHTMLView _toggleBold]):
3328         new method, toggles font-weight from "bold" to "normal"
3329         (-[WebHTMLView _toggleItalic]):
3330         new method, toggles font-style from "italic" to "normal"
3331         (-[WebHTMLView _handleStyleKeyEquivalent:]):
3332         new method, if the new preference is set and we're in an editable state, check for standard
3333         key equivalents for toggling styles (just command-B and command-I for now).
3334         (-[WebHTMLView performKeyEquivalent:]):
3335         Moved in file, now calls _handleStyleKeyEquivalent:
3336         
3337         * WebView.subproj/WebPreferenceKeysPrivate.h:
3338         new preference key WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
3339         * WebView.subproj/WebPreferences.m:
3340         (+[WebPreferences initialize]):
3341         initial value of WebKitRespectStandardStyleKeyEquivalentsPreferenceKey is NO (maybe we'll
3342         change our minds about this, but this is more guaranteed to be backward-compatible)
3343         (-[WebPreferences respectStandardStyleKeyEquivalents]):
3344         read WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
3345         (-[WebPreferences setRespectStandardStyleKeyEquivalents:]):
3346         write WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
3347         
3348         * WebView.subproj/WebPreferencesPrivate.h:
3349         declare getter and setter
3350         
3351         * English.lproj/StringsNotToBeLocalized.txt:
3352         updated for these and other recent changes
3353
3354 2004-09-27  Chris Blumenberg  <cblu@apple.com>
3355
3356         Fixed: <rdar://problem/3806649> assertion failure after control-click of webcam
3357
3358         Reviewed by john.
3359
3360         * WebView.subproj/WebDefaultContextMenuDelegate.m:
3361         (-[WebDefaultUIDelegate contextMenuItemsForElement:]): don't provide "Copy Image" if the image is not fully loaded
3362
3363 2004-09-27  Chris Blumenberg  <cblu@apple.com>
3364
3365         Fixed: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil to dictionary in dragging code
3366
3367         Reviewed by john.
3368
3369         * WebView.subproj/WebHTMLView.m:
3370         (-[WebHTMLView _setMouseDownEvent:]): new
3371         (-[WebHTMLView acceptsFirstMouse:]): call _setMouseDownEvent
3372         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
3373         (-[WebHTMLView mouseDown:]): ditto
3374         (-[WebHTMLView _delegateDragSourceActionMask]): removed temp fix, assert that the mouse event is not nil
3375
3376 2004-09-27  Darin Adler  <darin@apple.com>
3377
3378         * WebKit.pbproj/project.pbxproj: Added WebDashboardRegion.h as a private header.
3379
3380 2004-09-24  Chris Blumenberg  <cblu@apple.com>
3381
3382         Reviewed by rjw.
3383
3384         * WebView.subproj/WebHTMLView.m:
3385         (-[WebHTMLView _selectedArchive]): added timing code for copying markup
3386
3387 === Safari-165 ===
3388
3389 2004-09-24  Chris Blumenberg  <cblu@apple.com>
3390
3391         Temp fix for: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil to dictionary in dragging code
3392
3393         Reviewed by john.
3394
3395         * WebView.subproj/WebHTMLView.m:
3396         (-[WebHTMLView _delegateDragSourceActionMask]): return none if the mouse down event is nil
3397
3398 2004-09-24  Ken Kocienda  <kocienda@apple.com>
3399
3400         Reviewed by John
3401
3402         Fix for this bug:
3403         
3404         <rdar://problem/3813917> REGRESSION (125-163): The font panel will change the font of any web page
3405         
3406         We were doing a laughably bad job at preventing edits in documents that were not editable.
3407         This change fixes the specific case of the bug mentioned above, and makes an attempt to
3408         fix similar bugs by checking for whether the view is in editing mode before making edits.
3409
3410         * WebView.subproj/WebHTMLView.m:
3411         (-[WebHTMLView _canEdit]): Renamed from _canType. Used in many more places in the code now.
3412         (-[WebHTMLView _isMoveDrag]): Change around code to make the meaning more clear. This one
3413         was actually performing a correct check before.
3414         (-[WebHTMLView keyDown:]): Renamed _canType to _canEdit.
3415         (-[WebHTMLView paste:]): Don't beep if can't paste. This matches AppKit. Any paste-related beeps
3416         will come from failure to handle key equivalent. Menu validation will kick in to dim menu.
3417         (-[WebHTMLView _applyStyleToSelection:]): Bail if !_canEdit.
3418         (-[WebHTMLView pasteAsPlainText:]): Ditto.
3419         (-[WebHTMLView _alignSelectionUsingCSSValue:]): Ditto.
3420         (-[WebHTMLView insertNewline:]): Ditto.
3421         (-[WebHTMLView insertParagraphSeparator:]): Ditto.
3422         (-[WebHTMLView _changeWordCaseWithSelector:]): Ditto.
3423         (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): Ditto.
3424         (-[WebHTMLView complete:]): Ditto.
3425         (-[WebHTMLView _changeSpellingToWord:]): Ditto. Some code rearranging to eliminate bridge local variable.
3426         (-[WebHTMLView ignoreSpelling:]): Ditto.
3427         (-[WebHTMLView yank:]): Bail if !_canEdit.
3428         (-[WebHTMLView yankAndSelect:]): Ditto.
3429         (-[WebHTMLView deleteToMark:]): Ditto.
3430         (-[WebHTMLView swapWithMark:]): Ditto.
3431         (-[WebHTMLView transpose:]): Ditto.
3432         (-[WebHTMLView _updateFontPanel]): Ditto. Some code rearranging to eliminate bridge local variable.
3433         (-[WebHTMLView setMarkedText:selectedRange:]): Bail if !_canEdit.
3434         (-[WebHTMLView _insertText:selectInsertedText:]): Ditto. Some code rearranging to eliminate bridge local variable.
3435         * WebView.subproj/WebHTMLViewPrivate.h: Renamed _canType to _canEdit.
3436
3437 2004-09-24  Ken Kocienda  <kocienda@apple.com>
3438
3439         Reviewed by me
3440
3441         * WebCoreSupport.subproj/WebDashboardRegion.h: Check in file copied from WebCore.
3442
3443 2004-09-23  Maciej Stachowiak  <mjs@apple.com>
3444
3445         Reviewed by Darin.
3446
3447         <rdar://problem/3685235> REGRESSION (Mail): links are not properly editable
3448         
3449         * WebView.subproj/WebDefaultUIDelegate.m: By default, don't allow
3450         link dragging if the element under the mouse pointer is
3451         editable. This way, you can drag-select starting inside a link.
3452
3453 2004-09-23  John Sullivan  <sullivan@apple.com>
3454
3455         Reviewed by Chris.
3456         
3457         - WebKit part of fix for <rdar://problem/3415264> 
3458         Default encoding should initially be set to current system encoding
3459
3460         * WebView.subproj/WebPreferences.m:
3461         (-[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]):
3462         new SPI that sets the initial value of the default text encoding to
3463         be the system encoding, with a special-case conversion of MacRoman->Latin1.
3464         This is not done automatically for WebKit clients for fear of breaking them.
3465         
3466         * WebView.subproj/WebPreferencesPrivate.h:
3467         declare new SPI
3468
3469 2004-09-23  Darin Adler  <darin@apple.com>
3470
3471         Reviewed by Ken.
3472
3473         - fixed <rdar://problem/3811584> REGRESSION (85-125): iframe.document undefined in function called from button onclick; works from img onclick
3474
3475         The fix is to not let "defers callbacks" have any effect on loading "about:blank".
3476         I also had to fix one bug in WebCore that could then be reproduced by going to "about:blank"
3477         while using a button.
3478
3479         * WebView.subproj/WebMainResourceClient.m:
3480         (-[WebMainResourceClient connection:didReceiveResponse:]): Loosen asserts to allow this callback
3481         for the specific case of "about:blank" even if the defers callbacks flag is true.
3482         (-[WebMainResourceClient connectionDidFinishLoading:]): Ditto.
3483         (-[WebMainResourceClient loadWithRequestNow:]): Added NSURLRequest return value. Loosened asserts
3484         as above. Changed code to return a new request if we get a new request back that is not empty
3485         when the defers callbacks flag is true.
3486         (-[WebMainResourceClient loadWithRequest:]): If the defers callbacks flag is set, but the
3487         URL is one that gives us an empty document, then do the work right away, don't defer it.
3488
3489 2004-09-23  Darin Adler  <darin@apple.com>
3490
3491         - fixed B&I builds by checking in generated file
3492
3493         * WebCoreSupport.subproj/WebDashboardRegion.h: Added.
3494
3495 2004-09-22  Richard Williamson   <rjw@apple.com>
3496
3497         Pass dashboard regions to UI delegate.
3498
3499         Reviewed by Hyatt.
3500
3501         * WebCoreSupport.subproj/WebBridge.m:
3502         (-[WebBridge dashboardRegionsChanged:]):
3503         * WebView.subproj/WebUIDelegatePrivate.h:
3504         * copy-webcore-files-to-webkit:
3505
3506 2004-09-22  Chris Blumenberg  <cblu@apple.com>
3507
3508         Fixed build that I just broke.
3509
3510         * WebView.subproj/WebHTMLView.m:
3511         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]):