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