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