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