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