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