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