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