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