Tests:
[WebKit-https.git] / WebKit / ChangeLog
1 2004-01-22  John Sullivan  <sullivan@apple.com>
2
3         Reviewed by Chris.
4
5         * English.lproj/StringsNotToBeLocalized.txt:
6         brought this file back up to date
7
8 2004-01-22  Darin Adler  <darin@apple.com>
9
10         - fixed 3536624: Webkit 1.2 links against SecurityNssAsn1.framework
11
12         * WebKit.pbproj/project.pbxproj: Remove SecurityNssAsn1.framework from the list we link against.
13         It's still included in the list for places to find headers.
14
15 === Safari-125 ===
16
17 === Safari-124 ===
18
19 2004-01-15  Vicki Murley  <vicki@apple.com>
20
21         Reviewed by Darin.
22
23         * WebKit.pbproj/project.pbxproj: Update copyright date to 2004.
24         * English.lproj/InfoPlist.strings: Update copyright date to 2004.
25
26 === Safari-122 ===
27
28 === Safari-121 ===
29
30 2004-01-10  Darin Adler  <darin@apple.com>
31
32         Reviewed by John.
33
34         - fixed 3524906: REGRESSION (114-115): page with plug-in content never stops loading (travelking.com.tw)
35
36         Put the plug-in streams clients into their own separate set. Now a plug-in client is not considered part
37         of "loading", but it does participate in the callback deferral mechanism, which was the real goal of the
38         change I made that introduced this regression. Also remove the plug-in client in one case I had missed
39         before (cancel).
40
41         * WebView.subproj/WebDataSourcePrivate.h: Added a new set of plugInStreamClients.
42         * WebView.subproj/WebDataSource.m:
43         (-[WebDataSourcePrivate dealloc]): Release the set.
44         (-[WebDataSource _addPlugInStreamClient:]): Added. Adds to the set.
45         (-[WebDataSource _removePlugInStreamClient:]): Added. Removes from the set.
46         (-[WebDataSource _defersCallbacksChanged]): Added code to loop through plugInStreamClients too.
47
48         * Plugins.subproj/WebNetscapePluginStream.m:
49         (-[WebNetscapePluginStream start]): Use _add/removePlugInStreamClient instead of _add/removeSubresourceClient.
50         (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): Ditto.
51         (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): Ditto.
52         (-[WebNetscapePluginConnectionDelegate cancelWithError:]): Override to call _removePlugInStreamClient and
53         then call super.
54
55 2004-01-09  Darin Adler  <darin@apple.com>
56
57         - rolled out most of Dave's change for 3510669 and 3515442; it is not working yet
58
59         * WebView.subproj/WebHTMLViewPrivate.h:
60         * WebView.subproj/WebHTMLView.m:
61
62 2004-01-09  Maciej Stachowiak  <mjs@apple.com>
63
64         Reviewed by Chris.
65
66         <rdar://problem/3514446>: cert downloaded from BofA or MIT is rejected (ACL issue on private key?)
67         
68         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
69         (createPair): Cut & paste hunk of code from Security framework.
70         (Safari_SecKeyCreatePair): Ditto.
71         (signedPublicKeyAndChallengeString): Instead of creating a normal ACL,
72         use our hacked version of the SecKeyCreatePair call that doesn't put in
73         any kind of ACL. This works around a SecureTransport bug.
74
75 2004-01-09  David Hyatt  <hyatt@apple.com>
76
77         Fixes for 3510669 and 3515442, blank frame problems caused by WebKit's resizing not scheduling actual
78         layouts via WebCore.
79         
80         Reviewed by darin
81
82         * WebView.subproj/WebHTMLView.m:
83         (-[WebHTMLView _web_layoutIfNeededRecursive:testDirtyRect:]):
84         (-[WebHTMLView initWithFrame:]):
85         (-[WebHTMLView layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
86         (-[WebHTMLView setNeedsLayout:]):
87         * WebView.subproj/WebHTMLViewPrivate.h:
88
89 2004-01-09  Darin Adler  <darin@apple.com>
90
91         Reviewed by Chris.
92
93         - fixed 3510805: "PoolCleaner" in Carbon WebKit leads to overrelease and crash using color picker in BBEdit
94
95         * Carbon.subproj/CarbonUtils.m: (PoolCleaner): Only do the autorelease
96         pool stuff in the default run loop mode. If we're in another run loop
97         mode that means we are in some Cocoa code that sets up its own autorelease
98         pool; it's important that we don't release ours in that case.
99
100 2004-01-08  Maciej Stachowiak  <mjs@apple.com>
101
102         Reviewed by John.
103
104         <rdar://problem/3522298>: Error on MIT's x509 certificate site
105
106         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
107         (addCertificatesToKeychainFromData): Sign the freshly minted public key
108         using RSA/MD5 instead of RSA/SHA-1, because MIT only supports MD5.
109
110 2004-01-08  Richard Williamson   <rjw@apple.com>
111
112         Fixed 3524430.  This was a regression introduced when we added '-' and '?' to the word boundary detection.
113
114         Also backed out workaround for 3521759 as it's no longer needed with correct argument passing to ATSUPositionToOffset.
115
116         Reviewed by Hyatt.
117
118         * WebCoreSupport.subproj/WebTextRenderer.m:
119         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):
120         (widthForNextCharacter):
121
122 2004-01-08  Chris Blumenberg  <cblu@apple.com>
123
124         Fixed: <rdar://problem/3522900>: REGRESSION (100-117): Java plug-in description is garbled when displaying Plug-ins.html
125
126         Reviewed by darin.
127
128         * Misc.subproj/WebKitNSStringExtras.h:
129         * Misc.subproj/WebKitNSStringExtras.m:
130         (+[NSString _web_encodingForResource:]): new method, returns the encoding for a resource handle given its file system path
131         * Plugins.subproj/WebNetscapePluginPackage.m:
132         (-[WebNetscapePluginPackage stringForStringListID:andIndex:]): call _web_encodingForResource when creating the NSString
133
134 === Safari-120 ===
135
136 2004-01-06  Richard Williamson   <rjw@apple.com>
137
138         Fixed 3513660.  Make ATSU layout and draw with integer glyph boundaries.  This fix should be removed if/when we convert WebCore to use floats for measuring/positioning (3521781).
139
140         Reviewed by John.
141
142         * WebCoreSupport.subproj/WebTextRenderer.m:
143         (-[WebTextRenderer _createATSUTextLayoutForRun:]):
144
145 2004-01-05  Richard Williamson   <rjw@apple.com>
146
147         Fix for 3514454.  Work-around added for 3521759.
148
149         Filed 3521781 to cover deeper problem.
150
151         Reviewed by Kocienda.
152
153         * WebCoreSupport.subproj/WebTextRenderer.m:
154         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:atPoint:]):
155         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):
156
157 2003-12-22  John Sullivan  <sullivan@apple.com>
158
159         - WebKit part of fix for <rdar://problem/3515706>: 
160         REGRESSION (100-118): Web Kit printing does not honor Page Setup scale factor
161
162         Reviewed by Darin.
163
164         * WebView.subproj/WebHTMLView.m:
165         (-[WebHTMLView _userScaleFactorForPrintOperation:]):
166         new method, extracts the scale factor provided by the user in
167         the Page Setup dialog
168         (-[WebHTMLView _scaleFactorForPrintOperation:]):
169         take user scale factor into account
170         (-[WebHTMLView knowsPageRange:]):
171         renamed local var scaleFactor -> totalScaleFactor for clarity;
172         take user scale factor into account for print width; now assumes
173         computePageRects returns autoreleased result.
174
175         * WebKit.pbproj/project.pbxproj:
176         Xcode version wars; Darin says these don't affect the build.
177
178 2003-12-21  Darin Adler  <darin@apple.com>
179
180         Reviewed by John.
181
182         - fixed a storage leak
183
184         * WebView.subproj/WebFrame.m:
185         (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
186         Move the release of the request out of an if statement, since it's always needed.
187
188 2003-12-19  Chris Blumenberg  <cblu@apple.com>
189
190         Fixed: <rdar://problem/3515255>: Standalone image drag makes ocassionally makes 2 copies
191
192         Reviewed by john.
193
194         * WebKit.pbproj/project.pbxproj: Xcode 1.1 file format change
195         * WebView.subproj/WebImageView.h:
196         * WebView.subproj/WebImageView.m: copied double-drag protection code from WebHTMLView
197         (-[WebImageView mouseDown:]): set ignoringMouseDraggedEvents to NO
198         (-[WebImageView mouseDragged:]): if ignoringMouseDraggedEvents, return
199         (-[WebImageView draggedImage:endedAt:operation:]): set ignoringMouseDraggedEvents to YES
200
201 === Safari-119 ===
202
203 2003-12-18  Richard Williamson   <rjw@apple.com>
204
205         Fixed 3511415.  We have to un-visually order visually ordered text
206         before passing to ATSU.
207
208         Reviewed by John.
209
210         * WebCoreSupport.subproj/WebTextRenderer.m:
211         (reverseCharactersInRun):
212         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:atPoint:]):
213         (-[WebTextRenderer _ATSU_drawRun:style:atPoint:]):
214         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):
215
216 2003-12-17  Richard Williamson   <rjw@apple.com>
217
218         Fixed 3503011 (really, this time).  Always use integer width for '-' and '?', as we do for spaces, to ensure
219         that 'words' (as defined by out rounding hack) start on integer boundaries.
220
221         Reviewed by John.
222
223         * WebCoreSupport.subproj/WebTextRenderer.m:
224         (widthForNextCharacter):
225
226 2003-12-17  Chris Blumenberg  <cblu@apple.com>
227
228         Fixed:
229         <rdar://problem/3393758>: REGRESSION (85-100): Flash onKeyUp event non-functional
230         <rdar://problem/3479020>: REGRESSION (85-100): Safari sends plug-in key events to wrong instance of plug-in
231
232         Reviewed by darin.
233
234         * Plugins.subproj/WebBaseNetscapePluginView.h:
235         * Plugins.subproj/WebBaseNetscapePluginView.m:
236         (-[WebBaseNetscapePluginView sendEvent:]): set suspendKeyUpEvents to NO
237         (-[WebBaseNetscapePluginView keyMessageForEvent:]): copied from CVS
238         (-[WebBaseNetscapePluginView keyUp:]): if !suspendKeyUpEvents, send the keyUp event
239         (-[WebBaseNetscapePluginView keyDown:]): set suspendKeyUpEvents to YES
240         (-[WebBaseNetscapePluginView windowBecameKey:]): call SetUserFocusWindow
241
242 2003-12-17  Darin Adler  <darin@apple.com>
243
244         Reviewed by Richard.
245
246         - fixed 3513274: REGRESSION: anchor navigation within frames with "Back" is broken at tivofaq.com
247
248         * WebView.subproj/WebDataSource.m: (-[WebDataSource _setURL:]):
249         Since this method is only used when you do a fragment scroll, we need to update
250         the original request as well as the request. This ensure that the fragment gets
251         recorded in the history item (which goes in the back/forward history).
252
253 === Safari-118 ===
254
255 2003-12-17  John Sullivan  <sullivan@apple.com>
256
257         - fixed <rdar://problem/3512801>: REGRESSION (Safari 100-116): 
258         Mike Hay's Magic 8-ball game ignores slow clicks
259
260         Reviewed by Darin.
261
262         * WebView.subproj/WebHTMLView.m:
263         (-[WebHTMLView _handleAutoscrollForMouseDragged:]):
264         start the autoscroll timer here, so the timer only runs when KHTML is
265         handling the event.
266         (-[WebHTMLView mouseDown:]):
267         don't start the autoscroll timer here.
268
269 2003-12-16  Ken Kocienda  <kocienda@apple.com>
270
271         * WebCoreSupport.subproj/WebBridge.m: ObjC runtime needs a declaration for new
272         _calculatedExpiration SPI in NSURLResponse in Foundation
273
274 2003-12-16  Richard Williamson   <rjw@apple.com>
275
276         Fixed 3512348:  Rewrote _CG_drawHighlightForRun:style:atPoint: to use width
277         iterators.  Much faster, better cheaper, etc.
278
279         Reviewed by Dave.
280
281         * WebCoreSupport.subproj/WebTextRenderer.m:
282         (-[WebTextRenderer _CG_drawHighlightForRun:style:atPoint:]):
283
284 2003-12-16  Richard Williamson   <rjw@apple.com>
285
286         Fixed 3503011.  Added '-' and '?' to rounding hack.
287
288         Reviewed by John.
289
290         * WebCoreSupport.subproj/WebTextRenderer.m:
291         (isRoundingHackCharacter):
292         (widthForNextCharacter):
293
294 2003-12-16  Darin Adler  <darin@apple.com>
295
296         Reviewed by Richard.
297
298         - finished fix to 3109132: can't open movie file via open panel
299
300         * WebView.subproj/WebView.m: (+[WebView _supportedFileExtensions]):
301         Include all the extensions for each MIME type, not jus the preferred one.
302
303 2003-12-16  Ken Kocienda  <kocienda@apple.com>
304
305         Reviewed by Darin
306
307         Fix for this bug:
308
309         <rdar://problem/3512199>: WebBridge expiresTimeForResponse can be 
310         improved to use better expiration calculations
311
312         * WebCoreSupport.subproj/WebBridge.m:
313         (-[WebBridge expiresTimeForResponse:]): Switch to use new 
314         _calculatedExpiration SPI method on NSURLResponse.
315
316 2003-12-15  Chris Blumenberg  <cblu@apple.com>
317
318         Fixed: <rdar://problem/3505546>: always get keychain prompt when sending mail using cert downloaded with Safari
319
320         Reviewed by john.
321
322         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
323         (signedPublicKeyAndChallengeString): set up the SecAccessRef with "everything goes" restrictions
324
325 2003-12-14  Darin Adler  <darin@apple.com>
326
327         Reviewed by Maciej.
328
329         - fixed 3311205: click() on a file input type form element does not work bring up the file chooser as it does in IE
330
331         * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton performClick]):
332         Add method for clicking, now part of the WebCoreFileButton protocol.
333         The rest of the fix is in WebCore.
334
335 2003-12-13  Darin Adler  <darin@apple.com>
336
337         Fixed by Ed Voas, reviewed by me.
338
339         - fixed 3278443: CARBON: grow box obscures scroll bar knob
340
341         * Carbon.subproj/CarbonWindowAdapter.m: (-[CarbonWindowAdapter _growBoxRect]):
342         Return the grow box so AppKit's scroll bar code will know where it is.
343
344 2003-12-12  Ken Kocienda  <kocienda@apple.com>
345
346         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
347         (signedPublicKeyAndChallengeString): Fix build-bustin' typo.
348
349 2003-12-12  Chris Blumenberg  <cblu@apple.com>
350
351         Fixed:
352         <rdar://problem/3396936>: can't obtain a digital ID from Verisign, form submission fails
353         <rdar://problem/3505208>: keys added to keychain from KEYGEN need better UI names
354
355         Reviewed by rjw.
356
357         * English.lproj/Localizable.strings:
358         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
359         (signedPublicKeyAndChallengeString): take a key description arg and use it, take and return CFStrings, handle the empty string case
360         (addCertificatesToKeychainFromData): return a WebCertificateParseResult so WB knows how to handle the cert
361         * WebCoreSupport.subproj/WebKeyGeneration.h:
362         * WebCoreSupport.subproj/WebKeyGenerator.h:
363         * WebCoreSupport.subproj/WebKeyGenerator.m:
364         (-[WebKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]): take a page URL so we can use its host name in the key description
365         * WebKit.pbproj/project.pbxproj:
366
367 2003-12-12  Vicki Murley  <vicki@apple.com>
368
369         Reviewed by NOBODY (OOPS!).
370
371         * WebKit.pbproj/project.pbxproj:
372
373 2003-12-12  Vicki Murley  <vicki@apple.com>
374
375         Reviewed by NOBODY (OOPS!).
376
377         * WebKit.pbproj/project.pbxproj:
378
379 2003-12-12  Vicki Murley  <vicki@apple.com>
380
381         Reviewed by NOBODY (OOPS!).
382
383         * WebKit.pbproj/project.pbxproj:
384
385 2003-12-11  Ken Kocienda  <kocienda@apple.com>
386
387         Reviewed by Darin
388
389         Fix for this bug:
390
391         <rdar://problem/3489280>: redirect via post blows cache, causing everything to get reloaded
392
393         Now POST requests reload the main document by default, but will not reload 
394         all subresources.
395
396         * WebCoreSupport.subproj/WebSubresourceClient.m:
397         (+[WebSubresourceClient startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
398         * WebView.subproj/WebFrame.m:
399         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
400         Take the cache policy for subresources from the original request, rather than
401         the data source's current request. 
402         * WebView.subproj/WebMainResourceClient.m:
403         (-[WebMainResourceClient _isPostOrRedirectAfterPost:redirectResponse:]): New helper.
404         (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
405         Call new helper to set the cache policy on the main resource load.
406
407 === Safari-117 ===
408
409 2003-12-11  Ken Kocienda  <kocienda@apple.com>
410
411         Reviewed by Darin
412
413         * WebCoreSupport.subproj/WebBridge.m: time_t is a signed type, so
414         casting -1 to a time_t does not work to make a max value.
415         We'll go with INT_MAX.
416
417 2003-12-11  Ken Kocienda  <kocienda@apple.com>
418
419         Reviewed and C++ heavy-lifting by Darin
420
421         Fix warnings in C++ files.
422
423         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
424         (signedPublicKeyAndChallengeString): Add cast to remove warning.
425         (addCertificatesToKeychainFromData): Add cast to remove warning.
426         * WebKit.pbproj/project.pbxproj: Add back warnings to C++ files.
427         * WebKitPrefix.h: Add define for NULL that works for C++.
428
429 2003-12-09  Ken Kocienda  <kocienda@apple.com>
430
431         Reviewed by Darin
432         
433         <rdar://problem/3505444>: WebCore cache does not use expiration dates on cache items
434         
435         * WebCoreSupport.subproj/WebBridge.m:
436         (-[WebBridge expiresTimeForResponse:]): New method. Call response
437         freshness lifetime method and add it to the current time to yield
438         an expiration time.
439
440 2003-12-10  Maciej Stachowiak  <mjs@apple.com>
441
442         Reviewed by Richard.
443
444         WebKit part of fix for:
445
446         <rdar://problem/3487160>: Implement synchronous loading for XMLHttpRequest
447
448         * WebCoreSupport.subproj/WebBridge.m:
449         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
450
451 2003-12-10  Richard Williamson   <rjw@apple.com>
452
453         Added method to get to the bridge from a view.  This is
454         used to ultimately get the part and KJS::Window for a
455         particular applet.
456
457         Reviewed by Hyatt.
458
459         * WebCoreSupport.subproj/WebViewFactory.m:
460         (-[WebViewFactory refreshPlugins:]):
461         (-[WebViewFactory bridgeForView:]):
462
463 2003-12-10  John Sullivan  <sullivan@apple.com>
464
465         - WebKit part of fix for:
466         <rdar://problem/3505231>: REGRESSION (100-114): Some sites autoscroll to bottom of page when loading
467
468         Reviewed by Darin
469
470         * Misc.subproj/WebNSViewExtras.h:
471         * Misc.subproj/WebNSViewExtras.m:
472         removed _web_scrollPointToVisible:fromView:
473         
474         * WebView.subproj/WebHTMLView.m:
475         (-[WebHTMLView scrollPoint:]):
476         removed call to _web_scrollPointToVisible:fromView:
477
478 2003-12-10  Chris Blumenberg  <cblu@apple.com>
479
480         Fixed: <rdar://problem/3505537>: certificates downloaded from Verisign are multipart/mixed, must be parsed out
481
482         Reviewed by kocienda.
483
484         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
485         (signedPublicKeyAndChallengeString): tweak
486         (addCertificateToKeychainFromData): renamed to use lowercase "c" in "keychain"
487         (addCertificatesToKeychainFromData): take data instead of a path to a file
488         * WebCoreSupport.subproj/WebKeyGeneration.h:
489         * WebCoreSupport.subproj/WebKeyGenerator.h:
490         * WebCoreSupport.subproj/WebKeyGenerator.m:
491         (-[WebKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:]): added temporary workaround for 3396936
492
493 2003-12-09  Chris Blumenberg  <cblu@apple.com>
494
495         Fixed: <rdar://problem/3504237>: add downloaded certificates to keychain
496
497         Reviewed by darin.
498
499         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
500         (signedPublicKeyAndChallengeString):
501         (addCertificateToKeyChainFromData): new
502         (addCertificateToKeyChainFromFile): new
503         * WebCoreSupport.subproj/WebKeyGeneration.h:
504         * WebCoreSupport.subproj/WebKeyGenerator.h:
505         * WebCoreSupport.subproj/WebKeyGenerator.m:
506         (-[WebKeyGenerator addCertificateToKeyChainFromFileAtPath:]): new
507         * WebKit.exp:
508         * WebKit.pbproj/project.pbxproj: made WebKeyGenerator.h private
509
510 2003-12-09  John Sullivan  <sullivan@apple.com>
511
512         - fixed <rdar://problem/3504907>: REGRESSION (100-116): 
513         Clicking QuickTime-requiring link twice crashes (wholenote.com)
514
515         I found the bug; Darin wrote the fix; I reviewed and tested.
516
517         * Plugins.subproj/WebNetscapePluginPackage.m:
518         (-[WebNetscapePluginPackage stringForStringListID:andIndex:]):
519         Rewrote this method to not use GetIndString, because GetIndString looks
520         at all open resource files and in this case was reading information from
521         the wrong plugin file.
522
523 2003-12-08  Chris Blumenberg  <cblu@apple.com>
524
525         Fixed: <rdar://problem/3234676>: Support for KEYGEN tag (ie 509 email certificates from www.thawte.com)
526
527         Reviewed by mjs.
528
529         * WebCoreSupport.subproj/WebKeyGeneration.cpp: Added.
530         (gnrAddContextAttribute): new
531         (gnrGetSubjPubKey): new
532         (gnrNullAlgParams): new
533         (gnrSign): new
534         (gnrFreeCssmData): new
535         (signedPublicKeyAndChallengeString): new
536         * WebCoreSupport.subproj/WebKeyGeneration.h: Added.
537         * WebCoreSupport.subproj/WebKeyGenerationFactory.h: Added. Renamed from WebLocalizedStringFactory.
538         * WebCoreSupport.subproj/WebKeyGenerationFactory.m: Added.
539         (+[WebKeyGenerationFactory createSharedFactory]): no change
540         (-[WebKeyGenerationFactory dealloc]): no change
541         (-[WebKeyGenerationFactory strengthMenuItemTitles]): new
542         (-[WebKeyGenerationFactory signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:]): new
543         * WebCoreSupport.subproj/WebLocalizedStringFactory.h: Removed.
544         * WebCoreSupport.subproj/WebLocalizedStringFactory.m: Removed.
545         * WebCoreSupport.subproj/WebNetscapeTemplates.cpp: Added.
546         * WebCoreSupport.subproj/WebNetscapeTemplates.h: Added.
547         * WebKit.pbproj/project.pbxproj:
548         * WebKitPrefix.h:
549         * WebView.subproj/WebFrameView.m:
550
551 2003-12-05  John Sullivan  <sullivan@apple.com>
552
553         - fixed <rdar://problem/3491427>: REGRESSION (100-114): multi-page HTML 
554         content in Mail is blank when printed
555
556         Darin and I figured this one out.
557
558         Reviewed by Ken.
559
560         * WebView.subproj/WebHTMLView.m:
561         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
562         Don't call setNeedsDisplay:NO when we're turning printing on, as doing so prevents
563         anything from drawing in the case where this is called from 
564         adjustPageHeightsNew:top:bottom:limit
565
566 2003-12-05  Darin Adler  <darin@apple.com>
567
568         Reviewed by John.
569
570         - fixed regression in small caps with substituted fonts my patch from yesterday caused
571         - fixed 3463599: if Lucida font is installed, you see bad glyphs on pages that use it (advogato.org)
572         - fixed storage leak if a renderer is ever deallocated (I don't think we ever do that)
573         - fixed some small leaks in various error cases by adding appropriate free and dispose calls
574
575         * WebCoreSupport.subproj/WebTextRenderer.m:
576         (-[WebTextRenderer dealloc]): Free the Unicode glyph map too.
577         (fontContainsString): Moved inline function up here so it will be inlined.
578         (-[WebTextRenderer _setupFont]): Free the glyph map and set it back to zero if we fail after
579         extending the glyph map to include space. This fixes the "wrong glyph codes" bug with Lucida above.
580         (-[WebTextRenderer _extendUnicodeCharacterToGlyphMapToInclude:]): Add free calls needed to avoid
581         storage leaks in failure cases.
582         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]): Ditto.
583         (-[WebTextRenderer _initializeATSUStyle]): Add ATSUDisposeStyle to fix storage leak.
584         (freeWidthMap): Use a loop instead of recursion.
585         (freeGlyphMap): Use a loop instead of recursion.
586         (freeUnicodeGlyphMap): Added.
587         (widthForNextCharacter): Don't use the original characters or cluster length, because the
588         character may have been capitalized for use in small caps rendering. So check the character
589         for <= 0xFFFF instead of looking at clusterLength, and break the character into a local array
590         instead of using the original character pointer.
591
592 2003-12-04  Darin Adler  <darin@apple.com>
593
594         Reviewed by Richard.
595
596         - fixed 3497879: REGRESSION (100-115): all non-BMP characters (including Deseret) are broken
597
598         * WebCoreSupport.subproj/WebTextRenderer.m:
599         (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:]): Bump offset by getting it from
600         the iterator; don't assume we can just bump it by one each time. It would be even nicer to have
601         a bit more abstraction.
602         (initializeCharacterWidthIterator): Remove call to initializeCharacterShapeIterator.
603         (widthForNextCharacter): Move handling of surrogate pairs (non-BMP) in here and unify it with
604         the handling of BMP characters; this removes the broken code that was returning the wrong font,
605         and changes us to use the code that was already doing the right thing for the surrogate pair case.
606         Also get rid of the use of 0 width to mean "no glyph", which fixes the doubled glyph problem.
607         Also got rid of remnants of use of the shape iterator.
608
609         * Misc.subproj/WebUnicode.h: Remove obsolete shape iterator.
610         * Misc.subproj/WebUnicode.m: Ditto.
611
612 === Safari-116 ===
613
614 2003-12-04  Darin Adler  <darin@apple.com>
615
616         Reviewed by Ken.
617
618         - fixed 3498426: assertion failure in tooltip code at macosx.apple.com
619
620         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _setToolTip:]): Work around
621         the apparent bug in AppKit (3500217) that causes it to return 0 for the tool tip
622         tag by using removeAllToolTips and not storing the tag at all. Besides the assertion
623         failure there may also be a symptom of a "stuck" tool tip and a small memory
624         leak until the window is closed.
625         * WebView.subproj/WebHTMLViewPrivate.h: Remove unused toolTipTag.
626
627 2003-12-02  Chris Blumenberg  <cblu@apple.com>
628
629         Fixed:
630         <rdar://problem/3439222>: always hangs opening plain text file on a particular machine due to missing font, no UI to detect
631         <rdar://problem/3492983>: Certain fonts cause Safari to hang on text/plain pages
632
633         Reviewed by rjw.
634
635         * WebView.subproj/WebTextView.m:
636         (-[WebTextView setFixedWidthFont]): Use [[WebTextRendererFactory sharedFactory] fontWithFamilies:traits:size:] to get the font since it takes the font family which is what we store in WebPreferences and it does fallback work. Only set the font if non-nil is returned.
637
638 2003-11-21  Maciej Stachowiak  <mjs@apple.com>
639
640         Reviewed by Richard.
641
642         <rdar://problem/3487185>: implement security checks for XMLHttpRequest
643         
644         * WebCoreSupport.subproj/WebSubresourceClient.m:
645         (-[WebSubresourceClient connection:willSendRequest:redirectResponse:]): Let
646         WebCore know about redirects.
647
648 2003-12-01  Richard Williamson   <rjw@apple.com>
649
650         Moved grungy polling code from WebKit to the JavaPlugin.
651
652         Reviewed by Chris.
653
654         * WebCoreSupport.subproj/WebBridge.m:
655         (-[WebBridge pollForAppletInView:]):
656
657 2003-12-01  Ken Kocienda  <kocienda@apple.com>
658
659         Reviewed by John
660
661         Fix for this bug:
662
663         <rdar://problem/3496873>: Move key event helper functions to WebKit
664
665         * Misc.subproj/WebNSEventExtras.h: Add declarations for new key event
666         helpers.
667         * Misc.subproj/WebNSEventExtras.m:
668         (-[NSEvent _web_isKeyEvent:]): Added.
669         (-[NSEvent _web_isDeleteKeyEvent]): Added.
670         (-[NSEvent _web_isEscapeKeyEvent]): Added.
671         (-[NSEvent _web_isOptionTabKeyEvent]): Added.
672         (-[NSEvent _web_isReturnOrEnterKeyEvent]): Added.
673         (-[NSEvent _web_isTabKeyEvent]): Added.
674         * WebKit.pbproj/project.pbxproj: Made WebNSEventExtras.h a private header
675         so WebBrowser can use the new helpers.
676
677 === Safari-115 ===
678
679 2003-11-21  Maciej Stachowiak  <mjs@apple.com>
680
681         Reviewed by Ken.
682
683         WebKit part of fix for:
684         
685         <rdar://problem/3487134>: Implement http request/response status and headers for XMLHttpRequest
686         
687         * WebCoreSupport.subproj/WebBridge.m:
688         (-[WebBridge startLoadingResource:withURL:customHeaders:]): Added customHeaders
689         parameter.
690         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]): Ditto.
691         * WebCoreSupport.subproj/WebSubresourceClient.h:
692         * WebCoreSupport.subproj/WebSubresourceClient.m:
693         (+[WebSubresourceClient startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]): Add the custom headers.
694         (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:referrer:forDataSource:]): Pass along the custom headers.
695         (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]): Pass along the custom headers.
696
697 2003-11-21  John Sullivan  <sullivan@apple.com>
698
699         - WebKit part of fix for <rdar://problem/3333744>: Safari prints page with 
700         very, very long line very, very small
701
702         Reviewed by Ken.
703
704         * WebView.subproj/WebHTMLView.m:
705         renamed PrintingExtraWidthFactor to PrintingMinimumShrinkFactor, added
706         PrintingMaximumShrinkFactor of 2.0, which matches IE
707         (-[WebHTMLView layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
708         now takes a min and max page width; passes them along to bridge
709         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
710         now takes a min and max page width; passes them along to layoutTo...
711         (-[WebHTMLView _scaleFactorForPrintOperation:]):
712         now takes PrintingMaximumScaleFactor into account
713         (-[WebHTMLView knowsPageRange:]):
714         now takes PrintingMaximumScaleFactor into account
715
716         (-[WebHTMLView layout]):
717         pass 0 for maximumPageWidth when passing 0 for minimumPageWidth
718         (-[WebHTMLView adjustPageHeightNew:top:bottom:limit:]):
719         ditto
720         (-[WebHTMLView _web_setPrintingModeRecursive]):
721         ditto
722         (-[WebHTMLView _web_clearPrintingModeRecursive]):
723         ditto
724         (-[WebHTMLView endDocument]):
725         ditto
726
727 2003-11-20  John Sullivan  <sullivan@apple.com>
728
729         - WebKit part of <rdar://problem/3183124>: Support page-break-before/after with a value of "always"
730
731         Dave and I wrote and reviewed this.
732
733         * WebView.subproj/WebHTMLView.m:
734         (-[WebHTMLView _setPrinting:pageWidth:adjustViewSize:]):
735         reset page rects when printing status changes
736         (-[WebHTMLView _availablePaperWidthForPrintOperation:]):
737         new helper method to compute paper width taking margins into account
738         (-[WebHTMLView _scaleFactorForPrintOperation:]):
739         new helper method to compute how much we need to shrink to fit one page across
740         (-[WebHTMLView _provideTotalScaleFactorForPrintOperation:]):
741         we overrode this secret internal AppKit method to make shrink-to-fit work;
742         we wrote bug 3491344 about the need for this to be public.
743         (-[WebHTMLView knowsPageRange:]):
744         new method, computes rects and returns YES
745         (-[WebHTMLView rectForPage:]):
746         new method, returns rect computed above
747         (-[WebHTMLView _calculatePrintHeight]):
748         new method, used by knowsPageRange
749         
750         * WebView.subproj/WebHTMLViewPrivate.h:
751         new pageRects ivar
752
753 2003-11-20  Maciej Stachowiak  <mjs@apple.com>
754
755         Reviewed by Ken.
756
757         - fixed 3490086 - support http post for XMLHttpRequest
758         
759         * WebCoreSupport.subproj/WebBridge.m:
760         (-[WebBridge startLoadingResource:withURL:postData:]):
761         * WebCoreSupport.subproj/WebSubresourceClient.h:
762         * WebCoreSupport.subproj/WebSubresourceClient.m:
763         (+[WebSubresourceClient startLoadingResource:withRequest:referrer:forDataSource:]):
764         (+[WebSubresourceClient startLoadingResource:withURL:referrer:forDataSource:]):
765         (+[WebSubresourceClient startLoadingResource:withURL:postData:referrer:forDataSource:]):
766
767 2003-11-20  Chris Blumenberg  <cblu@apple.com>
768
769         Fixed: <rdar://problem/3491229>: Need UI and localized strings for <KEYGEN> support
770
771         Reviewed by john.
772
773         * ChangeLog:
774         * English.lproj/Localizable.strings:
775         * WebCoreSupport.subproj/WebLocalizedStringFactory.h: Added.
776         * WebCoreSupport.subproj/WebLocalizedStringFactory.m: Added.
777         (+[WebLocalizedStringFactory createSharedFactory]): new
778         (-[WebLocalizedStringFactory dealloc]): new
779         (-[WebLocalizedStringFactory keyGenerationMenuItemTitles]): new
780         * WebKit.pbproj/project.pbxproj:
781         * WebView.subproj/WebFrameView.m: call [WebLocalizedStringFactory createSharedFactory]
782
783 2003-11-20  Richard Williamson   <rjw@apple.com>
784
785         Added spin of event loop during applet lookup poll.  This
786         is necessary to allow timers and performOnMainThread: methods
787         a chance to fire.  The plugin depends on these mechanisms during
788         initialization.
789
790         Reviewed by Chris.
791
792         * WebCoreSupport.subproj/WebBridge.m:
793         (-[WebBridge pollForAppletInView:]):
794
795 2003-11-20  Ken Kocienda  <kocienda@apple.com>
796
797         John and I decided to apply the _web_ prefix to the tab key 
798         event method in the extras file, but I neglected to do this
799         before checking in. Fixed now.
800
801         * Misc.subproj/WebNSEventExtras.h:
802         * Misc.subproj/WebNSEventExtras.m:
803         (-[NSEvent _web_isTabKeyEvent])
804         * WebView.subproj/WebHTMLView.m:
805         (-[WebHTMLView keyDown:])
806
807 2003-11-20  Ken Kocienda  <kocienda@apple.com>
808
809         Reviewed by John
810
811         Fix for this bug:
812
813         <rdar://problem/3482159>: Tabbing to links gets "stuck" in "style switcher" on zeldman.com
814
815         * Misc.subproj/WebNSEventExtras.h: Added.
816         * Misc.subproj/WebNSEventExtras.m: Added.
817         (-[NSEvent _isTabKeyEvent]): New helper.
818         * WebKit.pbproj/project.pbxproj:
819         * WebView.subproj/WebHTMLView.m: 
820         (-[WebHTMLView keyDown:]): Pass the key event to super unconditionally
821         if it is a tab key. This fixes the bug.
822
823 2003-11-19  John Sullivan  <sullivan@apple.com>
824
825         - WebKit part of fix for:
826         <rdar://problem/3305671>: Web pages print with 1.25" border without regard to Page 
827         Setup margin settings
828
829         Reviewed by Dave.
830
831         * WebView.subproj/WebHTMLView.m:
832         (-[WebHTMLView beginDocument]):
833         Lay out the page into a width 25% wider than there's room for on the printed page.
834         This will make pages that can fit into a thin area be scaled down a little when printed,
835         which lets them fit on fewer pages. This closely matches what IE and Camino (at least)
836         do; I used Google as my test page, and the Google logo is now precisely the same size
837         when printed from Safari as when printed from IE. Pages that don't fit into a thin
838         area are already causing the printed page to be scaled horizontally to fit, and this
839         won't affect them.
840
841 2003-11-19  Chris Blumenberg  <cblu@apple.com>
842
843         Fixed: <rdar://problem/3489935>: Mentioning "to Disk" in context menus such as "Download Linked File To Disk..." is redundant
844
845         Reviewed by john.
846
847         * English.lproj/Localizable.strings:
848         * English.lproj/StringsNotToBeLocalized.txt:
849         * WebView.subproj/WebDefaultContextMenuDelegate.m:
850         (-[WebDefaultUIDelegate menuItemWithTag:]): use "Download Linked File" and "Download Image"
851
852 2003-11-19  Chris Blumenberg  <cblu@apple.com>
853
854         Fixed: <rdar://problem/3488783>: Flash at http://www.sjwilson.net/reef/ does not load photos
855         
856         Reviewed by rjw.
857
858         * Misc.subproj/WebKitNSStringExtras.h:
859         * Misc.subproj/WebKitNSStringExtras.m:
860         (-[NSString _web_stringByStrippingReturnCharacters]): new
861         * Plugins.subproj/WebBaseNetscapePluginView.m:
862         (-[WebBaseNetscapePluginView requestWithURLCString:]): call _web_stringByStrippingReturnCharacters on the relative string
863
864 2003-11-19  Richard Williamson   <rjw@apple.com>
865
866         More LiveConnect stuff.  Horrible polling hack that
867         blocks main thread waiting for applet to fully initialize.
868
869         Reviewed by Ken.
870
871         * Plugins.subproj/WebPluginController.m:
872         (-[WebPluginController addPlugin:]):
873         * WebCoreSupport.subproj/WebBridge.m:
874         (-[WebBridge pollForAppletInView:]):
875
876 2003-11-19  David Hyatt  <hyatt@apple.com>
877
878         Make updateScrollers guard non-static, so that it applies only to the view whose scrollers are being
879         updated.
880         
881         Reviewed by darin
882
883         * WebView.subproj/WebDynamicScrollBarsView.h:
884         * WebView.subproj/WebDynamicScrollBarsView.m:
885         (-[WebDynamicScrollBarsView reflectScrolledClipView:]):
886
887 2003-11-18  Richard Williamson   <rjw@apple.com>
888
889         More live connect stubs.  We're getting close.
890
891         Reviewed by Chris.
892
893         * Plugins.subproj/WebPluginController.m:
894         (-[WebPluginController addPlugin:]):
895         (-[WebPluginController _delayedGetApplet:]):
896         * WebView.subproj/WebView.m:
897         (-[WebView _goToItem:withLoadType:]):
898
899 2003-11-17  Darin Adler  <darin@apple.com>
900
901         Reviewed by Maciej.
902
903         - fixed 3487335: REGRESSION (112-113): "a:b" error message does not cite the URL properly
904
905         * Misc.subproj/WebKitErrors.m:
906         (+[NSError _webKitErrorWithCode:failingURL:]): Call _webKitErrorWithDomain:code:URL:.
907         (+[NSError _webKitErrorWithDomain:code:URL:]): Call _web_errorWithDomain:code:URL:, instead of using
908         the deprecated failingURL: flavor.
909         (-[NSError _initWithPluginErrorCode:contentURLString:pluginPageURLString:pluginName:MIMEType:]):
910         Change this method to call the other one.
911         (-[NSError _initWithPluginErrorCode:contentURL:pluginPageURL:pluginName:MIMEType:]): Implement this one,
912         and put in the NSErrorFailingURLKey, as well as the NSErrorFailingURLStringKey, to match what Foundation
913         now does for other errors.
914
915         * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge viewForPluginWithURL:attributes:baseURL:MIMEType:]):
916         Change to use the non-deprecated flavor of the NSError call above.
917
918         * English.lproj/StringsNotToBeLocalized.txt: Updated for above changes and other recent changes.
919
920 2003-11-16  Maciej Stachowiak  <mjs@apple.com>
921
922         Reviewed by Dave.
923
924         WebKit part of fix for:
925
926         <rdar://problem/3131664>: add support for the window.print() command used for "print this page" buttons
927         
928         * WebCoreSupport.subproj/WebBridge.m:
929         (-[WebBridge print]): Call delegate.
930         * WebView.subproj/WebDefaultUIDelegate.m:
931         (-[WebDefaultUIDelegate webViewPrint:]): Implemented (do nothing).
932         * WebView.subproj/WebUIDelegatePrivate.h: Added. Add extra SPI method webViewPrint:
933         for UI delegate.
934         * WebKit.pbproj/project.pbxproj: Install WebUIDelegatePrivate.h as private header
935
936 2003-11-15  Darin Adler  <darin@apple.com>
937
938         Reviewed by John.
939
940         - fixes 3457162 -- selecting text during a page load that blows the text field away causes a crash
941         - fixes 3160035 -- crash or hang if you hold down a button while "go to about:blank soon" test runs
942         - without causing 3484608 -- REGRESSION: Flash broken at http://www.macromedia.com/
943
944         The WebKit part of this fix is making setDefersCallbacks: work. It had succumbed to bit rot.
945         This has a side effect of not considering a page load done until all the plug-in streams are loaded.
946         If that's not a good idea, we'll have to keep two separate lists in WebDataSource.
947
948         * WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate setDataSource:]):
949         Set the defersCallbacks state from the WebView here so that clients don't have to do it.
950
951         * WebView.subproj/WebDataSource.m: (-[WebDataSource _addSubresourceClient:]): Remove call to
952         set the defersCallbacks state on the subresource client, because the above change obviates it.
953         (the client/delegate terminology makes it confusing, but it's a subclass). Also loosen the type
954         so we can call this on clients for plug-in streams too.
955         (-[WebDataSource _removeSubresourceClient:]): Loosen type here too.
956         (-[WebDataSource _defersCallbacksChanged]): And here.
957         * WebView.subproj/WebDataSourcePrivate.h: Loosen type of subresource client so we can pass in the
958         delegates for plug-in streams too.
959
960         * WebView.subproj/WebMainResourceClient.h: Added an _initialRequest field so we can defer the very
961         first callback, which does not rely on NSURLConnection.
962         * WebView.subproj/WebMainResourceClient.m:
963         (-[WebMainResourceClient dealloc]): Release the initial request.
964         (-[WebMainResourceClient loadWithRequestNow:]): Moved the guts of loadWithRequest in here; to be
965         used when the request is no longer deferred. Also removed the code to call setDefersCallbacks:
966         on the connection, and assert that we are only called when callbacks are not deferred. Because
967         the very first callback was not deferred, we would end up calling setDefersCallbacks:NO on the
968         WebView, so nothing would be deferred.
969         (-[WebMainResourceClient loadWithRequest:]): If callbacks are not deferred, then call the
970         loadWithRequestNow: method, otherwise simply store the request in _initialRequest.
971         (-[WebMainResourceClient setDefersCallbacks:]): If there is an _initialRequest and we are
972         ceasing deferral of callbacks, then call the loadWithRequestNow: method.
973
974         * Plugins.subproj/WebNetscapePluginStream.m:
975         (-[WebNetscapePluginStream start]): Call _addSubresourceClient, and then _removeSubresourceClient
976         if the load fails to even start.
977         (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): Call _removeSubresourceClient.
978         (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): Call _removeSubresourceClient.
979
980         * Plugins.subproj/WebBaseNetscapePluginStream.h: Removed unneeded import.
981         * Plugins.subproj/WebPluginDatabase.m: Add import needed now that WebBaseNetscapePluginStream.h
982         imports less than before.
983
984 2003-11-16  Maciej Stachowiak  <mjs@apple.com>
985
986         Reviewed by John.
987
988         - fixed 3362841 - javascript History Object length property is always 0
989         
990         * WebCoreSupport.subproj/WebBridge.m:
991         (-[WebBridge historyLength]): Add one to the length to match other browsers.
992
993 2003-11-14  John Sullivan  <sullivan@apple.com>
994         
995         - WebKit part of fix for <rdar://problem/3474757>: Safari on-screen text needs review
996
997         Reviewed by Ken.
998
999         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1000         (-[WebDefaultUIDelegate menuItemWithTag:]):
1001         change "Download Link to Disk" to "Download Linked File to Disk"
1002
1003         * English.lproj/Localizable.strings:
1004         updated for these changes
1005
1006 2003-11-14  Ken Kocienda  <kocienda@apple.com>
1007
1008         Reviewed by John
1009
1010         Fix for this bug:
1011
1012         <rdar://problem/3481701>: Crashes before loading page/no error msg
1013         (forums.pelicanparts.com) Works in IE and Netscape
1014
1015         This fix is really a workaround for this bug:
1016
1017         <rdar://problem/3484937>: Horribly malformed URL crashes when call
1018         is made to CFURLCopyHostName
1019
1020         The fix is to avoid all usages of [NSURL host] by replacing all
1021         such calls with a private URL method added to WebNSURLExtras.
1022
1023         I copied a number of URL methods from the private NSURL
1024         extras file in Foundation to the WebKit URL extras file.
1025
1026         * Misc.subproj/WebNSDataExtras.h: Added. Helper for new URL extras.
1027         * Misc.subproj/WebNSDataExtras.m: Ditto.
1028         (-[NSData _web_isCaseInsensitiveEqualToCString:]): New helper.
1029         * Misc.subproj/WebNSURLExtras.h:
1030         * Misc.subproj/WebNSURLExtras.m:
1031         (-[NSURL _web_hasQuestionMarkOnlyQueryString]): Added.
1032         (-[NSURL _web_schemeSeparatorWithoutColon]): Added.
1033         (-[NSURL _web_dataForURLComponentType:]): Added.
1034         (-[NSURL _web_schemeData]): Added.
1035         (-[NSURL _web_hostData]): Added.
1036         (-[NSURL _web_hostString]): Added.
1037         * WebKit.pbproj/project.pbxproj:
1038         * WebView.subproj/WebView.m:
1039         (-[WebView userAgentForURL:]): Replace call to [NSURL host] with new
1040         extras _web_hostString method.
1041
1042 === Safari-114 ===
1043
1044 2003-11-14  Vicki Murley <vicki@apple.com>
1045
1046         - rolled out Darin's fixes for 3457162 and 3160035, since these changes broke plugins on macromedia.com and disney.go.com
1047
1048         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1049         (-[WebBaseResourceHandleDelegate setDataSource:]):
1050         * WebView.subproj/WebDataSource.m:
1051         (-[WebDataSource _addSubresourceClient:]):
1052         * WebView.subproj/WebMainResourceClient.h:
1053         * WebView.subproj/WebMainResourceClient.m:
1054         (-[WebMainResourceClient dealloc]):
1055         (-[WebMainResourceClient loadWithRequest:]):
1056         (-[WebMainResourceClient setDefersCallbacks:]):
1057
1058 2003-11-14  Darin Adler  <darin@apple.com>
1059
1060         Reviewed by John.
1061
1062         - fixes 3457162 -- selecting text during a page load that blows the text field away causes a crash
1063         - fixes 3160035 -- crash or hang if you hold down a button while "go to about:blank soon" test runs
1064
1065         The WebKit part of this fix is making setDefersCallbacks: work. It had succumbed to bit rot.
1066
1067         * WebView.subproj/WebBaseResourceHandleDelegate.m: (-[WebBaseResourceHandleDelegate setDataSource:]):
1068         Set the defersCallbacks state from the WebView here so that clients don't have to do it.
1069         * WebView.subproj/WebDataSource.m: (-[WebDataSource _addSubresourceClient:]): Remove call to
1070         set the defersCallbacks state on the subresource client, because the above change obviates it.
1071         (the client/delegate terminology makes it confusing, but it's a subclass).
1072
1073         * WebView.subproj/WebMainResourceClient.h: Added an _initialRequest field so we can defer the very
1074         first callback, which does not rely on NSURLConnection.
1075         * WebView.subproj/WebMainResourceClient.m:
1076         (-[WebMainResourceClient dealloc]): Release the initial request.
1077         (-[WebMainResourceClient loadWithRequestNow:]): Moved the guts of loadWithRequest in here; to be
1078         used when the request is no longer deferred. Also removed the code to call setDefersCallbacks:
1079         on the connection, and assert that we are only called when callbacks are not deferred. Because
1080         the very first callback was not deferred, we would end up calling setDefersCallbacks:NO on the
1081         WebView, so nothing would be deferred.
1082         (-[WebMainResourceClient loadWithRequest:]): If callbacks are not deferred, then call the
1083         loadWithRequestNow: method, otherwise simply store the request in _initialRequest.
1084         (-[WebMainResourceClient setDefersCallbacks:]): If there is an _initialRequest and we are
1085         ceasing deferral of callbacks, then call the loadWithRequestNow: method.
1086
1087 2003-11-13  Ken Kocienda  <kocienda@apple.com>
1088
1089         Reviewed by John
1090
1091         Fix for this bug:
1092
1093         <rdar://problem/3483284>: Tabbing to links needs to honor new 
1094         WebKit tab-to-links preference
1095
1096         * WebCoreSupport.subproj/WebBridge.m:
1097         (-[WebBridge dealloc]): Remove self from notification center.
1098         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]): Now
1099         checks for WebCoreKeyboardAccessTabsToLinks preference.
1100         (-[WebBridge keyboardUIMode]): Adds self to notification center
1101         to pick up changes to WebPreferences.
1102
1103 2003-11-13  Ken Kocienda  <kocienda@apple.com>
1104
1105         Reviewed by John
1106
1107         Fix for this bug:
1108
1109         <rdar://problem/3481719>: WebKit needs preference for tabbing to links
1110
1111         * WebView.subproj/WebPreferences.m:
1112         (+[WebPreferences initialize]): Add initialization of new 
1113         WebKitTabToLinksPreferenceKey.
1114         (-[WebPreferences setTabsToLinks:]): Added preference setter.
1115         (-[WebPreferences tabsToLinks]): Added preference getter.
1116         * WebView.subproj/WebPreferencesPrivate.h: Declared new methods as
1117         SPI on WebPreferences.
1118
1119 2003-11-12  Richard Williamson   <rjw@apple.com>
1120
1121         Fixed 3475082.  Remove unnecessary orderKey before showKey.
1122
1123         Written by Ed Voas.
1124
1125         Reviewed by Richard.
1126
1127         * Carbon.subproj/CarbonWindowAdapter.m:
1128         (-[CarbonWindowAdapter makeKeyWindow]):
1129
1130 2003-11-12  Chris Blumenberg  <cblu@apple.com>
1131
1132         Fixed: <rdar://problem/3482147>: replace _releaseFutureIconForURL assertion with a log statement
1133
1134         Reviewed by rjw.
1135
1136         * Misc.subproj/WebIconDatabase.m:
1137         (-[WebIconDatabase _releaseFutureIconForURL:]):
1138
1139 2003-11-10  Richard Williamson   <rjw@apple.com>
1140
1141         Fixed 3478765.  Use ICU to access unicode properties.
1142         Fixed 3478831.  Unicode property/conversion functions should be 32 bit savvy.
1143         Fixed 3478885.  Remove dead arabic shaping code
1144
1145         Reviewed by Darin.
1146
1147         * Misc.subproj/WebUnicode.h:
1148         * Misc.subproj/WebUnicode.m:
1149         (_unicodeDigitValue):
1150         (_unicodeDirection):
1151         (_unicodeMirrored):
1152         (_unicodeMirroredChar):
1153         (_unicodeLower):
1154         (_unicodeUpper):
1155         (WebKitInitializeUnicode):
1156         (shapeForNextCharacter):
1157         (initializeCharacterShapeIterator):
1158         * Misc.subproj/WebUnicodeTables.m:
1159         * WebCoreSupport.subproj/WebTextRenderer.m:
1160         (widthForNextCharacter):
1161         (fontContainsString):
1162
1163 2003-11-10  Chris Blumenberg  <cblu@apple.com>
1164
1165         Fixed: <rdar://problem/3478351>: Safari: URL Alias on Dock failed to open the 2byte URL
1166
1167         Reviewed by dave.
1168
1169         * Misc.subproj/WebNSURLExtras.m:
1170         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): if the host name is percent-escaped, use CFURLCreateStringByReplacingPercentEscapes
1171
1172 2003-11-10  Richard Williamson   <rjw@apple.com>
1173
1174         Use ICU for upper/lower conversion.  Fixed 3477157, 3478455, 3478456, 3478457, 3478486.
1175         Remaining issues with surrogates (3477159) and Turkish I (3478482).
1176
1177         Reviewed by Ken.
1178
1179         * Misc.subproj/WebUnicode.m:
1180         (_unicodeLower):
1181         (_unicodeUpper):
1182
1183 2003-11-07  Chris Blumenberg  <cblu@apple.com>
1184
1185         Fixed: <rdar://problem/3240778>: add "save" menu item to contextual menu for text pages
1186
1187         Reviewed by darin.
1188
1189         * WebView.subproj/WebTextView.m:
1190         (-[WebTextView menuForEvent:]): Made WebTextView's context menu behavior like WebHTMLView's context menu behavior with regards to selection. If the control-click was on a selection, show menu options for the selection like copy. If it was not on a selection, show menu options such as save and print. Don't select anything when control-clicking.
1191
1192 2003-11-08  Chris Blumenberg  <cblu@apple.com>
1193
1194         Fixed: <rdar://problem/3478022>: assertion failure while loading WMP content
1195
1196         Reviewed by darin.
1197
1198         * ChangeLog:
1199         * Plugins.subproj/WebNetscapePluginStream.m:
1200         (-[WebNetscapePluginConnectionDelegate connection:didReceiveResponse:]): Don't continue if the stream is cancelled in startStreamWithResponse.
1201
1202 2003-11-07  Richard Williamson   <rjw@apple.com>
1203
1204         Fixed 3477067.  Use our case unicode conversion routines.
1205
1206         Reviewed by Ken.
1207
1208         * WebCoreSupport.subproj/WebTextRenderer.m:
1209         (toUpper):
1210
1211 2003-11-06  Richard Williamson   <rjw@apple.com>
1212
1213         Fixed 3476393.  Call scrollPoint: recursively up the view hierarchy to ensure point is visible.
1214
1215         Reviewed by Ken.
1216
1217         * Misc.subproj/WebNSViewExtras.h:
1218         * Misc.subproj/WebNSViewExtras.m:
1219         (-[NSView _web_scrollPointToVisible:fromView:]):
1220         * WebView.subproj/WebHTMLView.m:
1221         (-[WebHTMLView scrollPoint:]):
1222
1223 === Safari-113 ===
1224
1225 2003-11-05  Darin Adler  <darin@apple.com>
1226
1227         Reviewed by Maciej.
1228
1229         - fixed 3473913 -- host names in simple mailto URLs are not getting encoded/decoded correctly yet
1230
1231         * Misc.subproj/WebNSURLExtras.m:
1232         (applyHostNameFunctionToMailToURLString): Handle case where host name is at the end of the string.
1233         (applyHostNameFunctionToURLString): Add the # character to the set of characters that can end
1234         a domain name.
1235
1236 2003-11-05  Richard Williamson   <rjw@apple.com>
1237
1238         Fixed 3413067, 3405797, 3456877
1239         Use ATSUI to render Arabic and Hebrew.
1240
1241         Reviewed by John.
1242
1243         * WebCoreSupport.subproj/WebTextRenderer.m:
1244         (shouldUseATSU):
1245
1246 2003-11-05  John Sullivan  <sullivan@apple.com>
1247
1248         - fixed <rdar://problem/3469791>: Bigger/Smaller commands are 
1249         disabled for HTML Mail in separate window (w/WebKit-111)
1250
1251         Reviewed by Darin.
1252
1253         * WebView.subproj/WebFrameView.m:
1254         (-[WebFrameView acceptsFirstResponder]):
1255         always be willing to become first responder, even if no page
1256         has yet been loaded.
1257         (-[WebFrameView becomeFirstResponder]):
1258         if no page has yet been loaded (so our scrollview refuses
1259         first responder-ness), don't do any special becoming-first-
1260         responder shenanigans.
1261
1262         Also removed obsolete overrides for nextKeyView, nextValidKeyView,
1263         previousKeyView, and previousValidKeyView that are no longer
1264         required now that we handle the key loop more like NSScrollView.
1265
1266         * WebView.subproj/WebFrameViewPrivate.h:
1267         removed now-unused ivar inNextValidKeyView
1268
1269 2003-11-05  Richard Williamson   <rjw@apple.com>
1270
1271         Fixed 3029966.  Animated backgrounds specified in <BODY> don't animate
1272         Fixed 3474824.  Tiled animated GIFs don't animate.
1273         Fixed 3029966.  Animated backgrounds specified with CSS don't animate.
1274
1275         Reviewed by Chris.
1276
1277         * WebCoreSupport.subproj/WebImageRenderer.h:
1278         * WebCoreSupport.subproj/WebImageRenderer.m:
1279         (-[WebImageRenderer nextFrame:]):
1280         (-[WebImageRenderer drawImageInRect:fromRect:]):
1281         (-[WebImageRenderer startAnimationIfNecessary]):
1282         (-[WebImageRenderer tileInRect:fromPoint:]):
1283         * WebView.subproj/WebImageView.m:
1284         (-[WebImageView drawRect:]):
1285
1286 2003-11-05  Chris Blumenberg  <cblu@apple.com>
1287
1288         Fixed: <rdar://problem/3201364>: Safari crashes when hosting carbon plug-in using drag and drop
1289
1290         Reviewed by rjw.
1291
1292         * WebView.subproj/WebView.m:
1293         (-[WebView draggingUpdated:]): return NSDragOperationNone if we're over a plug-in view so the plug-in can handle the drag
1294
1295 2003-11-05  Chris Blumenberg  <cblu@apple.com>
1296
1297         Fixed: <rdar://problem/3474360>: should attempt to resolve symbolic links when choosing "Save Link As..."
1298
1299         Reviewed by kocienda.
1300
1301         * WebView.subproj/WebView.m:
1302         (-[WebView _fileWrapperForURL:]): follow sym links
1303
1304 2003-11-05  Ken Kocienda  <kocienda@apple.com>
1305
1306         Reviewed by Darin
1307
1308         Fix for this bug:
1309
1310         <rdar://problem/3455910>: hitting up or down arrows when focus 
1311         is on a pop-up menu should pop the menu
1312
1313         * WebView.subproj/WebFrameView.m:
1314         (-[WebFrameView keyDown:]): Call super with the event if focus 
1315         is on a pop up button.
1316
1317 2003-11-05  Ken Kocienda  <kocienda@apple.com>
1318
1319         Reviewed by Maciej
1320
1321         Fix for these bugs:
1322
1323         <rdar://problem/3467558>: Cannot tab to form file input widgets
1324         <rdar://problem/3473631>: WebFileButton sends notifications to communicate with WebCore
1325
1326         Tabbing now works for these widgets. While I was in the neighborhood,
1327         I improved the communication mechanism between the WebKit and WebCore
1328         sides of the file button implementation, replacing notifications
1329         with a callback object.
1330
1331         * WebCoreSupport.subproj/WebBridge.m:
1332         (-[WebBridge fileButtonWithDelegate:]): Method now takes a 
1333         delegate object.
1334         * WebCoreSupport.subproj/WebFileButton.h:
1335         * WebCoreSupport.subproj/WebFileButton.m:
1336         (-[WebFileButton initWithBridge:delegate:]):
1337         (-[WebFileButton initWithFrame:]):
1338         (-[WebFileButton dealloc]):
1339         (-[WebFileButton chooseFilename:]): Sends callback rather than posting
1340         a notification.
1341         (-[WebFileButton chooseButtonPressed:]): Ditto.
1342         (-[WebFileButton mouseDown:]):
1343         (-[WebFileButton acceptsFirstResponder]):
1344         (-[WebFileButton becomeFirstResponder]): Make the button subview
1345         first responder.
1346         (-[WebFileButton nextKeyView]): Hook up to WebBridge key view machinery.
1347         (-[WebFileButton previousKeyView]): Ditto.
1348         (-[WebFileButton nextValidKeyView]): Ditto.
1349         (-[WebFileButton previousValidKeyView]): Ditto.
1350         (-[WebFileChooserButton initWithDelegate:]):
1351         (-[WebFileChooserButton nextValidKeyView]): Ditto.
1352         (-[WebFileChooserButton previousValidKeyView]): Ditto.
1353         (-[WebFileChooserButton resignFirstResponder]): Sends a focus change 
1354         callback.
1355
1356 2003-11-04  Darin Adler  <darin@apple.com>
1357
1358         Reviewed by John, except for one bit reviewed by Maciej.
1359
1360         - first step for IDNA support; helper functions for Safari
1361
1362         * Misc.subproj/WebNSURLExtras.h: Add six new methods to manipulate host names directly.
1363         * Misc.subproj/WebNSURLExtras.m:
1364         (applyHostNameFunctionToMailToURLString): Added. Finds host names within a mailto URL.
1365         (applyHostNameFunctionToURLString): Added. Finds host names within a URL.
1366         (collectRangesThatNeedMapping): Added. Builds a list of host name ranges that need mapping.
1367         (collectRangesThatNeedEncoding): Added. Calls the above for encoding.
1368         (collectRangesThatNeedDecoding): Added. Calls the above for decoding.
1369         (mapHostNames): Added. Helper function that does the entire mapping process for a URL.
1370         (+[NSURL _web_URLWithUserTypedString:]): Call mapHostNames to encode after trimming whitespace.
1371         (-[NSURL _web_userVisibleString]): Call mapHostNames to decode after decoding escape sequences.
1372         (-[NSURL _webkit_URLByRemovingFragment]): Removed unneeded redundant NULL check.
1373         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Added. Workhorse function to call
1374         the IDN functions in the Unicode library.
1375         (-[NSString _web_hostNameNeedsDecodingWithRange:]): Added.
1376         (-[NSString _web_hostNameNeedsEncodingWithRange:]): Added.
1377         (-[NSString _web_decodeHostNameWithRange:]): Added.
1378         (-[NSString _web_encodeHostNameWithRange:]): Added.
1379         (-[NSString _web_decodeHostName]): Added.
1380         (-[NSString _web_encodeHostName]): Added.
1381
1382         * WebKit.pbproj/project.pbxproj: Added libicucore.dylib.
1383         * English.lproj/StringsNotToBeLocalized.txt: Updated for above changes.
1384
1385 2003-11-04  John Sullivan  <sullivan@apple.com>
1386
1387         - a little optimization I noticed when looking at 3125137
1388
1389         Reviewed by Chris.
1390
1391         * Misc.subproj/WebStringTruncator.m:
1392         (truncateString):
1393         if incoming string has length 0, bail out right away
1394
1395 2003-11-04  Chris Blumenberg  <cblu@apple.com>
1396
1397         Fixed:
1398         <rdar://problem/3472403>: RTFD of copied text and images should use original image data not tiffs
1399         <rdar://problem/3472435>: dragging local image file downloads it instead of copies it
1400         <rdar://problem/3472450>: copied and dragged local image files are TIFF, not original image data
1401         
1402         Reviewed by john.
1403
1404         * Misc.subproj/WebNSPasteboardExtras.h:
1405         * Misc.subproj/WebNSPasteboardExtras.m:
1406         (-[NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]): new
1407         * Misc.subproj/WebNSViewExtras.h:
1408         * Misc.subproj/WebNSViewExtras.m:
1409         (-[NSView _web_dragImage:fileWrapper:rect:URL:title:event:]): take a file wrapper instead of data so [NSPasteboard _web_writeFileWrapperAsRTFDAttachment:] can be called
1410         * WebCoreSupport.subproj/WebBridge.m:
1411         (-[WebBridge fileWrapperForURL:]): call fileWrapperForURL on the WebView
1412         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1413         (-[WebDefaultUIDelegate copyImageToClipboard:]): call [NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]
1414         * WebView.subproj/WebHTMLView.m:
1415         (-[WebHTMLView _handleMouseDragged:]): when calling _web_dragImage, pass a file wrapper from fileWrapperForURL
1416         (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): call fileWrapperForURL
1417         * WebView.subproj/WebImageRepresentation.h:
1418         * WebView.subproj/WebImageRepresentation.m:
1419         (-[WebImageRepresentation fileWrapper]): new
1420         * WebView.subproj/WebImageView.m:
1421         (-[WebImageView writeImageToPasteboard:]): call [NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]
1422         (-[WebImageView mouseDragged:]): pass the file wrapper to _web_dragImage
1423         * WebView.subproj/WebView.m:
1424         (-[WebView _fileWrapperForURL:]): new, returns a file wrapper from a local file or from the cache
1425         * WebView.subproj/WebViewPrivate.h:
1426
1427 2003-11-04  John Sullivan  <sullivan@apple.com>
1428
1429         - fixed <rdar://problem/3472813>: REGRESSION (100-111): Some tabs start 
1430         out scrolled down to focused text field
1431
1432         Reviewed by Ken.
1433
1434         * WebView.subproj/WebHTMLView.m:
1435         (-[WebHTMLView acceptsFirstResponder]):
1436         The logic to avoid accepting first responder on clicks was too broad;
1437         it was rejecting first-responder-ness even for clicks outside of this
1438         view. Clicking a tab item was going through some logic in NSTabView
1439         looking for the first valid key view starting with the web view, but the
1440         web view was returning NO due to this faulty click logic. Thus the
1441         first subview text field was becoming first responder, and causing scroll.
1442
1443 2003-11-03  Chris Blumenberg  <cblu@apple.com>
1444
1445         Fixed:
1446         <rdar://problem/3472377>: Provide NSRTFDPboardType on pasteboard when copying or dragging images
1447         <rdar://problem/3470809>: REGRESSION (111-112): Can't copy & paste image into Photoshop 7
1448
1449         Reviewed by hyatt.
1450
1451         * Misc.subproj/WebNSPasteboardExtras.h:
1452         * Misc.subproj/WebNSPasteboardExtras.m:
1453         (-[NSPasteboard _web_writeFileDataAsRTFDAttachment:withFilename:]): renamed, now writes file data as an RTF attachment
1454         * Misc.subproj/WebNSViewExtras.m:
1455         (-[NSView _web_dragImage:originalData:rect:URL:title:event:]): call renamed _web_writeFileDataAsRTFDAttachment
1456         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1457         (-[WebDefaultUIDelegate copyImageToClipboard:]): call renamed _web_writeFileDataAsRTFDAttachment
1458         * WebView.subproj/WebImageView.m:
1459         (-[WebImageView writeImageToPasteboard:]): call renamed _web_writeFileDataAsRTFDAttachment
1460
1461 2003-11-03  Vicki Murley <vicki@apple.com>
1462
1463         Reviewed by kocienda.
1464
1465         - fixed <rdar://problem/3471096>: non-B&I builds should not use order files, because they cause false "regressions" in perf.
1466
1467         * WebKit.pbproj/project.pbxproj: added empty SECTORDER_FLAGS variables to the Development and Deployment build styles
1468
1469 2003-11-03  Ken Kocienda  <kocienda@apple.com>
1470
1471         Reviewed by John
1472         
1473         Fix for this bug:
1474         
1475         <rdar://problem/3470342>: focus rings are shown for links in         
1476         web pages even in non-frontmost windows
1477
1478         * WebView.subproj/WebHTMLView.m:
1479         (-[WebHTMLView updateFocusRing]): New method. Uses the "keyness"
1480         of the view's window to toggle focus ring drawing.
1481         (-[WebHTMLView windowDidBecomeKey:]): Calls updateFocusRing.
1482         (-[WebHTMLView windowDidResignKey:]): Ditto.
1483
1484 2003-11-01  Maciej Stachowiak  <mjs@apple.com>
1485
1486         Reviewed by Darin.
1487
1488         - remove use of obsolete HTTLCookiePolicyBaseURL SPI
1489         
1490         * WebCoreSupport.subproj/WebSubresourceClient.m:
1491         startLoadingResource:withURL:referrer:forDataSource:]): Use
1492         setMainDocumentURL, not setHTTPCookiePolicyBaseURL.
1493         * WebView.subproj/WebFrame.m:
1494         (-[WebFrame _addExtraFieldsToRequest:alwaysFromRequest:]): Likewise.
1495         * WebView.subproj/WebMainResourceClient.m:
1496         (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]): Likewise.
1497
1498 2003-11-01  Darin Adler  <darin@apple.com>
1499
1500         Reviewed by Maciej.
1501
1502         - fixed 3470882 -- storage leaks in WebDownload code
1503         - fixed 3470884 -- download is always nil in downloadWindowForAuthenticationSheet: call from WebDownload
1504
1505         * Misc.subproj/WebDownload.m:
1506         (-[WebDownloadInternal initWithDownload:]): Removed this method, which was never called.
1507         (-[WebDownloadInternal dealloc]): Added missing call to [super dealloc] to fix one cause
1508         of a leak of the WebDownloadInternal object itself. Removed the release of webDownload,
1509         which was always nil, and if it wasn't would end up causing a leak due to a reference cycle.
1510         (-[WebDownloadInternal download:didReceiveAuthenticationChallenge:]): Remove the use of
1511         webDownload, which was always nil, and instead use the download parameter passed to us,
1512         casting it to WebDownload, since it's guaranteed to be one.
1513         (-[WebDownload _setRealDelegate:]): Added. Shared by the methods below to set up the real
1514         delegate before calling init. The old code called init twice, causing an second call to the
1515         superclass's init method, which caused it to create an extra copy of its internal structure,
1516         as well as causing us to create two WebDownloadInternal objects.
1517         (-[WebDownload init]): Don't allocate a second WebDownloadInternal if _setRealDelegate already
1518         allocated it for us. Before we would allocate and leak an extra one each time.
1519         (-[WebDownload dealloc]): Added. Releases the WebDownloadInternal. This is the second cause
1520         of the leak of the WebDownloadInternal object.
1521         (-[WebDownload initWithRequest:delegate:]): Call [self _setRealDelegate:] instead of calling
1522         [self init] and then [_webInternal setRealDelegate:], avoiding the leaks caused by doing it
1523         the other way.
1524         (-[WebDownload _initWithLoadingConnection:request:response:delegate:proxy:]): Ditto.
1525         (-[WebDownload _initWithLoadingResource:request:response:delegate:proxy:]): Ditto.
1526         (-[WebDownload _initWithRequest:delegate:directory:]): Ditto.
1527
1528 2003-10-31  David Hyatt  <hyatt@apple.com>
1529
1530         Fix for 3466542, add a real minimum font size setting.
1531         
1532         Reviewed by john
1533
1534         * WebView.subproj/WebPreferences.h:
1535         * WebView.subproj/WebPreferences.m:
1536         (+[WebPreferences initialize]):
1537         (-[WebPreferences setMinimumFontSize:]):
1538         (-[WebPreferences minimumLogicalFontSize]):
1539         (-[WebPreferences setMinimumLogicalFontSize:]):
1540         * WebView.subproj/WebView.m:
1541         (-[WebView _updateWebCoreSettingsFromPreferences:]):
1542
1543 2003-10-31  Ken Kocienda  <kocienda@apple.com>
1544
1545         Reviewed by Darin
1546
1547         Fix for this bug:
1548
1549         <rdar://problem/3469088>: focus not removed from text link         
1550         when user hits cmd-L or clicks in window chrome
1551
1552         * WebView.subproj/WebHTMLView.m:
1553         (-[WebHTMLView deselectText]): Added new method just to deselect text.
1554         (-[WebHTMLView resignFirstResponder]): Just deseclect text if we
1555         are doing a programmatic setting of focus. Deselect all otherwise.
1556
1557 2003-10-30  Chris Blumenberg  <cblu@apple.com>
1558
1559         Fixed: <rdar://problem/3458368>: drawing to the screen while window hidden: http://www.bhphotovideo.com/
1560
1561         Reviewed by john.
1562
1563         * Plugins.subproj/WebBaseNetscapePluginView.m:
1564         (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]): clip out the plug-in when the window is miniaturized or hidden
1565         (-[WebBaseNetscapePluginView restartNullEvents]): don't restart null events if the window is miniaturized, this allows restartNullEvents to be called in start and viewDidMoveToWindow without needing to make the check
1566         (-[WebBaseNetscapePluginView start]): just call restartNullEvents instead of checking if the window is miniaturized
1567
1568 2003-10-30  Ken Kocienda  <kocienda@apple.com>
1569
1570         Reviewed by Hyatt
1571
1572         * WebCoreSupport.subproj/WebBridge.m:
1573         (-[WebBridge documentView]): Added.
1574         * WebCoreSupport.subproj/WebGraphicsBridge.h: Added.
1575         * WebCoreSupport.subproj/WebGraphicsBridge.m: Added.
1576         (+[WebGraphicsBridge createSharedBridge]): Added.
1577         (-[WebGraphicsBridge setFocusRingStyle:radius:color:]): Added.
1578         * WebKit.pbproj/project.pbxproj:
1579         * WebView.subproj/WebFrameView.m: Create a WebGraphicsBridge
1580         when creating a WebFrameView.
1581
1582 === Safari-112 ===
1583
1584 2003-10-29  Maciej Stachowiak  <mjs@apple.com>
1585
1586         Reviewed by Darin.
1587
1588         - fixed 3467632 - Leak of plugin info visiting http://www.ebay.com
1589         
1590         * Plugins.subproj/WebBasePluginPackage.m:
1591         (-[WebBasePluginPackage dealloc]): Release lastModifiedDate.
1592
1593 2003-10-29  Chris Blumenberg  <cblu@apple.com>
1594
1595         WebKit part of fix for:
1596         <rdar://problem/3467744>: Photoshop files (.psd) don't show up in Open dialog in Safari, but can be viewed
1597         <rdar://problem/3109132>: Can't open movie file via open panel even though it can be dropped in browser window
1598
1599         Reviewed by john.
1600
1601         * WebView.subproj/WebView.m:
1602         (+[WebView _supportedMIMETypes]): new
1603         (+[WebView _supportedFileExtensions]): new
1604         * WebView.subproj/WebViewPrivate.h:
1605
1606 2003-10-29  Chris Blumenberg  <cblu@apple.com>
1607
1608         Fixed: <rdar://problem/3438716>: jpg and gif images copied from Safari and placed in mail are sent as tiff
1609
1610         Reviewed by john.
1611
1612         * Misc.subproj/WebNSPasteboardExtras.h:
1613         * Misc.subproj/WebNSPasteboardExtras.m:
1614         (-[NSPasteboard _web_writeFileContents:withFilename:]): new
1615         * Misc.subproj/WebNSViewExtras.h:
1616         * Misc.subproj/WebNSViewExtras.m:
1617         (-[NSView _web_dragImage:originalData:rect:URL:title:event:]): now takes originalData and calls _web_fileContents:withFilename:
1618         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1619         (-[WebDefaultUIDelegate copyImageToClipboard:]): call _web_writeFileContents:withFilename:
1620         * WebView.subproj/WebHTMLView.m:
1621         (-[WebHTMLView _handleMouseDragged:]): call renamed _web_dragImage and [WebView _cachedResponseForURL:]
1622         (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): call [WebView _cachedResponseForURL:]
1623         * WebView.subproj/WebImageView.m:
1624         (-[WebImageView writeImageToPasteboard:]): call _web_writeFileContents:withFilename:
1625         (-[WebImageView mouseDragged:]): call renamed _web_dragImage
1626         * WebView.subproj/WebView.m:
1627         (-[WebView _cachedResponseForURL:]): new
1628         * WebView.subproj/WebViewPrivate.h:
1629
1630 2003-10-28  John Sullivan  <sullivan@apple.com>
1631
1632         - fixed <rdar://problem/3466082>: 7B85/111: Crash viewing web page ([WebView setNextKeyView:])
1633
1634         Reviewed by Chris.
1635
1636         * WebView.subproj/WebView.m:
1637         (-[WebView dealloc]):
1638         set _private to nil after releasing, because [super dealloc] can dispatch to it
1639         (-[WebView mainFrame]):
1640         fixed spelling error in comment
1641
1642 2003-10-28  Chris Blumenberg  <cblu@apple.com>
1643
1644         Fixed: <rdar://problem/3465383>: REGRESSION: Text field progress bar goes to 100% after error or stop
1645         
1646         Reviewed by john.
1647
1648         * WebView.subproj/WebFrame.m:
1649         (-[WebFrame _isLoadComplete]): call _progressCompleted after we deliver the didFailLoadWithError or didFinishLoadForFrame message as we do in other places. This allows to be aware of the error (if there is one), when they get the WebViewProgressFinishedNotification notification.
1650
1651 2003-10-27  Maciej Stachowiak  <mjs@apple.com>
1652
1653         Reviewed by Darin.
1654
1655         - fixed 3083264 - frame names changed by JavaScript are not reflected in WebFrame at the WebKit level
1656
1657         * WebCoreSupport.subproj/WebBridge.m:
1658         (-[WebBridge didSetName:]): Tell the WebFrame about its new name.
1659
1660 2003-10-28  John Sullivan  <sullivan@apple.com>
1661
1662         - fixed 3465613 -- REGRESSION (111): Crash creating nib that 
1663         contains WebView
1664
1665         Reviewed by Chris.
1666
1667         * WebView.subproj/WebView.m:
1668         (-[WebView mainFrame]):
1669         check for nil _private before dereferencing.
1670
1671 2003-10-28  Chris Blumenberg  <cblu@apple.com>
1672
1673         Fixed: <rdar://problem/3465591>: Security: Netscape plug-ins can execute JavaScript in other frames
1674
1675         Reviewed by mjs.
1676
1677         * Plugins.subproj/WebBaseNetscapePluginView.m:
1678         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): renamed, no need to pass the target frame since the target is either the plug-in itself or the frame that contains the plug-in
1679         (-[WebBaseNetscapePluginView loadPluginRequest:]): call renamed evaluateJavaScriptPluginRequest
1680         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): if this is a JS request that is targeted at a frame, return NPERR_INVALID_PARAM if the frame is not the frame that contains the plugin
1681
1682 2003-10-28  Chris Blumenberg  <cblu@apple.com>
1683
1684         Fixed: <rdar://problem/3437959>: javascript: URLs don't work from Java (and other Cocoa plugins, if any)
1685
1686         Reviewed by mjs.
1687
1688         * Plugins.subproj/WebPluginController.m:
1689         (-[WebPluginController showURL:inFrame:]): support JS requests targeted only to the plug-in's frame.
1690
1691 2003-10-27  John Sullivan  <sullivan@apple.com>
1692
1693         - fixed 3441258 -- hysteresis to start dragging a link is too small; too easy to start drag
1694
1695         Reviewed by Chris.
1696
1697         * WebView.subproj/WebHTMLView.m:
1698         (-[WebHTMLView _handleMouseDragged:]):
1699         Split DragHysteresis into two values, one for links and one for images. Make
1700         the link one much larger than the image one (since dragging an image doesn't
1701         occur accidentally in the ways that dragging a link does).
1702
1703 2003-10-27  Chris Blumenberg  <cblu@apple.com>
1704
1705         Fixed: <rdar://problem/3462523>: Safari Sometimes Destroys Applets When Going "Back"
1706
1707         Reviewed by darin.
1708
1709         * History.subproj/WebHistoryItem.m:
1710         (+[WebHistoryItem _destroyAllPluginsInPendingPageCaches]): Don't destroy plug-ins that are currently being viewed.
1711
1712 2003-10-27  Chris Blumenberg  <cblu@apple.com>
1713
1714         Fixed: <rdar://problem/3463144>: assertion failure when viewing jpeg with SoundPix installed
1715
1716         Reviewed by john.
1717
1718         * WebView.subproj/WebDataSource.m:
1719         (+[WebDataSource _repTypesAllowImageTypeOmission:]): don't allow image types to override types that are already registered as we do in [WebFrameView _viewTypesAllowImageTypeOmission:]
1720
1721 2003-10-24  Chris Blumenberg  <cblu@apple.com>
1722
1723         Fixed:
1724         <rdar://problem/3462977>: ER: Nice if images dragged from web pages didn't redownload
1725         <rdar://problem/3031582>: Dragging an image to the desktop doesn't leave the file where I dropped it
1726         <rdar://problem/3061371>: "CFURLGetFSRef failed" log when dragging image to Finder
1727
1728         Reviewed by john.
1729
1730         * WebView.subproj/WebHTMLView.m:
1731         (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): attempt to fetch the image data from the cache, if that works, write out the file
1732
1733 2003-10-26  Darin Adler  <darin@apple.com>
1734
1735         * WebKitPrefix.h: Add a definition of NULL here so we get the stricter type checking
1736         even on pre-Merlot systems.
1737
1738 === Safari-111 ===
1739
1740 2003-10-24  Richard Williamson   <rjw@apple.com>
1741
1742         Fixed 3425358.  Don't try to create page cache for pages that
1743         have a nil view().
1744
1745         Reviewed by Hyatt.
1746
1747         * WebView.subproj/WebFrame.m:
1748         (-[WebFrame _createPageCacheForItem:]):
1749         (-[WebFrame _setState:]):
1750
1751 2003-10-24  Chris Blumenberg  <cblu@apple.com>
1752         
1753         Fixed: <rdar://problem/3424039>: standalone plug-in content occasionaly redirects to blank page
1754
1755         Reviewed by john.
1756
1757         * Plugins.subproj/WebBaseNetscapePluginView.m:
1758         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): don't honor JS requests from standalone plug-ins to workaround 3462628 which is a deeper issue.
1759
1760 2003-10-24  Chris Blumenberg  <cblu@apple.com>
1761
1762         Fixed: <rdar://problem/3462256>: REGRESSION: Plain text is downloaded
1763
1764         Reviewed by john.
1765
1766         * WebView.subproj/WebView.m:
1767         (+[WebView _viewClass:andRepresentationClass:forMIMEType:]): use _web_objectForMIMEType when getting an object for a MIME. Removed unnecessary code that checked for the document classes after loading the plug-in DB since it is not an optimization because the plug-in DB calls _viewTypesAllowImageTypeOmission:NO.
1768
1769 2003-10-23  Chris Blumenberg  <cblu@apple.com>
1770
1771         Fixed: <rdar://problem/3364036>: ER: Allow plug-ins to override built-in types such as image/jpeg
1772
1773         Reviewed by john.
1774
1775         * Plugins.subproj/WebPluginDatabase.m:
1776         (-[WebPluginDatabase refresh]): Allow plug-ins to override built-in types except for our core HTML types and don't allow the QT plug-in to override any types because it handles many types that we already handle
1777         * WebCoreSupport.subproj/WebBridge.m:
1778         (-[WebBridge viewForPluginWithURL:attributes:baseURL:MIMEType:): instead of asserting, handle the case where we ask a plug-in to map from an extension to a MIME type, but nil is returned 
1779         (-[WebBridge frameRequiredForMIMEType:URL:]): no need to start up the plug-in DB because this is now handled by [WebView _viewClass:andRepresentationClass:forMIMEType:]
1780         * WebView.subproj/WebDataSource.m:
1781         (+[WebDataSource _representationClassForMIMEType:]): call [WebView _viewClass:andRepresentationClass:forMIMEType:]
1782         (-[WebDataSource _makeRepresentation]): call _representationClassForMIMEType
1783         * WebView.subproj/WebDataSourcePrivate.h:
1784         * WebView.subproj/WebFrameView.m:
1785         (-[WebFrameView _makeDocumentViewForDataSource:]): tweak
1786         (+[WebFrameView _viewClassForMIMEType:]): call [WebView _viewClass:andRepresentationClass:forMIMEType:]
1787         * WebView.subproj/WebView.m:
1788         (+[WebView _viewClass:andRepresentationClass:forMIMEType:]): new, central place for mapping from a MIME to the document classes. We now load the plug-in DB when a non-HTML MIME type is encountered instead of loading the plug-in DB when the class for the MIME type is not found. This is required to fully fix 3364036.
1789         (+[WebView canShowMIMEType:]): call [WebView _viewClass:andRepresentationClass:forMIMEType:]
1790         (+[WebView registerViewClass:representationClass:forMIMEType:]): tweak
1791         * WebView.subproj/WebViewPrivate.h:
1792
1793 2003-10-23  John Sullivan  <sullivan@apple.com>
1794
1795         - fixed 3459272 -- Can't set up keyboard loop inside a 
1796         WebDocumentView without subclassing views
1797         - fixed 3179062 -- can't tab back to address bar from image-only 
1798         page
1799         - fixed 3252009 -- tabbing from address bar to content area does 
1800         not work with WebTextView
1801         - fixed 3461398 -- Can't click on a standalone image to focus it 
1802         (for later keyboard scrolling)
1803
1804         I redid the way WebView and WebFrameView splice themselves into
1805         the keyview loop in a way very similar to what NSScrollView and
1806         NSClipView do. This means that contained and sibling views won't 
1807         need to do anything special to put themselves into the key loop.
1808
1809         Reviewed by Chris.
1810
1811         * WebView.subproj/WebFrameView.m:
1812         (-[WebFrameView _scrollView]):
1813         check for nil pointer before dereferencing; this can happen
1814         during [super dealloc]'s keyview-loop-fixup code
1815         (-[WebFrameView initWithFrame:]):
1816         wire our nextKeyView link to the contained scrollview (so
1817         previousKeyView will work correctly from scrollview)
1818         (-[WebFrameView acceptsFirstResponder]):
1819         return what the contained scrollview says
1820         (-[WebFrameView becomeFirstResponder]):
1821         in previous direction, use previousValidKeyView (follows normal
1822         NSView keyview links); in forward direction, hand first
1823         responder-ness to contained scrollview (which will in turn hand
1824         it down to clipview, which will in turn hand it down to document)
1825         (-[WebFrameView setNextKeyView:]):
1826         wire up scrollview instead of self, if it exists
1827
1828         * WebView.subproj/WebImageView.m:
1829         (-[WebImageView acceptsFirstResponder]):
1830         overridden to return YES; this fixes 3461398 and puts the finishing
1831         touches on 3179062
1832
1833         * WebView.subproj/WebView.m:
1834         (-[WebView _commonInitializationWithFrameName:groupName:]):
1835         wire our nextKeyView link to the contained webframeview (so
1836         previousKeyView will work correctly from webframeview). Also,
1837         if there's a nextKeyView already set (in a nib, e.g.), wire
1838         it to our contained webframeview.
1839         (-[WebView acceptsFirstResponder]):
1840         return what the contained webframeview says
1841         (-[WebView becomeFirstResponder]):
1842         in previous direction, use previousValidKeyView (follows normal
1843         NSView keyview links); in forward direction, hand first
1844         responder-ness to contained webframeview (which will in turn hand
1845         it down to scrollview, etc.)
1846         (-[WebView setNextKeyView:]):
1847         wire up webframeview instead of self, if it exists
1848
1849 2003-10-22  Richard Williamson   <rjw@apple.com>
1850
1851         Match WebCore's notion of distributing linegap between top and bottom of 
1852         line.  WebKit used to put it all at the bottom of the line.
1853
1854         Reviewed by Hyatt.
1855
1856         * WebCoreSupport.subproj/WebTextRenderer.h:
1857         * WebCoreSupport.subproj/WebTextRenderer.m:
1858         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
1859         (-[WebTextRenderer _CG_drawHighlightForRun:style:atPoint:]):
1860
1861 2003-10-21  Maciej Stachowiak  <mjs@apple.com>
1862
1863         Reviewed by Dave.
1864
1865         Finished exception blocking changes, so now I can finally say:
1866
1867         - fixed 3137084 - Many non-reproducible crashers in ContextImp::mark / ScopeChain::mark
1868         - fixed 3308848 - nil-deref in KHTMLView::topLevelWidget
1869         - fixed 3311511 - nil deref inside KJS::Screen
1870         - fixed 3397422 - 7B51: Safari crashed in KJS::ObjectImp::mark()
1871         - fixed 3408373 - Panther7B58 : Safari Crashed in KJS::ObjectImp::mark
1872         - fixed 3409307 - 7B55: safari crashed in KJS::Interpreter::globalExec() (idle, nothing particular going on)
1873         - fixed 3410160 - 7B60 Safari crashed in KHTMLPart::parentPart called from JS while in the background
1874         - fixed 3413224 - unrepro crash in KJS::Window::mark
1875         - fixed 3419940 - unrepro crash in KJS::Collector::allocate trying to access http://www.lindyinthepalms.com
1876         - fixed 3420123 - Panther7B66: Safari crashed while going to http://www.tangents.co.uk/index2.html
1877         - fixed 3423225 - Safari crash in vtable for KWQMapImpl (vtable for KWQMapImpl + 8).
1878         - fixed 3437190 - nil-deref on quit in calling marked() from ScopeChain::mark()
1879
1880         * WebCoreSupport.subproj/WebTextRenderer.m:
1881         (-[WebTextRenderer ascent]):
1882         (-[WebTextRenderer descent]):
1883         (-[WebTextRenderer lineSpacing]):
1884         (-[WebTextRenderer xHeight]):
1885         (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
1886         (-[WebTextRenderer _smallCapsRenderer]):
1887         (-[WebTextRenderer _initializeATSUStyle]):
1888         (-[WebTextRenderer _createATSUTextLayoutForRun:]):
1889         (-[WebTextRenderer _trapezoidForRun:style:atPoint:]):
1890         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:atPoint:]):
1891         (-[WebTextRenderer _ATSU_drawRun:style:atPoint:]):
1892         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):
1893
1894 2003-10-22  Richard Williamson   <rjw@apple.com>
1895
1896         Fixed 3458715.  Reset to 0, not .1 when done.
1897
1898         Reviewed by Chris.
1899
1900         * WebView.subproj/WebView.m:
1901         (-[WebView _resetProgress]):
1902         (-[WebView _progressStarted:]):
1903
1904 2003-10-21  Richard Williamson   <rjw@apple.com>
1905
1906         Don't use small caps font for characters that don't have an
1907         uppercase counterpart (i.e. punctuation marks).
1908
1909         Reviewed by Hyatt.
1910
1911         * WebCoreSupport.subproj/WebTextRenderer.m:
1912         (widthForNextCharacter):
1913
1914 2003-10-21  Chris Blumenberg  <cblu@apple.com>
1915
1916         Fixed: <rdar://problem/3176170>: OBJECT tag with no or empty TYPE is mishandled
1917         
1918         Reviewed by rjw.
1919
1920         * Plugins.subproj/WebPluginDatabase.m:
1921         (-[WebPluginDatabase pluginForExtension:]): If no plug-in is found from the extension, attempt to map from the extension to a MIME type using our mappings and find a plug-in from the MIME type. This improves our chances of finding a plug-in when no MIME type is specified.
1922         * WebCoreSupport.subproj/WebBridge.m:
1923         (-[WebBridge viewForPluginWithURL:attributes:baseURL:MIMEType:]): If the passed MIME is empty, nil it out so that clients only need to check for nil. This avoids error sheets complaining about "" MIME types.
1924         (-[WebBridge frameRequiredForMIMEType:URL:]): Renamed to include URL. If no MIME is specified, only create a plug-in view if we can map from the extension.
1925
1926 2003-10-20  Chris Blumenberg  <cblu@apple.com>
1927
1928         Fixed: <rdar://problem/3457627>: empty Flash plugin at tvguide.com
1929         Fixed issues with plug-in stream error handling.
1930         Improved plug-in logging.
1931
1932         Reviewed by kocienda.
1933
1934         * Misc.subproj/WebKitLogging.h: added WebKitLogPluginEvents
1935         * Misc.subproj/WebKitLogging.m:
1936         * Plugins.subproj/WebBaseNetscapePluginStream.h:
1937         * Plugins.subproj/WebBaseNetscapePluginStream.m:
1938         (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]): improved logging
1939         (-[WebBaseNetscapePluginStream destroyStream]): improved logging
1940         (-[WebBaseNetscapePluginStream destroyStreamWithFailingReason:]): renamed from cancelWithReason to avoid confusion
1941         (-[WebBaseNetscapePluginStream receivedError:]): calls destroyStreamWithFailingReason after determining a reason from the NSError
1942         (-[WebBaseNetscapePluginStream cancelWithReason:]): calls destroyStreamWithFailingReason, this method is overriden by subclasses to cancel the actual load
1943         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): call destroyStreamWithFailingReason, not cancelWithReason because the loaded has already ended here
1944         (-[WebBaseNetscapePluginStream deliverData]): improved logging
1945         * Plugins.subproj/WebBaseNetscapePluginView.m:
1946         (-[WebBaseNetscapePluginView sendActivateEvent:]): use even logging
1947         (-[WebBaseNetscapePluginView sendUpdateEvent]): ditto
1948         (-[WebBaseNetscapePluginView becomeFirstResponder]): ditto
1949         (-[WebBaseNetscapePluginView resignFirstResponder]): ditto
1950         (-[WebBaseNetscapePluginView mouseDown:]): ditto
1951         (-[WebBaseNetscapePluginView mouseUp:]): ditto
1952         (-[WebBaseNetscapePluginView mouseEntered:]): ditto
1953         (-[WebBaseNetscapePluginView mouseExited:]): ditto
1954         (TSMEventHandler): ditto
1955         (-[WebBaseNetscapePluginView destroyStream:reason:]): call cancelWithReason so the reason is passed back to the plug-in
1956         * Plugins.subproj/WebNetscapePluginDocumentView.m:
1957         (-[WebNetscapePluginDocumentView setDataSource:]): tweak
1958         * Plugins.subproj/WebNetscapePluginRepresentation.m:
1959         (-[WebNetscapePluginRepresentation receivedError:withDataSource:]): call receivedError
1960         (-[WebNetscapePluginRepresentation cancelWithReason:]): override, cancel the load, call super
1961         * Plugins.subproj/WebNetscapePluginStream.m:
1962         (-[WebNetscapePluginStream cancelWithReason:]): override, cancel the load, call super
1963         (-[WebNetscapePluginConnectionDelegate connection:didReceiveResponse:]): be sure to call the stream before calling super because the stream can be cleared out when calling super 
1964         (-[WebNetscapePluginConnectionDelegate connection:didReceiveData:lengthReceived:]): ditto
1965         (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): ditto
1966         (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): ditto
1967
1968 2003-10-20  Richard Williamson   <rjw@apple.com>
1969
1970         Conditionally excluded fix for 3446192.  We'll enable the fix once 3446669
1971         has been fixed.  This patch switches to the new UTI typing API for pasteboard types.
1972  
1973         Reviewed by Ken.
1974
1975         * Misc.subproj/WebNSPasteboardExtras.m:
1976         (+[NSPasteboard initialize]):
1977
1978 2003-10-20  Richard Williamson   <rjw@apple.com>
1979
1980         Fixed 3456103.  Don't assert, just check for inappropriate state.
1981         Reviewed by Hyatt
1982
1983         Add a debug menu item to always use ATSU text drawing.  This will be helpful
1984         to the ATSU folks in performance tuning there API.  Right now I see approx.
1985         2X slowdown using ATSU.
1986
1987         Also did some shuffling around of inline related stuff.
1988
1989         Reviewed by Chris.
1990
1991         * WebCoreSupport.subproj/WebTextRenderer.h:
1992         * WebCoreSupport.subproj/WebTextRenderer.m:
1993         (isControlCharacter):
1994         (isAlternateSpace):
1995         (isSpace):
1996         (getUncachedWidth):
1997         (widthFromMap):
1998         (widthForGlyph):
1999         (+[WebTextRenderer _setAlwaysUseATSU:]):
2000         (glyphForCharacter):
2001         (glyphForUnicodeCharacter):
2002         (shouldUseATSU):
2003         * WebView.subproj/WebView.m:
2004         (+[WebView _setAlwaysUseATSU:]):
2005         (-[WebView _progressCompleted:]):
2006         * WebView.subproj/WebViewPrivate.h:
2007
2008 2003-10-19  Chris Blumenberg  <cblu@apple.com>
2009
2010         Fixed: <rdar://problem/3442218>: crash due to infinite recursion trying to load standalone plug-in content
2011
2012         Reviewed by darin.
2013
2014         * WebView.subproj/WebFrame.m:
2015         (-[WebFrame stopLoading]): manage the isStoppingLoad ivar, return if isStoppingLoad is YES
2016         * WebView.subproj/WebFramePrivate.h: added the isStoppingLoad ivar
2017
2018 2003-10-19  Darin Adler  <darin@apple.com>
2019
2020         Reviewed by Dave and Ken.
2021
2022         - fixed 3457066 -- REGRESSION (91-92): command-left-arrow causes a scroll to the left before going back
2023
2024         * WebView.subproj/WebFrameView.m: (-[WebFrameView keyDown:]): Add an else so that we don't fall into the
2025         scrolling code when the command key is down for right and left arrow.
2026
2027 2003-10-18  Chris Blumenberg  <cblu@apple.com>
2028
2029         Fixed: <rdar://problem/3229530>: Dragging standalone image to desktop should save it, not re-download it
2030
2031         Reviewed by darin.
2032
2033         * English.lproj/Localizable.strings:
2034         * WebKit.pbproj/project.pbxproj:
2035         * WebView.subproj/WebDocumentPrivate.h: Added.
2036         * WebView.subproj/WebImageRepresentation.h:
2037         * WebView.subproj/WebImageRepresentation.m:
2038         (-[WebImageRepresentation dealloc]): release new filename and data ivars
2039         (-[WebImageRepresentation doneLoading]): return YES if data is non-nil
2040         (-[WebImageRepresentation setDataSource:]): store the filename
2041         (-[WebImageRepresentation receivedError:withDataSource:]): store the data
2042         (-[WebImageRepresentation finishedLoadingWithDataSource:]): store the data
2043         (-[WebImageRepresentation data]): new
2044         (-[WebImageRepresentation filename]): new
2045         * WebView.subproj/WebImageView.m:
2046         (-[WebImageView namesOfPromisedFilesDroppedAtDestination:]): just save the image, don't download it
2047         (-[WebImageView image]): new
2048
2049 2003-10-17  Chris Blumenberg  <cblu@apple.com>
2050
2051         Fixed: <rdar://problem/3456176>: Assertion failure when loading atomfilms.com
2052
2053         Reviewed by kocienda.
2054
2055         * Plugins.subproj/WebNetscapePluginStream.m:
2056         (-[WebNetscapePluginConnectionDelegate connection:didReceiveData:lengthReceived:]): call super before calling plug-in code as we do in other callbacks
2057         (-[WebNetscapePluginConnectionDelegate connectionDidFinishLoading:]): ditto
2058         (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): ditto
2059
2060 2003-10-16  Richard Williamson   <rjw@apple.com>
2061
2062         Fixed 3455306.  Ensure that progress is correctly ended when a load is interupted (i.e. becomes a download).
2063
2064         Reviewed by mjs.
2065
2066         * WebView.subproj/WebFrame.m:
2067         (-[WebFrame _isLoadComplete]):
2068
2069 2003-10-16  Chris Blumenberg  <cblu@apple.com>
2070
2071         Fixed: <rdar://problem/3455176>: Assertion failure when loading non-existant plug-in content
2072
2073         Reviewed by rjw.
2074
2075         * Misc.subproj/WebDownload.m: fixed build failure when using new Foundation. We are overriding and calling a renamed method. Continue to override the old method, override the new method and declare their interfaces to avoid build failures. 
2076         * Plugins.subproj/WebNetscapePluginStream.m:
2077         (-[WebNetscapePluginConnectionDelegate connection:didReceiveResponse:]): cancel the load before telling the plug-in about the error so plug-in code doesn't attempt to cancel the load twice
2078
2079 2003-10-16  Richard Williamson   <rjw@apple.com>
2080
2081         Fixed 3453991.  We weren't setting the array cursor correctly after changing
2082         capacity.
2083
2084         Reviewed by John.
2085
2086         * ChangeLog:
2087         * History.subproj/WebBackForwardList.m:
2088         (-[WebBackForwardList setCapacity:]):
2089
2090 === Safari-110 ===
2091
2092 2003-10-16  Richard Williamson   <rjw@apple.com>
2093
2094         Tweaked the progress behavior and factored cleanup of progress
2095         related ivars.
2096
2097         Reviewed by Hyatt.
2098
2099         * WebView.subproj/WebDataSource.m:
2100         (-[WebDataSource _startLoading:]):
2101         * WebView.subproj/WebFrame.m:
2102         (-[WebFrame _isLoadComplete]):
2103         * WebView.subproj/WebView.m:
2104         (-[WebView _resetProgress]):
2105         (-[WebView _progressStarted:]):
2106         (-[WebView _finalProgressComplete]):
2107         (-[WebView _progressCompleted:]):
2108         (-[WebView _incrementProgressForConnection:data:]):
2109         * WebView.subproj/WebViewPrivate.h:
2110
2111 2003-10-14  Richard Williamson   <rjw@apple.com>
2112
2113         Added logging for estimated progress.
2114         
2115         Added a time delta to the throttler, so we now send notifications
2116         if a delta amount has been exceeded OR a delta between notifications
2117         has been exceeded.
2118
2119         Reviewed by Chris.
2120
2121         * Misc.subproj/WebKitLogging.h:
2122         * Misc.subproj/WebKitLogging.m:
2123         * WebView.subproj/WebView.m:
2124         (-[WebViewPrivate init]):
2125         (-[WebView _progressStarted]):
2126         (-[WebView _progressCompleted]):
2127         (-[WebView _incrementProgressForConnection:data:]):
2128         * WebView.subproj/WebViewPrivate.h:
2129
2130 2003-10-14  Ken Kocienda  <kocienda@apple.com>
2131
2132         Reviewed by Darin
2133
2134         Fix for this bug:
2135
2136         <rdar://problem/3450449>: assertion failure in WebBridge 
2137         _retrieveKeyboardUIModeFromPreferences
2138
2139         Can't assert that the preference always exists and is valid as I
2140         thought you could. This could just mean that the a preference for full
2141         keyboard access has not been specified by the user yet. If this is so,
2142         just return the default keyboard access mode.
2143
2144         * WebCoreSupport.subproj/WebBridge.m:
2145         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:])
2146
2147 2003-10-13  Richard Williamson  <rjw@apple.com>
2148
2149         Added support for small-caps.
2150
2151         Reworked drawing and measuring to use new iterators.  Position checking was already using
2152         the new iterator code, but I was reluctant to switch the mainline drawing and measuring
2153         code over to the new approach until now.
2154
2155         Lots of other code cleanup.
2156
2157         Reviewed by John.
2158
2159         * Misc.subproj/WebUnicode.m:
2160         (initializeCharacterShapeIterator):
2161         * WebCoreSupport.subproj/WebTextRenderer.h:
2162         * WebCoreSupport.subproj/WebTextRenderer.m:
2163         (+[WebTextRenderer shouldBufferTextDrawing]):
2164         (+[WebTextRenderer initialize]):
2165         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
2166         (-[WebTextRenderer dealloc]):
2167         (-[WebTextRenderer widthForCharacters:length:]):
2168         (-[WebTextRenderer widthForString:]):
2169         (-[WebTextRenderer ascent]):
2170         (-[WebTextRenderer descent]):
2171         (-[WebTextRenderer lineSpacing]):
2172         (-[WebTextRenderer xHeight]):
2173         (-[WebTextRenderer drawRun:style:atPoint:]):
2174         (-[WebTextRenderer floatWidthForRun:style:widths:]):
2175         (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
2176         (-[WebTextRenderer drawHighlightForRun:style:atPoint:]):
2177         (-[WebTextRenderer pointToOffset:style:position:reversed:]):
2178         (-[WebTextRenderer _setIsSmallCapsRenderer:]):
2179         (-[WebTextRenderer _isSmallCapsRenderer]):
2180         (-[WebTextRenderer _smallCapsRenderer]):
2181         (-[WebTextRenderer _smallCapsFont]):
2182         (-[WebTextRenderer _substituteFontForString:families:]):
2183         (-[WebTextRenderer _substituteFontForCharacters:length:families:]):
2184         (-[WebTextRenderer _convertCharacters:length:toGlyphs:skipControlCharacters:]):
2185         (-[WebTextRenderer _convertUnicodeCharacters:length:toGlyphs:]):
2186         (-[WebTextRenderer _computeWidthForSpace]):
2187         (-[WebTextRenderer _setupFont]):
2188         (_drawGlyphs):
2189         (-[WebTextRenderer _CG_drawHighlightForRun:style:atPoint:]):
2190         (-[WebTextRenderer _CG_drawRun:style:atPoint:]):
2191         (-[WebTextRenderer _floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
2192         (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
2193         (-[WebTextRenderer _extendUnicodeCharacterToGlyphMapToInclude:]):
2194         (-[WebTextRenderer _updateGlyphEntryForCharacter:glyphID:font:]):
2195         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]):
2196         (-[WebTextRenderer _extendGlyphToWidthMapToInclude:font:]):
2197         (-[WebTextRenderer _trapezoidForRun:style:atPoint:]):
2198         (-[WebTextRenderer _ATSU_floatWidthForRun:style:]):
2199         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:atPoint:]):
2200         (-[WebTextRenderer _ATSU_drawRun:style:atPoint:]):
2201         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:]):
2202         (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:]):
2203         (freeWidthMap):
2204         (freeGlyphMap):
2205         (glyphForCharacter):
2206         (glyphForUnicodeCharacter):
2207         (mapForSubstituteFont):
2208         (widthFromMap):
2209         (widthForGlyph):
2210         (initializeCharacterWidthIterator):
2211         (widthAndGlyphForSurrogate):
2212         (ceilCurrentWidth):
2213         (widthForNextCharacter):
2214         (fillStyleWithAttributes):
2215         (findLengthOfCharacterCluster):
2216         (shouldUseATSU):
2217         (isControlCharacter):
2218         (isAlternateSpace):
2219         (isSpace):
2220         (fontContainsString):
2221         (GetScratchUniCharString):
2222         (toUpper):
2223         (isUpper):
2224
2225 2003-10-10  Maciej Stachowiak  <mjs@apple.com>
2226
2227         * English.lproj/StringsNotToBeLocalized.txt: Fixed for Private
2228         change from a while back.
2229
2230 2003-10-10  David Hyatt  <hyatt@apple.com>
2231
2232         Patch to move widgets during layout instead of waiting until paint time.
2233         
2234         Reviewed by darin
2235
2236         * WebView.subproj/WebDataSource.m:
2237         * WebView.subproj/WebDataSourcePrivate.h:
2238         * WebView.subproj/WebFrame.m:
2239         (-[WebFrame _isLoadComplete]):
2240         * WebView.subproj/WebHTMLView.m:
2241         * WebView.subproj/WebHTMLViewPrivate.h:
2242
2243 2003-10-09  Richard Williamson   <rjw@apple.com>
2244
2245         Ensure that the autoscroll timer is always stopped if a mouse up event is lost.
2246
2247         Reviewed by John.
2248
2249         * WebView.subproj/WebHTMLView.m:
2250         (-[WebHTMLViewPrivate dealloc]):
2251         (-[WebHTMLView _startAutoscrollTimer:]):
2252         (-[WebHTMLView _stopAutoscrollTimer]):
2253         (-[WebHTMLView _autoscroll]):
2254         (-[WebHTMLView mouseDown:]):
2255         * WebView.subproj/WebHTMLViewPrivate.h:
2256
2257 2003-10-09  Chris Blumenberg  <cblu@apple.com>
2258
2259         Fixed: <rdar://problem/3333897>: should support navigator.plugins.refresh as a way to add a plugin without restarting Safari
2260
2261         Reviewed by rjw.
2262
2263         * Plugins.subproj/WebBaseNetscapePluginView.m:
2264         (-[WebBaseNetscapePluginView dealloc]): release the plug-in object
2265         * Plugins.subproj/WebBasePluginPackage.h:
2266         * Plugins.subproj/WebBasePluginPackage.m:
2267         (-[WebBasePluginPackage initWithPath:]): store the last mod date
2268         (-[WebBasePluginPackage dealloc]): release the last mod date
2269         (-[WebBasePluginPackage lastModifiedDate]): new
2270         (-[WebBasePluginPackage isEqual:]): new
2271         (-[WebBasePluginPackage hash]): new
2272         * Plugins.subproj/WebNetscapePluginPackage.m:
2273         (-[WebNetscapePluginPackage load]): convert the NPP_Shutdown proc pointer so that we can use it later
2274         (-[WebNetscapePluginPackage unload]): added log message
2275         * Plugins.subproj/WebPluginDatabase.h:
2276         * Plugins.subproj/WebPluginDatabase.m:
2277         (-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]): tweak
2278         (-[WebPluginDatabase plugins]): tweak
2279         (-[WebPluginDatabase init]): call refresh
2280         (-[WebPluginDatabase refresh]): new
2281         (-[WebPluginDatabase loadPluginIfNeededForMIMEType:]): tweak
2282         * WebCoreSupport.subproj/WebViewFactory.m:
2283         (-[WebViewFactory refreshPlugins:]): new
2284         * WebView.subproj/WebControllerSets.h:
2285         * WebView.subproj/WebControllerSets.m:
2286         (+[WebViewSets makeWebViewsPerformSelector:]): new
2287         * WebView.subproj/WebFrame.m:
2288         (-[WebFrame _reloadForPluginChanges]): new
2289         * WebView.subproj/WebFramePrivate.h:
2290         * WebView.subproj/WebView.m:
2291         (-[WebView _reloadForPluginChanges]): new
2292         * WebView.subproj/WebViewPrivate.h:
2293
2294 === Safari-109 ===
2295
2296 2003-10-03  Richard Williamson <rjw@apple.com>
2297
2298         Fix part of 3438071.  Creating an instance of WebPreferences using init
2299         will do the expected thing:  that is, create a new instance!  We used to
2300         always return standardPreferences.
2301
2302         Reviewed by Chris.
2303
2304         * WebView.subproj/WebPreferences.m:
2305         (-[WebPreferences init]):
2306         (+[WebPreferences standardPreferences]):
2307
2308 2003-10-03  David Hyatt  <hyatt@apple.com>
2309
2310         Fix for numerous regressions caused by an inadvertent renaming of the recursiveDisplay
2311         override method.
2312         
2313         Reviewed by darin
2314
2315         * WebView.subproj/WebHTMLView.m:
2316         (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
2317
2318 2003-10-03  Richard Williamson (Home0  <rjw@apple.com>
2319
2320         Fixed some edge case issue (control characters after end of word) with our rounding hack.
2321
2322         Reviewed by Darin.
2323
2324         * WebCoreSupport.subproj/WebTextRenderer.m:
2325         (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startGlyph:endGlyph:numGlyphs:]):
2326
2327 2003-10-03  Ken Kocienda  <kocienda@apple.com>
2328
2329         Reviewed by Darin, with much help from Maciej and Hyatt
2330
2331         Fix for this bug:
2332
2333         <rdar://problem/3441321>: Form buttons do not respond to key events when focused
2334
2335         * WebView.subproj/WebFrameView.m:
2336         (-[WebFrameView _firstResponderIsControl]): Added to tell if the focus
2337         is on a form control.
2338         (-[WebFrameView keyDown:]): Call new _firstResponderIsControl method to see
2339         whether space bar key events should propagate. Adding this check keeps us
2340         from blocking the event here and allows AppKit to handle it.
2341         * WebView.subproj/WebFrameViewPrivate.h: Add new _firstResponderIsControl 
2342         method.
2343
2344 2003-10-02  Maciej Stachowiak  <mjs@apple.com>
2345
2346         Folded Private implementation files into the regular ones as the
2347         first step towards pulling in our SPI exposure and other code
2348         cleanup.
2349
2350         * History.subproj/WebHistory.m:
2351         * History.subproj/WebHistoryPrivate.m: Removed.
2352         * Misc.subproj/WebIconDatabasePrivate.h:
2353         * WebKit.pbproj/project.pbxproj:
2354         * WebView.subproj/WebDataSource.m:
2355         * WebView.subproj/WebDataSourcePrivate.m: Removed.
2356         * WebView.subproj/WebFrame.m:
2357         * WebView.subproj/WebFramePrivate.m: Removed.
2358         * WebView.subproj/WebFrameView.m:
2359         * WebView.subproj/WebFrameViewPrivate.m: Removed.
2360         * WebView.subproj/WebHTMLView.m:
2361         * WebView.subproj/WebHTMLViewPrivate.m: Removed.
2362         * WebView.subproj/WebView.m:
2363         * WebView.subproj/WebViewPrivate.m: Removed.
2364
2365 2003-10-02  Chris Blumenberg  <cblu@apple.com>
2366
2367         Fixed: <rdar://problem/3440063>: Safari 1.1 won't load new pages after visiting adultswim.com, assertion failure on debug build
2368
2369         Reviewed by rjw.
2370
2371         * Plugins.subproj/WebBaseNetscapePluginStream.m:
2372         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): if not data was received for a stream, create the temp file anyway. Plug-ins expect this.
2373
2374 === Safari-108 ===
2375
2376 2003-10-02  Darin Adler  <darin@apple.com>
2377
2378         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
2379
2380 2003-10-01  Maciej Stachowiak  <mjs@apple.com>
2381
2382         Reviewed by Darin.
2383
2384         - fixed 3441466 - REGRESSION: http://www.meyerweb.com/eric/css/edge/complexspiral/glassy.html broken on scroll
2385         
2386         * WebView.subproj/WebFramePrivate.m:
2387         (-[WebFrame _setState:]): Don't turn on scroll-blitting here when the page is done...
2388         (-[WebFrame _transitionToCommitted:]): Instead do it here, when the page is committed.
2389
2390 2003-10-02  Darin Adler  <darin@apple.com>
2391
2392         Reviewed by Ken.
2393
2394         - in preparation for a WebCore whitespace-handling change, made WebTextRenderer draw and measure
2395           newline characters as if they are spaces (just as we already do with non-breaking spaces)
2396         - removed some unused stuff from WebTextRenderer
2397         - other unimportant tweaks (e.g. unsigned int -> unsigned)
2398
2399         * WebCoreSupport.subproj/WebTextRenderer.m:
2400         (kFixedOne), (fixed1), (FixToFloat), (FloatToFixed): Removed these. We can use the standard ones
2401         from <FixMath.h> instead of defining our own.
2402         (isControlCharacter): Added. Inline function that we can use instead of the macro we had before.
2403         (isAlternateSpace): Added. Returns YES for newlines and non-breaking spaces.
2404         (isSpace): Added. Returns YES for real spaces and the two alternate spaces as well.
2405         (initializeCharacterWidthIterator): Use isSpace.
2406         (-[WebTextRenderer convertCharacters:length:toGlyphs:skipControlCharacters:]): Use isAlternateSpace
2407         and isControlCharacter.
2408         (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startGlyph:endGlyph:numGlyphs:]):
2409         Use isControlCharacter, isAlternateSpace, and isSpace. Also fix a small bug where numGlyphs would
2410         not get set up properly when the run length is 0, and used local variables when possible instead
2411         of going back at the run structure.
2412         (-[WebTextRenderer _ATSU_floatWidthForRun:style:]): Use the standard FixedToFloat instead of our
2413         own FixToFloat.
2414         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:atPoint:]): Ditto.
2415
2416 2003-10-02  David Hyatt  <hyatt@apple.com>
2417
2418         Work on exposing elements to the Acc API.  This patch gets us to the point where text
2419         under the mouse is voiced.
2420         
2421         Reviewed by darin
2422
2423         * WebView.subproj/WebHTMLView.m:
2424         (-[WebHTMLView accessibilityAttributeValue:]):
2425         (-[WebHTMLView accessibilityHitTest:]):
2426
2427 2003-10-01  John Sullivan  <sullivan@apple.com>
2428
2429         Reviewed by Darin
2430
2431         * WebView.subproj/WebHTMLView.m:
2432         (-[WebHTMLView viewDidMoveToSuperview]):
2433         skip some work when when we've been removed. This wasn't
2434         causing any trouble before, but was at least conceptually
2435         inefficient.
2436
2437 2003-10-01  John Sullivan  <sullivan@apple.com>
2438
2439         - fixed 3441372: REGRESSION (107+): Plain text document is 
2440         initially drawn with proportional font
2441
2442         Reviewed by Hyatt
2443
2444         * WebView.subproj/WebTextView.m:
2445         (-[WebTextView setDataSource:]):
2446         Changed a != to an ==
2447
2448 2003-10-01  Richard Williamson   <rjw@apple.com>
2449
2450         Fixed 3438441.  If a load is triggered by a onload handling, don't add an entry for it into the b/f or history.  The new Google ads use this technique.
2451
2452         Reviewed by Ken.
2453
2454         * Misc.subproj/WebKitLogging.h:
2455         * Misc.subproj/WebKitLogging.m:
2456         * WebCoreSupport.subproj/WebBridge.m:
2457         (-[WebBridge loadURL:referrer:reload:onLoadEvent:target:triggeringEvent:form:formValues:]):
2458         * WebView.subproj/WebFramePrivate.h:
2459         * WebView.subproj/WebFramePrivate.m:
2460         (-[WebFrame _addBackForwardItemClippedAtTarget:]):
2461         (-[WebFrame _transitionToCommitted:]):
2462         (-[WebFrame _isLoadComplete]):
2463         (-[WebFrame _loadItem:withLoadType:]):
2464         (-[WebFrame _itemForRestoringDocState]):
2465
2466 2003-10-01  Darin Adler  <darin@apple.com>
2467
2468         Reviewed by John.
2469
2470         * WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView _webView]):
2471         Fixed problem where we'd get a nil WebView and pass crazy values for subframe
2472         text multipliers.
2473
2474 2003-10-01  David Hyatt  <hyatt@apple.com>
2475
2476         Fix for 3440804, broken scrollbars in downloads window.  Make Auto be the default
2477         value in the enum, so that all scrollviews will be automatically initialized to be
2478         auto.
2479         
2480         Reviewed by cblu
2481
2482         * WebView.subproj/WebDynamicScrollBarsView.m:
2483
2484 2003-09-30  Richard Williamson   <rjw@apple.com>
2485
2486         Attempt to find a reasonable font using a simple string matching heuristic if 
2487         none of the fonts actually specified are found.  In particular we will use
2488         Geeza Pro if "arabic", "urdu", or "pashto" is contained (case-insensitive) in
2489         any of the requested font family names.  Geeza Pro is a much better fallback
2490         font for Arabic (and variant languages) than Helvetica.
2491
2492         Reviewed by Chris.
2493
2494         * WebCoreSupport.subproj/WebTextRendererFactory.m:
2495         (-[WebTextRendererFactory fontWithFamilies:traits:size:]):
2496
2497 2003-09-30  John Sullivan  <sullivan@apple.com>
2498
2499         - fixed 3045617 -- Make Text Bigger/Smaller doesn't affect non-html documents.
2500         
2501         I added an internal protocol inside WebKit to make this work, and implemented
2502         it for plain text and RTF. I also slightly shuffled the existing code to
2503         handle this for HTML so that it goes through the new protocol in that case
2504         also.
2505
2506         Reviewed by NOBODY (OOPS!).
2507
2508         * WebView.subproj/WebDocumentInternal.h: Added.
2509         New header file, holds definition of 
2510         _web_WebDocumentTextSizing protocol.
2511
2512         * WebView.subproj/WebFramePrivate.m:
2513         (-[WebFrame _textSizeMultiplierChanged]):
2514         if the document view conforms to the new protocol,
2515         tell it that the multiplier has changed. Also, don't
2516         tell the bridge here anymore; let WebHTMLView do that.
2517
2518         * WebView.subproj/WebHTMLView.m:
2519         (-[WebHTMLView _updateTextSizeMultiplier]):
2520         tell the bridge here instead of having WebFrame do so
2521         (-[WebHTMLView viewDidMoveToSuperview]):
2522         call _updateTextSizeMultiplier (in case it changed while we were switched out)
2523         (-[WebHTMLView _web_textSizeMultiplierChanged]):
2524         call _updateTextSizeMultiplier
2525         
2526         * WebView.subproj/WebTextRepresentation.m:
2527         (-[WebTextRepresentation receivedData:withDataSource:]):
2528         
2529         * WebView.subproj/WebTextView.h:
2530         now implements _web_WebDocumentTextSizing protocol;
2531         new ivar for holding local copy of text size multiplier;
2532         new public method appendReceivedData:fromDataSource:
2533         
2534         * WebView.subproj/WebTextView.m:
2535         (-[WebTextView initWithFrame:]):
2536         set local copy of text size multiplier to 1.0
2537         (-[WebTextView _textSizeMultiplierFromWebView]):
2538         new method, asks the webview's opinion of the text size multiplier
2539         (-[WebTextView setFixedWidthFont]):
2540         use the text size multiplier when setting font size
2541         (-[WebTextView _adjustRichTextFontSizeByRatio:]):
2542         new method, borrowed from Mail and tweaked, that walks through
2543         the rich text and adjusts the font sizes
2544         (-[WebTextView _updateTextSizeMultiplier]):
2545         new method, updates local copy of text size multiplier to
2546         match webview's opinion
2547         (-[WebTextView setDataSource:]):
2548         set the text size multiplier appropriately before setting the
2549         fixed-width font; this is too early for the RTF case though
2550         since the fonts are embedded in the data
2551         (-[WebTextView appendReceivedData:fromDataSource:]):
2552         new method. Most of this logic was in WebTextRepresentation, but
2553         it's a little better encapsulated here, plus now it handles the
2554         text multiplier for RTF.
2555         (-[WebTextView defaultsChanged:]):
2556         added comment
2557         (-[WebTextView _web_textSizeMultiplierChanged]):
2558         call updateTextSizeMultiplier
2559         
2560         * WebView.subproj/WebView.m:
2561         (-[WebView canMakeTextSmaller]):
2562         (-[WebView canMakeTextLarger]):
2563         return NO if the main frame doesn't support the text sizing protocol. This means
2564         that if the main frame doesn't support it but a subframe does, you can't adjust
2565         the text size. This seems fine for now since the only case with subframes is
2566         HTML, where the main frame does support changing text size.
2567         
2568         * WebKit.pbproj/project.pbxproj:
2569         updated for new file
2570
2571 2003-09-30  Chris Blumenberg  <cblu@apple.com>
2572
2573         Fixed: <rdar://problem/3428262>: Plugin loads for static files, but not PHP scripts
2574
2575         Reviewed by rjw.
2576
2577         * WebCoreSupport.subproj/WebBridge.m:
2578         (-[WebBridge frameRequiredForMIMEType:]): load the plug-in DB so this method returns reliable results.
2579
2580 2003-09-30  Chris Blumenberg  <cblu@apple.com>
2581
2582         Fixed: <rdar://problem/3006869>: show image dimensions in title bar when single image is loaded
2583
2584         Reviewed by rjw.
2585
2586         * English.lproj/Localizable.strings:
2587         * WebView.subproj/WebImageRepresentation.m:
2588         (-[WebImageRepresentation title]): return "foo.jpg 50x50 pixels"
2589
2590 2003-09-30  Richard Williamson   <rjw@apple.com>
2591
2592         Fixed 3420396.  If a frame targets _top and a URL that contains a fragment (very unusual, it's meaningless for a frameset to contain a named anchor point) the frameset won't be reloaded.  Our normal path is to just scroll to the anchor point.  This is only important because our Help folks oddly depend on the behavior.
2593
2594         Reviewed by Chris.
2595
2596         * WebView.subproj/WebFramePrivate.m:
2597         (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
2598
2599 2003-09-30  Ken Kocienda  <kocienda@apple.com>
2600
2601         Reviewed by Maciej
2602         
2603         Fix for this bug:
2604         
2605         <rdar://problem/3439688>: WebKit needs to retrieve full keyboard access preference
2606         
2607         * WebCoreSupport.subproj/WebBridge.h: Add two ivars: one to track the keyboard
2608         UI mode, the other a flag we use to register for notifications.
2609         * WebCoreSupport.subproj/WebBridge.m:
2610         (-[WebBridge dealloc]): Remove the notification observer to keyboard UI mode changes.
2611         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]): New method. Accesses the
2612         preferences to get the current keyboard UI mode.
2613         (-[WebBridge keyboardUIMode]): Returns the current keyboard UI mode. Registers for
2614         notifications of keyboard UI mode changes when called the first time.
2615         
2616 2003-09-30  Maciej Stachowiak  <mjs@apple.com>
2617
2618         Reviewed by Ken.
2619
2620         - fixed 3375281 - Keyboard event handlers not fired if focus not in form field
2621         - fixed 3242927 - KeyPressed Event in Javascript don't work
2622         - fixed 3375353 - keyboard event.target not updated when blurring from form items
2623         - fixed 3183754 - returning false from key press handlers does not prevent typing or form submission
2624
2625         * WebView.subproj/WebHTMLView.m:
2626         (-[WebHTMLView keyDown:]): Ask the bridge before passing the event along.
2627         (-[WebHTMLView keyUp:]): Likewise.
2628         * WebView.subproj/WebHTMLViewPrivate.h:
2629         * WebView.subproj/WebHTMLViewPrivate.m: Remove dead code.
2630
2631 2003-09-30  Richard Williamson   <rjw@apple.com>
2632
2633         Fixed 3422138.  We weren't sending a didChange call for isLoading until the load was complete!  Also [WebView isLoading] wasn't accounting for provisional datasources.
2634
2635         Reviewed by Chris.
2636
2637         * WebView.subproj/WebView.m:
2638         (-[WebView isLoading]):
2639         * WebView.subproj/WebViewPrivate.h:
2640         * WebView.subproj/WebViewPrivate.m:
2641         (-[WebView _didStartProvisionalLoadForFrame:]):
2642         (-[WebView _didCommitLoadForFrame:]):
2643         (-[WebView _didFinishLoadForFrame:]):
2644         (-[WebView _didFailLoadWithError:forFrame:]):
2645         (-[WebView _didFailProvisionalLoadWithError:forFrame:]):
2646
2647 2003-09-30  David Hyatt  <hyatt@apple.com>
2648
2649         Improvements to scrolling and layout.  Also fixing 3264346, body overflow should
2650         apply to document's scrollbars.
2651         
2652         Reviewed by darin
2653
2654         * WebView.subproj/WebDynamicScrollBarsView.h:
2655         * WebView.subproj/WebDynamicScrollBarsView.m:
2656         (-[WebDynamicScrollBarsView initWithFrame:]):
2657         (-[WebDynamicScrollBarsView setScrollBarsSuppressed:repaintOnUnsuppress:]):
2658         (-[WebDynamicScrollBarsView updateScrollers]):
2659         (-[WebDynamicScrollBarsView reflectScrolledClipView:]):
2660         (-[WebDynamicScrollBarsView setAllowsScrolling:]):
2661         (-[WebDynamicScrollBarsView allowsScrolling]):
2662         (-[WebDynamicScrollBarsView setAllowsHorizontalScrolling:]):
2663         (-[WebDynamicScrollBarsView setAllowsVerticalScrolling:]):
2664         (-[WebDynamicScrollBarsView allowsHorizontalScrolling]):
2665         (-[WebDynamicScrollBarsView allowsVerticalScrolling]):
2666         (-[WebDynamicScrollBarsView horizontalScrollingMode]):
2667         (-[WebDynamicScrollBarsView verticalScrollingMode]):
2668         (-[WebDynamicScrollBarsView setHorizontalScrollingMode:]):
2669         (-[WebDynamicScrollBarsView setVerticalScrollingMode:]):
2670         (-[WebDynamicScrollBarsView setScrollingMode:]):
2671
2672 2003-09-29  Chris Blumenberg  <cblu@apple.com>
2673
2674         Fixed: <rdar://problem/3422739>: Plug-in streams not cancelled when plug-in returns error from NPP_NewStream
2675
2676         Reviewed by mjs.
2677
2678         * Plugins.subproj/WebBaseNetscapePluginStream.h: renamed receivedError to cancelWithReason
2679         * Plugins.subproj/WebBaseNetscapePluginStream.m:
2680         (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]): call cancelWithReason if NPP_NewStream returns an error
2681         (-[WebBaseNetscapePluginStream cancelWithReason:]): renamed
2682         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): tweak
2683         * Plugins.subproj/WebNetscapePluginRepresentation.m:
2684         (-[WebNetscapePluginRepresentation receivedError:withDataSource:]): call renamed cancelWithReason
2685         (-[WebNetscapePluginRepresentation cancelWithReason:]): new override, stop load then call super
2686         * Plugins.subproj/WebNetscapePluginStream.m:
2687         (-[WebNetscapePluginStream cancelWithReason:]): new override, stop load then call super
2688         (-[WebNetscapePluginStream stop]): call cancelWithReason
2689         (-[WebNetscapePluginConnectionDelegate connection:didReceiveResponse:]): call renamed cancelWithReason
2690         (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): call renamed cancelWithReason
2691
2692 2003-09-25  Maciej Stachowiak  <mjs@apple.com>
2693
2694         Roll out build system change since it did not actually work. :-(
2695         
2696         * WebKit.pbproj/project.pbxproj:
2697
2698 2003-09-25  David Hyatt  <hyatt@apple.com>
2699
2700         Change layout so that it is called from the private _recursive functions instead of
2701         inside drawRect.
2702         
2703         Reviewed by kocienda
2704
2705         * WebView.subproj/WebHTMLView.m:
2706         (-[WebHTMLView layoutToPageWidth:adjustingViewSize:]):
2707         (-[WebHTMLView drawRect:]):
2708         * WebView.subproj/WebHTMLViewPrivate.m:
2709         (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:testDirtyRect:]):
2710         (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
2711         (-[WebHTMLView _web_setPrintingModeRecursive]):
2712         (-[WebHTMLView _web_clearPrintingModeRecursive]):
2713         (-[WebHTMLView _web_layoutIfNeededRecursive:testDirtyRect:]):
2714         (-[NSView _web_setPrintingModeRecursive]):
2715         (-[NSView _web_clearPrintingModeRecursive]):
2716         (-[NSView _web_layoutIfNeededRecursive:testDirtyRect:]):
2717
2718 2003-09-25  Richard Williamson   <rjw@apple.com>
2719
2720         Fixed 3433802.  Written by Ed.  Carbon WebView doesn't detach native view when removed.
2721
2722         Reviewed by Richard.
2723
2724         * Carbon.subproj/HIWebView.m:
2725         (OwningWindowChanged):
2726
2727 2003-09-25  Richard Williamson   <rjw@apple.com>
2728
2729         Fixed 3433488.  Written by Ed.  WebKit doesn't sync window visibility when new webview added to visible window.
2730
2731         Reviewed by Richard.
2732
2733         * Carbon.subproj/CarbonWindowAdapter.m:
2734         (-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:disableOrdering:carbon:]):
2735
2736 2003-09-25  Richard Williamson   <rjw@apple.com>
2737
2738         Fixed 3434854.  Written by Ed.  Correctly handle window modality in carbon.
2739
2740         Reviewed by Richard.
2741
2742         * Carbon.subproj/CarbonWindowAdapter.m:
2743         (-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:disableOrdering:carbon:]):
2744
2745 2003-09-25  Maciej Stachowiak  <mjs@apple.com>
2746
2747         Reviewed by Darin.
2748
2749         Updated setup for engineering builds. Don't embed the framework
2750         into Safari or hack the install name. However, do copy WebCore and
2751         JavaScriptCore into the proper sub-umbrella locations.
2752         
2753         * WebKit.pbproj/project.pbxproj:
2754         * embed-frameworks.sh: Added.
2755
2756 === Safari-107 ===
2757
2758 2003-09-25  Ken Kocienda  <kocienda@apple.com>
2759
2760         Reviewed by Darin
2761
2762         Fix for this bug:
2763         
2764         <rdar://problem/3341222>: WebView doesn't follow AppKit default nextKeyView pattern
2765         
2766         * WebCoreSupport.subproj/WebBridge.h: Added a variable to guard against recursion
2767         in -[WebBridge inNextKeyViewOutsideWebFrameViews].
2768         * WebCoreSupport.subproj/WebBridge.m:
2769         (-[WebBridge inNextKeyViewOutsideWebFrameViews]): Accessor for recursion guard.
2770         (-[WebBridge nextKeyViewOutsideWebFrameViews]): Do not ask webView for its
2771         next key view, but rather, ask it for the next key view of the last view in
2772         its key view loop. This is what will get us to the next view outside of the
2773         webView.
2774         * WebView.subproj/WebHTMLView.m:
2775         (-[WebHTMLView nextKeyView]): Ask AppKit, rather than khtml, for the next key
2776         key view if -[WebBridge inNextKeyViewOutsideWebFrameViews] returns YES. Doing
2777         so gives us the correct answer as calculated by AppKit, and makes HTML views
2778         behave like other views. This check also heads off an infinite recursion 
2779         through -[WebBridge nextKeyViewOutsideWebFrameViews].
2780
2781         Also did some cleanup of some code that was marked for removal "some day".
2782         That "some day" is today.
2783         
2784 2003-09-25  Darin Adler  <darin@apple.com>
2785
2786         Reviewed by John.
2787
2788         - fixed 3176853 -- can't attach files that have no extensions with Yahoo mail (bad Content-Type headers)
2789
2790         * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge MIMETypeForPath:]):
2791         Return @"application/octet-stream" rather than nil or empty string when the type is not known.
2792
2793 2003-09-24  Darin Adler  <darin@apple.com>
2794
2795         Reviewed by Maciej.
2796
2797         * WebView.subproj/WebHTMLView.m:
2798         (-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]):
2799         Added one more call to _stopAutoscrollTimer for when drags begin.
2800
2801 2003-09-24  Richard Williamson   <rjw@apple.com>
2802
2803         Fixed 3420736.  Clear renderer caches when get an ATS font changed notification.  This fix may be moot depending on progress toward fixing 2695906.  Also 3428451 needs to should be resolved.
2804
2805         Also added code to get and log entry point for the function used to get a Java class from plugins.  That class is used for LiveConnect support.
2806
2807         Reviewed by John.
2808
2809         * Misc.subproj/WebKitLogging.h:
2810         * Misc.subproj/WebKitLogging.m:
2811         * Plugins.subproj/WebNetscapePluginPackage.h:
2812         * Plugins.subproj/WebNetscapePluginPackage.m:
2813         (-[WebNetscapePluginPackage load]):
2814         * Plugins.subproj/npapi.h:
2815         * WebCoreSupport.subproj/WebTextRenderer.m:
2816         (FillStyleWithAttributes):
2817         * WebCoreSupport.subproj/WebTextRendererFactory.m:
2818         (-[WebTextRendererFactory clearCaches]):
2819         (fontsChanged):
2820         (+[WebTextRendererFactory createSharedFactory]):
2821         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
2822         (-[WebTextRendererFactory cachedFontFromFamily:traits:size:]):
2823
2824 2003-09-23  Darin Adler  <darin@apple.com>
2825
2826         Reviewed by John and Richard.
2827
2828         - fixed 3127833 -- autoscroll only works when mouse is moving
2829
2830         * WebView.subproj/WebHTMLView.m:
2831         (-[WebHTMLView viewDidMoveToWindow]): Stop the auto-scroll timer. This covers
2832         the case where a view is removed from the view hierarchy while the mouse is down.
2833         (-[WebHTMLView mouseDown:]): Start the auto-scroll timer.
2834         (-[WebHTMLView mouseUp:]): Stop the auto-scroll timer.
2835         * WebView.subproj/WebHTMLViewPrivate.h: Add an auto-scroll timer, and methods
2836         to start and stop it.
2837         * WebView.subproj/WebHTMLViewPrivate.m:
2838         (-[WebHTMLView _startAutoscrollTimer]): Create and schedule a timer. It uses the
2839         same 1/10 second interval that NSTextView uses for its scrolling timer.
2840         (-[WebHTMLView _stopAutoscrollTimer]): Invalidate and release the timer.
2841         (-[WebHTMLView _autoscroll]): Check for a mouse up event in the queue; if one is
2842         there, then no autoscrlling. But if not, then create a fake mouse dragged event
2843         and dispatch it; that will lead to autoscrolling.
2844
2845 2003-09-22  Darin Adler  <darin@apple.com>
2846
2847         Reviewed by Dave.
2848
2849         - worked around 3429631 -- window stops getting mouse moved events after first tooltip appears
2850
2851         * WebView.subproj/WebHTMLViewPrivate.m: (-[NSToolTipPanel setAcceptsMouseMovedEvents:]):
2852         Do nothing, preventing the real setAcceptsMouseMovedEvents: (in class NSWindow) from being called.
2853
2854 2003-09-22  Darin Adler  <darin@apple.com>
2855
2856         Reviewed by Dave.
2857
2858         - fixed 3431033 -- crash in -[NSToolTipManager _shouldInstallToolTip:]
2859
2860         * WebView.subproj/WebHTMLViewPrivate.m:
2861         (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]):
2862         Override this alternate version of addTrackingRect. If I don't do this, we might
2863         create a real tracking rect, which we would then never remove.
2864         (-[WebHTMLView removeTrackingRect:]): Added assertions.
2865
2866 2003-09-22  Darin Adler  <darin@apple.com>
2867
2868         * WebKit.pbproj/project.pbxproj: Rename Mixed build style to OptimizedWithSymbols.
2869
2870 2003-09-21  Darin Adler  <darin@apple.com>
2871
2872         * WebView.subproj/WebHTMLViewPrivate.m: (-[WebHTMLView removeTrackingRect:]): Remove bogus assert.
2873
2874 2003-09-21  Darin Adler  <darin@apple.com>
2875
2876         Reviewed by Dave.
2877
2878         - fixed 3106411 -- show title attribute for page elements in tooltip on mouseover (important for PeopleSoft)
2879
2880         * WebView.subproj/WebHTMLViewPrivate.h: Added fields needed for tool tip implementation.
2881         * WebView.subproj/WebHTMLViewPrivate.m:
2882         (-[WebHTMLViewPrivate dealloc]): Release the tool tip string.
2883         (-[WebHTMLView addTrackingRect:owner:userData:assumeInside:]): Override the default NSView
2884         tracking rectangle implementation so we can trick the tool tip manager into trusting us about
2885         when you leave and enter the rectangle for each element.
2886         (-[WebHTMLView removeTrackingRect:]): The other half of the above stuff.
2887         (-[WebHTMLView _sendToolTipMouseExited]): Added. Makes an event just good enough to fool the tool tip
2888         manager, and send it on.
2889         (-[WebHTMLView _sendToolTipMouseEntered]): Ditto.
2890         (-[WebHTMLView _setToolTip:]): Added. Manages the new and old tool tips in a way that fools the tool
2891         tip manager into working even though we don't know the rectangles of the tool tips beforehand. The
2892         advantage of using AppKit tool tips is that they have all sorts of nice little features, like wrapping
2893         to a nice rectangular shape and fading out when you move away.
2894         (-[WebHTMLView view:stringForToolTip:point:userData:]): This is how the tool tip manager gets the actual
2895         tool tip text.
2896         (-[WebHTMLView _updateMouseoverWithEvent:]): Call _setToolTip method, using the value passed along with the
2897         WebCoreElementTitleKey in the dictionary.
2898
2899         - unrelated code cleanup
2900
2901         * WebView.subproj/WebFramePrivate.h: Don't define WebCorePageCacheStateKey here; instead use
2902         a definition exported from WebCore.
2903         * WebView.subproj/WebFramePrivate.m: Ditto.
2904         * English.lproj/StringsNotToBeLocalized.txt: Update for above changes.
2905
2906 2003-09-19  Maciej Stachowiak  <mjs@apple.com>
2907
2908         Reviewed by Darin.
2909
2910         Roll out old fix for 3410980.
2911
2912         * WebCoreSupport.subproj/WebBridge.m:
2913         (-[WebBridge goBackOrForward:]):
2914
2915 2003-09-19  Darin Adler  <darin@apple.com>
2916
2917         Reviewed by Dave.
2918
2919         - do the prep work for the mini controls feature; Dave will finish this
2920
2921         * WebCoreSupport.subproj/WebFileButton.m:
2922         (-[WebFileButton isFlipped]): Make this flipped, easier to understand coordinates that way.
2923         (-[WebFileButton drawRect:]): Update for flipped-ness.
2924         (-[WebFileButton visualFrame]): Update for flipped-ness.
2925         (-[WebFileButton setVisualFrame:]): Update for flipped-ness.
2926         (-[WebFileButton baseline]): Update for flipped-ness.
2927
2928 2003-09-19  Maciej Stachowiak  <mjs@apple.com>
2929
2930         Reviewed by Darin.
2931
2932         - fixed 3410980 - FileMaker: going forward with an empty forward list makes a frame come out blank sometimes
2933
2934         * WebCoreSupport.subproj/WebBridge.m:
2935         (-[WebBridge backOrForwardItemWithDistance:]): Factored out from goBackOrForward.
2936         (-[WebBridge canGoBackOrForward:]): Use the new method.
2937         (-[WebBridge goBackOrForward:]): Likewise.
2938
2939 2003-09-17  John Sullivan  <sullivan@apple.com>
2940
2941         - WebKit part of fix for 3157018 -- Would like option to
2942         not print backgrounds   
2943
2944         Reviewed by Darin
2945
2946         * WebView.subproj/WebPreferences.h:
2947         new accessor methods for new shouldPrintBackgrounds preference
2948         * WebView.subproj/WebPreferences.m:
2949         (+[WebPreferences initialize]):
2950         set initial value for WebKitShouldPrintBackgroundsPreferenceKey
2951         to NO
2952         (-[WebPreferences shouldPrintBackgrounds]):
2953         new method, read NSUserDefaults value
2954         (-[WebPreferences setShouldPrintBackgrounds:]):
2955         new method, write NSUserDefault value
2956
2957         * WebView.subproj/WebViewPrivate.m:
2958         (-[WebView _updateWebCoreSettingsFromPreferences:]):
2959         tell WebCore about value of shouldPrintBackgrounds
2960
2961         * English.lproj/StringsNotToBeLocalized.txt:
2962         Updated for these and other recent changes
2963
2964 2003-09-17  Darin Adler  <darin@apple.com>
2965
2966         Reviewed by Maciej.
2967
2968         * Plugins.subproj/WebBasePluginPackage.m:
2969         (-[WebBasePluginPackage pathByResolvingSymlinksAndAliasesInPath:]): Pass the
2970         "no UI" flag, so we don't prompt the user when we're trying to load plug-ins.
2971         Also use OSStatus rather than OSErr so we don't miss error codes that just
2972         happen to have zeroes in the low 16 bits.
2973
2974 2003-09-17  Darin Adler  <darin@apple.com>
2975
2976         Reviewed by John.
2977
2978         * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton setFilename:]):
2979         Don't call -[NSWorkspace iconForFile:] on a path that does not start with a '/'.
2980         This can happen if JavaScript or the web page sets the path explicitly, and
2981         adding this check avoids an unpleasant warning on the console.
2982
2983 === WebKit-106 ===
2984
2985 2003-09-16  Richard Williamson   <rjw@apple.com>
2986
2987         Backed out fix to 3412062 to resolve 3424197.
2988
2989         Many sites use a technique of posting forms the same URL to generate content server side.  The fix to 3412062 broke those sites.
2990
2991         Reviewed by Darin.
2992
2993         * WebView.subproj/WebFramePrivate.m:
2994         (-[WebFrame _transitionToCommitted:]):
2995
2996 === WebKit-105 ===
2997
2998 === WebKit-104 ===
2999
3000 2003-09-12  Richard Williamson   <rjw@apple.com>
3001
3002         Fixed 3420097.  If redirects are cancelled during a pending load don't reset the quickRedirect flag.
3003
3004         Reviewed by Darin.
3005
3006         * WebCoreSupport.subproj/WebBridge.m:
3007         (-[WebBridge reportClientRedirectCancelled:]):
3008         * WebView.subproj/WebFramePrivate.h:
3009         * WebView.subproj/WebFramePrivate.m:
3010         (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:formState:]):
3011         (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
3012         (-[WebFrame _clientRedirectedTo:delay:fireDate:lockHistory:isJavaScriptFormAction:]):
3013         (-[WebFrame _clientRedirectCancelled:]):
3014
3015 === WebKit-103 ===
3016
3017 2003-09-12  Richard Williamson   <rjw@apple.com>
3018
3019         Fixed 3412062.  Don't allow pages with the same URL as the current URL to enter b/f or history.
3020
3021         Reviewed by Maciej.
3022
3023         * WebView.subproj/WebFramePrivate.m:
3024         (-[WebFrame _transitionToCommitted:]):
3025
3026 2003-09-11  Maciej Stachowiak  <mjs@apple.com>
3027
3028         Reviewed by Darin.
3029
3030         - fixed 3413463 - QuickTime plug-in content doesn't load in Safari (NPP_Write not called)
3031         
3032         * Plugins.subproj/npapi.h: Fix erroneous function pointer
3033         declarations that led to an int16/int32 mismatch.
3034
3035 2003-09-12  Chris Blumenberg  <cblu@apple.com>
3036
3037         Fixed: <rdar://problem/3420112>: Reproducible Safari crash in in -[WebBaseNetscapePluginView sendEvent:]
3038
3039         Reviewed by darin.
3040
3041         * Plugins.subproj/WebBaseNetscapePluginView.m:
3042         (-[WebBaseNetscapePluginView sendEvent:]): temporarily retain self in case the plug-in view is released while sending an event. 
3043         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:targetFrame:]): don't deliver the return value of the JS evaluation if stringByEvaluatingJavaScriptFromString caused the plug-in to stop.
3044
3045 === WebKit-102 ===
3046
3047 2003-09-11  Maciej Stachowiak  <mjs@apple.com>
3048
3049         Reviewed by Ken.
3050
3051         - fixed 3417486 - after logging off from secure Etrade website, going back returns you to secure page
3052
3053         * WebView.subproj/WebFramePrivate.m:
3054         (-[WebFrame _loadItem:withLoadType:]): Don't request stale data
3055         for https pages, as this could be a security risk.
3056
3057 2003-09-11  Richard Williamson   <rjw@apple.com>
3058
3059         Fixed 3406671.  Added a private method for Mail to get selection
3060         rect.
3061
3062         Reviewed by Darin Adler.
3063
3064         * WebView.subproj/WebHTMLView.m:
3065         (-[WebHTMLView updateTextBackgroundColor]):
3066         * WebView.subproj/WebHTMLViewPrivate.h:
3067         * WebView.subproj/WebHTMLViewPrivate.m:
3068         (-[WebHTMLView _handleMouseDragged:]):
3069         (-[WebHTMLView _pluginController]):
3070         (-[WebHTMLView _selectionRect]):
3071
3072 2003-09-10  Richard Williamson   <rjw@apple.com>
3073
3074         Fixed 3231031.  Use the normal methodology for displaying each frame of a GIF.  That is,
3075         just call setNeedsDisplayInRect, rather than drawing directly.  Drawing directly violates
3076         layering/clipping.
3077
3078         Reviewed by Dave Hyatt.
3079
3080         * WebCoreSupport.subproj/WebImageRenderer.m:
3081         (-[WebImageRenderer nextFrame:]):
3082
3083 === Safari-100 ===
3084
3085 2003-09-09  Richard Williamson   <rjw@apple.com>
3086
3087         Fixed 3414988.  Don't store absolute path to home directory.
3088         Reviewed by Chris Blumenberg.
3089
3090         Fixed 3414319.  Send correct WebView back as parameter to webViewShow:
3091         Review by Darin.
3092
3093         Fixed 3095029.  Draw a frame's border in WebFrameView, instead of WebHTMLView, and correctly inset the frame's scrollview to account for the border.  Mostly written by Darin.
3094         Reviewed by Darin (and Richard).
3095
3096         * Misc.subproj/WebIconDatabase.m:
3097         (-[WebIconDatabase _createFileDatabase]):
3098         Store @"~/Library/Icon" instead of absolute path, and always try to tilde expand stored path.
3099
3100         * WebCoreSupport.subproj/WebBridge.m:
3101         (-[WebBridge setHasBorder:]):
3102         * WebView.subproj/WebFrameView.m:
3103         (-[WebFrameView drawRect:]):
3104         (-[WebFrameView setFrameSize:]):
3105         * WebView.subproj/WebFrameViewPrivate.h:
3106         * WebView.subproj/WebFrameViewPrivate.m:
3107         (-[WebFrameView _isMainFrame]):
3108         (-[WebFrameView _tile]):
3109         (-[WebFrameView _drawBorder]):
3110         (-[WebFrameView _shouldDrawBorder]):
3111         (-[WebFrameView _setHasBorder:]):
3112         * WebView.subproj/WebHTMLView.m:
3113         (-[WebHTMLView drawRect:]):
3114         Changes to correct draw border in WebFrameView instead of WebHTMLView.
3115
3116         * WebView.subproj/WebViewPrivate.m:
3117         (-[WebView _openNewWindowWithRequest:]):
3118         Send correct parameter (returned from webView:createWebViewWithRequest:), rather than self, to webViewShow:.
3119
3120 2003-09-09  Chris Blumenberg  <cblu@apple.com>
3121
3122         Fixed: <rdar://problem/3412380>: REGRESSION (85-98): www.minoltan.com is decoded incorrectly on Japanese system
3123
3124         The default encoding that Safari uses is latin1 regardless of the current system encoding. This is how it's always been. The problem is that the UI is displaying shift JIS for the default text encoding instead of latin1. This is happening because WebKit is using "latin1" instead of "ISO-8859-1" for the default text encoding name. "ISO-8859-1" is the IANA character set name for latin1 and this is what the  WebKitDefaultTextEncodingNamePreferenceKey preference expects. This ends up confusing Safari, so Safari just ends up displaying the first item in the pop-up menu which is shift JIS.
3125
3126         Reviewed by rjw.
3127
3128         * WebView.subproj/WebPreferences.m:
3129         (+[WebPreferences initialize]): The WebKitDefaultTextEncodingNamePreferenceKey should be "ISO-8859-1" not "latin1" since "ISO-8859-1" is the IANA character set name for latin1.
3130
3131 === Safari-99 ===
3132
3133 2003-09-08  Darin Adler  <darin@apple.com>
3134
3135         Reviewed by Chris.
3136
3137         - fixed 3412726 -- some HTML messages in Mail lose a line at page breaks when printed (multipart/alternative)
3138
3139         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView adjustPageHeightNew:top:bottom:limit:]):
3140         Go into printing mode when asked to adjust page height, if not already in it.
3141         We already have code in drawRect that does this when actually printing, but it's
3142         also important to lay out the same way when deciding where to break pages, otherwise
3143         the difference between printer and screen fonts can lead to page breaks that split a line
3144         of text across two pages, and that can lead to missing lines of text as well.
3145
3146 2003-09-07  Darin Adler  <darin@apple.com>
3147
3148         Reviewed by Maciej.
3149
3150         - fixed 3410939 -- disabling Geneva and Helvetica (by removing them, or by using Font Book) makes Safari crash
3151
3152         * WebCoreSupport.subproj/WebTextRendererFactory.m: (-[WebTextRendererFactory fallbackFontWithTraits:size:]):
3153         Fall back on Lucida Grande (plain, not bothering with traits) if Helvetica is not present.
3154
3155         * English.lproj/StringsNotToBeLocalized.txt: Update for this and other recent changes.
3156
3157 2003-09-07  Darin Adler  <darin@apple.com>
3158
3159         Reviewed by Ken.
3160
3161         - fixed 3406660 -- screen fonts are not being used for substitute fonts (Japanese text, Roman font)
3162
3163         * WebCoreSupport.subproj/WebTextRenderer.m:
3164         (-[WebTextRenderer substituteFontForString:families:]): Get a printer or screen font,
3165         based on the renderer's mode. The old code didn't do anything explicit.
3166         (-[WebTextRenderer _setupFont]): Remove ignored parameter for clarity.
3167         (-[WebTextRenderer initWithFont:usingPrinterFont:]): Fixed code paths that would not
3168         explicitly get a printer or screen font, and code paths that would get data from the
3169         original "before mapping to printer or screen font" NSFont object.
3170
3171 === Safari-98 ===
3172
3173 2003-09-05  Ken Kocienda  <kocienda@apple.com>
3174
3175         Reviewed by Darin
3176
3177         Incorporate releaseGState fix that Darin developed for 
3178         textareas and list boxes in WebCore. It turns out that 
3179         we this workaround in WebClipView as well to get proper 
3180         drawing of subframes.
3181
3182         In addition, removed some tests that which performed 
3183         runtime checks for code in AppKit. AppKit will have
3184         the checked-for code in all versions that will be used
3185         with the version of WebKit.
3186
3187         * WebView.subproj/WebClipView.m:
3188         (-[WebClipView initWithFrame:])
3189         (-[WebClipView resetAdditionalClip])
3190         (-[WebClipView setAdditionalClip:])
3191
3192 2003-09-04  John Sullivan  <sullivan@apple.com>
3193
3194         - fixed 3409011 -- the graphics views palette does not open
3195
3196         Reviewed by Maciej
3197
3198         * WebView.subproj/WebPreferences.m:
3199         (+[WebPreferences _removeReferenceForIdentifier:]):
3200         special-case nil, which is a magic initial identifier already
3201         special-cased in the other mutator
3202
3203 2003-09-05  Maciej Stachowiak  <mjs@apple.com>
3204
3205         Reviewed by Darin.
3206
3207         - fixed 3406140 - REGRESSION (7B52-7B55): time spent in NSFont makes Safari 50% slower in Five Apps test
3208         
3209         * WebCoreSupport.subproj/WebTextRendererFactory.m:
3210         (-[WebTextRendererFactory fontWithFamily:traits:size:]): Make font
3211         using the font name we found, not the one we were looking
3212         for. Since the compare is case-insensitive, it makes a
3213         difference. Also, don't make the font twice.
3214
3215 2003-09-04  Chris Blumenberg  <cblu@apple.com>
3216
3217         Fixed: <rdar://problem/3316704>: Shockwave: getnetText steam is not functioning correctly
3218
3219         Reviewed by mjs.
3220
3221         * Plugins.subproj/WebBaseNetscapePluginStream.m:
3222         (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]): if the content length is unknown, use 0 instead of -1
3223
3224 2003-09-04  Chris Blumenberg  <cblu@apple.com>
3225
3226         Fixed: <rdar://problem/3286922>: Shockwave: Using HTTP to stream .mp3 or .swa files fails at ~50%
3227
3228         Reviewed by mjs.
3229
3230         * Plugins.subproj/WebBaseNetscapePluginStream.h: new deliveryData and reason ivars
3231         * Plugins.subproj/WebBaseNetscapePluginStream.m:
3232         (-[WebBaseNetscapePluginStream dealloc]): release deliveryData ivar
3233         (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]): set new reason ivar
3234         (-[WebBaseNetscapePluginStream destroyStream]): new, calls NPP_StreamAsFile, NPP_DestroyStream and NPP_URLNotify
3235         (-[WebBaseNetscapePluginStream destroyStreamWithReason:]): set the reason, call destroyStream
3236         (-[WebBaseNetscapePluginStream receivedError:]): set deliveryData length to 0 so no more data is streamed, call destroyStreamWithReason
3237         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): don't call NPP_StreamAsFile because this has to be called right before NPP_DestroyStream in destroyStream
3238         (-[WebBaseNetscapePluginStream deliverData]): new, call NPP_WriteReady and NPP_Write and properly obey their returned values
3239         (-[WebBaseNetscapePluginStream receivedData:]): call deliverData
3240         * Plugins.subproj/WebNetscapePluginStream.m:
3241         (-[WebNetscapePluginStream stop]): call receivedError here
3242         (-[WebNetscapePluginConnectionDelegate connection:didFailWithError:]): don't call receivedError here because after the load is complete, stream is set to nil and receivedError can be called after the completed load
3243
3244 2003-09-04  Chris Blumenberg  <cblu@apple.com>
3245
3246         * Plugins.subproj/WebBaseNetscapePluginView.m:
3247         (-[WebBaseNetscapePluginView postURL:target:len:buf:file:]): Fixed typo in newly added comment.
3248
3249 2003-09-04  Chris Blumenberg  <cblu@apple.com>
3250
3251         Fixed: <rdar://problem/3407328>: request headers at the start of the file passed to NPN_PostURL don't work for Acrobat plug-in?
3252
3253         Reviewed by john.
3254
3255         * Plugins.subproj/WebBaseNetscapePluginView.m:
3256         (-[WebBaseNetscapePluginView postURL:target:len:buf:file:]): As documented, allow headers to be specified via NPP_PostURL when using a file.
3257
3258 === Safari-97 ===
3259
3260 2003-09-03  John Sullivan  <sullivan@apple.com>
3261
3262         - fixed 3406411 -- infoseek.co.jp: many console errors about 
3263         attempting to set non-screen font (HiraMinPro-W3)
3264
3265         Reviewed by Ken
3266
3267         * WebCoreSupport.subproj/WebTextRenderer.m:
3268         (_drawGlyphs):
3269         use ERROR instead of NSLog for the printing-font-used-on-screen
3270         case, so it doesn't flood the world's console logs. We need to
3271         investigate why this is happening also, but that can probably
3272         be post-Panther.
3273
3274 2003-09-01  John Sullivan  <sullivan@apple.com>
3275
3276         - WebKit part of fix for 3402489 -- REGRESSION (7B48-7B55): Some        printed web pages are too small (width is half a page)
3277
3278         This was a regression caused by the fix for 3378810.
3279
3280         Reviewed by Maciej
3281
3282         * WebView.subproj/WebHTMLView.m:
3283         (-[WebHTMLView layoutToPageWidth:adjustingViewSize:]):
3284         now takes adjustViewSize flag, and passes it down to
3285         one of bridge's forceLayout calls.
3286         (-[WebHTMLView layout]):
3287         pass NO for adjustViewSize flag in this case
3288         (-[WebHTMLView _setPrinting:pageWidth:adjustViewSize:]):
3289         pass adjustViewSize flag down to layoutToPageWidth instead
3290         of using it directly here; this is the wrong level to use
3291         it directly since the bridge is no longer set up for
3292         printing after the layoutToPageWidth call completes.
3293
3294 2003-08-30  Maciej Stachowiak  <mjs@apple.com>
3295
3296         Reviewed by John.
3297
3298         - fixed 3401709 - [WebView searchFor:] with wrap:NO hangs if the search fails
3299         
3300         * WebView.subproj/WebView.m:
3301         (-[WebView searchFor:direction:caseSensitive:wrap:]): Fix for
3302         wrap:NO case as suggested by Darin.
3303
3304 === Safari-96 ===
3305
3306 2003-08-29  Richard Williamson   <rjw@apple.com>
3307
3308         Fixed 3401334.  Use IB document key when checking for reference removal on instances of WebPreferences.
3309
3310         Also removed _userDefaultsKeysForIB, no longer needed by IB.
3311
3312         Reviewed by John.
3313
3314         * WebView.subproj/WebPreferences.m:
3315         (+[WebPreferences _removeReferenceForIdentifier:]):
3316         (-[WebPreferences _postPreferencesChangesNotification]):
3317         * WebView.subproj/WebPreferencesPrivate.h:
3318
3319 2003-08-29  Richard Williamson   <rjw@apple.com>
3320
3321         Fixed 3400807.  Don't release state associated with the current b/f item.  We shouldn't normally have page cache state associated with the current item (3401376).  This fix guarantees that we won't prematurely release the page cache state for the current item.
3322
3323         Reviewed byJohn Sullivan.
3324
3325         * History.subproj/WebBackForwardList.m:
3326         (-[WebBackForwardList _clearPageCache]):
3327
3328 2003-08-28  Richard Williamson   <rjw@apple.com>
3329
3330         Fixed 3399736.  Fixed several problems with WebView/WebPreferences
3331         interaction.
3332
3333         Reviewed by Eric Seymour.
3334
3335         * Misc.subproj/WebKitLogging.h:
3336         * Misc.subproj/WebKitLogging.m:
3337         Added debug logging.
3338
3339         * WebCoreSupport.subproj/WebTextRenderer.m:
3340         (_drawGlyphs): Checkin for 3398229 below.
3341
3342         * WebView.subproj/WebPreferences.m:
3343         (-[WebPreferences initWithIdentifier:]):
3344         (-[WebPreferences initWithCoder:]):
3345         (-[WebPreferences encodeWithCoder:]):
3346         (+[WebPreferences standardPreferences]):
3347         (+[WebPreferences _getInstanceForIdentifier:]):
3348         (+[WebPreferences _setInstance:forIdentifier:]):
3349         (+[WebPreferences _concatenateKeyWithIBCreatorID:]):
3350         * WebView.subproj/WebView.m:
3351         (-[WebView _commonInitializationWithFrameName:groupName:]):
3352         (-[WebView initWithCoder:]):
3353         (-[WebView encodeWithCoder:]):
3354
3355 2003-08-27  Richard Williamson   <rjw@apple.com>
3356
3357         Fixed 3398229.  When we request a font from NSFont by name we should use a case specific name.  We do case insensitve comparsion, but once a match is found we should use the actual font name, not the requested name.  Two layout tests are still failing, but I don't think the failures are font related.
3358
3359         Reviewed by Hyatt.
3360
3361         * WebCoreSupport.subproj/WebTextRendererFactory.m:
3362         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
3363
3364 === Safari-95 ===
3365
3366 2003-08-27  Richard Williamson   <rjw@apple.com>
3367
3368         Fixed 3397235.  WebView wasn't archiving useBackForwardList.
3369
3370         Reviewed by Eric Seymour.
3371
3372         * WebView.subproj/WebView.m:
3373         (-[WebView initWithCoder:]):
3374         (-[WebView encodeWithCoder:]):
3375
3376 2003-08-26  Richard Williamson   <rjw@apple.com>
3377
3378         Fixed 3385478.  Look for an exact match for font names (using PS names) before matching on family names.
3379
3380         Also added logging to help debug now resolved binding problem.
3381
3382         Reviewed by Maciej.
3383
3384         * Misc.subproj/WebKitLogging.h:
3385         * Misc.subproj/WebKitLogging.m:
3386         * WebCoreSupport.subproj/WebTextRendererFactory.m:
3387         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
3388         * WebView.subproj/WebView.m:
3389         (-[WebView addObserver:forKeyPath:options:context:]):
3390         (-[WebView removeObserver:forKeyPath:]):
3391
3392 2003-08-26  Darin Adler  <darin@apple.com>
3393
3394         Reviewed by Maciej.
3395
3396         - fixed 3310943 -- REGRESSION (Panther): textareas in forms sometimes draw blank (bugreporter)
3397
3398         There are two fixes here. The more elegant and slightly faster one that requires a new AppKit,
3399         and the less elegant one that works without AppKit support. By including both we don't have to
3400         worry about timing of submission of WebKit vs. AppKit but we get the good, elegant fix. Later,
3401         we can delete the less elegant fix.
3402
3403         * WebView.subproj/WebClipView.m:
3404         (+[WebClipView initialize]): Set up a boolean global so we only hav to do the "does AppKit support
3405         _focusRingVisibleRect" check one time.
3406         (-[WebClipView resetAdditionalClip]): Only do the renewGState thing if we don't have the
3407         _focusRingVisibleRect method, but if we do the renewGState thing, do it to self and all descendants
3408         using _web_renewGStateDeep.
3409         (-[WebClipView setAdditionalClip:]): Ditto.
3410         (-[WebClipView visibleRect]): Only limit this based on the additional clip if we don't have the
3411         _focusRingVisibleRect method.
3412         (-[WebClipView _focusRingVisibleRect]): Override the new method. Harmless if it's an old AppKit
3413         that doesn't have the method yet.
3414         (-[NSView _web_renewGStateDeep]): Implemented this helper method. We can get rid of it once we
3415         are entirely on the new AppKit.
3416
3417 2003-08-26  Darin Adler  <darin@apple.com>
3418
3419         Reviewed by Maciej.
3420
3421         - fixed 3321247 -- window size box disappears from Help window (caused by WebKit NSView hackery)
3422
3423         * WebView.subproj/WebHTMLViewPrivate.m:
3424         (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]),
3425         (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
3426         Don't propagate dirty rects at all. This was causing problems because now the AppKit uses
3427         dirty regions, not dirty rects. In AppKit-722 and newer, _setDrawsDescendants: takes care of this
3428         for us so we don't have to do anything at all.
3429
3430 2003-08-26  Darin Adler  <darin@apple.com>
3431
3432         Reviewed by John.
3433
3434         - fixed 3392650 -- REGRESSION?: assertion fails trying Apple-hosted page load test while not on Apple network
3435
3436         * WebView.subproj/WebFramePrivate.m: (-[WebFrame _isLoadComplete]):
3437         Stop loading the provisional data source before blowing it away, in case
3438         there are some callbacks that haven't occurred yet. It's a waste of time to
3439         try to handle those additional callbacks, and can lead to failed assertions
3440         since the data source won't be hooked up to any frame any more.
3441
3442 2003-08-25  Richard Williamson   <rjw@apple.com>
3443
3444         Fix for 3391609.  Our rounding hack wasn't correctly reflected in the selection point
3445         code.  Piggy-backed on this fix are fixes for selection of letter-spacing, word-spacing
3446         and justified text.
3447
3448         Reviewed by Hyatt.
3449
3450         * WebCoreSupport.subproj/WebTextRenderer.m:
3451         (initializeCharacterWidthIterator):
3452         (widthAndGlyphForSurrogate):
3453         (widthForNextCharacter):
3454         (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startGlyph:endGlyph:numGlyphs:]):
3455
3456 2003-08-25  John Sullivan  <sullivan@apple.com>
3457
3458         - fixed 3391264 -- REGRESSION (Panther): Back/Forward buttons not
3459         updating immediately after page load
3460
3461         The buttons are updated in response to window update notifications.
3462         Jaguar was sending so many extra bogus notifications that it
3463         masked the fact that we weren't ensuring that these notifications
3464         were sent at all in the case of non-event-based interesting
3465         changes that might affect menu items/toolbar items/etc.
3466
3467         Reviewed by Richard
3468
3469         * WebView.subproj/WebViewPrivate.m:
3470         (-[WebView _didStartProvisionalLoadForFrame:]):
3471         call -[NSApp setWindowsNeedUpdate:YES] so window update notices
3472         will be sent
3473         (-[WebView _didCommitLoadForFrame:]):
3474         ditto
3475         (-[WebView _didFinishLoadForFrame:]):
3476         ditto
3477         (-[WebView _didFailLoadWithError:forFrame:]):
3478         ditto
3479         (-[WebView _didFailProvisionalLoadWithError:forFrame:]):
3480         ditto
3481
3482 2003-08-24  Darin Adler  <darin@apple.com>
3483
3484         Reviewed by John.
3485
3486         - fixed 3382179 -- REGRESSION: many images scroll down while loading (e.g., homepage.mac.com slide show)
3487
3488         * WebCoreSupport.subproj/WebImageRenderer.m:
3489         (-[WebImageRenderer drawClippedToValidInRect:fromRect:]): While loading, always draw one less line than
3490         the number NSImage says we have, since that last line is a partial line and draws unwanted white. This
3491         is not what the bug report complains about, but is a longstanding and very minor issue. Remove the code
3492         that adjust the Y origin. This is what the bug report is about. That adjustment is incorrect and was
3493         unknowingly compensating for some kind of NSImage bug that is now fixed.
3494         (-[WebImageRenderer tileInRect:fromPoint:]): Added an assertion that the WebImageRenderer is flipped.
3495         The code does assume that it's flipped.
3496
3497 2003-08-22  John Sullivan  <sullivan@apple.com>
3498         
3499         - fixed 3385837 -- REGRESSION: can't paste link from Safari into 
3500         Keynote (paste at top level, not into text)
3501
3502         Reviewed by Darin
3503
3504         The problem was that we were using a single list of pasteboard
3505         types for both "types we can read" and "types we can write", but
3506         NSFilenamesPBoardType wasn't being written to, creating a bad
3507         pasteboard. The fix is to split this list in two. We could do
3508         this a little more elegantly if we weren't paranoid about 
3509         last-minute SPI changes breaking compatibility with Sherlock or
3510         some other internal client.
3511
3512         * Misc.subproj/WebNSPasteboardExtras.h:
3513         add new _web_writableDragTypesForURL, commented various methods
3514         better.
3515
3516         * Misc.subproj/WebNSPasteboardExtras.m:
3517         (+[NSPasteboard _web_writableDragTypesForURL]):
3518         implement _web_writableDragTypesForURL; it's just like
3519         _web_dragTypesForURL but without the NSFilenamesPBoardType
3520         (-[NSPasteboard _web_writeURL:andTitle:withOwner:]):
3521    &nbs