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