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