* PublicHeaderChangesFromTiger.txt:
[WebKit-https.git] / WebKit / ChangeLog
1 2005-08-01  John Sullivan  <sullivan@apple.com>
2
3         * PublicHeaderChangesFromTiger.txt:
4         added a comment about isTextField -> _isTextField
5
6 2005-08-01  John Sullivan  <sullivan@apple.com>
7
8         Patch by Trey Matteson <trey@usa.net>
9         Reviewed by me.
10
11         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4255
12           underlines still print too thick
13
14         The real problem here is that we have code that scales a 0 width line to always
15         be width=1.0 in device space.  I'm leaving that in for the screen, but when printing
16         a width of 0.5 looks good.
17
18         * WebCoreSupport.subproj/WebTextRenderer.m:
19         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
20
21 2005-08-01  Eric Seidel  <eseidel@apple.com>
22
23         Reviewed by darin.
24
25         * WebCoreSupport.subproj/WebGraphicsBridge.m:
26         removed create*ColorSpace methods, now using CG API directly.
27         http://bugzilla.opendarwin.org/show_bug.cgi?id=4211
28
29 2005-07-31  John Sullivan  <sullivan@apple.com>
30
31         Patch by Trey Matteson <trey@usa.net>
32         Reviewed by me.
33
34         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4014
35           PDF files by default load with a poor choice of sizing
36
37         For now the various PDF viewing settings are sticky, stored in 2 new defaults.  Since
38         there are a number of ways these settings are changed, I made a proxy for the PDFView
39         through which all view changing messages are sent.  The proxy adds the behavior of
40         updating the defaults upon any change.
41
42         * Misc.subproj/WebNSDictionaryExtras.h:
43         * Misc.subproj/WebNSDictionaryExtras.m:
44         (-[NSMutableDictionary _webkit_setFloat:forKey:]):  New support method.
45         * WebView.subproj/WebPDFView.h:
46         * WebView.subproj/WebPDFView.m:
47         (-[WebPDFView initWithFrame:]):  Create proxy for PDFView.
48         (-[WebPDFView dealloc]):  Free proxy.
49         (-[WebPDFView _menuItemsFromPDFKitForEvent:]):  For relevant context menu items, set the
50             target to the proxy instead of the PDFView.
51         (-[WebPDFView _readPDFDefaults]):  Init PDFView with settings from defaults.
52         (-[WebPDFView layout]):  Call _readPDFDefaults, once.  This turned out to be the best hook.
53         (-[WebPDFView _makeTextSmaller:]):  Change PDFView via proxy
54         (-[WebPDFView _makeTextLarger:]):  Ditto
55         (-[WebPDFView _makeTextStandardSize:]):  Ditto
56         (-[PDFPrefUpdatingProxy initWithView:]):  trivial
57         (-[PDFPrefUpdatingProxy forwardInvocation:]):  Forward the msg, then update defaults
58         (-[PDFPrefUpdatingProxy methodSignatureForSelector:]):  Simple forwarding support.
59         * WebView.subproj/WebPreferenceKeysPrivate.h:
60         * WebView.subproj/WebPreferences.m:
61         (+[WebPreferences initialize]):  Set initial values for new PDF viewing defaults.
62         (-[WebPreferences _integerValueForKey:]):  Nuke stray comment.
63         (-[WebPreferences _floatValueForKey:]):  New simple support method.
64         (-[WebPreferences _setFloatValue:forKey:]):  Ditto.
65         (-[WebPreferences PDFScaleFactor]):  4 accessors for new defaults 
66         (-[WebPreferences setPDFScaleFactor:]):
67         (-[WebPreferences PDFDisplayMode]):
68         (-[WebPreferences setPDFDisplayMode:]):
69         * WebView.subproj/WebPreferencesPrivate.h:
70
71 2005-08-01  Justin Garcia  <justin.garcia@apple.com>
72
73         Patch by Trey Matteson <trey@usa.net>
74
75         Reviewed by Maciej.
76
77         Fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=4226>
78           link underlines print too thickly
79
80         Reinstate the fix made by sullivan on 1/11/05.  There was a merge
81         error with an mjs fix on 1/13/05.
82
83         * WebCoreSupport.subproj/WebTextRenderer.m:
84         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
85
86 2005-07-30  Maciej Stachowiak  <mjs@apple.com>
87
88         Build fixes for previous change (missing includes)
89
90         * WebView.subproj/WebFrame.m:
91         * WebView.subproj/WebScriptDebugDelegate.m:
92
93 2005-07-29  Maciej Stachowiak  <mjs@apple.com>
94
95         Changes by Michael Kahl, reviewed by me.
96
97         - fixed <rdar://problem/4164112> MASTER: JavaScript debugging support
98         
99         * WebCoreSupport.subproj/WebBridge.m:
100         (-[WebBridge windowObjectCleared]):
101         * WebCoreSupport.subproj/WebSubresourceLoader.m:
102         * WebKit.xcodeproj/project.pbxproj:
103         * WebView.subproj/WebDefaultScriptDebugDelegate.h: Added.
104         * WebView.subproj/WebDefaultScriptDebugDelegate.m: Added.
105         (+[WebDefaultScriptDebugDelegate sharedScriptDebugDelegate]):
106         (-[WebDefaultScriptDebugDelegate webView:didParseSource:fromURL:sourceId:forWebFrame:]):
107         (-[WebDefaultScriptDebugDelegate webView:didEnterCallFrame:sourceId:line:forWebFrame:]):
108         (-[WebDefaultScriptDebugDelegate webView:willExecuteStatement:sourceId:line:forWebFrame:]):
109         (-[WebDefaultScriptDebugDelegate webView:willLeaveCallFrame:sourceId:line:forWebFrame:]):
110         * WebView.subproj/WebFrame.m:
111         (-[WebFramePrivate dealloc]):
112         (-[WebFrame _attachScriptDebugger]):
113         * WebView.subproj/WebFramePrivate.h:
114         * WebView.subproj/WebScriptDebugDelegate.h: Added.
115         * WebView.subproj/WebScriptDebugDelegate.m: Added.
116         (-[WebScriptDebugger initWithWebFrame:]):
117         (-[WebScriptDebugger dealloc]):
118         (-[WebScriptDebugger globalObject]):
119         (-[WebScriptDebugger newWrapperForFrame:]):
120         (-[WebScriptDebugger parsedSource:fromURL:sourceId:]):
121         (-[WebScriptDebugger enteredFrame:sourceId:line:]):
122         (-[WebScriptDebugger hitStatement:sourceId:line:]):
123         (-[WebScriptDebugger leavingFrame:sourceId:line:]):
124         (-[WebScriptCallFrame _initWithFrame:]):
125         (-[WebScriptCallFrame dealloc]):
126         (-[WebScriptCallFrame setUserInfo:]):
127         (-[WebScriptCallFrame userInfo]):
128         (-[WebScriptCallFrame caller]):
129         (-[WebScriptCallFrame scopeChain]):
130         (-[WebScriptCallFrame functionName]):
131         (-[WebScriptCallFrame exception]):
132         (-[WebScriptCallFrame evaluateWebScript:]):
133         * WebView.subproj/WebScriptDebugDelegatePrivate.h: Added.
134         * WebView.subproj/WebView.h:
135         * WebView.subproj/WebView.m:
136         (-[WebViewPrivate dealloc]):
137         (-[WebView _scriptDebugDelegateForwarder]):
138         (-[WebView setScriptDebugDelegate:]):
139         (-[WebView scriptDebugDelegate]):
140         * WebView.subproj/WebViewInternal.h:
141         * WebView.subproj/WebViewPrivate.h:
142
143 2005-07-26  Maciej Stachowiak  <mjs@apple.com>
144
145         Reviewed by Dave Hyatt.
146
147         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4153
148         
149         * WebView.subproj/WebFrame.m:
150         (-[WebFrame _purgePageCache]): Find the oldest candidate for
151         purging that is not a snapback item.
152
153 2005-07-29  David Harrison  <harrison@apple.com>
154
155         Reviewed by Dave Hyatt (rendering) and Maciej (editing and performance improvements).
156
157         Test cases added: Existing tab-related basic editing tests were updated.  More complex tests are coming soon.
158
159         <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
160         
161         Basic strategy is to put tabs into spans with white-space:pre style, and
162         render them with tabs stops every 8th space, where the space width and
163         the left margin are those of the enclosing block.
164
165         * WebCoreSupport.subproj/WebTextRenderer.m:
166         (isSpace):
167         (isRoundingHackCharacter):
168         (getUncachedWidth):
169         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
170         (-[WebTextRenderer _computeWidthForSpace]):
171         (_drawGlyphs):
172         (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
173         (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
174         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]):
175         (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
176         (glyphForCharacter):
177         (initializeCharacterWidthIterator):
178         (ceilCurrentWidth):
179         (widthForNextCharacter):
180
181 2005-07-29  John Sullivan  <sullivan@apple.com>
182
183         Reviewed by Dave Hyatt.
184         
185         - WebKit part of <rdar://problem/4187404> Redo form SPI so that it doesn't rely on NSViews
186         
187         Much of 4187404 was addressed in earlier checkins. This checkin completes the task.
188
189         * WebView.subproj/WebHTMLRepresentation.h:
190         * WebView.subproj/WebHTMLRepresentation.m:
191         removed viewForElement:, which was the only remaining NSView-related SPI that Safari autofill was
192         still using. I added viewForElement a week ago as a transitional measure, so removing it won't
193         affect any other clients.
194
195 2005-07-29  John Sullivan  <sullivan@apple.com>
196
197         Reviewed by Chris Blumenberg.
198
199         * WebView.subproj/WebFrameView.m:
200         (-[WebFrameView _firstResponderIsFormControl]):
201         renamed from _firstResponderIsControl for clarity. Explicitly rejects WebHTMLView, since
202         it's now a control.
203         (-[WebFrameView keyDown:]):
204         updated for renamed method.
205
206 2005-07-28  John Sullivan  <sullivan@apple.com>
207
208         Reviewed by Beth Dakin.
209         
210         - removed method -[WebHTMLRepresentation elementForView:], which was SPI used only for
211         Safari autofill. Tip of tree Safari no longer includes any calls to this method. Also, 
212         Tiger Safari never gets around to actually calling it due to the other recent form-SPI-related
213         changes, so removing this method doesn't break Tiger Safari running on tip of tree WebKit
214         (though autofill continues to not work in that configuration).
215
216         * WebView.subproj/WebHTMLRepresentation.h:
217         * WebView.subproj/WebHTMLRepresentation.m:
218         (-[WebHTMLRepresentation elementForView:]): removed
219         
220 2005-07-27  John Sullivan  <sullivan@apple.com>
221
222         Patch by Trey Matteson <trey@usa.net>
223         Reviewed by me.
224
225         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4169
226           scaling PDF view up leaves later HTML view scaled too
227
228         An additional step of separating scaling of HTML and PDF.  If we do a zoom and there
229         are no docViews that track the common scaling factor, then don't change it.  Thus in
230         the common PDF case where it is the only doc view, scaling the PDF does not affect
231         HTML pages loaded in the same window.
232
233         * WebView.subproj/WebView.m:
234         (-[WebView canMakeTextSmaller]):  Pass 0 for new scaling factor, since we just querying.
235         (-[WebView canMakeTextLarger]):  Ditto.
236         (-[WebView makeTextSmaller:]):  Pass new scaling factor.
237         (-[WebView makeTextLarger:]):  Ditto.
238         (-[WebView canMakeTextStandardSize]):  Pass 0 for new scaling factor.
239         (-[WebView makeTextStandardSize:]):  Pass new scaling factor.
240         (-[WebView _performTextSizingSelector:withObject:onTrackingDocs:selForNonTrackingDocs:newScaleFactor:]):
241           The meat of the change is that this Swiss Army Knife also takes a new scaling
242           factor, which it will set as the common scaling factor if it finds any doc views that
243           are able to be scaled which track the common scaling factor.
244
245 2005-07-27  John Sullivan  <sullivan@apple.com>
246
247         Patch by Trey Matteson <trey@usa.net>
248         Reviewed by me.
249
250         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4015
251           PDF views should remember viewing mode, scroll position across back/forward
252           Note this doesn't work within frames because of a PDFKit bug - see 4164
253         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4091
254           PDF views should keep a separate scaling factor from shared text scaling factor
255
256         Basic idea #1 is that we now have a general mechanism for a WebDocView to save/restore some UI
257         state to the WebHistoryItem.
258         Basic idea #2 is that _WebDocumentTextSizing is expanded to allow for the case of a WebDocView
259         keeping its own notion of a scaling factor.  WebPDFView's -_tracksCommonSizeFactor has justification.
260
261         * History.subproj/WebHistoryItem.m:
262         (-[WebHistoryItem setViewState:]):  New methods to hold PList of arbitrary WebView state
263         (-[WebHistoryItem viewState]):
264         * History.subproj/WebHistoryItemPrivate.h:
265         * WebKit.xcodeproj/project.pbxproj:  Add Quartz to framework path so we can import PDFKit files
266         * WebView.subproj/WebDocumentInternal.h:  New methods added to _WebDocumentTextSizing.
267           Also the _ prefix is sufficient instead of _web_WebDocumentTextSizing.
268           Added _WebDocumentViewState protocol.
269         * WebView.subproj/WebFrame.m:
270         (-[WebFrame _createItemTreeWithTargetFrame:clippedAtTarget:]):  Rename of save/restore methods.
271         (-[WebFrame _detachFromParent]):  Ditto
272         (-[WebFrame _transitionToCommitted:]):  Ditto
273         (-[WebFrame _checkLoadCompleteForThisFrame]):  Ditto
274         (-[WebFrame _loadItem:withLoadType:]):  Ditto
275         (-[WebFrame _recursiveGoToItem:fromItem:withLoadType:]):  Ditto
276         (-[WebFrame _saveViewStateToItem:]):  Call doc view to retrieve view state.
277         (-[WebFrame _restoreViewState]):  Call doc view to set view state.
278         (-[WebFrame _scrollToTop]):  Nuked dead code.
279         (-[WebFrame _textSizeMultiplierChanged]):  This work now appears in WebView.
280         (-[WebFrame _saveDocumentAndScrollState]):  Same rename, one code cleanup.
281         (-[WebFrame _accumulateDocumentViews:]): Add our docview to the array, call kids.
282         (-[WebFrame _documentViews]):  New helper to return all docviews.
283         (-[WebFrame _didFirstLayout]):  Same name change.
284         * WebView.subproj/WebFrameInternal.h:
285         * WebView.subproj/WebFramePrivate.h:
286         * WebView.subproj/WebHTMLView.m:  Removed redundant category decl.
287         (-[WebHTMLView _makeTextSmaller:]):  Implement new protocol.
288         (-[WebHTMLView _makeTextLarger:]):
289         (-[WebHTMLView _makeTextStandardSize:]):
290         (-[WebHTMLView _tracksCommonSizeFactor]):
291         * WebView.subproj/WebPDFRepresentation.m:  Tweak #imports.
292         * WebView.subproj/WebPDFView.h:
293         * WebView.subproj/WebPDFView.m:
294         (-[WebPDFView _menuItemsFromPDFKitForEvent:]):  No longer intercept context menu text sizing items.
295         (-[WebPDFView setDataSource:]):  No longer track the WebView's scaling factor.
296         (-[WebPDFView scrollPoint]):  Dig through PDFKit view tree to get real scroll position
297         (-[WebPDFView setScrollPoint:]):  Ditto
298         (-[WebPDFView viewState]):  Return bundle of viewing params
299         (-[WebPDFView setViewState:]):  Restore bundle of viewing params
300         (-[WebPDFView _makeTextSmaller:]):  Implement new text sizing protocol
301         (-[WebPDFView _makeTextLarger:]):
302         (-[WebPDFView _makeTextStandardSize:]):
303         (-[WebPDFView _tracksCommonSizeFactor]):
304         (-[WebPDFView _canMakeTextSmaller]):
305         (-[WebPDFView _canMakeTextLarger]):
306         (-[WebPDFView _canMakeTextStandardSize]):
307         * WebView.subproj/WebTextView.m:
308         (-[WebTextView _makeTextSmaller:]):  Implement new text sizing protocol
309         (-[WebTextView _makeTextLarger:]):
310         (-[WebTextView _makeTextStandardSize:]):
311         (-[WebTextView _tracksCommonSizeFactor]):
312         * WebView.subproj/WebView.m:
313         (-[WebView setTextSizeMultiplier:]):  Calling docViews is now more complicates than just posting
314            a notification to the frame.
315         (-[WebView _performTextSizingSelector:withObject:onTrackingDocs:selForNonTrackingDocs:]):  Workhorse
316            that sends the text sizing method to the right doc views.
317         (-[WebView canMakeTextSmaller]):  Call workhorse.
318         (-[WebView canMakeTextLarger]):  Ditto
319         (-[WebView makeTextSmaller:]):  Ditto
320         (-[WebView makeTextLarger:]):  Ditto
321         (-[WebView canMakeTextStandardSize]):  Ditto
322         (-[WebView makeTextStandardSize:]):  Ditto
323
324 2005-07-26  Justin Garcia  <justin.garcia@apple.com>
325
326         Patch by Trey Matteson <trey@usa.net>
327
328         Reviewed by John Sullivan.
329         
330         Fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=4072>
331         Pressing back in browser misses out a page
332         
333         * WebView.subproj/WebFrame.m:
334         (-[WebFrame _transitionToCommitted:]):  When reloading the same page or refreshing the
335         page, update the URL in the b/f item with the URL that we wind up at.  Due to cookies,
336         it might be different than the result we just got when we loaded the same page.
337
338 2005-07-26  David Hyatt  <hyatt@apple.com>
339
340         Make WebHTMLView inherit from NSControl instead of NSView.
341         This change is necessary because the theme renderer for
342         WebCore that draws controls with the Aqua appearance does so
343         using NSCells.  NSCells must be hosted within a control view
344         in order to paint properly.
345
346         The method updateCell must be overridden because it wants to
347         repaint the whole control when the windows resigns/becomes
348         key, and this would result in behavior that we don't want
349         (the repainting of the whole view).  We already have hooks
350         in WebHTMLView for the window resigning/becoming key so
351         we will do our proper control updating there instead (in a
352         future patch).
353
354         Reviewed by john
355
356         * WebView.subproj/WebHTMLView.h:
357         * WebView.subproj/WebHTMLView.m:
358         (-[WebHTMLView updateCell:]):
359         
360 2005-07-26  John Sullivan  <sullivan@apple.com>
361
362         Reviewed by Chris Blumenberg.
363         
364         - more work to wean form-related SPI from NSView. All that's left (but this is a big "all")
365         is viewForElement: and elementForView:        
366
367         * WebCoreSupport.subproj/WebBridge.m:
368         (-[WebBridge textField:doCommandBySelector:]):
369         changed signature to pass along DOMElement* rather than NSView*
370         
371         * WebView.subproj/WebFormDelegate.h:
372         * WebView.subproj/WebFormDelegate.m:
373         (-[WebFormDelegate textField:doCommandBySelector:inFrame:]):
374         ditto
375
376 2005-07-25  John Sullivan  <sullivan@apple.com>
377
378         Reviewed by Darin Adler.
379         
380         - big hunk of weaning form-related SPI from NSView; autofill continues to
381         work (but only on tip of tree Safari)
382         
383         * WebCoreSupport.subproj/WebBridge.m:
384         (-[WebBridge textFieldDidBeginEditing:]):
385         changed name from controlTextXXX:, now takes a DOMHTMLInputElement*
386         (-[WebBridge textFieldDidEndEditing:]):
387         ditto
388         (-[WebBridge textDidChangeInTextField:]):
389         ditto
390         (-[WebBridge textDidChangeInTextArea:]):
391         changed name from textDidChange:, now takes a DOMHTMLTextAreaElement*
392         (-[WebBridge control:textShouldBeginEditing:]):
393         removed this method as it wasn't being used by autofill, and did nothing in WebKit
394         (-[WebBridge control:textShouldEndEditing:]):
395         ditto
396         (-[WebBridge textField:shouldHandleEvent:]):
397         changed name from control:textView:shouldHandleEvent:, now takes a DOMHTMLInputElement*.
398         The textView parameter wasn't being used, so I eliminated it.
399         
400         * WebView.subproj/WebFormDelegate.h:
401         * WebView.subproj/WebFormDelegate.m:
402         (-[WebFormDelegate textFieldDidBeginEditing:inFrame:]):
403         (-[WebFormDelegate textFieldDidEndEditing:inFrame:]):
404         (-[WebFormDelegate control:textShouldBeginEditing:inFrame:]):
405         (-[WebFormDelegate control:textShouldEndEditing:inFrame:]):
406         (-[WebFormDelegate textDidChangeInTextField:inFrame:]):
407         (-[WebFormDelegate textDidChangeInTextArea:inFrame:]):
408         (-[WebFormDelegate textField:shouldHandleEvent:inFrame:]):
409         These all changed in the same way as the WebBridge methods
410         
411
412 2005-07-25  Vicki Murley <vicki@apple.com>
413
414         Reviewed by Darin.
415  
416         - fixed <rdar://problem/3470523> Safari's user agent should be changed to say Intel rather 
417         than PPC on Intel machines
418
419         * WebView.subproj/WebView.m: add conditional #defines for "PPC" and "Intel"
420         (-[WebView userAgentForURL:]): use this variable when constructing the user agent string
421
422 2005-07-24  Justin Garcia  <justin.garcia@apple.com>
423
424         Reviewed by mjs
425         
426         - Fixes <rdar://problem/4120535> deleteToEndOfLine: does not delete thew newline when at the end of a line
427             Fix to match NSTextView.  Delete the next character if deleteToEndOfLine fails
428
429         * WebView.subproj/WebHTMLView.m:
430         (-[WebHTMLView deleteToEndOfLine:]):
431
432 2005-07-24  Justin Garcia  <justin.garcia@apple.com>
433
434         Patch by Trey Matteson <trey@apple.com>
435
436         Reviewed by john
437         
438         Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3953> back-forward items have wrong titles after sub-frame navigations
439
440         This was caused by a mistaken data structure, where WebDataSource tried to keep a list of
441         b/f items it was responsible for.  The problem arose in the case of frames, where a subframe
442         was loaded with new content.  When this happens a fresh tree of b/f items is created,
443         but the reference in the DataSource still pointed to the old item.
444
445         Since the WebFrame does a lot of work to track the current b/f item, the easiest thing is to
446         get rid of the DataSource's reference, and have it ask the WebFrame to set the title on the
447         right b/f item.
448
449         * WebView.subproj/WebDataSource.m:
450         (-[WebDataSourcePrivate dealloc]):
451         (-[WebDataSource _setTitle:]):
452         * WebView.subproj/WebDataSourcePrivate.h:
453         * WebView.subproj/WebFrame.m:
454         (-[WebFrame _createItem:]):
455         (-[WebFrame _transitionToCommitted:]):
456         (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
457         (-[WebFrame _setTitle:]):
458         * WebView.subproj/WebFramePrivate.h:
459
460 2005-07-24  Justin Garcia  <justin.garcia@apple.com>
461
462         Reviewed by kevin
463         
464         Fixed make clean problem
465
466         * Makefile.am:
467
468 2005-07-23  Justin Garcia  <justin.garcia@apple.com>
469
470         Patch by <opendarwin.org@mitzpettel.com>
471
472         Reviewed by darin and hyatt
473         
474         Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3862>
475         The fix for <http://bugzilla.opendarwin.org/show_bug.cgi?id=3545> enclosed each run of visually ordered
476         hebrew with LRO and PDF control characters, but adjusted the run's to and from to include those characters,
477         so that they would be rendered if the font includes a glyph for bidi control characters.
478         
479         Also adding a manual test
480
481         * WebCoreSupport.subproj/WebTextRenderer.m:
482         (reverseCharactersInRun):
483
484 2005-07-22  John Sullivan  <sullivan@apple.com>
485
486         Reviewed by Justin Garcia.
487         
488         Mail (running on tip of tree WebKit) was running into an assertion I recently added.
489         The assertion is actually correct, catching an old bug in this code.
490
491         * WebView.subproj/WebView.m:
492         (-[WebView selectedFrame]):
493         if the first responder is a WebFrameView, then we've found the WebFrameView we're 
494         looking for, and we shouldn't look at its superviews.
495
496 2005-07-22  John Sullivan  <sullivan@apple.com>
497
498         Reviewed by Chris Blumenberg.
499
500         - some changes in the direction of weaning all the form-related SPI from NSView
501
502         * PublicHeaderChangesFromTiger.txt:
503         noted that the WebCore change to add -[DOMHTMLInputElement isTextField] to
504         DOMExtensions.h is a public header change.
505
506         * WebView.subproj/WebHTMLRepresentation.h:
507         * WebView.subproj/WebHTMLRepresentation.m:
508         (-[WebHTMLRepresentation viewForElement:]):
509         added viewForElement: as a stopgap measure. This allowed me to convert controlsInForm:
510         to return DOMElements rather than NSViews, while keeping autocomplete working in
511         Safari tip of tree. When I finish the SPI conversion I'll delete this method. Note that
512         from this point on, autocomplete will not work in Tiger Safari with tip of tree WebKit
513         (it will always fail to find anything to autocomplete)
514
515 2005-07-21  Adele Peterson  <adele@apple.com>
516
517         Reviewed by Darin.
518
519         Changing temporary #ifndef to #if
520
521         * WebCoreSupport.subproj/WebImageData.m:
522         (-[WebImageData _checkSolidColor:]):
523
524 2005-07-21  Adele Peterson  <adele@apple.com>
525
526         Reviewed by Chris Blumenberg.
527
528         - fixed <rdar://problem/4132797> don't register thin PPC WebKit plug-ins
529         Merged fix for:
530         <rdar://problem/4127100> [WebKit] 8B1016: After installing Acrobat Reader, can no longer see pdf's in Safari
531
532         * Plugins.subproj/WebBasePluginPackage.h: Added isNativeLibraryData method.
533         * Plugins.subproj/WebBasePluginPackage.m: (-[WebBasePluginPackage isNativeLibraryData:]): Added isNativeLibraryData method.
534         * Plugins.subproj/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage initWithPath:]):
535           calls isNativeLibraryData to determine whether or not to register the plug-in.
536         * Plugins.subproj/WebPluginPackage.m: (-[WebPluginPackage initWithPath:]): ditto.
537         * WebCoreSupport.subproj/WebImageData.m: (-[WebImageData _checkSolidColor:]): added comment for #ifdef.
538
539 2005-07-21  Geoffrey Garen  <ggaren@apple.com>
540
541         * WebKit.pbproj/project.pbxproj: Removed.
542
543 2005-07-21  Geoffrey Garen  <ggaren@apple.com>
544
545         * WebKit.xcodeproj/.cvsignore: Added.
546
547 2005-07-21  Geoffrey Garen  <ggaren@apple.com>
548
549         * WebKit.xcodeproj/project.pbxproj: Added.
550
551 2005-07-21  Geoffrey Garen  <ggaren@apple.com>
552
553         * Makefile.am:
554
555 2005-07-20  John Sullivan  <sullivan@apple.com>
556
557         Reviewed by Vicki Murley.
558
559         - removed some form-related methods that weren't being used anywhere, in preparation
560         for weaning WebKit's WebFormDelegate protocol from NSView.
561
562         * WebCoreSupport.subproj/WebBridge.m:
563         * WebView.subproj/WebFormDelegate.h:
564         * WebView.subproj/WebFormDelegate.m:
565         removed these methods:
566         -control:didFailToFormatString:errorDescription:
567         -control:didFailToValidatePartialString:errorDescription:
568         -control:isValidObject:
569
570 2005-07-20  Adele Peterson  <adele@apple.com>
571
572           Merged fix for:
573           <rdar://problem/4125127> [WebKit] horizontal rulers don't render on Safari on web.apple.com
574
575           * WebCoreSupport.subproj/WebImageData.m:
576           (-[WebImageData _checkSolidColor:]):
577
578 2005-07-20  Adele Peterson  <adele@apple.com>
579
580         Merged fix for :
581         <rdar://problem/4118278> mail divide by zero navigating messages
582   
583         * WebCoreSupport.subproj/WebTextRenderer.m:
584         (-[WebTextRenderer _extendGlyphToWidthMapToInclude:font:]):
585
586 2005-07-20  John Sullivan  <sullivan@apple.com>
587
588         Reviewed by Adele Peterson.
589         
590         - added -[WebView selectedFrame] to SPI (pending public API), needed for 4180958
591
592         * WebView.subproj/WebView.m:
593         (-[WebView selectedFrame]):
594         new method, extracted from _selectedOrMainFrame
595         (-[WebView _selectedOrMainFrame]):
596         now calls extracted method
597         
598         * WebView.subproj/WebViewPrivate.h:
599         add -selectedFrame to PendingPublic category
600
601 2005-07-19  John Sullivan  <sullivan@apple.com>
602
603         Reviewed by Darin Adler.
604         
605         - cleaned up code related to dealing with the "selected frame"; fixes radar bugs 4118830 and 4118820
606
607         * WebView.subproj/WebTextView.m:
608         (-[WebTextView resignFirstResponder]):
609         call deselectAll here instead of replicating its guts, just for clarity
610         
611         * WebView.subproj/WebViewInternal.h:
612         eliminated category WebInternal; all of these methods were used only inside WebView.m, so I moved
613         them into the existing category WebFileInternal that was declared and implemented in WebView.m
614         
615         * WebView.subproj/WebView.m:
616         (-[WebView searchFor:direction:caseSensitive:wrap:]):
617         updated for name changes. Also, uses new _deselectFrame: to clear the selection if the found
618         text is in a different frame.
619         (-[WebView pasteboardTypesForSelection]):
620         (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]):
621         (-[WebView setSelectedDOMRange:affinity:]):
622         (-[WebView selectedDOMRange]):
623         (-[WebView selectionAffinity]):
624         (-[WebView setTypingStyle:]):
625         (-[WebView typingStyle]):
626         (-[WebView styleDeclarationWithText:]):        
627         (-[WebView replaceSelectionWithNode:]):
628         (-[WebView replaceSelectionWithText:]):
629         (-[WebView replaceSelectionWithMarkupString:]):
630         (-[WebView replaceSelectionWithArchive:]):
631         (-[WebView deleteSelection]):
632         (-[WebView applyStyle:]):
633         updated for name changes only
634         
635         (-[WebView _frameIsSelected:]):
636         new method, returns YES if given frame has a non-zero-length selection
637         (-[WebView _deselectFrame:]):
638         new method, clears selection from given frame
639         (-[WebView _findSelectedFrameStartingFromFrame:]):
640         new method, recursive helper used by _findSelectedFrame
641         (-[WebView _findSelectedFrame]):
642         new method, finds first frame that returns YES for _frameIsSelected, or nil
643         (-[WebView _debugCollectSelectedFramesIntoArray:startingFromFrame:]):
644         new method, recursive helper used by _debugCheckForMultipleSelectedFrames
645         (-[WebView _debugCheckForMultipleSelectedFrames]):
646         new method for debugging, fires an assertion if there's more than one selected frame.
647         (-[WebView _selectedOrMainFrame]):
648         renamed from _frameForCurrentSelection, which was a misleading name since the returned
649         frame does not necessarily have a selection (or even focus). Now checks for a selected
650         but non-focused frame if the first responder is not in any frame. Also, moved in file
651         from WebInternal category to WebFileInternal category.
652         (-[WebView _bridgeForSelectedOrMainFrame]):
653         renamed from _bridgeForCurrentSelection, which was a misleading name for the same
654         reasons as _frameForCurrentSelection. Also, moved in file from WebInternal category to
655         WebFileInternal category.
656         (-[WebView _isLoading]):
657         (-[WebView _frameViewAtWindowPoint:]):
658         (-[WebView _bridgeAtPoint:]):
659         just moved in file from WebInternal category to WebFileInternal category
660
661 2005-07-19  Darin Adler  <darin@apple.com>
662
663         Reviewed by Geoff Garen.
664
665         - improve handling of plug-ins when the WebView or a superview is hidden with -[NSView setHidden]
666
667         * Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]):
668         Add "hidden" to the list of reasons to clip out all plug-in drawing.
669
670 2005-07-18  John Sullivan  <sullivan@apple.com>
671         
672         Written by Trey Matteson  <trey@usa.net>
673         Reviewed by John Sullivan.
674
675         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4049
676           scroll position not restored when going back/forward at ebay
677         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4061
678           When going back/forward to some pages, they redraw at top before restoring scroll position
679
680         The short story is that attempting to restore the scroll position
681         at the time when the first layout finishes addresses both of these
682         issues.  An explanation of the underlying race condition is in
683         a large comment near -_restoreScrollPosition.
684
685         * WebCoreSupport.subproj/WebBridge.m:
686         (-[WebBridge didFirstLayout]):  Pass through to WebFrame.
687         * WebView.subproj/WebFrame.m:
688         (-[WebFrame _transitionToCommitted:]):  Get rid of attempt to
689           restoreScrollPosition that never did anything because the
690           docView was always 0x0 size at that point.
691         (-[WebFrame _opened]):  Get rid of redundant call to restoreScrollPosition.
692           The imminent call to layoutCompleted makes the same call.
693         (-[WebFrame _didFirstLayout]):  Restore the scroll position on
694           first layout, if we're doing a b/f nav.
695         * WebView.subproj/WebFrameInternal.h:
696
697 2005-07-18  John Sullivan  <sullivan@apple.com>
698
699         Reviewed by Darin Adler.
700
701         - fixed these bugs:
702         <rdar://problem/4158121> context menu in PDF view should contain the selection-based items like Copy
703         <rdar://problem/4184691> WebPDFView should conform to the WebDocumentElement protocol
704         <rdar://problem/4184663> "Search in Spotlight" is present but dimmed in context menu for plain-text documents
705
706         * WebView.subproj/WebDefaultContextMenuDelegate.m:
707         (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
708         added ASSERT and comments
709
710         * WebView.subproj/WebHTMLView.m:
711         (-[WebHTMLView _searchWithGoogleFromMenu:]):
712         removed this method (now handled by WebView)
713         (-[WebHTMLView _searchWithSpotlightFromMenu:]):
714         ditto
715         (-[WebHTMLView validateUserInterfaceItem:]):
716         removed validation for removed items. The validation wasn't necessary anyway, since we only put these items
717         in the menu in the case where they should be enabled.
718
719         * WebView.subproj/WebPDFView.h:
720         now conforms to WebDocumentElement protocol (which lets [WebView elementAtPoint:] work better)
721         * WebView.subproj/WebPDFView.m:
722         (-[WebPDFView copy:]):
723         added, hands off to PDFView, needed to enable Copy in context menu
724         (-[WebPDFView _pointIsInSelection:]):
725         new method, checks whether given point is in the selected bounds
726         (-[WebPDFView elementAtPoint:]):
727         add WebElementIsSelectedKey to returned element
728         (-[WebPDFView menuForEvent:]):
729         use actual point instead of dummy placeholder, now that we have code that pays attention to the point
730
731         * WebView.subproj/WebView.m:
732         (-[WebView _searchWithGoogleFromMenu:]):
733         moved here from WebHTMLView so it will work for any documentView that conforms to WebDocumentText.
734         Rewrote slightly to be non-WebHTMLView-specific. (This menu item was always enabled in Safari because
735         Safari replaces its action, but it would not have been always enabled in other WebKit clients, though
736         it should have been.)
737         (-[WebView _searchWithSpotlightFromMenu:]):
738         moved here from WebHTMLView so it will work for any documentView that conforms to WebDocumentText.
739         Rewrote slightly to be non-WebHTMLView-specific.
740
741 2005-07-18  John Sullivan  <sullivan@apple.com>
742
743         Reviewed by Richard Williamson.
744         
745         - fixed <rdar://problem/4184366> WebPDFView should conform to the WebDocumentSelection protocol
746
747         * Misc.subproj/WebNSAttributedStringExtras.h: Added.
748         * Misc.subproj/WebNSAttributedStringExtras.m: Added.
749         (-[NSAttributedString _web_attributedStringByStrippingAttachmentCharacters]):
750         New category on NSAttributedString, initially contains this one method that had been in WebHTMLView.
751         
752         * WebView.subproj/WebHTMLView.m:
753         (-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]):
754         now uses _web_attributedStringByStrippingAttachmentCharacters
755         
756         * WebView.subproj/WebPDFView.h:
757         now conforms to WebDocumentSelection protocol
758         * WebView.subproj/WebPDFView.m:
759         (-[WebPDFView selectionRect]):
760         new, implementation of WebDocumentSelection protocol method
761         (-[WebPDFView pasteboardTypesForSelection]):
762         ditto
763         (-[WebPDFView writeSelectionWithPasteboardTypes:toPasteboard:]):
764         ditto
765
766         * WebKit.pbproj/project.pbxproj:
767         updated for new files
768
769 2005-07-18  John Sullivan  <sullivan@apple.com>
770
771         Reviewed by Chris Blumenberg.
772         
773         - some refactoring cleanup in the selection/searching code
774
775         * Misc.subproj/WebSearchableTextView.h:
776         moved WebDocumentSelection protocol conformation to this class, was in subclass WebTextView
777         * Misc.subproj/WebSearchableTextView.m:
778         (-[WebSearchableTextView selectionRect]):
779         new method (moved here from Safari) to return a single rect encompassing all selected text
780         (-[WebSearchableTextView pasteboardTypesForSelection]):
781         moved here from WebTextView
782         (-[WebSearchableTextView writeSelectionWithPasteboardTypes:toPasteboard:]):
783         ditto
784         
785         * WebView.subproj/WebDocumentInternal.h:
786         moved WebDocumentSelection protocol out of here
787         
788         * WebView.subproj/WebDocumentPrivate.h:
789         moved WebDocumentSelection protocol into here, added selectionRect method
790         
791         * WebView.subproj/WebHTMLView.m:
792         (-[WebHTMLView selectionRect]):
793         new method, calls existing bridge method formerly called by _selectionRect
794         (-[WebHTMLView _selectionRect]):
795         now calls [self selectionRect]. We can't just delete _selectionRect because it's used by Mail.
796         
797         * WebView.subproj/WebHTMLViewPrivate.h:
798         removed _selectionRect since it's in WebDocumentSelection now
799         
800         * WebView.subproj/WebTextView.h:
801         removed WebDocumentSelection from protocol list since it's in superclass now
802         
803         * WebView.subproj/WebTextView.m:
804         removed old WebDocumentSelection methods because they are in superclass now
805
806 2005-07-15  Adele Peterson  <adele@apple.com>
807
808         Written by Trey Matteson  <trey@usa.net>
809         Reviewed by John Sullivan.
810
811         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3910 - REGRESSION: Replying "Cancel" to the form repost nag leaves wrong b/f cursor
812
813         * WebView.subproj/WebFrame.m:
814         (-[WebFrame _resetBackForwardList]):  new helper method
815         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
816           If the delegate bailed on the navigation, tell the main frame
817           to reset the b/f cursor back to where it was before we started.
818
819 2005-07-15  John Sullivan  <sullivan@apple.com>
820
821         Written by Trey Matteson
822         Reviewed by me.
823
824         Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=4013
825                 text find doesn't wrap in PDF files
826
827         This just works once WebPDFView implements the WebDocumentText protocol, which is
828         mostly just a matter of forwarding the methods to PDFKit appropriately.
829
830         * WebView.subproj/WebPDFView.h:
831         * WebView.subproj/WebPDFView.m:
832         (-[WebPDFView supportsTextEncoding]):
833         (-[WebPDFView string]):
834         (-[WebPDFView attributedString]):
835         (-[WebPDFView selectedString]):
836         (-[WebPDFView selectedAttributedString]):
837         (-[WebPDFView selectAll]):
838         (-[WebPDFView deselectAll]):
839
840 2005-07-15  John Sullivan  <sullivan@apple.com>
841
842         Reviewed by Kevin Decker.
843         
844         - fixed <rdar://problem/4181884> Searching for text that overlaps selection works 
845         differently in PDFView than in HTMLView
846
847         * WebView.subproj/WebPDFView.m:
848         (PDFSelectionsAreEqual):
849         new function, stand-in for nonexistent -[PDFSelection isEqual:] since calling isEqual:
850         on two identical PDFSelections returns NO
851         (-[WebPDFView searchFor:direction:caseSensitive:wrap:]):
852         Make search algorithm match that in WebCore: initially search inside selection, then check for the case
853         where the found text exactly matches the previous selection, and search from past the selection if so.
854         The implementation is slightly more complicated than it should be due to PDFKit API limitations (about
855         which I added FIXMEs and filed bugs)
856
857 2005-07-15  John Sullivan  <sullivan@apple.com>
858
859         Reviewed by Maciej Stachowiak.
860         
861         - fixed these bugs:
862         <rdar://problem/4181875> Searching for text that overlaps selection works differently in WebTextView than in HTMLView
863         <rdar://problem/3393678> Find not finding text in plain (non-HTML) if all text is selected
864
865         * Misc.subproj/WebSearchableTextView.m:
866         (-[NSString findString:selectedRange:options:wrap:]):
867         Make search algorithm match that in WebCore: initially search inside selection, then check for the case
868         where the found text exactly matches the previous selection, and search from past the selection if so.
869
870 2005-07-14  John Sullivan  <sullivan@apple.com>
871
872         Reviewed by Dave Hyatt.
873
874         - WebKit part of fix for: 
875         <rdar://problem/4181227> webpages incorrectly use standard instead of secondary highlighting in certain cases
876
877         * WebCoreSupport.subproj/WebBridge.m:
878         (-[WebBridge formControlIsResigningFirstResponder:]):
879         Implementation of new method defined in WebCore, passes call along to WebHTMLView
880         
881         * WebView.subproj/WebHTMLViewInternal.h:
882         declare _formControlIsResigningFirstResponder: so bridge can call it
883
884         * WebView.subproj/WebHTMLView.m:
885         (-[WebHTMLView updateFocusState]):
886         just moved in file so it could be called from a different category
887         (-[WebHTMLView _formControlIsResigningFirstResponder:]):
888         new method, updates focus state
889
890 2005-07-14  John Sullivan  <sullivan@apple.com>
891
892         added missing #import to fix build
893         * WebView.subproj/WebPDFView.m
894
895 2005-07-14  Kevin Decker  <kdecker@apple.com>
896
897         Reviewed by cblu
898
899         Fixed: <rdar://problem/4122282> clicking a link in an PDF file opens the link with NSWorkspace without the usual security checks or WebView delegate control
900
901         * WebView.subproj/WebFrame.m:
902         (-[WebFrame _safeLoadURL:]): added
903         * WebView.subproj/WebFrameInternal.h:
904         * WebView.subproj/WebPDFView.m:
905         (-[WebPDFView initWithFrame:]):
906         (-[WebPDFView PDFViewWillClickOnLink:withURL:]): prevents evilness with a call to _safeLoadURL
907         * WebView.subproj/WebTextView.m:
908         (-[WebTextView clickedOnLink:atIndex:]): factored calling out to the bridge, and instead call _safeLoadURL
909
910 2005-07-14  Vicki Murley  <vicki@apple.com>
911
912         Reviewed by Kocienda.
913
914         - WebKit part of fix for  <rdar://problem/4172380> [GENENTECH] window.opener 
915         not available when child opened via target="_new"
916
917         Add a setOpener function to the WebCore bridge, and call this function when opening
918         new windows through Web Kit.
919
920         * WebView.subproj/WebFrame.m:
921         (-[WebFrame _continueLoadRequestAfterNewWindowPolicy:frameName:formState:]):
922
923 2005-07-13  Justin Garcia  <justin.garcia@apple.com>
924
925         Reviewed by John
926         
927         Rolling in changes necessary to build with newer versions of gcc 4.0
928
929         * History.subproj/WebHistoryItem.m:
930         (-[WebHistoryItem copyWithZone:]):
931         * Misc.subproj/WebNSPasteboardExtras.m:
932         (-[NSPasteboard _web_writeImage:URL:title:archive:types:]):
933         * Misc.subproj/WebNSURLExtras.m:
934         (-[NSURL _web_URLWithLowercasedScheme]):
935         (-[NSString _web_mapHostNameWithRange:encode:makeString:]):
936         * WebCoreSupport.subproj/WebBridge.m:
937         (-[WebBridge MIMETypeForPath:]):
938         * WebCoreSupport.subproj/WebImageRendererFactory.m:
939         (-[WebImageRendererFactory imageRendererWithBytes:length:MIMEType:]):
940         * WebCoreSupport.subproj/WebTextRenderer.m:
941         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
942         * WebView.subproj/WebFrame.m:
943         (-[WebFrame _webDataRequestForData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
944         * WebView.subproj/WebHTMLView.m:
945         (-[WebHTMLView _styleFromFontAttributes:]):
946         * WebView.subproj/WebView.m:
947         (-[WebView _writeImageElement:withPasteboardTypes:toPasteboard:]):
948         (-[WebView mainFrameTitle]):
949
950 2005-07-13  John Sullivan  <sullivan@apple.com>
951
952         Reviewed by Maciej Stachowiak.
953
954         - cleaned up Find-related experimental code that I checked in a while back
955
956         * WebView.subproj/WebHTMLView.m:
957         (-[WebHTMLView searchFor:direction:caseSensitive:wrap:]):
958         remove variant of this method that had findInSelection flag; this method is now
959         the same as it was on Tiger.
960         
961         * WebView.subproj/WebView.m:
962         (-[WebView searchFor:direction:caseSensitive:wrap:]):
963         ditto
964
965 2005-07-12  Geoffrey Garen  <ggaren@apple.com>
966
967         -rolled in patch by opendarwin.org@mitzpettel.com 
968         for http://bugzilla.opendarwin.org/show_bug.cgi?id=3435
969         Parentheses are backwards in Hebrew text (no bidi mirroring?)
970         
971         Reviewed by mjs.
972
973         Layout test added to WebCore.
974
975         * WebCoreSupport.subproj/WebTextRenderer.h:
976         * WebCoreSupport.subproj/WebTextRenderer.m:
977         (-[WebTextRenderer _initializeATSUStyle]):
978         (applyMirroringToRun):
979         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):
980         (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
981         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
982
983 2005-07-12  Ken Kocienda  <kocienda@apple.com>
984
985         Reviewed by Chris Blumenberg
986
987         * WebCoreSupport.subproj/WebBridge.m: Removed some glue that allowed one
988         of two unicode (TEC or ICU ) to be chosen at runtime. I just added this
989         dual support yesterday, and while Maciej and I agreed that it was good
990         to land in the tree in case we run into problems in the near future, we
991         also agreed that cutting over to using ICU full time right now is
992         probably the best way to find bugs.
993
994 2005-07-11  Ken Kocienda  <kocienda@apple.com>
995
996         Reviewed by Richard
997
998         * WebCoreSupport.subproj/WebBridge.m:
999         (+[WebBridge setTextConversionMethod:]): New method to support switching text conversion method.
1000         (+[WebBridge textConversionMethod]): Returns current text conversion method.
1001
1002 2005-07-11  Kevin Decker  <kdecker@apple.com>
1003
1004         Reviewed by cblu and mjs.
1005
1006         Fixed: <rdar://problem/4099552> REGRESSION: Safari 1.3 Netscape API NPN_PostURL[Notify] no longer allows manual headers
1007         
1008         Most plugins (flash) send 2 CRFL's between the header and body of their POST requests, while the adboe plugin sends two LF's. This caused us to send custom headers as part of the actual POST data itself, and correspondently, would skew Content-Length.
1009
1010         * Plugins.subproj/WebBaseNetscapePluginView.m:
1011         (-[NSData _web_locationAfterFirstBlankLine]): Look for two LF's as well
1012
1013 2005-07-09  Maciej Stachowiak  <mjs@apple.com>
1014
1015         - back out my revent page cache changes, turns out they cause a
1016         major performance regression on PLT
1017
1018         * WebView.subproj/WebFrame.m:
1019         (-[WebFrame _purgePageCache]):
1020
1021 2005-07-09  Maciej Stachowiak  <mjs@apple.com>
1022
1023         Reviewed by hyatt.
1024
1025         Replace int with unsigned, to avoid going into a huge loop when
1026         back list count is 0.
1027
1028         * WebView.subproj/WebFrame.m:
1029         (-[WebFrame _purgePageCache]):
1030
1031 2005-07-09  Maciej Stachowiak  <mjs@apple.com>
1032
1033         - fixed broken Development build
1034
1035         * WebView.subproj/WebFrame.m:
1036         (-[WebFrame _purgePageCache]):
1037
1038 2005-07-09  Maciej Stachowiak  <mjs@apple.com>
1039
1040         Reviewed by hyatt.
1041
1042         - fix page cache purging logic; this gets rid of a bug where the
1043         page cache would grow without bound if the oldest page cache item
1044         was the snapback item, and changed the rule a bit so page cache
1045         items farther back than the max size get purged, even if fewer
1046         than the max size are in current use.
1047
1048         * WebView.subproj/WebFrame.m:
1049         (-[WebFrame _purgePageCache]):
1050
1051 2005-07-08  Geoffrey Garen  <ggaren@apple.com>
1052
1053         Rolled in patch by opendarwin.org@mitzpettel.com
1054
1055         -fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=3818
1056         Fallback font doesn't have requested weight in ATSUI-rendered text
1057
1058         (See WebCore Changelog for layout test)
1059
1060         Reviewed by mjs.
1061
1062         * WebCoreSupport.subproj/WebTextRenderer.m:
1063         (-[WebTextRenderer _createATSUTextLayoutForRun:style:]):
1064
1065 2005-07-05  Adele Peterson  <adele@apple.com>
1066
1067        Rolling out changes for <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
1068        since it caused a 2% performance regression.
1069
1070         * WebCoreSupport.subproj/WebTextRenderer.m:
1071         (isSpace):
1072         (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
1073         (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
1074         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]):
1075         (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
1076         (initializeCharacterWidthIterator):
1077         (widthForNextCharacter):
1078
1079 2005-07-05  John Sullivan  <sullivan@apple.com>
1080
1081         Reviewed by Chris Blumenberg.
1082         
1083         - fixed <rdar://problem/4158230> Zoom In/Zoom Out in PDF context menu don't update window's notion of text size
1084
1085         * WebView.subproj/WebPDFView.m:
1086         (-[WebPDFView _menuItemsFromPDFKitForEvent:]):
1087         Redirect Actual Size, Zoom In, and Zoom Out context menu items so that they behave exactly like Make Text Standard Size,
1088         Make Text Larger, and Make Text Smaller.
1089
1090 2005-07-01  John Sullivan  <sullivan@apple.com>
1091
1092         Reviewed by Darin Adler.
1093         
1094         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3711: Displayed PDF have limited options in contextual menu
1095         
1096         This was a problem with using Tiger's version of Safari with tip of tree WebKit.
1097
1098         * WebView.subproj/WebPDFView.m:
1099         (-[WebPDFView _anyPDFTagsFoundInMenu:]):
1100         new method, returns YES if the menu contains any items with any of the new PDF-related tags.
1101         (-[WebPDFView menuForEvent:]):
1102         If the executable was linked on Tiger or older (but it will never be older, since this code is
1103         new to Tiger), force all of the PDF-related items into the menu if none of them were there 
1104         after processing by the delegate.
1105
1106 2005-06-30  Darin Adler  <darin@apple.com>
1107
1108         Reviewed by John Sullivan.
1109
1110         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3774>
1111           do renaming so that loaders are called "loader", not "client" or "delegate"
1112
1113         * Misc.subproj/WebIconLoader.h:
1114         * Plugins.subproj/WebNetscapePluginStream.h:
1115         * Plugins.subproj/WebNetscapePluginStream.m:
1116         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
1117         (-[WebNetscapePluginStream start]):
1118         (-[WebNetscapePlugInStreamLoader didFinishLoading]):
1119         (-[WebNetscapePlugInStreamLoader didFailWithError:]):
1120         (-[WebNetscapePlugInStreamLoader cancelWithError:]):
1121         * WebCoreSupport.subproj/WebBridge.m:
1122         (-[WebBridge startLoadingResource:withURL:customHeaders:]):
1123         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]):
1124         (-[WebBridge canRunModalNow]):
1125         * WebCoreSupport.subproj/WebSubresourceClient.h: Removed.
1126         * WebCoreSupport.subproj/WebSubresourceClient.m: Removed.
1127         * WebCoreSupport.subproj/WebSubresourceLoader.h:
1128         * WebCoreSupport.subproj/WebSubresourceLoader.m:
1129         (-[WebSubresourceLoader initWithLoader:dataSource:]):
1130         (-[WebSubresourceLoader dealloc]):
1131         (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
1132         (+[WebSubresourceLoader startLoadingResource:withURL:customHeaders:referrer:forDataSource:]):
1133         (+[WebSubresourceLoader startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]):
1134         (-[WebSubresourceLoader didReceiveResponse:]):
1135         (-[WebSubresourceLoader didReceiveData:lengthReceived:]):
1136         (-[WebSubresourceLoader didFinishLoading]):
1137         (-[WebSubresourceLoader didFailWithError:]):
1138         (-[WebSubresourceLoader cancel]):
1139         * WebKit.pbproj/project.pbxproj:
1140         * WebView.subproj/WebBaseResourceHandleDelegate.h: Removed.
1141         * WebView.subproj/WebBaseResourceHandleDelegate.m: Removed.
1142         * WebView.subproj/WebDataSource.m:
1143         (-[WebDataSourcePrivate dealloc]):
1144         (-[WebDataSource _setLoading:]):
1145         (-[WebDataSource _updateLoading]):
1146         (-[WebDataSource _setPrimaryLoadComplete:]):
1147         (-[WebDataSource _startLoading:]):
1148         (-[WebDataSource _addSubresourceLoader:]):
1149         (-[WebDataSource _removeSubresourceLoader:]):
1150         (-[WebDataSource _addPlugInStreamLoader:]):
1151         (-[WebDataSource _removePlugInStreamLoader:]):
1152         (-[WebDataSource _stopLoadingInternal]):
1153         (-[WebDataSource _defersCallbacksChanged]):
1154         (-[WebDataSource _stopLoadingWithError:]):
1155         (-[WebDataSource data]):
1156         (-[WebDataSource isLoading]):
1157         * WebView.subproj/WebDataSourcePrivate.h:
1158         * WebView.subproj/WebLoader.h:
1159         * WebView.subproj/WebLoader.m:
1160         * WebView.subproj/WebMainResourceClient.h: Removed.
1161         * WebView.subproj/WebMainResourceClient.m: Removed.
1162         * WebView.subproj/WebMainResourceLoader.h:
1163         * WebView.subproj/WebMainResourceLoader.m:
1164         (-[WebMainResourceLoader didReceiveResponse:]):
1165
1166 2005-06-29  David Harrison  <harrison@apple.com>
1167
1168         Reviewed by Dave Hyatt (rendering) and Maciej (editing).
1169
1170         Test cases added:  Coming soon.  Will include with next round of changes for this bug.
1171
1172         This is the first checkin for...
1173         
1174         <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
1175         
1176         Basic strategy is to put tabs into spans with white-space:pre style, and
1177         render them with tabs stops every 8th space, where the space width and
1178         the left margin are those of the enclosing block.
1179         
1180         What's left is to switch to implement white-space:pre-wrap so
1181         that we can coalesce consecutive tabs while maintaining proper
1182         line breaking.  That will keep the markup smaller.
1183
1184         * WebCoreSupport.subproj/WebTextRenderer.m:
1185         (isSpace):
1186         (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
1187         (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
1188         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]):
1189         (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
1190         (initializeCharacterWidthIterator):
1191         (widthForNextCharacter):
1192
1193 2005-06-29  John Sullivan  <sullivan@apple.com>
1194
1195         Reviewed by Kevin.
1196         
1197         - deleted some never-used stub code
1198
1199         * WebView.subproj/WebView.m:
1200         * WebView.subproj/WebViewInternal.h:
1201         * WebView.subproj/WebViewPrivate.h:
1202
1203 2005-06-27  Justin Garcia  <justin.garcia@apple.com>
1204
1205         Patch by Anders Carlsson <andersca@mac.com>
1206
1207         Reviewed by Darin.
1208
1209         - Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3489>
1210         WebView's setSelectedDOMRange doesn't not implement clearing the selection as described in the WebView documentation:
1211         <http://developer.apple.com/documentation/Cocoa/Reference/WebKit/ObjC_classic/Classes/WebView.html>
1212         
1213         * WebView.subproj/WebView.m:
1214         (-[WebView setSelectedDOMRange:affinity:]):
1215         If range is nil, call deselectText.
1216
1217 2005-06-24  Justin Garcia  <justin.garcia@apple.com>
1218
1219         Patch contributed by Duncan Wilcox <duncan@mclink.it>
1220
1221         Reviewed by Darin
1222
1223         - Fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3535>
1224             Spelling suggestions in the context menu don't call the should* delegate methods
1225
1226         * WebView.subproj/WebHTMLView.m:
1227         (-[WebHTMLView _changeSpellingFromMenu:]):
1228         give delegate's webView:shouldInsertText:replacingDOMRange:givenAction: a chance
1229         to prevent replacing of selected text
1230
1231 2005-06-22  John Sullivan  <sullivan@apple.com>
1232
1233         Reviewed by Chris Blumenberg.
1234         
1235         - fixed <rdar://problem/3764645> please add a way to allow WebKit clients to override the WebPDFView context menu
1236
1237         * PublicHeaderChangesFromTiger.txt: Added.
1238         New file to keep track of changes made to public headers that haven't been through API review yet.
1239         Initially lists the WebMenuItem enum tags added to WebUIDelegate.h as part of this change.
1240         
1241         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1242         (-[WebDefaultUIDelegate appendDefaultItems:toArray:]):
1243         new method, handles initial separator
1244         (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
1245         now has defaultMenuItems: parameter. Any menu items in this array are appended at the end of
1246         the standard set.
1247         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
1248         ditto
1249         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]):
1250         This had a defaultMenuItems parameter before but it was always nil. Now it passes the defaultMenuItems
1251         parameter on to the two methods that construct lists (one for editing, the other for viewing). Also
1252         tweaked variable name and type for clarity.
1253         
1254         * WebView.subproj/WebHTMLView.m:
1255         (-[WebHTMLView menuForEvent:]):
1256         passes nil for new defaultItems parameter of _menuForElement:
1257         
1258         * WebView.subproj/WebImageView.m:
1259         (-[WebImageView menuForEvent:]):
1260         ditto
1261         
1262         * WebView.subproj/WebTextView.m:
1263         (-[WebTextView menuForEvent:]):
1264         ditto
1265
1266         * WebView.subproj/WebPDFView.m:
1267         (-[WebPDFView elementAtPoint:]):
1268         new method to create the element dictionary needed for _menuForElement:defaultItems:. Only supplies the
1269         webFrame at this point.
1270         (-[WebPDFView _menuItemsFromPDFKitForEvent:]):
1271         new method to return copies of the menu items that PDFKit would include in the context menu, with
1272         WebKit tags applied
1273         (-[WebPDFView menuForEvent:]):
1274         now calls standard WebKit context menu mechanism, so clients' delegates can modify the context menu as
1275         desired. The initial set of items are the ones WebKit was already displaying for PDF context menus.
1276         
1277         * WebView.subproj/WebUIDelegate.h:
1278         added enum values for the menu items in the PDF context menu
1279         
1280         * WebView.subproj/WebViewPrivate.h:
1281         * WebView.subproj/WebView.m:
1282         (-[WebView _menuForElement:defaultItems:]):
1283         Added the defaultItems: parameter to this method, which is then passed along to WebDefaultUIDelegate.
1284         All callers pass nil except for WebPDFView, at least for now.
1285
1286 2005-06-22  Darin Adler  <darin@apple.com>
1287
1288         Change by Mitz Pettel.
1289         Reviewed by me.
1290
1291         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3618>
1292           RTL runs drawn by CG not reversed properly
1293
1294         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _CG_drawRun:style:geometry:]):
1295         Fix off-by-one mistake in order-swapping loops.
1296
1297 2005-06-22  Darin Adler  <darin@apple.com>
1298
1299         Change by Michael Gaiman.
1300         Reviewed by me.
1301
1302         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3436>
1303           Missing implementation of -[NSData(WebNSDateExtras) _webkit_parseRFC822HeaderFields]
1304
1305         * Misc.subproj/WebNSDataExtras.h: Fixed name of category say NSData, not NSDate.
1306         * Misc.subproj/WebNSDataExtras.m: (-[NSData _webkit_parseRFC822HeaderFields]): Fixed method name.
1307
1308 2005-06-21  John Sullivan  <sullivan@apple.com>
1309
1310         Reviewed by Vicki Murley
1311         
1312         - fixed assertion failure Vicki ran into
1313
1314         * Misc.subproj/WebIconDatabase.m:
1315         (-[WebIconDatabase _forgetIconForIconURLString:]):
1316         Handle the case where there are no associated page URLs for the icon URL
1317
1318 2005-06-20  John Sullivan  <sullivan@apple.com>
1319
1320         Reviewed by Chris Blumenberg.
1321         
1322         - fixed <rdar://problem/4155182> icon database retain counts can be incorrect after removing all icons
1323         
1324         Replaced the concept of "future retain count per page URL" with a simpler concept of "retain count per
1325         page URL", which is maintained even after the icon is actually loaded (unlike the future retain count).
1326         The total retain count for an icon is now the sum of the retain counts per page URL along with any retain
1327         count not associated with a page URL -- this is still needed for some internal housekeeping purposes.
1328
1329         * Misc.subproj/WebIconDatabasePrivate.h:
1330         renamed iconURLToURLs -> iconURLToPageURLs for clarity
1331         renamed URLToIconURL -> pageURLToIconURL for clarity
1332         renamed futureURLToRetainCount -> pageURLToRetainCount (there's no more "future" aspect)
1333         renamed iconURLToRetainCount -> iconURLToExtraRetainCount (it now maintains only some of the retain count)
1334         
1335         * Misc.subproj/WebIconDatabase.m:
1336         (+[WebIconDatabase sharedIconDatabase]):
1337         updated for name changes only
1338         (-[WebIconDatabase init]):
1339         ditto
1340         (-[WebIconDatabase iconForURL:withSize:cache:]):
1341         ditto
1342         (-[WebIconDatabase iconURLForURL:]):
1343         ditto
1344         (-[WebIconDatabase retainIconForURL:]):
1345         just bump the retain count in pageURLToRetainCount, instead of behaving differently based on whether 
1346         an icon had been loaded for this URL; this let me delete the internal method _retainFutureIconForURL:
1347         (-[WebIconDatabase releaseIconForURL:]):
1348         decrement the retain count in pageURLToRetainCount, then handle the case where the retain count for 
1349         this page has gone to zero. I deleted the internal method _releaseFutureIconForURL: formerly called here.
1350         (-[WebIconDatabase removeAllIcons]):
1351         remove all the code that dealt with retain counts; this operation no longer affects retain counts
1352         (-[WebIconDatabase _setIconURL:forURL:]):
1353         remove the code that consolidated multiple retain counts for different page URLs into a single retain 
1354         count; the multiple retain counts are now maintained even after the icon is loaded
1355         (-[WebIconDatabase _clearDictionaries]):
1356         updated for name changes only
1357         (-[WebIconDatabase _loadIconDictionaries]):
1358         ditto
1359         (-[WebIconDatabase _updateFileDatabase]):
1360         ditto
1361         (-[WebIconDatabase _totalRetainCountForIconURLString:]):
1362         new method, sums the retain counts associated with specific page URLs and the extra retain count
1363         not associated with specific page URLs
1364         (-[WebIconDatabase _retainIconForIconURLString:]):
1365         updated for name changes
1366         (-[WebIconDatabase _forgetIconForIconURLString:]):
1367         no longer affects retain counts at all; this is up to callers
1368         (-[WebIconDatabase _releaseIconForIconURLString:]):
1369         this now distinguishes the case where the retain count not associated with any page URLs hits 
1370         zero from the case where the total retain count hits zero, and handles both
1371
1372 2005-06-20  John Sullivan  <sullivan@apple.com>
1373
1374         Reviewed by Chris Blumenberg.
1375         
1376         - added support for emptying the icon database
1377
1378         * Misc.subproj/WebIconDatabase.h: just fixed a typo
1379         * Misc.subproj/WebIconDatabasePrivate.h:
1380         added WebPendingPublic category with method removeAllIcons, and
1381         declared WebIconDatabaseDidRemoveAllIconsNotification string.
1382         
1383         * Misc.subproj/WebIconDatabase.m:
1384         (-[WebIconDatabase removeAllIcons]):
1385         new method, removes all known icons from memory and disk. There's one loose end,
1386         covered by radar bug 4155182, where it's possible for the icon database's retain
1387         counts to get off after this operation. I plan to fix this next.
1388         (-[WebIconDatabase _setIconURL:forURL:]):
1389         just fixed some extra whitespace
1390         (-[WebIconDatabase _forgetIconForIconURLString:]):
1391         new method, extracted from _releaseIconForIconURLString
1392         (-[WebIconDatabase _releaseIconForIconURLString:]):
1393         now calls extracted method
1394
1395         * WebKit.exp:
1396         added _WebIconDatabaseDidRemoveAllIconsNotification
1397
1398 2005-06-19  Darin Adler  <darin@apple.com>
1399
1400         Changes by Mitz Pettel
1401         Reviewed by me.
1402         
1403         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3466>
1404           ATSUI text doesn't render at coordinates greater than 32K
1405
1406         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
1407         Translate the matrix of the CGContext instead of passing the appropriate coordinates to ATSU.
1408
1409 2005-06-17  Richard Williamson   <rjw@apple.com>
1410
1411         Changes by Mitz Pettel
1412         Reviewed by Richard Williamson.
1413
1414         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3545
1415
1416         * WebCoreSupport.subproj/WebTextRenderer.m:
1417         (reverseCharactersInRun):
1418         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
1419
1420 2005-06-17  John Sullivan  <sullivan@apple.com>
1421
1422         Reviewed by Chris.
1423
1424         - fixed <rdar://problem/4151001> Reloading javascript-spawned window with no URL erases its contents
1425
1426         * WebView.subproj/WebFrame.m:
1427         (-[WebFrame reload]):
1428         do nothing if URL is zero-length
1429
1430 2005-06-14  John Sullivan  <sullivan@apple.com>
1431
1432         Changes by Devin Lane.
1433         Reviewed by me.
1434
1435         - fixed <rdar://problem/3766909> PDF viewing could use a zoom control other than the one in the context menu
1436
1437         * WebView.subproj/WebPDFView.h:
1438         now implements protocol _web_WebDocumentTextSizing
1439         * WebView.subproj/WebPDFView.m:
1440         (-[WebPDFView _updateScalingToReflectTextSize]):
1441         new method, sets the PDF scaling from the text size multiplier
1442         (-[WebPDFView setDataSource:]):
1443         call _updateScalingToReflectTextSize
1444         (-[WebPDFView _web_textSizeMultiplierChanged]):
1445         implementation of protocol _web_WebDocumentTextSizing, calls _updateScalingToReflectTextSize
1446
1447 2005-06-14  John Sullivan  <sullivan@apple.com>
1448
1449         Reviewed by Dave Harrison.
1450
1451         * WebView.subproj/WebHTMLView.m:
1452         (-[WebHTMLView _delayedEndPrintMode:]):
1453         After discussing this with Dave, I made this method both more debugger-friendly with asserts for
1454         the cases we don't think could ever happen, and more paranoid by handling these cases in deployment
1455         builds.
1456
1457 2005-06-14  Darin Adler  <darin@apple.com>
1458
1459         - fixed build for Xcode 2.1
1460
1461         * WebKit.pbproj/project.pbxproj: Use BUILT_PRODUCTS_DIR instead of SYMROOT to search for the
1462         WebKitSystemInterface.h file. We could re-jigger this again later, but for now this is consistent
1463         with both the .a file's location and where build-webkit puts the file.
1464
1465 2005-06-13  John Sullivan  <sullivan@apple.com>
1466
1467         Reviewed by Dave Harrison and Maciej.
1468
1469         * WebView.subproj/WebHTMLView.m:
1470         (-[WebHTMLView _endPrintMode]):
1471         new method, extracted from identical code in beginDocument and endDocument. This method must be called
1472         once to counterbalance the code called from knowsPageRange that turns on "printing mode".
1473         (-[WebHTMLView _delayedEndPrintMode:]):
1474         new method, called from "perform after delay". Checks whether the same print operation is still underway
1475         and, if so, delays further. Otherwise calls _endPrintMode directly.
1476         (-[WebHTMLView knowsPageRange:]):
1477         after turning on "printing mode", queue up a delayed call to _delayedEndPrintMode:. If there's an early
1478         error in the print mechanism such that beginDocument is never called, this will cleanly end "printing
1479         mode" and make the webview usable again.
1480         (-[WebHTMLView beginDocument]):
1481         cancel any delayed call to _delayedEndPrintMode:. If we get this far along in printing, then we don't need
1482         the failsafe call to _delayedEndPrintMode: that was set up in knowsPageRange:. Also, call extracted method.
1483         (-[WebHTMLView endDocument]):
1484         call extracted method
1485
1486 2005-06-13  Maciej Stachowiak  <mjs@apple.com>
1487
1488         Reviewed by Chris Blumenberg and Adele.
1489
1490         - better fix for <rdar://problem/4142247> REGRESSION: List to browse widgets at Apple website failed. Closing tab afterwards caused Safari crash
1491         http://bugzilla.opendarwin.org/show_bug.cgi?id=3445
1492
1493         With this change and the matching WebKit change we'll still stop loading the moment you click
1494         a download link, but the unload event and detaching of event handlers will not happen early any more.
1495         
1496         * WebView.subproj/WebDataSource.m:
1497         (-[WebDataSource _stopLoadingInternal]): call stopLoading on bridge instead of closeURL.
1498         * WebView.subproj/WebFrame.m:
1499         (-[WebFrame _transitionToCommitted:]): Revert previous attempt at fix.
1500         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): ditto
1501         (-[WebFrame stopLoading]): ditto
1502
1503 2005-06-13  Chris Petersen  <cpetersen@apple.com>
1504
1505         Changes by Darin.
1506         Reviewed by me.
1507
1508         - fixed problems building deployment due to recent init change
1509
1510         * WebView.subproj/WebArchive.m: (-[WebArchive initWithCoder:]):
1511         Put the [super init] call and check for nil outside the exception handler.
1512         * WebView.subproj/WebResource.m: (-[WebResource initWithCoder:]): Ditto.
1513
1514 2005-06-12  Darin Adler  <darin@apple.com>
1515
1516         Reviewed by Maciej.
1517
1518         - fixed <rdar://problem/4141569> REGRESSION (412+): printing fails on any page with images, and for standalone images
1519           also <http://bugzilla.opendarwin.org/show_bug.cgi?id=3318>
1520
1521         * WebCoreSupport.subproj/WebImageData.m: Got rid of use of tabs instead of spaces throughout the file.
1522         (-[WebImageData _checkSolidColor:]): Wrap use of NSGraphicsContext with an autorelease pool.
1523         (-[WebImageData _fillSolidColorInRect:compositeOperation:context:]): Ditto.
1524         (-[WebImageData tileInRect:fromPoint:context:]): Ditto.
1525         (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]): Ditto.
1526
1527 2005-06-12  Darin Adler  <darin@apple.com>
1528
1529         Changes by Nick Zitzmann.
1530         Reviewed by me.
1531
1532         - fixed init methods that don't handle return values from the init methods they call
1533
1534         * WebView.subproj/WebArchive.m:
1535         (-[WebArchive init]): Use value returned by init, check it for nil too.
1536         (-[WebArchive initWithMainResource:subresources:subframeArchives:]): Ditto.
1537         (-[WebArchive _initWithPropertyList:]): Ditto.
1538         (-[WebArchive initWithCoder:]): Ditto.
1539         * WebView.subproj/WebClipView.m:
1540         (-[WebClipView initWithFrame:]): Ditto.
1541         * WebView.subproj/WebDebugDOMNode.m:
1542         (-[WebDebugDOMNode initWithName:value:source:children:]): Ditto.
1543         * WebView.subproj/WebFrame.m:
1544         (-[WebFormState initWithForm:values:sourceFrame:]): Ditto.
1545         (-[WebFrame initWithName:webFrameView:webView:]): Ditto.
1546         * WebView.subproj/WebFrameView.m:
1547         (-[WebFrameView initWithFrame:]): Ditto.
1548         * WebView.subproj/WebHTMLRepresentation.m:
1549         (-[WebHTMLRepresentation init]): Ditto.
1550         * WebView.subproj/WebHTMLView.m:
1551         (-[WebHTMLView initWithFrame:]): Ditto.
1552         (-[WebTextCompleteController initWithHTMLView:]): Ditto.
1553         * WebView.subproj/WebImageView.m:
1554         (-[WebImageView initWithFrame:]): Ditto.
1555         * WebView.subproj/WebPreferences.m:
1556         (-[WebPreferences initWithIdentifier:]): Ditto.
1557         * WebView.subproj/WebRenderNode.m:
1558         (-[WebRenderNode initWithName:position:rect:view:children:]): Ditto.
1559         * WebView.subproj/WebResource.m:
1560         (-[WebResource init]): Ditto.
1561         (-[WebResource initWithCoder:]): Ditto.
1562         * WebView.subproj/WebView.m:
1563         (-[WebViewPrivate init]): Call super init.
1564         (-[_WebSafeForwarder initWithTarget:defaultTarget:templateClass:]): Use value returned by init, check it for nil too.
1565         (-[WebView initWithFrame:]): Ditto.
1566
1567 2005-06-12  Maciej Stachowiak  <mjs@apple.com>
1568
1569         Reviewed by Chris Blumenberg.
1570
1571         - fixed <rdar://problem/4142247> REGRESSION: List to browse widgets at Apple website failed. Closing tab afterwards caused Safari crash
1572         http://bugzilla.opendarwin.org/show_bug.cgi?id=3445
1573         
1574         * WebView.subproj/WebFrame.m:
1575         (-[WebFrame _transitionToCommitted:]): Stop loading the non-provisional data
1576         source before swapping in the provisional.
1577         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): Stop only
1578         the provisional load here, we would not want to stop loading if this navigation
1579         later turns into a download or is cancelled before being committed.
1580         (-[WebFrame stopLoading]): Factored a bit.
1581         (-[WebFrame _cancelProvisionalLoad]): New method to stop only provisional load,
1582         and cancel any pending policy deicions.
1583         (-[WebFrame _stopNonProvisionalLoadOnly]): New mthod that stops only the main
1584         load.
1585
1586 2005-06-10  John Sullivan  <sullivan@apple.com>
1587
1588         reviewed by Dave Harrison (first & second drafts) and Darin Adler (third draft)
1589
1590         - WebKit part of fix for 
1591         <rdar://problem/4145214> REGRESSION (412+): Can't drag URLs from the location bar
1592
1593         * Misc.subproj/WebNSPasteboardExtras.m:
1594         (+[NSPasteboard initialize]):
1595         Reinstate variation of old code that uses CreatePasteboardFlavorTypeName to set up our new pasteboard types.
1596         The newfangled way didn't work.
1597
1598 2005-06-07  Darin Adler  <darin@apple.com>
1599
1600         Change by Mark Rowe <opendarwin.org@bdash.net.nz>.
1601         Reviewed by me.
1602
1603         - fixed the WebKit half of build failure with spaces in the path
1604           http://bugzilla.opendarwin.org/show_bug.cgi?id=3291
1605
1606         * WebKit.pbproj/project.pbxproj: Quote DERIVED_FILE_DIR when it is substituted
1607         into FRAMEWORK_SEARCH_PATHS, and SYMROOT when into HEADER_SEARCH_PATHS.
1608
1609 2005-06-06  Darin Adler  <darin@apple.com>
1610
1611         * Info.plist: Bumped version to 412+. For some reason it was set to 312.1!
1612
1613 2005-06-05  Darin Adler  <darin@apple.com>
1614
1615         Reviewed by Hyatt.
1616
1617         - fixed build that I broke with the license change (some includes of WebException were still around)
1618
1619         * WebKit.pbproj/project.pbxproj: Removed references to WebException.h/m.
1620         * WebView.subproj/WebDataSource.m: Removed include of WebException.h.
1621         * WebView.subproj/WebHTMLView.m: Ditto.
1622         * WebView.subproj/WebView.m: Ditto.
1623
1624         - fixed build under gcc 4.0 (some code moved here from Foundation had warnings)
1625
1626         * Misc.subproj/WebNSDataExtras.m:
1627         (-[NSString _web_capitalizeRFC822HeaderFieldName]): Use char instead of UInt8.
1628         (-[NSData _webkit_guessedMIMEType]):  Use char instead of UInt8, and take out now-
1629         unneeded type casts.
1630
1631 2005-06-05  Darin Adler  <darin@apple.com>
1632
1633         - added appropriate license headers to most files and updated copyright to reflect publication dates
1634
1635         * LICENSE: Added.
1636         * <lots of files>: Added license header.
1637
1638         * WebKit.pbproj/project.pbxproj: Removed references to NP_objc.h.
1639
1640         * API-Issues.rtf: Removed.
1641         * Misc.subproj/WebException.h: Removed.
1642         * Misc.subproj/WebException.m: Removed.
1643         * Plugins.subproj/NP_objc.h: Removed.
1644
1645 2005-06-01  Darin Adler  <darin@apple.com>
1646
1647         Reviewed by John Sullivan.
1648
1649         - WebKit part of fix for <rdar://problem/3166090> add IE JavaScript extension window.showModalDialog
1650
1651         * WebCoreSupport.subproj/WebBridge.m:
1652         (-[WebBridge createModalDialogWithURL:]): Added. Calls the UI delegate, falling back to the generic
1653         "create WebView" method.
1654         (-[WebBridge canRunModal]): Added. Checks the UI delegate to see if it implements runModal.
1655         (-[WebBridge canRunModalNow]): Added. Checks the "inConnectionCallback" field so we can prevent
1656         deadlock since we can't do any I/O while inside a connection callback until this aspect of NSURLConnection
1657         is changed.
1658         (-[WebBridge runModal]): Added. Sets "defersCallbacks" on all other web views in the group, then
1659         calls runModal on the UI delegate.
1660
1661         * WebView.subproj/WebBaseResourceHandleDelegate.h: Added inConnectionCallback class method.
1662         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1663         (-[WebBaseResourceHandleDelegate connection:willSendRequest:redirectResponse:]): Bump count and then
1664         decrement count so we can tell if we are in a callback.
1665         (-[WebBaseResourceHandleDelegate connection:didReceiveAuthenticationChallenge:]): Ditto.
1666         (-[WebBaseResourceHandleDelegate connection:didCancelAuthenticationChallenge:]): Ditto.
1667         (-[WebBaseResourceHandleDelegate connection:didReceiveResponse:]): Ditto.
1668         (-[WebBaseResourceHandleDelegate connection:didReceiveData:lengthReceived:]): Ditto.
1669         (-[WebBaseResourceHandleDelegate connection:willStopBufferingData:]): Ditto.
1670         (-[WebBaseResourceHandleDelegate connectionDidFinishLoading:]): Ditto.
1671         (-[WebBaseResourceHandleDelegate connection:didFailWithError:]): Ditto.
1672         (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]): Ditto.
1673         (+[WebBaseResourceHandleDelegate inConnectionCallback]): Added. Return YES if count is not 0.
1674
1675         * WebView.subproj/WebMainResourceClient.m:
1676         (-[WebMainResourceClient receivedError:]): Changed to use the method without the connection: parameter
1677         in the base class, since we no longer are overriding the connection: version.
1678         (-[WebMainResourceClient willSendRequest:redirectResponse:]): Change to override the version without
1679         the connection prefix/parameter; now only the base class overrides the actual connection delegate methods.
1680         (-[WebMainResourceClient continueAfterContentPolicy:response:]): Ditto.
1681         (-[WebMainResourceClient didReceiveResponse:]): Ditto.
1682         (-[WebMainResourceClient didReceiveData:lengthReceived:]): Ditto.
1683         (-[WebMainResourceClient didFinishLoading]): Ditto.
1684         (-[WebMainResourceClient didFailWithError:]): Ditto.
1685         (-[WebMainResourceClient loadWithRequestNow:]): Call the method without the connection parameter.
1686
1687         * WebView.subproj/WebUIDelegatePrivate.h: Added new SPI here that WebBrowser implements.
1688
1689 2005-05-26  Darin Adler  <darin@apple.com>
1690
1691         Reviewed by John.
1692
1693         - fix build failure from when I removed WebCoreUnicode
1694
1695         * WebCoreSupport.subproj/WebTextRenderer.m: Removed import of WebUnicode.h that I missed.
1696         (-[WebTextRenderer _convertUnicodeCharacters:length:toGlyphs:]): Switch from our own macros
1697         to the ICU macros for surrogate pairs.
1698         (widthForNextCharacter): Ditto.
1699
1700 2005-05-26  David Harrison  <harrison@apple.com>
1701
1702         <rdar://problem/4120518> Mail: control-T in an empty message crashes mail
1703
1704         * WebCoreSupport.subproj/WebBridge.m:
1705         (-[WebBridge issueTransposeCommand]):
1706         New, to support transpose in JS.
1707
1708 2005-05-26  Darin Adler  <darin@apple.com>
1709
1710         Reviewed by Richard and Dave Harrison.
1711
1712         - eliminate WebCoreUnicode and use ICU directly instead
1713
1714         * Misc.subproj/WebKitNSStringExtras.m: (canUseFastRenderer): Use u_charDirection directly.
1715         * WebCoreSupport.subproj/WebTextRenderer.m: Removed import of <WebCore/WebCoreUnicode.h>.
1716         * WebView.subproj/WebHTMLView.m: (+[WebHTMLView initialize]): Removed call to WebKitInitializeUnicode.
1717
1718         * Misc.subproj/WebUnicode.h: Removed.
1719         * Misc.subproj/WebUnicode.m: Removed.
1720         * Misc.subproj/WebUnicodeTables.m: Removed.
1721
1722         * WebKit.pbproj/project.pbxproj: Removed files.
1723
1724 2005-05-24  Richard Williamson   <rjw@apple.com>
1725
1726         Fixed <rdar://problem/4097289> -[WebView elementAtPoint:] failing when WebView is nested and offset
1727
1728         Code to determine the correct frame under the window point was
1729         converting the point incorrectly.
1730
1731         Reviewed by Chris.
1732
1733         * WebView.subproj/WebView.m:
1734         (-[WebView _frameViewAtWindowPoint:]):
1735
1736 2005-05-23  John Sullivan  <sullivan@apple.com>
1737
1738         Reviewed by Kevin.
1739         
1740         - WebKit part of <rdar://problem/4125783> WebKit needs a way to control whether textareas are resizable
1741
1742         * WebView.subproj/WebPreferencesPrivate.h:
1743         added private-for-now getter and setter for new preference
1744         * WebView.subproj/WebPreferenceKeysPrivate.h:
1745         added private preference key controlling whether textareas are resizable
1746         * WebView.subproj/WebPreferences.m:
1747         (+[WebPreferences initialize]):
1748         initial value of new preference is NO, so other clients' behavior doesn't change
1749         (-[WebPreferences textAreasAreResizable]):
1750         new getter
1751         (-[WebPreferences setTextAreasAreResizable:]):
1752         new setter
1753         
1754         * WebView.subproj/WebView.m:
1755         (-[WebView _updateWebCoreSettingsFromPreferences:]):
1756         update this new setting in WebCore
1757
1758         * English.lproj/StringsNotToBeLocalized.txt:
1759         updated for these changes
1760
1761 2005-05-23  Chris Blumenberg  <cblu@apple.com>
1762
1763         Changed type for identifier parameter in WebResourceLoadDelegate-related calls to id from NSString.
1764
1765         Reviewed by kevin.
1766
1767         * WebCoreSupport.subproj/WebBridge.m:
1768         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]):
1769         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
1770         * WebView.subproj/WebFrame.m:
1771         (-[WebFrame _opened]):
1772         (-[WebFrame _requestFromDelegateForRequest:identifier:error:]):
1773         (-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]):
1774         (-[WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:]):
1775         * WebView.subproj/WebFrameInternal.h:
1776
1777 2005-05-20  Chris Blumenberg  <cblu@apple.com>
1778
1779         Fixed: <rdar://problem/4098786> sync. XMLHttpRequest works w/o AllowNetworkAccess key because load delegate is not consulted
1780
1781         Synchronous loads did not cause the willSendRequest method on the resource load delegate to be called. This is the method that Dashboard uses to enforce AllowNetworkAccess and this must be called to avoid exploits.
1782
1783         Reviewed by sullivan.
1784
1785         * WebCoreSupport.subproj/WebBridge.m:
1786         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): call [WebFrame _requestFromDelegateForRequest:identifier:error:] then 
1787         [WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:] so synthetic resource load delegate 
1788         methods are called and the data is saved as a WebResource for resources in the WebCore cache.
1789
1790         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): call [WebFrame _requestFromDelegateForRequest:identifier:error:],
1791         respect its result, do the load and then call [WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:] 
1792         for synchronous loads
1793
1794         * WebView.subproj/WebFrame.m:
1795         (-[WebFrame _opened]): call [WebFrame _requestFromDelegateForRequest:identifier:error:] then 
1796         [WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:] so synthetic resource load delegate methods are called 
1797         for subresrources in the page cache
1798         
1799         (-[WebFrame _requestFromDelegateForRequest:identifier:error:]): new, was part of the removed _sendResourceLoadDelegateMessagesForURL:::
1800         This method calls identifierForInitialRequest and willSendRequest.
1801
1802         (-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]): new, was part of the removed _sendResourceLoadDelegateMessagesForURL:::
1803         This method calls the remaining resource load delegate messages.
1804
1805         (-[WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:]): new, saves the resource and calls
1806         [WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]
1807
1808         * WebView.subproj/WebFrameInternal.h:
1809
1810 2005-05-17  Chris Blumenberg  <cblu@apple.com>
1811         
1812         Fixed: <rdar://problem/4119282> clicking a link in an RTF file opens the link with NSWorkspace without the usual security checks or WebView delegate control
1813
1814         Reviewed by mjs.
1815
1816         * WebCoreSupport.subproj/WebBridge.m:
1817         (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]): pass the passed referrer to canLoadURL::: not [self referrer]
1818         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): ditto
1819         * WebView.subproj/WebTextView.m:
1820         (-[WebTextView clickedOnLink:atIndex:]): call the loadURL bridge method so that security checks are made, command/option clicks work, policy delegate is consulted etc.
1821
1822 2005-05-17  Chris Blumenberg  <cblu@apple.com>
1823
1824         Fixed: <rdar://problem/4120255> web archives on remote servers can be viewed directly (with major security issues); should download instead
1825
1826         Reviewed by mjs.
1827
1828         * WebView.subproj/WebBaseResourceHandleDelegate.h:
1829         * WebView.subproj/WebMainResourceClient.m:
1830         (-[WebMainResourceClient continueAfterContentPolicy:response:]): if the WebKit client has chosen to "use" a remote web archive, stop the load with an error
1831
1832 2005-05-16  Darin Adler  <darin@apple.com>
1833
1834         - attempt to get things building under "Saffron" development tools
1835
1836         * WebKit.pbproj/project.pbxproj: Use BUILT_PRODUCTS_DIR instead of SYMROOT.
1837
1838 2005-05-13  John Sullivan  <sullivan@apple.com>
1839
1840         Reviewed by Kevin.
1841         
1842         - fixed <rdar://problem/4093306> Safari crashes if Esc key is held down during series 
1843         of authentication sheets
1844
1845         * Panels.subproj/WebAuthenticationPanel.m:
1846         (-[WebAuthenticationPanel cancel:]):
1847         retain and autorelease self. This is a workaround for an AppKit key-handling issue, which I wrote up as:
1848         <rdar://problem/4118422> Key-down events can be sent to a closed window if a key is kept pressed down
1849
1850 2005-05-12  John Sullivan  <sullivan@apple.com>
1851
1852         Reviewed by Kevin.
1853
1854         - rolled in changes from experimental-ui-branch to support resizable textareas
1855         and find-as-you-type and confirming unsubmitted form changes. The files/functions 
1856         modified are listed just below. After that are the ChangeLog comments from the branch.
1857
1858         * WebCoreSupport.subproj/WebBridge.m:
1859         (-[WebBridge textDidChange:]):
1860         * WebView.subproj/WebFormDelegate.h:
1861         * WebView.subproj/WebFormDelegate.m:
1862         (-[WebFormDelegate textDidChange:inFrame:]):
1863         * WebView.subproj/WebHTMLView.m:
1864         (-[WebHTMLView maintainsInactiveSelection]):
1865         (-[WebHTMLView searchFor:direction:caseSensitive:wrap:]):
1866         (-[WebHTMLView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
1867         * WebView.subproj/WebView.m:
1868         (-[WebView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
1869         (-[WebView searchFor:direction:caseSensitive:wrap:]):
1870         (-[WebView makeTextStandardSize:]):
1871         (-[WebView maintainsInactiveSelection]):
1872         * WebView.subproj/WebViewPrivate.h:
1873         
1874         2005-04-18  John Sullivan  <sullivan@apple.com>
1875
1876                 WebKit support for notifying a form delegate when a
1877                 textarea's contents have changed (as opposed to a 
1878                 textfield, which was already handled).
1879
1880                 Reviewed by Maciej.
1881
1882                 * WebView.subproj/WebFormDelegate.h:
1883                 * WebView.subproj/WebFormDelegate.m:
1884                 (-[WebFormDelegate textDidChange:inFrame:]):
1885                 new form delegate method
1886
1887                 * WebCoreSupport.subproj/WebBridge.m:
1888                 (-[WebBridge textDidChange:]):
1889                 new method, calls through to form delegate
1890                 
1891         2005-04-11  John Sullivan  <sullivan@apple.com>
1892
1893                 Fixed inability to wrap around in Find in Page 
1894
1895                 * WebView.subproj/WebView.m:
1896                 (-[WebView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
1897                 changed wrapFlag from NO to YES on two lines (copy/paste error)
1898
1899         2005-04-07  John Sullivan  <sullivan@apple.com>
1900
1901                 WebKit support for find-as-you-type. Needed an additional parameter on
1902                 a method from WebDocumentSearching protocol. Since that's a public protocol, 
1903                 I couldn't just add the parameter. For now I hacked it with an undeclared
1904                 internal method that's discovered via respondsToSelector. Probably the right
1905                 long-term approach is to deprecate the WebDocumentSearching protocol and introduce
1906                 a replacement that has a more flexible set of parameters for possible future
1907                 expansion.
1908
1909                 Reviewed by Dave Hyatt.
1910
1911                 * WebView.subproj/WebHTMLView.m:
1912                 (-[WebHTMLView searchFor:direction:caseSensitive:wrap:]):
1913                 now calls new one-more-parameter version passing NO for new parameter to match old behavior
1914                 (-[WebHTMLView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
1915                 new method, adds findInSelection parameter and passes it through to bridge
1916                  
1917                 * WebView.subproj/WebView.m:
1918                 (-[WebView searchFor:direction:caseSensitive:wrap:]):
1919                 now calls new one-more-parameter version passing NO for new parameter to match old behavior
1920                 (-[WebView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
1921                 new method, adds findInSelection parameter and passes it through
1922
1923         2005-04-07  John Sullivan  <sullivan@apple.com>
1924
1925                 WebKit support to allow clients to control whether the selection is still
1926                 drawn when the first responder is elsewhere. Formerly this was hardwired
1927                 to be true only when -[WebView isEditable] was true.
1928
1929                 Reviewed by Darin.
1930
1931                 * WebView.subproj/WebHTMLView.m:
1932                 (-[WebHTMLView maintainsInactiveSelection]):
1933                 check [WebView maintainsInactiveSelection] rather than just [WebView isEditable]
1934                 
1935                 * WebView.subproj/WebViewPrivate.h:
1936                 * WebView.subproj/WebView.m:
1937                 (-[WebView maintainsInactiveSelection]):
1938                 new method for clients to override, returns -[self isEditable]
1939         
1940
1941 2005-05-10  John Sullivan  <sullivan@apple.com>
1942
1943         Reviewed by Kevin.
1944         
1945         - WebKit support for <rdar://problem/3795701> Menu item/keyboard shortcut to 
1946         restore text zoom to normal
1947
1948         * WebView.subproj/WebView.m:
1949         (-[WebView validateUserInterfaceItem:]):
1950         validate makeTextStandardSize by calling canMakeTextStandardSize
1951         (-[WebView canMakeTextStandardSize]):
1952         new method, returns YES unless text size multiplier is currently 1
1953         (-[WebView makeTextStandardSize:]):
1954         new method, sets text size multiplier to 1
1955         
1956         * WebView.subproj/WebViewPrivate.h:
1957         add makeTextStandardSize: and canMakeTextStandardSize to pending public category
1958
1959 2005-05-10  John Sullivan  <sullivan@apple.com>
1960
1961         Reviewed by Chris.
1962         
1963         - fixed <rdar://problem/4067981> Mail places RTF flavor before RTFD flavor when dragging 
1964         mixed image/text content.
1965
1966         * WebView.subproj/WebHTMLView.m:
1967         (+[WebHTMLView _selectionPasteboardTypes]):
1968         put RTFD type before RTF type in array of types to declare
1969
1970 2005-05-09  Chris Blumenberg  <cblu@apple.com>
1971
1972         Turned assertion into error message to prevent crash when encountering this bug:
1973         <rdar://problem/4067625> connection:willCacheResponse: is called inside of [NSURLConnection initWithRequest:delegate:]
1974         
1975         * WebView.subproj/WebBaseResourceHandleDelegate.h:
1976         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1977         (-[WebBaseResourceHandleDelegate loadWithRequest:]): set flag to track when we're initializing the connection
1978         (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]): log error
1979
1980 2005-05-09  Darin Adler  <darin@apple.com>
1981
1982         * Makefile.am: Don't set up PBXIntermediatesDirectory explicitly;
1983         Not needed to make builds work, spews undesirable error messages too.
1984
1985 2005-05-06  Darin Adler  <darin@apple.com>
1986
1987         Reviewed by Maciej.
1988
1989         - make building multiple trees with make work better
1990
1991         * Makefile.am: Set up Xcode build directory before invoking xcodebuild.
1992
1993 2005-05-04  Darin Adler  <darin@apple.com>
1994
1995         Reviewed by Dave Hyatt.
1996
1997         - fixed layout tests
1998
1999         * WebKit.pbproj/project.pbxproj: Set deployment target to 10.3 in the build styles.
2000         When built without a build style (by Apple B&I) we want to get the target from the
2001         environment. But when built with a build style (by Safari engineers and others), we want
2002         to use 10.3. Because our deployment target was not set, we ran into this bug:
2003
2004             <rdar://problem/4108717> CTFontGetGlyphWithName doesn't work with some strings
2005
2006         * Makefile.am: Took out extra parameters that make command-line building different from
2007         Xcode building. Now that this is fixed, you should not get a full rebuild if you switch
2008         from command line to Xcode or back.
2009
2010 2005-05-04  Chris Blumenberg  <cblu@apple.com>
2011
2012         Fixed: 
2013         <rdar://problem/4078417> REGRESSION (125-412): MLB gameday page doesn't update (Flash)
2014         <rdar://problem/4072280> XMLHttpRequest calls onReadyStateChange callback with bogus status value
2015         
2016         Reviewed by john.
2017
2018         Our WebKit-level caching of subresources "dumbed-down" information held in NSURLResponse. This caused some loads to lack response headers and thus disabling cache directives. Status codes were also not retained and this caused XMLHttpRequest to fail frequently. The fix is to have WebResource retain the NSURLResponse and to use the NSURLResponse when we decide to load from WebResources.
2019
2020         * WebCoreSupport.subproj/WebBridge.m:
2021         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): call new [WebResource _initWithData:URL:response:]
2022         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2023         (-[WebBaseResourceHandleDelegate _canUseResourceWithResponse:]): new, checks response cache directives
2024         (-[WebBaseResourceHandleDelegate loadWithRequest:]): call _canUseResourceWithResponse:
2025         (-[WebBaseResourceHandleDelegate saveResource]): call new [WebResource _initWithData:URL:response:]
2026         * WebView.subproj/WebResource.m:
2027         (-[WebResourcePrivate dealloc]):
2028         (-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]): call renamed _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:
2029         (-[WebResource initWithCoder:]): decode the NSURLReponse
2030         (-[WebResource encodeWithCoder:]): encode the NSURLReponse
2031         (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:]): take the NSURLReponse
2032         (-[WebResource _initWithData:URL:response:]): new
2033         (-[WebResource _initWithPropertyList:]): decode the NSURLReponse
2034         (-[WebResource _propertyListRepresentation]): encode the NSURLReponse
2035         (-[WebResource _response]): return ivar if we have one
2036         * WebView.subproj/WebResourcePrivate.h:
2037
2038 2005-05-03  David Hyatt  <hyatt@apple.com>
2039
2040         Fix object element support so that fallback content works.  With this change Safari passes the Acid2 test.
2041         
2042         Reviewed by Maciej
2043
2044         * WebCoreSupport.subproj/WebBridge.m:
2045         (-[WebBridge determineObjectFromMIMEType:URL:]):
2046         * WebView.subproj/WebDataSource.m:
2047         (-[WebDataSource _receivedMainResourceError:complete:]):
2048         * WebView.subproj/WebMainResourceClient.m:
2049         (-[WebMainResourceClient continueAfterContentPolicy:response:]):
2050
2051 2005-05-03  Darin Adler  <darin@apple.com>
2052
2053         * WebView.subproj/WebUIDelegate.h: Fixed incorrect comment.
2054
2055 2005-05-01  Darin Adler  <darin@apple.com>
2056
2057         - move to Xcode native targets and stop checking in generated files
2058
2059         * WebKit.pbproj/project.pbxproj: Updated to use native targets and generate all the generated
2060         files, so we don't have to check them in any more.
2061         * Info.plist: Added. Native targets use a separate file for this.
2062
2063         * Plugins.subproj/npapi.m: Fixed import statement to get npapi.h from <WebKit/> rather than current directory.
2064
2065         * Makefile.am: Removed timestamp cleaning rules since we don't use it any more.
2066
2067         * .cvsignore: Removed various timestamp files.
2068
2069         * DOM.subproj/DOM-compat.h: Removed.
2070         * DOM.subproj/DOM.h: Removed.
2071         * DOM.subproj/DOMCSS.h: Removed.
2072         * DOM.subproj/DOMCore.h: Removed.
2073         * DOM.subproj/DOMEvents.h: Removed.
2074         * DOM.subproj/DOMExtensions.h: Removed.
2075         * DOM.subproj/DOMHTML.h: Removed.
2076         * DOM.subproj/DOMPrivate.h: Removed.
2077         * DOM.subproj/DOMRange.h: Removed.
2078         * DOM.subproj/DOMStylesheets.h: Removed.
2079         * DOM.subproj/DOMTraversal.h: Removed.
2080         * DOM.subproj/DOMViews.h: Removed.
2081         * Plugins.subproj/WebScriptObject.h: Removed.
2082         * Plugins.subproj/npapi.h: Removed.
2083         * Plugins.subproj/npruntime.h: Removed.
2084         * copy-webcore-files-to-webkit: Removed.
2085         * embed-frameworks.sh: Removed.
2086         * force-clean-timestamp: Removed.
2087
2088 2005-04-28  Darin Adler  <darin@apple.com>
2089
2090         Reviewed by Maciej.
2091
2092         - fixed problems preventing us from compiling with gcc 4.0
2093
2094         * WebKit.pbproj/project.pbxproj: Removed -fobjc-exceptions because I can't figure out an easy
2095         way to pass it only when compiling Objective-C/C++. Removed -Wmissing-prototypes from
2096         WARNING_CPLUSPLUSFLAGS since it's now a C-only warning.
2097
2098         * History.subproj/WebHistoryItem.m: (-[WebHistoryItem pageCache]): Changed return type
2099         to match the declaration.
2100         * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
2101         Fixed a BOOL that should have been a Boolean.
2102         * WebCoreSupport.subproj/WebTextRenderer.m: Removed redundant copy of ROUND_TO_INT, also in
2103         a WebCore header.
2104         (-[WebTextRenderer _computeWidthForSpace]): Had to add cast because of difference in type of
2105         ROUND_TO_INT vs. CEIL_TO_INT.
2106         (pathFromFont): Added a cast to convert UInt8 * to char *.
2107         * WebView.subproj/WebFrameView.m:
2108         (-[WebFrameView _setDocumentView:]): Fixed parameter type to match the declaration.
2109         (-[WebFrameView documentView]): Fixed return type to match the declaration.
2110         * WebView.subproj/WebHTMLView.m:
2111         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
2112         Initialized a variable to quiet an incorrect gcc 4.0 uninitialized variable warning.
2113         (-[WebHTMLView deleteToMark:]): Switched from @try style to NS_DURING style of exception handler
2114         because we can't pass -fobjc-exceptions just to Objective-C at the moment (see above).
2115         (-[WebHTMLView selectToMark:]): Ditto.
2116         (-[WebHTMLView swapWithMark:]): Ditto.
2117
2118 2005-04-27  John Sullivan  <sullivan@apple.com>
2119
2120         Reviewed by Dave Harrison.
2121         
2122         - fixed <rdar://problem/3547489> pop-up window blocking preference and 
2123         menu item can easily get out of sync.
2124
2125         * WebView.subproj/WebPreferences.m:
2126         (-[WebPreferences _setStringValue:forKey:]):
2127         save local value before setting value in NSUserDefaults, so clients reacting to NSUserDefaults
2128         change notification but calling back on WebPreferences API will see the updated value.
2129         (-[WebPreferences _setIntegerValue:forKey:]):
2130         ditto
2131         (-[WebPreferences _setBoolValue:forKey:]):
2132         ditto
2133
2134 2005-04-26  Richard Williamson   <rjw@apple.com>
2135
2136         Fixed <rdar://problem/4098713> Scripting API is incompatible with Mozilla
2137
2138         Reviewed by Chris.
2139
2140         * Plugins.subproj/npfunctions.h:
2141         * Plugins.subproj/npruntime.h:
2142
2143 2005-04-26  Darin Adler  <darin@apple.com>
2144
2145         Reviewed by John.
2146
2147         - fixed <rdar://problem/3655817> please add support for mouse wheel events and the onmousewheel handler
2148
2149         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView scrollWheel:]): Call sendScrollWheelEvent: method
2150         instead of the old scrollOverflowWithScrollWheelEvent: (just a name change).
2151
2152 2005-04-18  Darin Adler  <darin@apple.com>
2153
2154         Reviewed by Hyatt.
2155
2156         - fixed <rdar://problem/4092614> REGRESSION (Tiger): progressively loaded background images "scroll around" instead of just appearing
2157
2158         * WebCoreSupport.subproj/WebImageData.m:
2159         (-[WebImageData _imageSourceOptions]): Moved a global inside this function, since it's only used here.
2160         (-[WebImageData _cacheImages:allImages:]): Fixed a sizeof that was getting the size of the wrong thing.
2161         (-[WebImageData _isSizeAvailable]): Used calloc in a more consistent way.
2162         (drawPattern): Removed an unneeded cast.
2163         (-[WebImageData tileInRect:fromPoint:context:]): Here's the actual bug fix. Don't use the image size
2164         when deciding whether the image needs to be tiled as a pattern nor when creating the pattern: in both
2165         cases, use the tile size. The old way was wrong, and the new way works perfectly. Also removed uneeded
2166         error message when the image is not yet loaded enough to create a CGImageRef for it -- it's fine to
2167         draw nothing in that case.
2168
2169 2005-04-14  John Sullivan  <sullivan@apple.com>
2170
2171         Reviewed by Chris.
2172
2173         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2174         (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]):
2175         Beefed up assertion that's been bugging me and Chris to include
2176         the two troublemaking values.
2177
2178 2005-04-05  David Hyatt  <hyatt@apple.com>
2179
2180         Fix for 4077106, wheel scroll amount smaller in Tiger.  All along wheeling should have been 4x the default
2181         line height of 10 (just as arrow keys did).  Scroll arrows should have done this too for scroll views (they did
2182         already for overflow sections).  This patch puts the override into the scrollview itself, and removes the
2183         multipliers in the private frame methods.
2184         
2185         Reviewed by darin
2186
2187         * WebView.subproj/WebFrameView.m:
2188         (-[WebFrameView _verticalKeyboardScrollDistance]):
2189         (-[WebFrameView initWithFrame:]):
2190         (-[WebFrameView _horizontalKeyboardScrollDistance]):
2191
2192 === WebKit-312.1 ===
2193
2194 2005-03-31  Chris Blumenberg  <cblu@apple.com>
2195
2196         Fixed: <rdar://problem/4070729> REGRESSION (125-311, Panther-only?): Safari crashes while reloading "My eBay" page
2197
2198         Reviewed by rjw.
2199
2200         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2201         (-[WebBaseResourceHandleDelegate resourceData]): retain and autorelease resourceData since releaseResources (which releases resourceData) may be called before the caller of this method has an opporuntity to retain the returned data
2202
2203 === Safari-412 ===
2204
2205 === Safari-411 ===
2206
2207 2005-03-23  Richard Williamson   <rjw@apple.com>
2208
2209         Use Patti Yeh's hack to determine the appropriate rectangle
2210         to place the "associated word" window.  
2211         If there is no marked text firstRectForCharacterRange: will
2212         use the selected range to determine the returned rectangle,
2213         ignoring the input range.  This is the fix from
2214         4029491 that I previously backed out.
2215
2216         Reviewed by Vicki.
2217
2218         * WebView.subproj/WebHTMLView.m:
2219         (-[WebHTMLView firstRectForCharacterRange:]):
2220
2221 2005-03-23  Richard Williamson   <rjw@apple.com>
2222
2223         Fixed <rdar://problem/4062490> REGRESSION (WebKit-408): no subresources reported in Activity window after going back at hrweb.apple.com
2224
2225         Stop collecting subresource responses after the document
2226         had loaded, not after it has been opened.
2227
2228         Reviewed by Chris.
2229
2230         * WebView.subproj/WebFrame.m:
2231         (-[WebFrame _setState:]):
2232         (-[WebFrame _opened]):
2233
2234 2005-03-21  Maciej Stachowiak  <mjs@apple.com>
2235
2236         Reviewed by Darin.
2237
2238         <rdar://problem/4051145> The QuickTime Cocoa plug-in needs an SPI that it can call to check for URL policy
2239
2240         * Plugins.subproj/WebPluginContainerCheck.h: Added.
2241         * Plugins.subproj/WebPluginContainerCheck.m: Added this new helper class to encapsulate
2242         an async plugin navigation check.
2243         (+[WebPluginContainerCheck checkWithRequest:target:resultObject:selector:controller:]): Convenience allocator that gives autoreleased value.
2244         (-[WebPluginContainerCheck initWithRequest:target:resultObject:selector:controller:]): Initializer.
2245         (-[WebPluginContainerCheck finalize]): Just assert that we're done, it would
2246         be bad to deallocate this object while request is still outstanding.
2247         (-[WebPluginContainerCheck dealloc]): Ditto.
2248         (-[WebPluginContainerCheck _continueWithPolicy:]): Method to continue after async
2249         policy check.
2250         (-[WebPluginContainerCheck _isDisallowedFileLoad]): Do "file: URL from remote content"
2251         check.
2252         (-[WebPluginContainerCheck _actionInformationWithURL:]): Helper to make action
2253         dictionary.
2254         (-[WebPluginContainerCheck _askPolicyDelegate]): Call policy delegate to let
2255         the app decide if this load is allowed.
2256         (-[WebPluginContainerCheck start]): Start the check.
2257         (-[WebPluginContainerCheck cancel]): Cancel a check in progress.
2258         * Plugins.subproj/WebPluginController.h:
2259         * Plugins.subproj/WebPluginController.m:
2260         (-[WebPluginController initWithDocumentView:]): Initialize new _checksInProgress field.
2261         (-[WebPluginController _webPluginContainerCancelCheckIfAllowedToLoadRequest:]): Implement
2262         this new SPI method.
2263         (-[WebPluginController _cancelOutstandingChecks]): New helper to make sure to cancel
2264         all outstanding requests when destroying all plugins.
2265         (-[WebPluginController destroyAllPlugins]): Call above helper.
2266         (-[WebPluginController _webPluginContainerCheckIfAllowedToLoadRequest:inFrame:resultObject:selector:]): Implement this new plug-in SPI method.
2267         (-[WebPluginController bridge]): New helper method.
2268         (-[WebPluginController webView]): New helper method.
2269         * WebView.subproj/WebPolicyDelegatePrivate.h: Add new navigation
2270         type WebNavigationTypePlugInRequest.
2271         * WebKit.pbproj/project.pbxproj: Add new files.
2272         * WebView.subproj/WebDefaultPolicyDelegate.m:
2273         (-[WebDefaultPolicyDelegate webView:decidePolicyForNavigationAction:request:frame:decisionListener:]): Don't open externally on a plug-in request.
2274
2275 2005-03-23  Richard Williamson   <rjw@apple.com>
2276
2277         Fixed <rdar://problem/4053515> REGRESSION (Mail): Kotoeri input method reconversion does not work in WebViews
2278
2279         We now use actual document NSRanges to represent both marked text
2280         ranges and selection ranges.
2281
2282         Reviewed by Ken Kocienda.
2283
2284         * WebView.subproj/WebHTMLView.m:
2285         (-[WebHTMLView validAttributesForMarkedText]):
2286         (-[WebHTMLView firstRectForCharacterRange:]):
2287         (-[WebHTMLView selectedRange]):
2288         (-[WebHTMLView markedRange]):
2289         (-[WebHTMLView _selectMarkedText]):
2290         (-[WebHTMLView setMarkedText:selectedRange:]):
2291
2292 === Safari-410 ===
2293
2294 2005-03-22  Darin Adler  <darin@apple.com>
2295
2296         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
2297
2298 === Safari-409 ===
2299
2300 2005-03-20  Maciej Stachowiak  <mjs@apple.com>
2301
2302         Reviewed by Darin.
2303
2304         <rdar://problem/4060020> Add stub version of security SPI for QuickTime plug-in so QuickTime team has something to compile and link against
2305         
2306         * Plugins.subproj/WebPluginContainerPrivate.h: Added.
2307         * Plugins.subproj/WebPluginController.m:
2308         (-[WebPluginController _webPluginContainerCheckIfAllowedToLoadRequest:inFrame:resultObject:selector:]):
2309         (-[WebPluginController _webPluginContainerCancelCheckIfAllowedToLoadRequest:]):
2310         * WebKit.pbproj/project.pbxproj:
2311
2312 2005-03-19  David Harrison  <harrison@apple.com>
2313
2314         Reviewed by Maciej.
2315         
2316         <rdar://problem/4059479> Misspelling underline does underline the whole word, could go farther to the right
2317
2318         * WebCoreSupport.subproj/WebTextRenderer.m:
2319         (-[WebTextRenderer misspellingLinePatternGapWidth]):
2320         (-[WebTextRenderer drawLineForMisspelling:withWidth:]):
2321         Consider that the last pixel in the underline dot pattern is transparent.
2322
2323 2005-03-19  Darin Adler  <darin@apple.com>
2324
2325         Reviewed by Maciej (a while back).
2326
2327         - fixed <rdar://problem/4059323> local-file security check is allowing plug-in streams, but must not
2328
2329         * Plugins.subproj/WebNetscapePluginStream.m:
2330         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
2331         Roll out change I made on 3-13. That change is needed for subresource, but not for plug-in streams.
2332         For plug-in streams it's too risky, and leaves a serious security hole open.
2333
2334 2005-03-19  Darin Adler  <darin@apple.com>
2335
2336         Reviewed by Ken and John.
2337
2338         - fixed <rdar://problem/4059123> REGRESSION (402-403): deleteWordForward: and deleteWordBackward: start deleting single characters after the first delete
2339
2340         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
2341         Fixed backwards logic in here and added missing check. Set action to one of the two typing actions only
2342         if isTypingAction is YES.
2343
2344 2005-03-19  David Harrison  <harrison@apple.com>
2345
2346         Reviewed by me (written by Patti Yeh).
2347         
2348         <rdar://problem/4029491> <TCIM> CangJie: the candidate window appears at the top left hand corner during typing in Mail and iChat
2349
2350         * WebView.subproj/WebHTMLView.m:
2351         (-[WebHTMLView firstRectForCharacterRange:]):
2352         Use selected range if there is no marked range.
2353
2354 === Safari-408 ===
2355
2356 2005-03-18  David Harrison  <harrison@apple.com>
2357
2358         Reviewed by Darin.
2359
2360         <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
2361
2362         * WebView.subproj/WebFrameView.m:
2363         (-[WebFrameView webCoreBridge]):
2364         New to conform to WebCoreBridgeHolder protocol.
2365
2366 2005-03-18  Richard Williamson   <rjw@apple.com>
2367         
2368         Fixed <rdar://problem/4057004> Data from XMLHTTPRequest is never dealloced
2369
2370         WebDataSource keeps an array of all the NSURLResponses associated
2371         with the load for a page.  This is used to playback delegate messages
2372         when loading from the page cache.  However, after the document
2373         has completed it's initial load, we continue to keep track of responses. 
2374         So, this has the consequence of keeping all the responses for a page
2375         around for the life of the page.  NSURLResponses are now very
2376         heavy.  They indirectly reference the resource data (via the
2377         download assessment dictionary).  This fix will keep
2378         references to responses around for those resources loaded during initial
2379         page load, but not after that point.
2380
2381         Reviewed by Ken.
2382
2383         * WebView.subproj/WebDataSource.m:
2384         (-[WebDataSource _addResponse:]):
2385         (-[WebDataSource _stopRecordingResponses]):
2386         * WebView.subproj/WebDataSourcePrivate.h:
2387         * WebView.subproj/WebFrame.m:
2388         (-[WebFrame _opened]):
2389
2390 2005-03-18  Ken Kocienda  <kocienda@apple.com>
2391
2392         Reviewed by Darin
2393
2394         Fix for this bug:
2395         
2396         <rdar://problem/4053729> Copy/paste of page with frames into Blot or Mail does nothing and loses insertion point
2397
2398         * WebView.subproj/WebHTMLView.m:
2399         (-[WebHTMLView _selectedArchive]): Wrap frameset documents in an iframe, so they can be pasted into 
2400         existing documents which will have a body or frameset of their own.
2401
2402 === Safari-407 ===
2403
2404 2005-03-17  Richard Williamson   <rjw@apple.com>
2405
2406         Fixed <rdar://problem/4055562> REGRESSION (Tiger): Safari doesn't draw progressively-loaded JPEGs (www.theregister.co.uk, www.titantalk.com)
2407
2408         Anothe side effect of lazy loading of image meta data.  We now
2409         don't cache image size until size meta data is actually available.
2410
2411         Reviewed by Darin.
2412
2413         * WebCoreSupport.subproj/WebImageData.m:
2414         (-[WebImageData size]):
2415
2416 2005-03-16  David Harrison  <harrison@apple.com>
2417
2418         Reviewed by Maciej.
2419         
2420         <rdar://problem/4048506> Deleting from beginning of editable div deletes other document elements
2421         
2422         Also changed WebCore.
2423
2424         * WebView.subproj/WebHTMLView.m:
2425         (-[WebHTMLView _shouldDeleteRange:]):
2426         Added call to new bridge method canDeleteRange.
2427
2428 2005-03-16  Ken Kocienda  <kocienda@apple.com>
2429
2430         Reviewed by Darin
2431
2432         Fix for this bug:
2433         
2434         <rdar://problem/4042935> undo doesn't work properly during inline input
2435
2436         * WebView.subproj/WebHTMLView.m:
2437         (-[WebHTMLView setMarkedText:selectedRange:]): Call new -[WebCoreBridge replaceMarkedTextWithText:] instead of 
2438         -[WebCoreBridge replaceSelectionWithText:selectReplacement:smartReplace:]. The former call was just added in 
2439         order to provide a better mapping of international text input onto the typing command/undo design.
2440
2441 2005-03-15  Richard Williamson   <rjw@apple.com>
2442
2443         Fixed <rdar://problem/4040321> Exception: Someone's trying to encode a WebDataRequestParameters instance
2444
2445         If client mutates request use new Foundation SPI to address remove applewebdata properties      from request.
2446
2447         Reviewed by Ken Kocienda.
2448
2449         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2450         (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]):
2451         * WebView.subproj/WebDataProtocol.h:
2452         * WebView.subproj/WebDataProtocol.m:
2453         (+[NSURLRequest _webDataRequestPropertyKey]):
2454
2455 2005-03-15  Ken Kocienda  <kocienda@apple.com>
2456
2457         Reviewed by Vicki
2458
2459         Fox for this bug:
2460         
2461         <rdar://problem/4052642> Each delete keystroke is in its own undo group; not included in undo group with other typing
2462
2463         Calling -[WebCore setSelectedDOMRange:range affinity:] had the result of "closing" any active set of typing
2464         keystrokes grouped together in a single undo operation. My change on 27 Jan to route delete keystrokes 
2465         through _deleteRange:killRing:... made this feature regress. Previous to that change, the backwards delete
2466         key went through separate code that is no longer in the tree that did not set the selection in the way
2467         it is done now.
2468         
2469         The solution is to add an extra argument to the set-selection call. The WebCoreBridge now offers this method:
2470         -[WebCore setSelectedDOMRange:range affinity:closeTyping:]. Now, callers must indicate whether setting the 
2471         selection will act to close typing or not. The code changes below all add this new argument with the
2472         appropriate value for closeTyping.
2473
2474         * WebView.subproj/WebHTMLView.m:
2475         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]): Passes NO for closeTyping when
2476         deletionAction is deleteKeyAction or forwardDeleteKeyAction; YES when deleteSelectionAction.
2477         (-[WebHTMLView _expandSelectionToGranularity:]): Passes YES for closeTyping.
2478         (-[WebHTMLView selectToMark:]): Passes YES for closeTyping.
2479         (-[WebHTMLView swapWithMark:]): Passes YES for closeTyping.
2480         (-[WebHTMLView transpose:]): Passes YES for closeTyping.
2481         (-[WebHTMLView _selectMarkedText]): Passes NO for closeTyping.
2482         (-[WebHTMLView _selectRangeInMarkedText:]): Passes NO for closeTyping.
2483         * WebView.subproj/WebView.m:
2484         (-[WebView setSelectedDOMRange:affinity:]): Passes YES for closeTyping.
2485
2486 2005-03-14  Richard Williamson   <rjw@apple.com>
2487
2488         Fix <rdar://problem/4051389> 8A413: gifs animating too fast
2489
2490         Reviewed by Maciej.
2491
2492         Match Mozilla's policy for minimum frame duration, which is somewhat odd:
2493
2494         <= 0.01 sec use .1 sec, otherwise use specified duration.
2495
2496         * WebCoreSupport.subproj/WebImageData.m:
2497         (-[WebImageData _frameDurationAt:]):
2498
2499 2005-03-14  Darin Adler  <darin@apple.com>
2500
2501         Reviewed by Harrison.
2502
2503         - fixed <rdar://problem/4049776> Seed: Mail: Disable spellcheck leaves red artifacts
2504
2505         * WebView.subproj/WebFrameInternal.h: Added _unmarkAllMisspellings.
2506         * WebView.subproj/WebFrame.m: (-[WebFrame _unmarkAllMisspellings]): Added.
2507         Calls unmarkAllMisspellings on the bridge and self and all subframes.
2508
2509         * WebView.subproj/WebView.m: (-[WebView setContinuousSpellCheckingEnabled:]):
2510         Call _unmarkAllMisspellings on the main frame when turning continuous spell checking off.
2511
2512 2005-03-14  Richard Williamson   <rjw@apple.com>
2513
2514         Fixed <rdar://problem/4027928> Tiger_8A394:Acrobat crashes while tried to remove the subscription errors by clicking on "Would you like to remove the subscription" from Tracker details view pane
2515
2516         The Acrobat application triggers loads of new documents in it's policy delegate.  This
2517         ultimately causes the WebHTMLView to be released before their event handlers have
2518         returned.  To bullet proof against this case we retain/release self before passing
2519         the event on for further handling.
2520         
2521         Reviewed by Maciej.
2522
2523         * WebView.subproj/WebHTMLView.m:
2524         (-[WebHTMLView _updateMouseoverWithEvent:]):
2525         (-[WebHTMLView scrollWheel:]):
2526         (-[WebHTMLView mouseDown:]):
2527         (-[WebHTMLView mouseDragged:]):
2528         (-[WebHTMLView mouseUp:]):
2529         (-[WebHTMLView keyDown:]):
2530         (-[WebHTMLView keyUp:]):
2531         (-[WebHTMLView performKeyEquivalent:]):
2532
2533 2005-03-14  Vicki Murley  <vicki@apple.com>
2534
2535         - roll out the fix for 4040321, since it is still pending CCC review.
2536
2537     2005-03-10  Richard Williamson   <rjw@apple.com>
2538
2539         Fixed <rdar://problem/4040321> Exception: Someone's trying to encode a WebDataRequestParameters instance 
2540
2541         Reviewed by Darin.
2542
2543         If a delegate returns a mutated applewebdata: request in it's willSendRequest:
2544         method, we don't load using the WebDataRequest.  Instead we do a normal load.
2545         Unfortunately, if the request they return is mutated *copy* of the applewebdata: 
2546         request it will hold the applewebdata: special properties.  These properties 
2547         will be encoded into the cache.   They should not be.  So, to fix, we sanitize the
2548         request, by removing the special properties from the request.
2549
2550         Note that we had to dig into the private guts of NSURLRequest because there is
2551         no public mechanism to remove properties from a request, see 4046775.
2552
2553         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2554         (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]):
2555         * WebView.subproj/WebDataProtocol.h:
2556         * WebView.subproj/WebDataProtocol.m:
2557         (-[NSURLRequest _webDataRequestExternalRequest]):
2558         (-[NSURLRequest _webDataRequestSanitize]):
2559
2560 === Safari-406 ===
2561
2562 2005-03-13  Darin Adler  <darin@apple.com>
2563
2564         Reviewed by Ken and Maciej.
2565
2566         - fixed <rdar://problem/4049040> REGRESSION (403-405): security check prevents user stylesheet from loading (Dictionary.app doesn't work at all!)
2567
2568         * Plugins.subproj/WebNetscapePluginStream.m: (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
2569         Allow plug-in subresource streams to load with any URL, ignoring the "canLoadURL" method's restriction (only
2570         file URLs can load other file URLs), which now applies only to main resources, like web pages in frames or
2571         object tags and plug-in main resources.
2572
2573         * WebCoreSupport.subproj/WebBridge.m:
2574         (-[WebBridge startLoadingResource:withURL:customHeaders:]): Allow subresources to load with any URL, as above.
2575         This allows things like images, stylesheets, and JavaScript to be loaded without the "canLoadURL" method's
2576         restriction.
2577         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]): Ditto.
2578         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): Ditto.
2579
2580 2005-03-10  Richard Williamson   <rjw@apple.com>
2581
2582         Fixed <rdar://problem/4040321> Exception: Someone's trying to encode a WebDataRequestParameters instance 
2583
2584         Reviewed by Darin.
2585
2586         If a delegate returns a mutated applewebdata: request in it's willSendRequest:
2587         method, we don't load using the WebDataRequest.  Instead we do a normal load.
2588         Unfortunately, if the request they return is mutated *copy* of the applewebdata: 
2589         request it will hold the applewebdata: special properties.  These properties 
2590         will be encoded into the cache.   They should not be.  So, to fix, we sanitize the
2591         request, by removing the special properties from the request.
2592
2593         Note that we had to dig into the private guts of NSURLRequest because there is
2594         no public mechanism to remove properties from a request, see 4046775.
2595
2596         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2597         (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]):
2598         * WebView.subproj/WebDataProtocol.h:
2599         * WebView.subproj/WebDataProtocol.m:
2600         (-[NSURLRequest _webDataRequestExternalRequest]):
2601         (-[NSURLRequest _webDataRequestSanitize]):
2602
2603 === Safari-405 ===
2604
2605 2005-03-10  Maciej Stachowiak  <mjs@apple.com>
2606
2607         Reviewed by Vicki.
2608
2609         <rdar://problem/4046510> REGRESSION (TOT): All Flash and Shockwave plugin-based web content missing
2610         
2611         * Plugins.subproj/WebNetscapePluginStream.m:
2612         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
2613
2614 2005-03-10  John Sullivan  <sullivan@apple.com>
2615
2616         Reviewed by Vicki.
2617         
2618         - fixed <rdar://problem/4045843> Going back/forward to error page 
2619         hits assertion in -[WebDataSource(WebPrivate) _setData:]
2620
2621         * WebView.subproj/WebDataSource.m:
2622         (-[WebDataSource _setData:]):
2623         Removed bogus assertion
2624
2625 2005-03-09  Deborah Goldsmith  <goldsmit@apple.com>
2626
2627         Reviewed by Darin.
2628
2629         - fixed <rdar://problem/3997044> default encoding for non-Latin incorrect
2630
2631         * WebKit/WebView.subproj/WebPreferences.m: (+[WebPreferences _systemCFStringEncoding]):
2632         Call __CFStringGetUserDefaultEncoding to get region, and TECGetWebTextEncodings to get
2633         the first encoding to determine the default encoding.
2634
2635 2005-03-09  Darin Adler  <darin@apple.com>
2636
2637         Reviewed by Richard.
2638
2639         - fixed <rdar://problem/4034175> REGRESSION (Mail): Can't use any font with style Light/Condensed/Semibold/Extrabold, etc
2640
2641         * WebView.subproj/WebHTMLView.m:
2642         (-[WebHTMLView _styleFromFontAttributes:]): Use a constant instead of hard-coded weight for clarity.
2643         (-[WebHTMLView _originalFontA]): Ditto.
2644         (-[WebHTMLView _originalFontB]): Ditto.
2645         (-[WebHTMLView _addToStyle:fontA:fontB:]): Add code to detect the case where the family name is not good enough
2646         to specify the font precisely. In that case, use the Postscript font name instead. Also change variable names
2647         so it's easier to understand the method.
2648
2649 2005-03-06  Maciej Stachowiak  <mjs@apple.com>
2650
2651         Reviewed by Darin.
2652
2653         <rdar://problem/4005575> Arbitrary file disclosure vulnerability due to ability to load local html from remote content
2654         
2655         * Plugins.subproj/WebBaseNetscapePluginView.m:
2656         (-[WebBaseNetscapePluginView requestWithURLCString:]):
2657         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
2658         (-[WebNetscapePluginEmbeddedView didStart]):
2659         * Plugins.subproj/WebNetscapePluginStream.m:
2660         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
2661         * WebCoreSupport.subproj/WebBridge.m:
2662         (-[WebBridge createWindowWithURL:frameName:]):
2663         (-[WebBridge startLoadingResource:withURL:customHeaders:]):
2664         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]):
2665         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
2666         (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]):
2667         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
2668         (-[WebBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
2669         (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
2670         * WebView.subproj/WebFrame.m:
2671         (-[WebFrame _loadURL:referrer:intoChild:]):
2672         * WebView.subproj/WebFramePrivate.h:
2673
2674 2005-03-09  Richard Williamson   <rjw@apple.com>
2675         
2676         Fixed <rdar://problem/4032938> Safari: text layout for MS P Gothic font is corrupted
2677
2678         The AppKit and ATS reports that MS P Gothic is fixed pitch.  It is
2679         not!  This is another case of "fixed pitch" being wrong.  I've
2680         coalesced all the special cases into our isFontFixedPitch:, and
2681         used a dictionary to improve speed.  No performance regression.
2682
2683         Reviewed by Maciej.
2684
2685         * WebCoreSupport.subproj/WebTextRenderer.m:
2686         (-[WebTextRenderer _computeWidthForSpace]):
2687         * WebCoreSupport.subproj/WebTextRendererFactory.m:
2688         (-[WebTextRendererFactory clearCaches]):
2689         (-[WebTextRendererFactory isFontFixedPitch:]):
2690
2691 2005-03-09  Darin Adler  <darin@apple.com>
2692
2693         Reviewed by Maciej.
2694
2695         <rdar://problem/4040388> REGRESSION (172-173): nonrepro crash in -[NSString(WebNSURLExtras) _web_isUserVisibleURL]
2696
2697         * Misc.subproj/WebNSURLExtras.m:
2698         (-[NSString _web_isUserVisibleURL]): Fixed some pointer expressions that didn't include the index in the expression.
2699         (readIDNScriptWhiteListFile): Removed NSLog statements in here since we decided they aren't useful and they will
2700         write some messages on Tiger.
2701
2702 2005-03-09  Darin Adler  <darin@apple.com>
2703
2704         * DOM.subproj/DOMPrivate.h: Checked in file copied from WebCore.
2705
2706 2005-03-08  Richard Williamson   <rjw@apple.com>
2707
2708         Fixed <rdar://problem/4036949> many JPEG images fail to incremental-load due to change in ImageIO JPEG header parsing (to be fixed in WebKit)
2709         Fixed <rdar://problem/4042570> Need to check image properties for presence of width/height properties
2710
2711         ImageIO-55 changed how image properties are created.  They
2712         are now created incrementally.  So we need "re-get" the image
2713         properties if the properties we care about (width/height) aren't
2714         in the property dictionary.
2715
2716         Reviewed by John.
2717
2718         * WebCoreSupport.subproj/WebImageData.h:
2719         * WebCoreSupport.subproj/WebImageData.m:
2720         (-[WebImageData init]):
2721         (-[WebImageData fileProperties]):
2722         (-[WebImageData propertiesAtIndex:]):
2723         (-[WebImageData _isSizeAvailable]):
2724         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
2725         (-[WebImageData size]):
2726
2727 2005-03-08  John Sullivan  <sullivan@apple.com>
2728
2729         A couple of tweaks to the previous patch, from Darin's review.
2730
2731         * Misc.subproj/WebNSPasteboardExtras.m:
2732         (_writableTypesForImageWithoutArchive):
2733         remove unnecessary _web prefix
2734         (_writableTypesForImageWithArchive):
2735         ditto
2736         (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
2737         use mutableCopy rather than initWithArray:, and adjust for name changes
2738
2739 2005-03-08  John Sullivan  <sullivan@apple.com>
2740
2741         Reviewed by Ken.
2742         
2743         - fixed <rdar://problem/4031826> REGRESSION (Mail): standalone images from 
2744         Safari can't be pasted into Mail (WebKit part of fix)
2745         
2746         We were always declaring webarchive-related pasteboard types, even in the standalone
2747         image cases where we had no webarchive. Unfortunately, the WebView pasteboard-related
2748         API doesn't prevent this kind of thing from happening, because the code that
2749         declares the types isn't guaranteed to be anywhere near the code that writes
2750         the pasteboard data.
2751         
2752         After this fix, I discovered that pasting standalone images into Mail still doesn't
2753         work right, but the remaining issues seem to be entirely in Mail. I wrote up 4041671
2754         to cover these.
2755
2756         * Misc.subproj/WebNSPasteboardExtras.h:
2757         (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
2758         Added boolean parameter; clients must specify whether or not there's an
2759         archive involved, because the array of types is different if there is.
2760
2761         * Misc.subproj/WebNSPasteboardExtras.m:
2762         (_web_writableTypesForImageWithoutArchive):
2763         new static function, constructs (once) and returns the array of types
2764         for images that don't have archives
2765         (_web_writableTypesForImageWithArchive):
2766         new static function, constructs (once) and returns the array of types
2767         for images that do have archives
2768         (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
2769         added boolean parameter, now calls one of the two new static functions
2770         
2771         (-[NSPasteboard _web_writeImage:URL:title:archive:types:]):
2772         added asserts that we aren't declaring the archive types if we don't have archive data
2773         
2774         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
2775         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
2776         
2777         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2778         (-[WebDefaultUIDelegate copyImageToClipboard:]):
2779         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
2780
2781         * WebView.subproj/WebImageView.m:
2782         (-[WebImageView copy:]):
2783         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
2784
2785         * WebView.subproj/WebView.m:
2786         (-[WebView pasteboardTypesForElement:]):
2787         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
2788
2789 2005-03-07  Richard Williamson   <rjw@apple.com>
2790
2791         More bullet proofing for <rdar://problem/4038304> CrashTracer: ....9 crashes at com.apple.WebKit: -[WebTextRenderer initWithFont:usingPrinterFont:] + 840
2792
2793         Protect against removal of Times and Times New Roman from
2794         system.  If these fonts are removed attempt to get system font
2795         instead of FATAL_ALWAYS.
2796
2797         Reviewed by John.
2798
2799         * WebCoreSupport.subproj/WebTextRenderer.m:
2800         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
2801
2802 === Safari-403 ===
2803
2804 2005-03-06  Darin Adler  <darin@apple.com>
2805
2806         - fixed obvious mistake in IDN script code (luckily it hasn't been in a submission yet!)
2807
2808         * Misc.subproj/WebNSURLExtras.m: (readIDNScriptWhiteListFile): Use "index" to index into the array,
2809         not "script", which is the script number, not the 32-bit-word index.
2810
2811 2005-03-05  Kevin Decker  <kdecker@apple.com>
2812
2813         Reviewed by Darin.
2814
2815         Fixed: <rdar://problem/4038529> Infinite progress bar loading webcams and other sites that use multipart/x-mixed-replace
2816
2817         The previous patch I landed prevented us from loading multipart/x-mixed-replace but did not always update the progress bar accordingly.  
2818         This stops websites from having seemingly infinite progress in the browser UI.  
2819
2820         * WebCoreSupport.subproj/WebSubresourceClient.m:
2821         (-[WebSubresourceClient didReceiveResponse:]): If this is "multipart/x-mixed-replace", remove the WebBaseResourceHandleDelegate client from 
2822         the datasource's subresource array, otherwise -[WebDataSource isLoading] incorrectly returns YES.   Also it's possible at this point in
2823          time we're done loading now (loaded everything else except for the multipart/x-mixed-replace content) so go ahead and check to see if 
2824          in fact we're complete. 
2825         * WebView.subproj/WebMainResourceClient.m:
2826         (-[WebMainResourceClient connection:didReceiveResponse:]): ditto
2827
2828 2005-03-05  Richard Williamson   <rjw@apple.com>
2829
2830         Fixed panther build problem.  Shouldn't include
2831         changes for 3968753 on panther.
2832
2833         Reviewed by John.
2834
2835         * WebView.subproj/WebView.m:
2836         (-[WebView _commonInitializationWithFrameName:groupName:]):
2837
2838 2005-03-05  Darin Adler  <darin@apple.com>
2839
2840         Reviewed by John.
2841
2842         - fixed <rdar://problem/4034603> REGRESSION (185-188): RadarWeb can't send enclosures anymore
2843
2844         * WebView.subproj/WebFormDataStream.m:
2845         (closeCurrentStream): Release currentData when closing the stream.
2846         (advanceCurrentStream): Set up and retain currentData when the current stream is reading that data, so the
2847         data won't be released while in use.
2848         (formCreate): Initialize currentData to NULL.
2849
2850         - fixed <rdar://problem/4037562> Tiger8A402: Help Viewer crashed when viewing help for iChat (infinite recursion in WebView)
2851
2852         * WebView.subproj/WebView.m: (-[WebView _responderValidateUserInterfaceItem:]):
2853         Check for the case where we ourselves are the responder. This avoids an infinite loop.
2854         The actual code to perform operations avoids this with a global variable, but this lighter weight
2855         solution is sufficient here because validate operations don't call through to the next responder.
2856
2857 2005-03-04  Richard Williamson   <rjw@apple.com>
2858
2859         Fixed <rdar://problem/3968753> REGRESSION: Poor performance with differing multiple animated GIFs (was fast in Panther)
2860
2861         Disable coalesced updates (in CG).  This restores the
2862         panther behavior.
2863
2864         Reviewed by David Harrison.
2865
2866         * WebView.subproj/WebView.m:
2867         (-[WebView _commonInitializationWithFrameName:groupName:]):
2868
2869 2005-03-04  Adele Amchan  <adele@apple.com>
2870
2871         Reviewed by Darin.
2872
2873         * English.lproj/StringsNotToBeLocalized.txt: added new strings "text/x-vcf" and "text/x-csv" to the list
2874
2875 2005-03-04  Adele Amchan  <adele@apple.com>
2876
2877         Reviewed by Chris.
2878
2879         Fix for <rdar://problem/4032982> Sun iPlanet app: not able to import AddressBook CSV format addresses properly
2880         Fix for <rdar://problem/4032985> Sun iPlanet app: not able to import vCard format addresses properly
2881
2882         * WebView.subproj/WebTextView.m:
2883         (+[WebTextView unsupportedTextMIMETypes]): added "text/x-csv" and "text/x-vcf" to the list of MIME types that our text view doesn't handle
2884
2885 2005-03-04  Darin Adler  <darin@apple.com>
2886
2887         Reviewed by John.
2888
2889         - fixed <rdar://problem/4036817> REGRESSION: ctrl-y broken when a line + carriage return cut
2890
2891         * WebView.subproj/WebHTMLView.m:
2892         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]): Merged _handleKillRing behavior
2893         into this function, since there's now a more-complicated way the startNewKillRingSequence boolean needs to
2894         be handled. Set the startNewKillRingSequence boolean after the entire process so changing the selection before
2895         and during the editing dosn't clear it. Also change "isTypingAction" parameter to "deletionAction" so we can
2896         handle forward delete with this method.
2897         (-[WebHTMLView _deleteSelection]): Pass deleteSelectionAction for action rather than NO for isTypingAction,
2898         which is the way to say the same thing using the new parameter.
2899         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Refactor to use the _deleteRange
2900         method above. Also calls _shouldDeleteRange: for the pre-existing selection case; not doing that before was
2901         a bug.
2902         (-[WebHTMLView deleteToMark:]): Pass deleteSelectionAction for action rather than NO for isTypingAction,
2903         which is the way to say the same thing using the new parameter.
2904
2905 2005-03-04  Darin Adler  <darin@apple.com>
2906
2907         Reviewed by John.
2908
2909         - fixed <rdar://problem/4020413> REGRESSION (Mail): can't use fonts with names that start with "#" in Mail (Korean fonts)
2910
2911         * WebView.subproj/WebHTMLView.m:
2912         (-[WebHTMLView _styleFromFontAttributes:]): Quote font name when calling setFontFamily.
2913         (-[WebHTMLView _addToStyle:fontA:fontB:]): Ditto.
2914
2915 2005-03-04  Darin Adler  <darin@apple.com>
2916
2917         Reviewed by John.
2918
2919         - fixed <rdar://problem/3965666> IDN spoofing vulnerability caused by Unicode characters that look like ASCII characters
2920
2921         * Misc.subproj/WebNSURLExtras.m:
2922         (readIDNScriptWhiteListFile): Added. Reads file and parses script names.
2923         (readIDNScriptWhiteList): Added. Calls readIDNScriptWhiteList on each of the white list locations in succession.
2924         (allCharactersInIDNScriptWhiteList): Renamed from containsPossibleLatinLookalikes and changed sense.
2925         Now calls readIDNScriptWhiteList first time, and then uses the read-in list to check the scripts.
2926         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Call allCharactersInIDNScriptWhiteList instead of
2927         containsPossibleLatinLookalikes.
2928         * Resources/IDNScriptWhiteList.txt: Added.
2929         * WebKit.pbproj/project.pbxproj: Added IDNScriptWhiteList.txt file.
2930
2931         * Misc.subproj/WebKitLocalizableStrings.m: Removed. This is simply unused.
2932         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
2933
2934 2005-03-04  Darin Adler  <darin@apple.com>
2935
2936         Reviewed by John.
2937
2938         - fixed <rdar://problem/3937667> REGRESSION (Mail): Zooming a window from titlebar button doesn't paint newly-exposed portions of window
2939
2940         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
2941         Re-set-up the visRect if the bounds changes due to layout.
2942
2943 === Safari-402 ===
2944
2945 2005-03-03  Jens Alfke  <jens@apple.com>
2946
2947         Reviewed by rjw.
2948
2949         <rdar://problem/3991818> REGRESSION: Images scale while loading
2950         The code could crop an image when not all the scanlines were available yet, and it could crop when only a sub-rect of the image was to be drawn; but if it had to do both at once, it got the coordinates wrong. Fixed that.
2951
2952         * WebCoreSupport.subproj/WebImageData.m:
2953         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
2954
2955 2005-03-01  David Hyatt  <hyatt@apple.com>
2956
2957         Fix for 3841186, scrollbar shows up disabled when it should not appear at all.  Make sure updateScrollers
2958         is never allowed to be re-entrant from any call point by moving the guard inside the function itself.
2959         
2960         Reviewed by John Sullivan
2961
2962         * WebView.subproj/WebDynamicScrollBarsView.m:
2963         (-[WebDynamicScrollBarsView updateScrollers]):
2964         (-[WebDynamicScrollBarsView reflectScrolledClipView:]):
2965
2966 2005-03-02  Chris Blumenberg  <cblu@apple.com>
2967
2968         Fixed: <rdar://problem/4029010> Expose method to retrieve drag image for WebView's selection
2969
2970         Reviewed by sullivan.
2971
2972         * WebView.subproj/WebHTMLView.m:
2973         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): call _selectionDraggingImage
2974         (-[WebHTMLView _selectionDraggingImage]): new SPI for Mail, factored from previous method
2975         (-[WebHTMLView _selectionDraggingRect]): new SPI for Mail
2976         * WebView.subproj/WebHTMLViewPrivate.h:
2977
2978 2005-03-02  John Sullivan  <sullivan@apple.com>
2979
2980         Reviewed by Adele.
2981         
2982         - fixed <rdar://problem/4023337> Safari stops loading any page (-[NSCFDictionary setObject:forKey:]: 
2983         attempt to insert nil key)
2984         
2985         It is very likely that the exception being hit is caused by the same problem as WebFoundation
2986         bug 4018486. This change makes the code robust against this kind of problem regardless.
2987
2988         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2989         (-[WebBaseResourceHandleDelegate saveResource]):
2990         Don't call addSubresource if newly-created resource is nil (but do assert on debug builds).
2991         Also assert that originalURL and MIMEType are not nil.
2992         
2993         * WebView.subproj/WebDataSource.m:
2994         (-[WebDataSource addSubresource:]):
2995         Don't add nil subresource to dictionary, but do assert on debug builds.
2996
2997 === Safari-401 ===
2998
2999 2005-03-01  John Sullivan  <sullivan@apple.com>
3000
3001         Reviewed by Darin.
3002         
3003         - fixed <rdar://problem/3987482> Format>Style>Italic is not enabled when a 
3004         compose window is empty (works in Blot)
3005
3006         * WebView.subproj/WebHTMLView.m:
3007         (-[WebHTMLView becomeFirstResponder]):
3008         call _updateFontPanel here so NSFontManager knows the right font for the menu
3009         items and the font panel
3010
3011 2005-03-01  David Harrison  <harrison@apple.com>
3012
3013         Reviewed by Chris.
3014         
3015         <rdar://problem/3915560> Mail would like an SPI to enable "smart" text paste/drop
3016
3017         * WebView.subproj/WebHTMLView.m:
3018         (-[WebHTMLView _smartDeleteRangeForProposedRange:]):
3019         (-[WebHTMLView _smartInsertForString:replacingRange:beforeString:afterString:]):
3020         New.
3021
3022 2005-02-28  John Sullivan  <sullivan@apple.com>
3023
3024         Reviewed by Ken.
3025         
3026         - WebKit part of fix for <rdar://problem/4023490> REGRESSION (125-185): Tabbing through links 
3027         on frameset page gets stuck at end (tivofaq.com)
3028         
3029         This tab-to-links stuff has been in shaky condition ever since AppKit futzed with
3030         tabbing behavior in Tiger to add support for including the toolbar in the key loop.
3031         I made some changes months ago to compensate for that, but some cases, such as this
3032         one, still weren't fixed.
3033
3034         * WebCoreSupport.subproj/WebBridge.m:
3035         (-[WebBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
3036         new bottleneck method, extracted from nextKeyViewOutsideWebFrameViews; handles
3037         nextKeyView or nextValidKeyView depending on parameter.
3038         (-[WebBridge nextKeyViewOutsideWebFrameViews]):
3039         now calls extracted method
3040         (-[WebBridge nextValidKeyViewOutsideWebFrameViews]):
3041         new method, calls new bottleneck method
3042         
3043         * WebView.subproj/WebHTMLView.m:
3044         (-[WebHTMLView nextValidKeyView]):
3045         when we're stuck at the end of a nextKeyView chain inside a nexted frame, use
3046         nextValidKeyViewOutsideWebFrameViews. Make sure we don't end up looking inside
3047         the web frame views while doing this.
3048
3049 2005-02-25  Darin Adler  <darin@apple.com>
3050
3051         Reviewed by John.
3052
3053         - fixed <rdar://problem/4025088> window onblur and onfocus don't fire when text field has focus
3054
3055         * WebView.subproj/WebHTMLView.m:
3056         (-[WebHTMLView updateFocusState]): Renamed from updateFocusDisplay. Added call to setWindowHasFocus: method.
3057         (-[WebHTMLView viewDidMoveToWindow]): Call method by new name.
3058         (-[WebHTMLView windowDidBecomeKey:]): Ditto.
3059         (-[WebHTMLView windowDidResignKey:]): Ditto.
3060         (-[WebHTMLView becomeFirstResponder]): Ditto.
3061         (-[WebHTMLView resignFirstResponder]): Ditto.
3062
3063 === Safari-400 ===
3064
3065 2005-02-25  Richard Williamson   <rjw@apple.com>
3066
3067         Fixed <rdar://problem/4000962> 8A375: Help Viewer displays voiced sound and semi-voiced characters strangely (characters don't seem to be composed)
3068
3069         Added special case for voiced marks.
3070
3071         Reviewed by John.
3072
3073         * WebCoreSupport.subproj/WebTextRenderer.m:
3074         (widthForNextCharacter):
3075
3076 2005-02-25  Darin Adler  <darin@apple.com>
3077
3078         Reviewed by John.
3079
3080         - fixed <rdar://problem/4019823> Seed: Control-Y doesn't work
3081
3082         * WebView.subproj/WebHTMLView.m:
3083         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Call _handleKillRing
3084         after setting the selection, since it uses the selection to get the text.
3085         (-[WebHTMLView _insertText:selectInsertedText:]): Check for empty string to avoid an assertion
3086         on the other side of the bridge when you yank the empty string.
3087
3088 2005-02-24  Richard Williamson   <rjw@apple.com>
3089
3090         Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
3091
3092         If directionality is specified use that as initial directionality,
3093         rather than neutral directionality.     
3094
3095         Reviewed by Hyatt.
3096
3097         * WebCoreSupport.subproj/WebTextRenderer.m:
3098         (widthForNextCharacter):
3099
3100 2005-02-24  Adele Amchan  <adele@apple.com>
3101
3102         Reviewed by Chris.
3103        
3104         Fix for <rdar://problem/4023393> Safari crashed in khtml::RenderObject::repaintAfterLayoutIfNeeded(QRect const&, QRect const&)
3105
3106         We were crashing after hitting PageDown when viewing a pdf because 
3107         WebKit was calling over to WebCore to scroll overflow areas.
3108         Since this only needs to be done if we're dealing with a WebHTMLView, 
3109         I added a wrapper function to check the documentView before calling
3110         over to WebCore.
3111
3112         * WebView.subproj/WebFrameView.m:
3113         (-[WebFrameView _scrollOverflowInDirection:granularity:]): added wrapper function that checks if documentView is a WebHTMLView 
3114         (-[WebFrameView scrollToBeginningOfDocument:]): uses new wrapper function now
3115         (-[WebFrameView scrollToEndOfDocument:]): uses new wrapper function now
3116         (-[WebFrameView _pageVertically:]): uses new wrapper function now
3117         (-[WebFrameView _pageHorizontally:]): uses new wrapper function now
3118         (-[WebFrameView _scrollLineVertically:]): uses new wrapper function now
3119         (-[WebFrameView _scrollLineHorizontally:]): uses new wrapper function now
3120
3121 2005-02-24  Richard Williamson   <rjw@apple.com>
3122
3123         Fixed <rdar://problem/3985889> REGRESSION (125-180): setting <img> src to GIF that already animated does not animate; just shows final frame
3124         
3125         Reviewed by Hyatt.
3126
3127         * WebCoreSupport.subproj/WebImageData.h:
3128         * WebCoreSupport.subproj/WebImageData.m:
3129         (-[WebImageData resetAnimation]):
3130         * WebCoreSupport.subproj/WebImageRenderer.m:
3131         (-[WebImageRenderer resetAnimation]):
3132         (-[WebInternalImage resetAnimation]):
3133         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
3134
3135 2005-02-24  Kevin Decker  <kdecker@apple.com>
3136
3137         Reviewed by John.
3138
3139         Fixed <rdar://problem/3962401> Don't load multipart/x-mixed-replace content to prevent memory leak
3140
3141         Since we're not going to fix <rdar://problem/3087535> for Tiger, we should not load multipart/x-mixed-replace content.  Pages with such content contain what is essentially an infinite load and therefore may leak.
3142
3143         * WebView.subproj/WebMainResourceClient.m: 
3144         (-[WebMainResourceClient connection:didReceiveResponse:]):  Disabled loading of multipart/x-mixed-replace content until we fully implement server side push. 
3145          * WebCoreSupport.subproj/WebSubresourceClient.m: 
3146         (-[WebSubresourceClient didReceiveResponse:]): Ditto. Same exact thing for sub resources. 
3147
3148
3149 2005-02-23  John Sullivan  <sullivan@apple.com>
3150
3151         Reviewed by Ken.
3152         
3153         - fixed <rdar://problem/4021370> REGRESSION (Tiger): WebKit part of fix for 
3154         shift-tab on tivofaq doing the wrong thing
3155
3156         * WebView.subproj/WebFrameView.m:
3157         (-[WebFrameView becomeFirstResponder]):
3158         If our previousValidKeyView is nil or self (same as nil modulo AppKit oddness),
3159         look out of the box and get the previousValidKeyView of our webview.
3160
3161 2005-02-23  Darin Adler  <darin@apple.com>
3162
3163         Reviewed by Hyatt.
3164
3165         - fixed <rdar://problem/4010196> REGRESSION (125-186+): 8-character timestamps in gmail wrap to 2 lines (width:8ex; font-size:80%)
3166
3167         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer xHeight]): Return the maximum
3168         of the "x" height and width. Comment in the code explains why in more detail.
3169
3170 2005-02-22  Richard Williamson   <rjw@apple.com>
3171
3172         Fixed <rdar://problem/3937203> when a div adds a scrollbar (overflow:auto) we do not get regions
3173
3174         Compare regions after automatice scroll regions have been
3175         added.
3176
3177         Reviewed by Maciej.
3178
3179         * WebCoreSupport.subproj/WebBridge.h:
3180         * WebCoreSupport.subproj/WebBridge.m:
3181         (-[WebBridge dealloc]):
3182         (-[WebBridge _compareDashboardRegions:]):
3183         (-[WebBridge dashboardRegionsChanged:]):
3184
3185 2005-02-22  Richard Williamson   <rjw@apple.com>
3186
3187         Fixed <rdar://problem/4012463> Dashboard widgets don't work with authenticating proxies
3188
3189         Added new SPI for dashboard that just calls default delegate
3190         behavior.
3191
3192         Reviewed by Maciej.
3193
3194         * WebView.subproj/WebView.m:
3195         (-[WebView handleAuthenticationForResource:challenge:fromDataSource:]):
3196         * WebView.subproj/WebViewPrivate.h:
3197
3198 2005-02-22  Chris Blumenberg  <cblu@apple.com>
3199
3200         Reviewed by mjs.
3201
3202         * WebCoreSupport.subproj/WebBridge.m:
3203         (-[WebBridge issuePasteAndMatchStyleCommand]): support for new "PasteAndMatchStyle" exec command
3204
3205 === Safari-188 ===
3206
3207 2005-02-21  David Harrison  <harrison@apple.com>
3208
3209         Reviewed by Darin.
3210
3211         <rdar://problem/3943090> REGRESSION (Mail): Spelling underline incompletely erased following certain steps
3212
3213         * WebCoreSupport.subproj/WebTextRenderer.m:
3214         (-[WebTextRenderer misspellingLineThickness]):
3215         (-[WebTextRenderer misspellingLinePatternWidth]):
3216         Replaced #defines with these methods, so others can get the same info.
3217         
3218         (-[WebTextRenderer drawLineForMisspelling:withWidth:]):
3219         Keep underline within originally specified bounds.
3220         
3221
3222 2005-02-21  Darin Adler  <darin@apple.com>
3223
3224         Reviewed by John.
3225
3226         - fixed <rdar://problem/4016358> don't ever display IDN URLs with characters from "possible Latin look-alike" scripts
3227
3228         * Misc.subproj/WebNSURLExtras.m:
3229         (containsPossibleLatinLookalikes): Added.
3230         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Call containsPossibleLatinLookalikes, and if true,
3231         don't decode the host name.
3232
3233 2005-02-19  Kevin Decker  <kdecker@apple.com>
3234
3235         Reviewed by Chris.
3236
3237         Fixed <rdar://problem/4010765> Flash player can be used to arbitrarily open popup windows without user permission
3238         
3239         Our window.open() policy is to refuse the <script>window.open(...)</script> case and allow the inline the <a href="javascript:window.open('foo')> case.  Clever advertisers at some point realized that by executing their Javascript through the Flash plugin, Safari would always treat their code as the inline case, and thus, they were able to work around our popup blocker. 
3240
3241         * Plugins.subproj/WebBaseNetscapePluginView.h: Addded currentEventIsUserGesture boolean ivar. 
3242         * Plugins.subproj/WebBaseNetscapePluginView.m:
3243         (-[WebBaseNetscapePluginView sendEvent:]): If at any point the user clicks or presses a key from within a plugin, set the currentEventIsUserGesture flag to true. This is important to differentiate legitimate window.open() calls originating from plugins;  we still want to allow those. 
3244         (-[WebBaseNetscapePluginView initWithFrame:]): In our asynchronous load, pass along currentEventIsUserGesture to the PluginRequest. 
3245         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): Inform WebCore if this was a user originated gesture when calling executeScript(). 
3246         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]):
3247         (-[WebPluginRequest initWithRequest:frameName:notifyData:sendNotification:didStartFromUserGesture:]):
3248         (-[WebPluginRequest isCurrentEventUserGesture]): Added. 
3249
3250 2005-02-18  Chris Blumenberg  <cblu@apple.com>
3251
3252         Fixed: <rdar://problem/3945271> REGRESSION (Mail): pasted plain text should pick up typing style instead of being unstyled
3253
3254         Reviewed by kocienda.
3255
3256         * WebView.subproj/WebDataSource.m:
3257         (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): pass NO for matchStyle to replaceSelection
3258         * WebView.subproj/WebHTMLView.m:
3259         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:chosePlainText:]): return new chosePlainText parameter
3260         (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): pass chosePlainText for matchStyle to replaceSelection
3261         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): ditto
3262
3263 2005-02-17  Richard Williamson   <rjw@apple.com>
3264
3265         Removed code that should not have been checked in from
3266         last patch.
3267
3268         * WebCoreSupport.subproj/WebTextRendererFactory.m:
3269         (-[WebTextRendererFactory isFontFixedPitch:]):
3270
3271 2005-02-17  Richard Williamson   <rjw@apple.com>
3272
3273         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
3274
3275         Fixed w/o introducing a performance regression.
3276
3277         Reviewed by Vicki (and earlier by Dave Harrison).
3278
3279         * WebCoreSupport.subproj/WebTextRenderer.m:
3280         (-[WebTextRenderer _computeWidthForSpace]):
3281         (widthForNextCharacter):
3282         * WebCoreSupport.subproj/WebTextRendererFactory.h:
3283         * WebCoreSupport.subproj/WebTextRendererFactory.m:
3284         (-[NSFont _web_isFakeFixedPitch]):
3285         (-[WebTextRendererFactory isFontFixedPitch:]):
3286         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
3287
3288 2005-02-17  Richard Williamson   <rjw@apple.com>
3289
3290         Fixed <rdar://problem/3959304> PDF in img tag is not rendered correctly anymore
3291
3292         We were incorrectly adding image position when flipping coordinates.
3293
3294         Reviewed by David Harrison.
3295
3296         * WebCoreSupport.subproj/WebImageData.m:
3297         (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]):
3298
3299 2005-02-17  Richard Williamson   <rjw@apple.com>
3300
3301         Fixed <rdar://problem/4007262> Seed: Flight tracker scrolling moves to the left
3302
3303         Added SPI for dashboard to disable wheel scrolling of the WebClipView.
3304
3305         Reviewed by Ken.
3306
3307         * ChangeLog:
3308         * WebView.subproj/WebClipView.m:
3309         (-[WebClipView _focusRingVisibleRect]):
3310         (-[WebClipView scrollWheel:]):
3311         * WebView.subproj/WebView.m:
3312         (-[WebViewPrivate init]):
3313         (-[WebView drawRect:]):
3314         (-[WebView _dashboardBehavior:]):
3315         * WebView.subproj/WebViewInternal.h:
3316         * WebView.subproj/WebViewPrivate.h:
3317
3318 === Safari-187 ===
3319
3320 2005-02-17  Vicki Murley <vicki@apple.com>
3321
3322         - roll out this change, since it causes a 1.5% performance regression
3323
3324     2005-02-15  Richard Williamson   <rjw@apple.com>
3325         
3326         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
3327         
3328         Lie about Osaka-Mono.  Treat it as fixed pitch, even though,
3329         strictly speaking it isn't.  (Similar to what we do with
3330         Courier New.)
3331
3332         Reviewed by David Harrison.
3333
3334         * WebCoreSupport.subproj/WebTextRenderer.m:
3335         (-[WebTextRenderer _computeWidthForSpace]):
3336         * WebCoreSupport.subproj/WebTextRendererFactory.h:
3337         * WebCoreSupport.subproj/WebTextRendererFactory.m:
3338         (-[NSFont _web_isFakeFixedPitch]): 
3339         (-[WebTextRendererFactory isFontFixedPitch:]):
3340         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
3341
3342 2005-02-17  John Sullivan  <sullivan@apple.com>
3343
3344         Reviewed by Ken.
3345         
3346         - fixed <rdar://problem/3997185> The Web view on .Mac Prefs caused System Prefs 
3347         to lockup (resolved by re-boot only)
3348
3349         * WebCoreSupport.subproj/WebBridge.m:
3350         (-[WebBridge nextKeyViewOutsideWebFrameViews]):
3351         Don't allow recursion here; assert on debug build, return nil on deployment. I
3352         couldn't get my machine into a state to repro this problem (and neither could the
3353         originator), but it's obvious from the stack crawl that this method was recursing
3354         when it shouldn't have.
3355
3356 2005-02-16  John Sullivan  <sullivan@apple.com>
3357
3358         Written by Darin, reviewed by me.
3359         
3360         - WebKit part of fix for <rdar://problem/4007384> 
3361         FILTER: Bookmark of RSS with Japanese search word & multiple RSS pages loses filter
3362
3363         * DOM.subproj/DOMPrivate.h:
3364         updated this file, which is a copy of the WebCore version
3365
3366 2005-02-16  Richard Williamson   <rjw@apple.com>
3367
3368         Fixed <rdar://problem/3966973> Tiger 8A357: Binary Compatiblity: frequent Webstractor.app crashes [WebImageData _nextFrame]
3369
3370         Webstractor.app was playing tricks to create thumbnails of
3371         pages.  This caused the 'focusView' to be incorrect during
3372         animated GIF frame rendering.
3373
3374         Reviewed by Chris.
3375
3376         * WebCoreSupport.subproj/WebImageRenderer.m:
3377         (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
3378
3379 2005-02-16  Vicki Murley  <vicki@apple.com>
3380
3381         Reviewed by me, code change by Darin.
3382
3383         - fixed the build on Panther
3384
3385         * WebView.subproj/WebFormDataStream.m: (webSetHTTPBody):
3386         Added a Panther-specific code path that just loads all the data into one big
3387         NSData object. This means that bug 3686434 won't be fixed on SUPanWheat; we'll
3388         still load the file into memory before sending it to the server on Panther.
3389
3390 2005-02-15  Richard Williamson   <rjw@apple.com>
3391
3392         Fixed <rdar://problem/3998368> Tiger8A376: WebTextRenderer assertion failure in Safari while browsing news.bbc.co.uk
3393
3394         Removed use of FATAL_ALWAYS from getUncachedWidth().  It's unclear
3395         why we would trigger the FATAL_ALWAYS.  In the past we've seen
3396         the message triggered because of corrupt fonts.  Anyway, in this
3397         particular case, we will now return 0 for the character width,
3398         rather than exiting.
3399
3400         Reviewed by David Harrison.
3401
3402         * WebCoreSupport.subproj/WebTextRenderer.m:
3403         (getUncachedWidth):
3404
3405 2005-02-15  Richard Williamson   <rjw@apple.com>
3406
3407         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
3408
3409         Lie about Osaka-Mono.  Treat it as fixed pitch, even though,
3410         strictly speaking it isn't.  (Similar to what we do with
3411         Courier New.)
3412
3413         Reviewed by David Harrison.
3414
3415         * WebCoreSupport.subproj/WebTextRenderer.m:
3416         (-[WebTextRenderer _computeWidthForSpace]):
3417         * WebCoreSupport.subproj/WebTextRendererFactory.h:
3418         * WebCoreSupport.subproj/WebTextRendererFactory.m:
3419         (-[NSFont _web_isFakeFixedPitch]):
3420         (-[WebTextRendererFactory isFontFixedPitch:]):
3421         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
3422
3423 2005-02-14  Darin Adler  <darin@apple.com>
3424
3425         Reviewed by John.
3426
3427         - fixed <rdar://problem/3686434> Safari uses too much RAM on file upload, leading to malloc errors and crashes (HP printers)
3428
3429         * WebView.subproj/WebFormDataStream.h: Added webSetHTTPBody, which creates and connects an appropriate
3430         stream to an NSMutableURLRequest.
3431         * WebView.subproj/WebFormDataStream.m: Added implementation here.
3432
3433         * WebCoreSupport.subproj/WebBridge.m:
3434         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
3435         Use webSetHTTPBody.
3436         * WebCoreSupport.subproj/WebSubresourceClient.m:
3437         (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]):
3438         Use webSetHTTPBody.
3439         * WebView.subproj/WebFrame.m:
3440         (-[WebFrame _loadItem:withLoadType:]): Use webSetHTTPBody.
3441         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
3442
3443         * English.lproj/StringsNotToBeLocalized.txt: Updated for this change and other recent changes.
3444
3445 2005-02-11  Richard Williamson   <rjw@apple.com>
3446
3447         Fixed <rdar://problem/4002505> 8A378: Endlessly animating gif's on http://www.entropy.ch
3448         
3449         If animated images had no loop count property we were incorrectly
3450         looping forver.  Note, that in the course of fixing this bug
3451         I found that ImageIO is incorrectly NOT reporting the loop count
3452         for a whole class of animated GIFs.
3453
3454         Reviewed by Ken Kocienda.
3455
3456         * WebCoreSupport.subproj/WebImageData.m:
3457         (-[WebImageData _repetitionCount]):
3458
3459 === Safari-186 ===
3460
3461 2005-02-11  Vicki Murley  <vicki@apple.com>
3462
3463         Reviewed by Darin.