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