WebCore:
[WebKit-https.git] / WebKit / ChangeLog
1 2006-01-25  Timothy Hatcher  <timothy@apple.com>
2
3         Move off of -[NSFont widthOfString:] since it is now deprecated.
4         Use the NSStringDrawing -[NSString sizeWithAttributes:] API.
5
6         * WebCoreSupport.subproj/WebFileButton.m:
7         (-[WebFileChooserButton bestVisualFrameSizeForCharacterCount:]):
8
9 2006-01-23  Darin Adler  <darin@apple.com>
10
11         - fixed some small localizable strings issues
12
13         * WebInspector.subproj/WebInspector.m:
14         (-[DOMNode _nodeTypeName]): Changed so we don't have two localizable strings that
15         are both "Document". I'm not sure we want to localize the DOM inspector UI at all,
16         but this fixes things for now.
17         (-[DOMNode _displayName]): Ditto.
18
19         * English.lproj/Localizable.strings: Updated.
20         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
21
22 2006-01-23  Justin Garcia  <justin.garcia@apple.com>
23
24         Reviewed by thatcher
25         
26         Turned on -O2 for B&I build.
27
28         * WebKit.xcodeproj/project.pbxproj:
29
30 2006-01-22  Timothy Hatcher  <timothy@apple.com>
31
32         Reviewed by Anders Carlsson.
33         
34         Makes the Inspector's Style pane take !important into account
35         when marking overloaded properties.
36
37         * WebInspector.subproj/webInspector/inspector.js:
38
39 2006-01-21  Timothy Hatcher  <timothy@apple.com>
40
41         Reviewed by Anders Carlsson.
42
43         Make sure shorthand properties get striked-out if
44         all the properties they expand into are overloaded.
45
46         * WebInspector.subproj/webInspector/inspector.js:
47
48 2006-01-21  Timothy Hatcher  <timothy@apple.com>
49
50         Reviewed by Darin.
51
52         Adds computed style to the Web Inspector.
53         Adds a "mapped style" link to the mapped attributes.
54
55         * WebInspector.subproj/webInspector/inspector.css:
56         * WebInspector.subproj/webInspector/inspector.html:
57         * WebInspector.subproj/webInspector/inspector.js:
58
59 2006-01-20  Timothy Hatcher  <timothy@apple.com>
60
61         Reviewed by John, some parts by Darin.
62
63         Removes the old WebDebugDOMNode code, superseded by the ObjC DOM and the Web Inspector.
64         Since Safari 2.0 still relies on these classes for the Debug menu's "Show DOM Tree", we remove
65         that menu item to prevent a crash.
66
67         * WebKit.exp: adds WebInspector, removes WebDebugDOMNode
68         * WebKit.xcodeproj/project.pbxproj: added the REMOVE_SAFARI_DOM_TREE_DEBUG_ITEM define so the new WebView code doesn't build in the Default config
69         * WebView.subproj/WebDebugDOMNode.h: Removed.
70         * WebView.subproj/WebDebugDOMNode.m: Removed.
71         * WebView.subproj/WebView.m:
72         (+[WebView initialize]): check if we are in Safari and IncludeDebugMenu is true then observe for NSApplicationDidFinishLaunchingNotification and call _finishedLaunching
73         (+[WebView _finishedLaunching]): observe for NSMenuDidAddItemNotification now that the main menu is loaded and wait for the Debug menu to be added
74         (+[WebView _removeDOMTreeMenuItem:]): when the debug menu is added remove the "Show DOM Tree" item
75
76 2006-01-20  Timothy Hatcher  <timothy@apple.com>
77
78         Reviewed by Hyatt.
79
80         Corrects the cascade order for mapped attributes.
81         Shows "inline stylesheet" rather than "null" for rules in <style> tags.
82
83         * WebInspector.subproj/webInspector/inspector.js:
84
85 2006-01-19  Timothy Hatcher  <timothy@apple.com>
86
87         Reviewed by Eric.
88
89         Adds inline style reporting and mapped attribute support to the Inspector Style pane.
90         Cleans up the node attributes area with a more natural attr = "value" look.
91         Slight optimization to only update visible scrollbars during a window resize.
92
93         * WebInspector.subproj/webInspector/inspector.css:
94         * WebInspector.subproj/webInspector/inspector.js:
95
96 2006-01-19  Timothy Hatcher  <timothy@apple.com>
97
98         Reviewed by Darin.
99         
100         http://bugzilla.opendarwin.org/show_bug.cgi?id=6631
101         Inspector window has inappropriate maximum height
102
103         * WebInspector.subproj/WebInspector.m:
104         (-[WebInspector window]): removes the maximum size constraint
105
106 2006-01-19  John Sullivan  <sullivan@apple.com>
107
108         Reviewed by Tim Omernick.
109
110         * WebKit.xcodeproj/project.pbxproj:
111         made WebNSUserDefaultsExtras.h private (SPI) so its one method can be called from
112         Safari, so Safari can stop calling the similar method in Foundation.
113
114 2006-01-19  John Sullivan  <sullivan@apple.com>
115
116         Reviewed by Tim Omernick.
117         
118         Made _webKit_guessedMIMEType SPI so Safari can use it in order to stop using
119         the similar SPI method in Foundation. This involved splitting it out of the file
120         it was in, to avoid creating any other new SPI here. Poor svn diff got mighty
121         confused in the process.
122
123         * Misc.subproj/WebNSDataExtras.h:
124         removed _webkit_guessedMIMEType from here
125         * Misc.subproj/WebNSDataExtrasPrivate.h: 
126         Added. Contains only _webkit_guessedMIMEType. This file is private (SPI), whereas
127         WebNSDataExtras.h is project-internal. I could have renamed WebNSDateExtras.h to
128         WebNSDateExtrasInternal.h also, but I minimized the gratuitous change level here
129         by not doing that.
130         
131         * Misc.subproj/WebNSDataExtras.m:
132         Despite the great confusion of svn diff, all I actually did here was move 
133         _webkit_guessedMIMEType and its helper _webkit_guessedMIMETypeForXML into a new
134         category. No lines of code were harmed while creating this patch.
135
136         * WebKit.xcodeproj/project.pbxproj:
137         updated for new file
138
139         * WebView.subproj/WebView.m:
140         Added #import for new file since WebView uses _webkit_guessedMIMEType
141
142 2006-01-19  John Sullivan  <sullivan@apple.com>
143
144         Reviewed by Tim Omernick.
145
146         * Misc.subproj/WebNSURLExtras.h:
147         added declaration of _webkit_rangeOfURLScheme so Safari can call it as a step
148         towards weaning Safari from Foundation SPI.
149
150 2006-01-17  Justin Garcia  <justin.garcia@apple.com>
151
152         Reviewed by eric
153         
154         Deployment builds now use -O2
155
156         * WebKit.xcodeproj/project.pbxproj:
157
158 2006-01-17  Beth Dakin  <bdakin@apple.com>
159
160         Reviewed by Darin.
161
162         Fix for <rdar://problem/4112029> With Quartz scaling on, Safari incorrectly 
163         handles mouseover effects
164
165         The location of an event in the window should be converted to the superview 
166         of the contentView to do accurate hitTesting.
167
168         * WebView.subproj/WebHTMLView.m:
169         (-[WebHTMLView _updateMouseoverWithEvent:]): Convert the point to the
170         contentView's superview from nil. 
171
172 2006-01-16  Timothy Hatcher  <timothy@apple.com>
173
174         Rubber stamped by Maciej.
175
176         Check for a new "WebKitDeveloperExtras" default when
177         including the "Inspect Element" context menu item.
178         We should retire the other one eventually.
179
180         * WebView.subproj/WebView.m:
181         (-[WebView _menuForElement:defaultItems:]):
182
183 2006-01-17  Anders Carlsson  <andersca@mac.com>
184
185         Reviewed by Timothy Hatcher.
186
187         - http://bugzilla.opendarwin.org/show_bug.cgi?id=6594
188         Web Inspector: finish node attributes
189         
190         * WebInspector.subproj/webInspector/inspector.css:
191         * WebInspector.subproj/webInspector/inspector.html:
192         * WebInspector.subproj/webInspector/inspector.js:
193         Add initial support for element attributes.
194
195 2006-01-16  John Sullivan  <sullivan@apple.com>
196
197         Reviewed by Vicki Murley.
198         
199         - fixed <rdar://problem/4409288> REGRESSION (TOT): When no selection is present on page, 
200         Jump to Selection doesn't beep
201
202         * WebView.subproj/WebHTMLView.m:
203         (-[WebHTMLView _hasInsertionPoint]):
204         new helper method
205         (-[NSArray validateUserInterfaceItem:]):
206         Don't validate this menu item (or a couple of others) if the selection is a caret and
207         the page isn't editable. In that state, there is no visible selection so this menu item
208         doesn't make sense. I suspect this was broken by some editing-related change that makes
209         selectionState return WebSelectionStateCaret here where it used to return WebSelectionStateNone.
210
211 2006-01-16  Tim Omernick  <timo@apple.com>
212
213         Reviewed by John Sullivan.
214
215         WebKit part of <rdar://problem/4211707> NPAPI ref count behavior differs with Mozilla
216
217         * Plugins.subproj/WebBaseNetscapePluginView.m:
218         (-[WebBaseNetscapePluginView getVariable:value:]):
219         The returned window script object is expected to be retained, as described here:
220         <http://www.mozilla.org/projects/plugins/npruntime.html#browseraccess>
221
222 2006-01-16  Anders Carlsson  <andersca@mac.com>
223
224         Reviewed by Darin.
225
226         * WebInspector.subproj/webInspector/inspector.js:
227         Use defined NodeType values instead of integers.
228
229 2006-01-15  Timothy Hatcher  <timothy@apple.com>
230
231         Reviewed by Darin.
232  
233         New DOM Inspector that lives in WebKit and is accessible from any WebView.
234         Accessible from a contextual menu when the WebKitEnableInspectElementContextMenuItem default is
235         true or you have a development build. Browsing the tree, serialized HTML and CSS rules work.
236  
237         To always enable enter the following in the Terminal (change the bundle id to affect other WebKit apps):
238         defaults write com.apple.Safari WebKitEnableInspectElementContextMenuItem -bool true
239  
240         http://bugzilla.opendarwin.org/show_bug.cgi?id=6571
241
242         * English.lproj/Localizable.strings:
243         * English.lproj/StringsNotToBeLocalized.txt: reorder of the entries
244         * Misc.subproj/WebKitNSStringExtras.h:
245         * Misc.subproj/WebKitNSStringExtras.m:
246         (-[NSString _webkit_stringByCollapsingWhitespaceCharacters]): collapses consecutive whitespace into a single space
247         * WebCoreSupport.subproj/WebFrameBridge.m:
248         (-[WebFrameBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): cleanup
249         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): call the new UI delegate method
250         * WebInspector.subproj: Added.
251         * WebInspector.subproj/WebInspector.h: Added.
252         * WebInspector.subproj/WebInspector.m: Added.
253         (+[WebInspector sharedWebInspector]):
254         (-[WebInspector init]):
255         (-[WebInspector initWithWebFrame:]):
256         (-[WebInspector dealloc]):
257         (-[WebInspector window]):
258         (-[WebInspector windowDidLoad]):
259         (-[WebInspector windowWillClose:]):
260         (-[WebInspector showWindow:]):
261         (-[WebInspector setWebFrame:]):
262         (-[WebInspector webFrame]):
263         (-[WebInspector setRootDOMNode:]):
264         (-[WebInspector rootDOMNode]):
265         (-[WebInspector setFocusedDOMNode:]):
266         (-[WebInspector focusedDOMNode]):
267         (-[WebInspector setSearchQuery:]):
268         (-[WebInspector searchQuery]):
269         (-[WebInspector searchResults]):
270         (-[WebInspector showOptionsMenu]):
271         (-[WebInspector selectNewRoot:]):
272         (-[WebInspector resizeTopArea:]):
273         (-[WebInspector treeViewScrollTo:]):
274         (-[WebInspector treeViewOffsetTop]):
275         (-[WebInspector treeViewScrollHeight]):
276         (-[WebInspector traverseTreeBackward]):
277         (-[WebInspector traverseTreeForward]):
278         (-[WebInspector _toggleIgnoreWhitespace:]):
279         (-[WebInspector _highlightNode:]):
280         (-[WebInspector _nodeHighlightExpired:]):
281         (-[WebInspector _focusRootNode:]):
282         (-[WebInspector _revealAndSelectNodeInTree:]):
283         (-[WebInspector _showSearchResults:]):
284         (-[WebInspector _refreshSearch]):
285         (-[WebInspector _update]):
286         (-[WebInspector _updateRoot]):
287         (-[WebInspector _updateTreeScrollbar]):
288         (+[WebInspector isSelectorExcludedFromWebScript:]):
289         (+[WebInspector webScriptNameForSelector:]):
290         (+[WebInspector isKeyExcludedFromWebScript:]):
291         (-[WebInspector handleEvent:]):
292         (-[WebInspector webView:didFinishLoadForFrame:]):
293         (-[WebInspector webView:plugInViewWithArguments:]):
294         (-[WebInspector outlineView:numberOfChildrenOfItem:]):
295         (-[WebInspector outlineView:isItemExpandable:]):
296         (-[WebInspector outlineView:child:ofItem:]):
297         (-[WebInspector outlineView:objectValueForTableColumn:byItem:]):
298         (-[WebInspector outlineView:willDisplayOutlineCell:forTableColumn:item:]):
299         (-[WebInspector outlineViewItemDidCollapse:]):
300         (-[WebInspector outlineViewSelectionDidChange:]):
301         (-[WebInspectorPrivate dealloc]):
302         (-[DOMHTMLElement _addClassName:]): Helper method for the Inspector to append style classes
303         (-[DOMHTMLElement _removeClassName:]): Helper method for the Inspector to remove style classes
304         (-[DOMNode _contentPreview]):
305         (-[DOMNode _isAncestorOfNode:]):
306         (-[DOMNode _isDescendantOfNode:]):
307         (-[DOMNode _isWhitespace]):
308         (-[DOMNode _lengthOfChildNodesIgnoringWhitespace]):
309         (-[DOMNode _childNodeAtIndexIgnoringWhitespace:]):
310         (-[DOMNode _nextSiblingSkippingWhitespace]):
311         (-[DOMNode _previousSiblingSkippingWhitespace]):
312         (-[DOMNode _firstChildSkippingWhitespace]):
313         (-[DOMNode _lastChildSkippingWhitespace]):
314         (-[DOMNode _firstAncestorCommonWithNode:]):
315         (-[DOMNode _traverseNextNodeStayingWithin:]):
316         (-[DOMNode _traverseNextNodeSkippingWhitespaceStayingWithin:]):
317         (-[DOMNode _traversePreviousNode]):
318         (-[DOMNode _traversePreviousNodeSkippingWhitespace]):
319         (-[DOMNode _nodeTypeName]):
320         (-[DOMNode _shortDisplayName]):
321         (-[DOMNode _displayName]):
322         * WebInspector.subproj/WebInspectorInternal.h: Added.
323         * WebInspector.subproj/WebInspectorOutlineView.h: Added.
324         * WebInspector.subproj/WebInspectorOutlineView.m: Added.
325         (-[WebInspectorOutlineView isOpaque]):
326         (-[WebInspectorOutlineView _highlightColorForCell:]):
327         (-[WebInspectorOutlineView _highlightRow:clipRect:]):
328         (-[WebInspectorOutlineView drawBackgroundInClipRect:]):
329         * WebInspector.subproj/WebInspectorPanel.h: Added.
330         * WebInspector.subproj/WebInspectorPanel.m: Added.
331         (-[WebInspectorPanel canBecomeKeyWindow]):
332         (-[WebInspectorPanel canBecomeMainWindow]):
333         (-[WebInspectorPanel moveWindow:]):
334         (-[WebInspectorPanel resizeWindow:]):
335         (-[WebInspectorPanel sendEvent:]):
336         * WebInspector.subproj/WebNodeHighlight.h: Added.
337         * WebInspector.subproj/WebNodeHighlight.m: Added.
338         (-[WebNodeHighlight initWithBounds:andRects:forView:]):
339         (-[WebNodeHighlight dealloc]):
340         (-[WebNodeHighlight fractionComplete]):
341         (-[WebNodeHighlight expire]):
342         (-[WebNodeHighlight redraw:]):
343         * WebInspector.subproj/WebNodeHighlightView.h: Added.
344         * WebInspector.subproj/WebNodeHighlightView.m: Added.
345         (-[WebNodeHighlightView roundedRect:withRadius:]):
346         (-[WebNodeHighlightView initWithHighlight:andRects:forView:]):
347         (-[WebNodeHighlightView dealloc]):
348         (-[WebNodeHighlightView isOpaque]):
349         (-[WebNodeHighlightView drawRect:]):
350         * WebInspector.subproj/webInspector: Added.
351         * WebInspector.subproj/webInspector/Images: Added.
352         * WebInspector.subproj/webInspector/Images/close.png: Added.
353         * WebInspector.subproj/webInspector/Images/closePressed.png: Added.
354         * WebInspector.subproj/webInspector/Images/downTriangle.png: Added.
355         * WebInspector.subproj/webInspector/Images/menu.png: Added.
356         * WebInspector.subproj/webInspector/Images/menuPressed.png: Added.
357         * WebInspector.subproj/webInspector/Images/popupFill.png: Added.
358         * WebInspector.subproj/webInspector/Images/popupFillPressed.png: Added.
359         * WebInspector.subproj/webInspector/Images/popupLeft.png: Added.
360         * WebInspector.subproj/webInspector/Images/popupLeftPressed.png: Added.
361         * WebInspector.subproj/webInspector/Images/popupRight.png: Added.
362         * WebInspector.subproj/webInspector/Images/popupRightPressed.png: Added.
363         * WebInspector.subproj/webInspector/Images/rightTriangle.png: Added.
364         * WebInspector.subproj/webInspector/Images/scrollThumbBottom.png: Added.
365         * WebInspector.subproj/webInspector/Images/scrollThumbMiddle.png: Added.
366         * WebInspector.subproj/webInspector/Images/scrollThumbTop.png: Added.
367         * WebInspector.subproj/webInspector/Images/scrollTrackBottom.png: Added.
368         * WebInspector.subproj/webInspector/Images/scrollTrackMiddle.png: Added.
369         * WebInspector.subproj/webInspector/Images/scrollTrackTop.png: Added.
370         * WebInspector.subproj/webInspector/Images/squareButtonRight.png: Added.
371         * WebInspector.subproj/webInspector/Images/squareButtonRightPressed.png: Added.
372         * WebInspector.subproj/webInspector/Images/upTriangle.png: Added.
373         * WebInspector.subproj/webInspector/inspector.css: Added.
374         * WebInspector.subproj/webInspector/inspector.html: Added.
375         * WebInspector.subproj/webInspector/inspector.js: Added.
376         * WebKit.xcodeproj/project.pbxproj: Adds Web Inspector files
377         * WebView.subproj/WebUIDelegatePrivate.h: new UI delegate method to supply a replacement view for plugins
378         * WebView.subproj/WebView.m:
379         (-[WebView _menuForElement:defaultItems:]): Add a new context menu item for inspecting
380         (-[WebView _inspectElement:]): Context menu item target for inspecting
381
382 2006-01-14  Alexey Proskuryakov  <ap@nypop.com>
383
384         Reviewed by Darin.
385
386         - Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6531
387         document.cookie="killmenothing" doesn't set the cookie
388
389         * WebCoreSupport.subproj/WebCookieAdapter.m: (-[WebCookieAdapter setCookies:forURL:policyBaseURL:]):
390         Append an '=' to the cookie string if it has none, so that 
391         +[NSHTTPCookie cookiesWithResponseHeaderFields:forURL:] can parse it.
392
393 2006-01-14  Maciej Stachowiak  <mjs@apple.com>
394
395         Reviewed by Eric.
396
397         - added bridging infrastructure for Page class
398         
399         * WebCoreSupport.subproj/WebPageBridge.h: Added.
400         * WebCoreSupport.subproj/WebPageBridge.m: Added.
401         (-[WebPageBridge initWithMainFrameName:view:]): New class, somewhat obvious.
402         * WebKit.xcodeproj/project.pbxproj:
403         * WebView.subproj/WebView.m:
404         (-[WebViewPrivate dealloc]): Don't use _mainFrameBrige, use _pageBridge
405         (-[WebView _close]): ditto
406         (-[WebView _commonInitializationWithFrameName:groupName:]): ditto
407         (-[WebView mainFrame]): ditto
408
409 2006-01-12  Maciej Stachowiak  <mjs@apple.com>
410
411         Rubber stamped by Eric.
412
413         - rename WebBridge to WebFrameBridge
414         
415         - also removed all tabs from WebFrameBridge.m
416
417         * DOM.subproj/WebDOMOperations.m:
418         (-[DOMNode _bridge]):
419         (-[DOMNode webArchive]):
420         (-[DOMRange _bridge]):
421         (-[DOMRange webArchive]):
422         * DOM.subproj/WebDOMOperationsPrivate.h:
423         * English.lproj/StringsNotToBeLocalized.txt:
424         * Misc.subproj/WebCoreStatistics.m:
425         * Misc.subproj/WebNSViewExtras.h:
426         * Misc.subproj/WebNSViewExtras.m:
427         (-[NSView _bridge]):
428         * Plugins.subproj/WebBaseNetscapePluginView.m:
429         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
430         * Plugins.subproj/WebNetscapePluginStream.m:
431         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
432         * Plugins.subproj/WebPluginContainerCheck.m:
433         (-[WebPluginContainerCheck _isForbiddenFileLoad]):
434         * Plugins.subproj/WebPluginController.h:
435         * Plugins.subproj/WebPluginController.m:
436         (-[WebPluginController bridge]):
437         * WebCoreSupport.subproj/WebBridge.h: Removed.
438         * WebCoreSupport.subproj/WebBridge.m: Removed.
439         * WebCoreSupport.subproj/WebFileButton.h:
440         * WebCoreSupport.subproj/WebFileButton.m:
441         (-[WebFileChooserButton initWithBridge:delegate:]):
442         * WebCoreSupport.subproj/WebFrameBridge.h: Added.
443         * WebCoreSupport.subproj/WebFrameBridge.m: Added.
444         (-[WebFrameBridge mainFrame]):
445         (-[WebFrameBridge createWindowWithURL:frameName:]):
446         (-[WebFrameBridge canTargetLoadInFrame:]):
447         (-[WebFrameBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
448         (formDelegate):
449         (-[WebFrameBridge createModalDialogWithURL:]):
450         * WebCoreSupport.subproj/WebSubresourceLoader.m:
451         * WebCoreSupport.subproj/WebTextRendererFactory.m:
452         * WebCoreSupport.subproj/WebViewFactory.m:
453         (-[WebViewFactory bridgeForView:]):
454         * WebKit.xcodeproj/project.pbxproj:
455         * WebView.subproj/WebDataSource.m:
456         (-[WebDataSource _bridge]):
457         (-[WebDataSource _receivedMainResourceError:complete:]):
458         (-[WebDataSource _stringWithData:]):
459         * WebView.subproj/WebDataSourcePrivate.h:
460         * WebView.subproj/WebDebugDOMNode.m:
461         * WebView.subproj/WebDefaultContextMenuDelegate.m:
462         * WebView.subproj/WebFrame.m:
463         (-[WebFrame _traverseNextFrameStayWithin::]):
464         (Frame):
465         (-[WebFrame _detachFromParent]):
466         (-[WebFrame _bridge]):
467         (-[WebFrame _initWithWebFrameView:webView:bridge:]):
468         * WebView.subproj/WebFrameInternal.h:
469         * WebView.subproj/WebFramePrivate.h:
470         * WebView.subproj/WebFrameView.m:
471         (-[WebFrameView webCoreBridge]):
472         (-[WebFrameView _bridge]):
473         * WebView.subproj/WebHTMLRepresentation.m:
474         (+[WebHTMLRepresentation supportedMIMETypes]):
475         (-[WebHTMLRepresentation _bridge]):
476         (-[WebHTMLRepresentation documentSource]):
477         * WebView.subproj/WebHTMLRepresentationPrivate.h:
478         * WebView.subproj/WebHTMLView.m:
479         (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]):
480         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]):
481         (-[WebHTMLView updateFocusState]):
482         (-[NSArray validateUserInterfaceItem:]):
483         (-[NSArray attributedString]):
484         (-[NSArray selectedAttributedString]):
485         (-[NSArray concludeDragForDraggingInfo:actionMask:]):
486         (-[NSArray keyDown:]):
487         (-[NSArray _alterCurrentSelection:direction:granularity:]):
488         (-[NSArray _alterCurrentSelection:verticalDistance:]):
489         (-[NSArray _expandSelectionToGranularity:]):
490         (-[NSArray cut:]):
491         (-[NSArray _applyStyleToSelection:withUndoAction:]):
492         (-[NSArray _applyParagraphStyleToSelection:withUndoAction:]):
493         (-[NSArray pasteAsPlainText:]):
494         (-[NSArray insertNewline:]):
495         (-[NSArray insertLineBreak:]):
496         (-[NSArray insertParagraphSeparator:]):
497         (-[NSArray _changeWordCaseWithSelector:]):
498         (-[NSArray startSpeaking:]):
499         (-[NSArray selectToMark:]):
500         (-[NSArray swapWithMark:]):
501         (-[NSArray transpose:]):
502         (-[WebHTMLView characterIndexForPoint:]):
503         (-[WebHTMLView firstRectForCharacterRange:]):
504         (-[WebHTMLView selectedRange]):
505         (-[WebHTMLView attributedSubstringFromRange:]):
506         (-[WebHTMLView _selectMarkedText]):
507         (-[WebHTMLView _selectRangeInMarkedText:]):
508         (-[WebHTMLView setMarkedText:selectedRange:]):
509         (-[WebHTMLView _selectionIsInsideMarkedText]):
510         (-[WebTextCompleteController _insertMatch:]):
511         (-[WebTextCompleteController doCompletion]):
512         (-[WebTextCompleteController endRevertingChange:moveLeft:]):
513         * WebView.subproj/WebHTMLViewPrivate.h:
514         * WebView.subproj/WebImageView.m:
515         * WebView.subproj/WebMainResourceLoader.m:
516         * WebView.subproj/WebRenderNode.m:
517         * WebView.subproj/WebResource.m:
518         (-[WebResource _stringValue]):
519         * WebView.subproj/WebScriptDebugDelegate.m:
520         * WebView.subproj/WebTextView.m:
521         * WebView.subproj/WebView.m:
522         (-[WebView _createFrameNamed:inParent:allowsScrolling:]):
523         (-[WebView _commonInitializationWithFrameName:groupName:]):
524         (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]):
525         (-[WebView moveDragCaretToPoint:]):
526         (-[WebView shouldClose]):
527         (-[WebView editableDOMRangeForPoint:]):
528         (-[WebView setEditable:]):
529         (-[WebView deleteSelection]):
530         (-[WebView _bridgeForSelectedOrMainFrame]):
531         (-[WebView _bridgeAtPoint:]):
532
533 2006-01-13  Darin Adler  <darin@apple.com>
534
535         - Replaced tabs with spaces in source files that had less than 10 lines with tabs.
536         - Set allow-tabs Subversion property in source files that have more than 10 lines with tabs.
537
538 2006-01-12  John Sullivan  <sullivan@apple.com>
539
540         Reviewed by Tim O.
541         
542         - fixed <rdar://problem/4406994> REGRESSION (TOT): zooming window at cnn.com 
543         makes window fill width of screen
544
545         * WebView.subproj/WebFrameView.m:
546         (-[WebFrameView _largestChildWithScrollBars]):
547         now skips zero-area frames, used by some evil ads
548
549 2006-01-10  John Sullivan  <sullivan@apple.com>
550
551         Reviewed by Tim H.
552         
553         - fixed <rdar://problem/4265966> PDFs continue to show a (secondary) selection 
554         when the focus moves elsewhere
555
556         * WebView.subproj/WebPDFView.h:
557         added trackedFirstResponder ivar
558         
559         * WebView.subproj/WebPDFView.m:
560         (-[WebPDFView dealloc]):
561         assert that trackedFirstResponder is nil, as it was released/cleared in viewWillMoveToWindow:
562         (-[WebPDFView _trackFirstResponder]):
563         If the tracked first responder was the PDFView's documentView, and the current first responder isn't,
564         deselect all. This is equivalent to overriding resignFirstResponder in the PDFView's 
565         documentView and deselecting all there, as other web document view classes do. Also, keep track of
566         the new first responder for next time.
567         (-[WebPDFView viewWillMoveToWindow:]):
568         stop observing NSWindowDidUpdateNotification on the old window
569         (-[WebPDFView viewDidMoveToWindow]):
570         start observing NSWindowDidUpdateNotification on the new window, with _trackFirstResponder
571         as the callback. Ideally we'd use a notification that tells us that the first responder is
572         changing, but there is no such notification, so we have to use this very frequent one instead.
573         The archaic 2573089 tracks the desire to have a responder-changed notification.
574         (-[WebPDFView becomeFirstResponder]):
575         removed comment about this bug that's now obsolete
576
577 2006-01-11  Darin Adler  <darin@apple.com>
578
579         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
580
581 2006-01-09  Darin Adler  <darin@apple.com>
582
583         * Makefile.am: Removed.
584
585 2006-01-09  John Sullivan  <sullivan@apple.com>
586
587         Reviewed by Beth Dakin.
588                 
589         - fixed <rdar://problem/4302263> CrashTracer: 504 crashes in Safari at 
590         com.apple.AppKit: NSTargetForSendAction + 1060
591         
592         The problem was that back/forward/stop/reload context menu items had nil targets,
593         and thus were relying on AppKit to start from the context menu target (the clicked-upon 
594         view) and use the responder chain to find the WebView to act as the target. In Tiger, 
595         context menus don't retain their implicit target (the clicked-upon view again), and
596         there was a race condition where the WebHTMLView could be dealloc'ed while the menu item
597         was being processed, eventually crashing in AppKit. The fix is to explicitly set the
598         target of these four menu items to the WebView, since the WebView is not dealloc'ed
599         in the loading process.
600         
601         This might be fixed in a future version of AppKit by making the context menu retain its
602         implicit target until it is dismissed, but with this change it will be fixed regardless
603         of potential AppKit changes.
604
605         * WebView.subproj/WebDefaultContextMenuDelegate.m:
606         (-[WebDefaultUIDelegate menuItemWithTag:target:]):
607         Added target: parameter and removed code that set the target for some menu items; now the
608         caller is responsible for supplying the target.
609         (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
610         Supply target (or nil) in calls to menuItemWithTag:target:. This matches existing behavior
611         except for Back/Forward/Stop/Reload, which used to supply no target but now supply the
612         WebView as the target.
613         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
614         Supply target (or nil) in calls to menuItemWithTag:target:
615
616 2006-01-09  Geoffrey Garen  <ggaren@apple.com>
617
618         Reviewed by Darin.
619         
620         - Second cut at fixing <rdar://problem/4268278> Submitting a form 
621         in onUnload event handler causes crash in 
622         -[WebDataSource(WebPrivate) _commitIfReady:].)
623
624         - Fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=6331
625         REGRESSION: form events don't fire after back/forward navigation, 
626         due to inconsistent load state
627         
628         * WebView.subproj/WebDataSource.m:
629         (-[WebDataSource _stopLoading]): 
630         (1) If there are no resource loaders to signal the WebView that we've
631         been canceled, manufacture the signal. Otherwise, the cancel gets 
632         ignored and nobody cleans up after the load. (We signal the WebView but
633         not the WebFrame because we don't want the WebFrame to tear down the 
634         data source.  Unlike most canceled data sources, this one has valid data 
635         because it's in the back/forward cache.)
636         (2) Update _private->stopping before returning because if the 
637         data source is in the back/forward cache it can be reused, so it 
638         needs to be in a consistent state. (We never encountered this 
639         situation before because we would always crash first.)
640         (-[WebDataSource _commitLoadWithData:]): Move _commitIfReady call 
641         inside retain block because the commit may cause an unload event 
642         to fire, which may start a new load, deallocating the current 
643         data source. (This is the same reason the rest of the function is 
644         in the retain block.)
645         * WebView.subproj/WebFrame.m:
646         (-[WebFrame _transitionToCommitted:]): If the unload handler 
647         started a new load, return early to avoid stomping it.
648         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): 
649         Undo previous incorrect fix.
650         (-[WebFrame stopLoading]): Remove misleading comment. Setting 
651         provisionalDataSource to nil is not optional but required for 
652         internal consistency.
653
654 2006-01-09  Alexey Proskuryakov  <ap@nypop.com>
655
656         Reviewed by Maciej.
657
658         Affects many layout tests (when running with primary Russian language).
659
660         - Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=4759
661         'ex' length unit calculation (Some layout tests fail if the system primary language is Russian)
662
663         * WebCoreSupport.subproj/WebTextRenderer.m:
664         (-[WebTextRenderer xHeight]): Use glyphForCharacter() instead of -[NSFont glyphWithName:].
665
666 2006-01-07  Mitz Pettel  <opendarwin.org@mitzpettel.com>
667
668         Reviewed by Darin, landed by ap.
669         
670         Test: fast/text/atsui-small-caps-punctuation-size.html
671         
672         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6397
673           ATSUI small caps use small punctuation
674           
675         * WebCoreSupport.subproj/WebTextRenderer.m:
676         (createATSULayoutParameters): Changed the characters for which size must
677         not change from !u_isbase() to the M* categories.
678
679 2006-01-06  John Sullivan  <sullivan@apple.com>
680
681         Reviewed by Vicki Murley (full credit) and Tim Omernick (half credit).
682         
683         - fixed <rdar://problem/4401102> REGRESSION (420+): When displaying a PDF, tabbing around stops working after reaching page
684
685         * WebView.subproj/WebPDFView.m:
686         (-[WebPDFView setNextKeyView:]):
687         Use [PDFSubview documentView] rather than PDFSubview here, since that's the view that we now hand off first-responderhood to.
688
689 2006-01-05  Tim Omernick  <timo@apple.com>
690
691         Reviewed by Geoff.
692
693         <rdar://problem/4400804> Client-side redirect to a non-HTTP URL confuses Safari
694
695         * WebView.subproj/WebFrame.m:
696         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
697         If we were waiting for a quick redirect, but the policy delegate decided to ignore it, then we 
698         need to report that the client redirect was cancelled.
699         
700 2006-01-05  John Sullivan  <sullivan@apple.com>
701
702         * WebView.subproj/WebPDFView.m:
703         (-[WebPDFView _fakeKeyEventWithFunctionKey:]):
704         Just added a FIXME comment about how to clean up this minor hack in the future.
705
706 2006-01-05  John Sullivan  <sullivan@apple.com>
707
708         Reviewed by Tim O.
709         
710         - fixed these bugs:
711         <rdar://problem/3021785> page up/down don't work on frameset pages unless you click        
712         <rdar://problem/3021788> Page Up/Down moves an unscrollable frame if you click on it first
713         
714         and the WebKit part of this (need new Safari too for complete fix):
715         <rdar://problem/4378905> Page up/down don't work in PDFs when address field is focused
716         
717         I moved some logic down from Safari that dealt with finding the largest scrollable child frame in a frameset,
718         and added support for standard scrolling-related selectors to WebPDFView. The latter was needed for 4378905;
719         the former was needed due to side effects of the Safari part of the change. As long as I was doing the former,
720         I also used that logic to fix 3021785 and 3021788.
721         
722         * WebView.subproj/WebFrameViewPrivate.h:
723         new currently-private methods _hasScrollBars and _largestChildWithScrollBars
724
725         * WebView.subproj/WebFrameView.m:
726         (-[WebFrameView scrollToBeginningOfDocument:]):
727         if we don't have scroll bars, operate on our largest child with scroll bars instead
728         (-[WebFrameView scrollToEndOfDocument:]):
729         ditto
730         (-[WebFrameView _pageVertically:]):
731         ditto
732         (-[WebFrameView _pageHorizontally:]):
733         ditto
734         (-[WebFrameView _scrollLineVertically:]):
735         ditto
736         (-[WebFrameView _scrollLineHorizontally:]):
737         ditto
738         (-[WebFrameView keyDown:]):
739         where we were bailing out if ![self allowsScrolling], also check for whether there's a
740         child with scroll bars, and don't bail out if so
741         (-[WebFrameView _area]):
742         new helper method used to implement _largestChildWithScrollBars (code moved from Safari)
743         (-[WebFrameView _hasScrollBars]):
744         new method, just returns YES if either scroll bar is showing (code moved from Safari)
745         (-[WebFrameView _largestChildWithScrollBars]):
746         new method, returns the child with the largest area that is showing at least one scroll bar
747         (code moved from Safari and tweaked a little)
748         
749         * WebView.subproj/WebPDFView.m:
750         (-[WebPDFView _fakeKeyEventWithFunctionKey:]):
751         new method, hackaround for the fact that PDFView handles key downs from standard scrolling keys
752         but does not implement the standard responder selectors
753         (-[WebPDFView scrollPageDown:]):
754         use _fakeKeyEventWithFunctionKey: to get the PDFView to scroll appropriately
755         (-[WebPDFView scrollPageUp:]):
756         ditto
757         (-[WebPDFView scrollToBeginningOfDocument:]):
758         ditto
759         (-[WebPDFView scrollToEndOfDocument:]):
760         ditto
761         
762         * WebView.subproj/WebView.m:
763         add scrollToBeginningOfDocument and scrollToEndOfDocument to the list of responder operations
764         that we hand off appropriately to the responder chain. These two aren't defined in any header
765         but are generated by Home and End keys and used by the text system.
766
767 2006-01-05  Geoffrey Garen  <ggaren@apple.com>
768
769         Reviewed by Darin.
770
771         - Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=6361
772         Add plugin support to DumpRenderTree
773
774         * WebKit.exp: export WebPluginDatabase class, which DumpRenderTree
775         needs to add plugins to the runtime.
776
777 2006-01-03  Maciej Stachowiak  <mjs@apple.com>
778
779         Reviewed by Darin.
780
781         - move frame management and finding code from WebKit to WebCore
782         http://bugzilla.opendarwin.org/show_bug.cgi?id=6368
783
784         * Plugins.subproj/WebBaseNetscapePluginView.m:
785         (-[WebBaseNetscapePluginView loadPluginRequest:]): Set frame name straight on the bridge,
786         instead of having it bubble through the view and frame.
787         * WebCoreSupport.subproj/WebBridge.m:
788         (-[WebBridge initWithFrameName:view:]): don't pass name to frame, we own it now; set it
789         on ourselves directly
790         (-[WebBridge findFrameNamed:]): removed
791         (-[WebBridge createWindowWithURL:frameName:]): set name on bridge, not webview
792         (-[WebBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
793         (-[WebBridge runModal]): remove excess braces
794         * WebKit.xcodeproj/project.pbxproj:
795         * WebView.subproj/WebControllerSets.h: Removed.
796         * WebView.subproj/WebControllerSets.m: Removed.
797         * WebView.subproj/WebFrame.m:
798         (-[WebFramePrivate name]): removed
799         (-[WebFramePrivate setName:]): removed
800         (-[WebFramePrivate dealloc]): don't release name, we no longer have one
801         (-[WebFrame _appendChild:]): removed
802         (-[WebFrame _removeChild:]): removed
803         (-[WebFrame _createItem:]): removed stray space
804         (-[WebFrame _immediateChildFrameNamed:]): Just call the bridge
805         (-[WebFrame _setName:]): removed
806         (-[WebFrame _detachFromParent]): remove bridge from parent note self
807         (-[WebFrame _continueLoadRequestAfterNewWindowPolicy:frameName:formState:]):
808         (-[WebFrame _addChild:]): Call appendChild: on bridge, not self
809         (-[WebFrame _nextFrameWithWrap:]): just call bridge (and moved helpers there)
810         (-[WebFrame _previousFrameWithWrap:]): just call bridge (and moved helpers there)
811         (-[WebFrame _initWithWebFrameView:webView:bridge:]): don't take a name any more
812         (-[WebFrame _setFrameNamespace:]): just call bridge
813         (-[WebFrame _frameNamespace]): just call bridge
814         (-[WebFrame _hasSelection]): remove excess braces
815         (-[WebFrame _clearSelection]): ditto
816         (-[WebFrame initWithName:webFrameView:webView:]): no more name
817         (-[WebFrame name]): just call bridge
818         (-[WebFrame findFrameNamed:]): just call bridge (and moved helpers there)
819         (-[WebFrame parentFrame]): fixed for new style
820         * WebView.subproj/WebFrameInternal.h:
821         * WebView.subproj/WebFramePrivate.h:
822         * WebView.subproj/WebView.m:
823         * WebView.subproj/WebViewPrivate.h:
824
825 2006-01-03  Darin Adler  <darin@apple.com>
826
827         Reviewed by Beth.
828
829         This is a fix for <rdar://problem/3710994> HiDPI: Link underlines are 
830         still one pixel high even if the UI resolution is > 100%
831
832         This fix refactors -drawLineForCharacters to make its organization
833         more logical. It changes behavior when printing to the screen by
834         rounding the parameters of the line (x- and y-values, width, and 
835         thickness) to integer boundaries in device space. Previously,
836         this part of the routine just hardcoded a 1 pixel line.
837
838         * WebCoreSupport.subproj/WebTextRenderer.m:
839         (drawHorizontalLine): This just takes care of drawing the line once everything
840         has been calculated in -drawLineForCharacters
841         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
842         Now takes device space into account. Calls drawHorizontalLine
843
844 2006-01-03  Maciej Stachowiak  <mjs@apple.com>
845
846         Reviewed by Vicki.
847
848         - moved frame traversal code across from bridge, also dropped the children
849         array
850
851         * WebCoreSupport.subproj/WebBridge.h:
852         * WebCoreSupport.subproj/WebBridge.m:
853         (-[WebBridge dealloc]): Don't release children array, that was moved
854         down to WebCore.
855         (-[WebBridge saveDocumentState:]):
856         - many methods moved to WebCore.
857         * WebView.subproj/WebFrame.m:
858         (Frame): New convenience method to get a WebFrame * from a method that
859         returns WebCoreBridge *.
860         (-[WebFrame _firstChildFrame]): use Frame()
861         (-[WebFrame _lastChildFrame]): ditto
862         (-[WebFrame _previousSiblingFrame]): ditto
863         (-[WebFrame _nextSiblingFrame]): ditto
864         (-[WebFrame _traverseNextFrameStayWithin:]): ditto
865
866 2006-01-03  Anders Carlsson  <andersca@mac.com>
867
868         Reviewed by Darin.
869
870         - Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6357
871         REGRESSION: iframe and target is broken
872         
873         * WebView.subproj/WebFrame.m:
874         (-[WebFrame _descendantFrameNamed:sourceFrame:]):
875         Return the correct frame.
876
877 2006-01-02  Maciej Stachowiak  <mjs@apple.com>
878
879         Reviewed by Eric.
880
881             - moved frame traversal logic from WebFrame to WebBridge
882             http://bugzilla.opendarwin.org/show_bug.cgi?id=6341
883
884             To do this, I had to invert the ownership so that WebBridge now
885             owns WebFrame instead of vice versa. As a result, WebView now owns
886             a WebBridge pointer and does not have a direct WebFrame pointer.
887
888         * WebCoreSupport.subproj/WebBridge.h:
889         * WebCoreSupport.subproj/WebBridge.m:
890         (-[WebBridge initWithFrameName:view:]): The initializer is now responsible for creating
891         the frame, so pass it what it needs to do that.
892         (-[WebBridge dealloc]): The bridge now owns the frame, so release it.
893         (-[WebBridge close]): ditto
894         (-[WebBridge firstChild]): Moved from WebFrame
895         (-[WebBridge lastChild]): ditto
896         (-[WebBridge childCount]): ditto
897         (-[WebBridge previousSibling]): ditto
898         (-[WebBridge nextSibling]): ditto
899         (-[WebBridge isDescendantOfFrame:]): ditto
900         (-[WebBridge traverseNextFrameStayWithin:]): ditto
901         (-[WebBridge appendChild:]): ditto
902         (-[WebBridge removeChild:]): ditto
903         * WebView.subproj/WebFrame.m:
904         (-[WebFrame _removeChild::]): Call WebBridge version
905         (-[WebFramePrivate dealloc]): ditto
906         (-[WebFrame _firstChildFrame]): ditto
907         (-[WebFrame _lastChildFrame]): ditto
908         (-[WebFrame _childFrameCount]): ditto
909         (-[WebFrame _previousSiblingFrame]): ditto
910         (-[WebFrame _nextSiblingFrame]): ditto
911         (-[WebFrame _traverseNextFrameStayWithin:]): ditto
912         (-[WebFrame _appendChild:]): ditto
913         (-[WebFrame _removeChild:]): ditto
914         (-[WebFrame _isDescendantOfFrame:]): ditto,
915         (-[WebFrame _detachFromParent]): reorder a bit to avoid losing our bridge
916         pointer before the bridge is due to release us, and don't release the
917         bridge any more since it now owns us
918         (-[WebFrame _initWithName:webFrameView:webView:bridge:]): new initializer,
919         we no longer create the bridge, instead it is passed in
920         (-[WebFrame initWithName:webFrameView:webView:]): Call the new designated
921         initializer, but this method is no longer viable and should be deprecated.
922         * WebView.subproj/WebFrameInternal.h:
923         
924         * WebView.subproj/WebView.m: WebView was changed to hold onto
925         the WebBridge for the main frame instead of the WebFrame.
926         
927         (-[WebViewPrivate dealloc]): update for the fact that we hold
928         a bridge now, not a frame.
929         (-[WebView _close]): ditto
930         (-[WebView _createFrameNamed:inParent:allowsScrolling:]): Create
931         a bridge, not a frame.
932         (-[WebView _commonInitializationWithFrameName:groupName:]): ditto.
933         (-[WebView setDefersCallbacks:]): get mainFrame via method
934         (-[WebView mainFrame]): Update to get the main frame properly
935
936 2005-12-30  Mitz Pettel  <opendarwin.org@mitzpettel.com>
937
938         Reviewed by Darin, landed by ap.
939         
940         Test: fast/text/justified-text-rect.html
941         
942         - WebKit part of fix for
943           http://bugzilla.opendarwin.org/show_bug.cgi?id=5461
944           Text width measured incorrectly when text-align: justify
945
946         * WebCoreSupport.subproj/WebTextRenderer.m:
947         (-[WebTextRenderer selectionRectForRun:style:geometry:]): Added.
948         (CG_drawHighlight): Use new function CG_selectionRect.
949         (CG_selectionRect): New function to compute the selection rect.
950         Eliminated rounding hackery that was required for keeping the highlight
951         rect within the selection rect computed by
952         InlineTextBox::selectionRect, since the latter uses this function now.
953         The new selection rect is wider and matches AppKit more closely,
954         although the right hand side is roundf()ed instead of cielf()ed for
955         optimal caret positioning.
956         (ATSU_drawHighlight): Use new function ATSU_selectionRect.
957         (ATSU_selectionRect): New function to compute the selection rect.
958         Much like CG_selectionRect.
959
960 2005-12-29  Geoffrey Garen  <ggaren@apple.com>
961
962         Reviewed by Eric.
963
964         Manual testcase added:
965         WebCore/manual-tests/onunload-form-submit-crash.html
966
967         - Fixed <rdar://problem/4268278> Submitting a form in onUnload event 
968         handler causes crash in -[WebDataSource(WebPrivate) _commitIfReady:] 
969
970         The problem is that the form submission in the unload event kicks off 
971         a new load in the midst of the load that caused the unload event to 
972         fire in the first place, so the two loads stomp each other.
973
974         The solution is to cancel the first load and let the unload handler's 
975         load win. (Firefox does the same.)
976
977         * WebView.subproj/WebFrame.m:
978         (-[WebFrame _transitionToCommitted:]): Moved call to -closeURL up
979         the call stack to _continueLoadRequest. (See below.) This has the 
980         side-effect of always firing the unload event, even if the new 
981         datasource never becomes committed, which seems like a good thing. 
982
983         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
984         Call -closeURL here, instead of in _transitionToCommitted,  so that the
985         unload handler can fire before we initialize any part of the load.
986         
987         Check provisionalDataSource for nil to discover if the unload event
988         kicked off its own load.
989
990         Cleared up some coments.
991
992         (-[WebFrame _detachFromParent]):
993         It turns out that if you close the window instead of just navigating
994         to a new page, you get an alternate assertion failure/crash because
995         the load kicked off by the unload event handler generates resource
996         loader callbacks after the associated WebFrame/WebView has disappeared.
997
998         The nifty solution here is just to reverse the order of calls to
999         -stopLoading and -closeURL, thus guaranteeing that -stopLoading has the
1000         last word when you close a window.
1001
1002 2005-12-30  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1003
1004         Reviewed by Eric, committed by Maciej.
1005         
1006         - fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=6288
1007           HEAD build broken 12/29/2005
1008
1009         * WebCoreSupport.subproj/WebTextRenderer.m:
1010         (overrideLayoutOperation): Use previous character from the buffer
1011         instead of ch which may be uninitialized on the first iteration.
1012
1013 2005-12-29  Maciej Stachowiak  <mjs@apple.com>
1014
1015         Reviewed by Eric.
1016
1017         - finished frame traversal cleanup
1018         http://bugzilla.opendarwin.org/show_bug.cgi?id=6293
1019
1020         * WebCoreSupport.subproj/WebBridge.m:
1021         (-[WebBridge childFrames]): Removed (this was unused)
1022         * WebView.subproj/WebFrame.m:
1023         (-[WebFrame _removeChild::]): Moved to FrameTraversal category.
1024         (-[WebFrame _childFrameCount]): New frame traversal method to avoid
1025         getting the count from the array directly.
1026         (-[WebFrame _appendChild:]): Factored out the parts of addChild: that
1027         seem directly relevant to adding a child.
1028         (-[WebFrame _removeChild:]): Moved to FrameTraversal category.
1029         (-[WebFrame _detachChildren]): Don't deallocate children array because
1030         there's no particular need to.
1031         (-[WebFrame _setDataSource:]): make the assert use _childFrameCount
1032         (-[WebFrame _opened]):
1033         (-[WebFrame _checkLoadComplete]): Instead of checking all frames starting
1034         from the main frame, check this frame and all ancestors. If a resource
1035         for a frame completes, that con only possibly finish loading for that
1036         frame and its ancestors, not any other frame in the tree.
1037         (-[WebFrame _recursiveCheckLoadComplete]): Removed, no longer needed.
1038         (-[WebFrame _childFramesMatchItem:]): Get child frame count in the new 
1039         approved way.
1040         (-[WebFrame _internalChildFrames]): removed
1041         (-[WebFrame _addChild:]): Use _appendChild: for most of the work.
1042         (-[WebFrame _generateFrameName]): Get child frame count in the new 
1043         approved way.
1044         (-[WebFrame _stopLoadingSubframes]): Use new frame traversal mechanisms,
1045         upon further consideration there's no need to copy part of the frame tree here.
1046         (-[WebFrame findFrameNamed:]): Remove extra braces.
1047         (-[WebFrame childFrames]): Make a new array using the frame traversal methods.
1048         * WebView.subproj/WebFramePrivate.h: Remove some methods.
1049         * WebView.subproj/WebMainResourceLoader.m:
1050         (-[WebMainResourceLoader didReceiveResponse:]): Do _checkLoadComplete on the current
1051         frame not the main frame (before there was no difference and now the new version is
1052         what is desired).
1053         * WebView.subproj/WebView.m:
1054         (-[WebView _finishedLoadingResourceFromDataSource:]): Remove stray space
1055         (-[WebView _mainReceivedBytesSoFar:fromDataSource:complete:]): Remove stray spaces
1056         and update FIXME comment.
1057         (-[WebView _receivedError:fromDataSource:]): Remove stray space
1058
1059 2005-12-29  Maciej Stachowiak  <mjs@apple.com>
1060
1061         Reviewed by Darin.
1062
1063         - abstract frame traversal in WebFrame more
1064         http://bugzilla.opendarwin.org/show_bug.cgi?id=6283
1065         
1066         Rewrote most of the frame traversal code in WebFrame to use DOM-style 
1067         first/last/next/previous methods, to abstract access better in preparation 
1068         for moving it down. 
1069
1070         As an added bonus, many formerly recursive methods are now iterative.
1071
1072         * WebKit.xcodeproj/project.pbxproj: Use gnu99 dialect of C, so that
1073         variables can be declared in for loop initializers.
1074
1075         - added new frame traversal methods, to avoid dealing with the children array
1076         directly:
1077         
1078         * WebView.subproj/WebFrame.m:
1079         (-[WebFrame _firstChildFrame]): New method.
1080         (-[WebFrame _lastChildFrame]): New method.
1081         (-[WebFrame _previousSiblingFrame]): New method.
1082         (-[WebFrame _nextSiblingFrame]): New method.
1083         (-[WebFrame _traverseNextFrameStayWithin:]): Like traverseNextNode() in the DOM;
1084         uses some of the previous.
1085
1086         - apply the new methods
1087         
1088         (-[WebFrame _createItemTreeWithTargetFrame:clippedAtTarget:]): Rewrite loop
1089         to use new traversal methods.
1090         (-[WebFrame _immediateChildFrameNamed:]): ditto, also added FIXME
1091         (-[WebFrame _setName:]): Improved comment, removed gratuitous brace
1092         (-[WebFrame _isDescendantOfFrame:]): Rewrote to chase parent pointers instead
1093         of looking in child arrays (duh)
1094         (-[WebFrame _detachChildren]): Rewrite loop to use new traversal methods,
1095         still walk backwards for now.
1096         (-[WebFrame _closeOldDataSources]): Rewrite using new traversal methods.
1097         (-[WebFrame _childFramesMatchItem:]): ditto
1098         (-[WebFrame _defersCallbacksChanged]): ditto
1099         (-[WebFrame _viewWillMoveToHostWindow:]): ditto
1100         (-[WebFrame _viewDidMoveToHostWindow]): ditto
1101         (-[WebFrame _addChild:]): don't use childFrames method
1102         (-[WebFrame _removeChild:]): Clear out the sibling pointers after unlinking from the list, 
1103         not obvious if anything needs this but it seems like the right thing to do.
1104         (-[WebFrame _generateFrameName]): don't bother to nil-check children array, since
1105         calling count on nil still gives 0.
1106         (-[WebFrame _saveDocumentAndScrollState]): Rewrite to use frame traversal methods
1107         (-[WebFrame _deepLastChildFrame]): renamed from _lastChildFrame, rewrite to use child
1108         traversal methods.
1109         (-[WebFrame _nextFrameWithWrap:]): Use new frame traversal stuff (mostly just
1110         a thin wrapper on _traverseNextFrameStayWithin: 
1111         (-[WebFrame _previousFrameWithWrap:]): Use new traversal functions
1112         (-[WebFrame _numPendingOrLoadingRequests:]): Rewrite loop with new tracrsal functions
1113         (-[WebFrame _reloadForPluginChanges]): ditto
1114         (-[WebFrame _recursive_pauseNullEventsForAllNetscapePlugins]): ditto
1115         (-[WebFrame _recursive_resumeNullEventsForAllNetscapePlugins]): ditto
1116         (-[WebFrame _documentViews]): ditto
1117         (-[WebFrame _updateDrawsBackground]): ditto
1118         (-[WebFrame _unmarkAllMisspellings]): ditto
1119         (-[WebFrame _atMostOneFrameHasSelection]): ditto
1120         (-[WebFrame _findFrameWithSelection]): ditto
1121         (-[WebFrame _stopLoadingSubframes]): ditto
1122         (-[WebFrame _subframeIsLoading]): ditto
1123         (-[WebFrame _descendantFrameNamed:sourceFrame:]): ditto
1124
1125 2005-12-29  Darin Adler  <darin@apple.com>
1126
1127         * WebView.subproj/WebFrameView.m: (-[WebFrameViewPrivate dealloc]):
1128         Removed unused "draggingTypes" instance variable.
1129
1130 2005-12-29  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1131
1132         Reviewed by darin 
1133         
1134         Test: fast/text/atsui-spacing-features.html
1135
1136         - WebKit part of fix for
1137           http://bugzilla.opendarwin.org/show_bug.cgi?id=3922
1138           Variable word/letter spacing and full justification not supported for
1139           ATSUI-rendered text
1140
1141         * WebCoreSupport.subproj/WebTextRenderer.m:
1142         (overrideLayoutOperation): Add letter- and word-spacing and padding for
1143         justification.
1144         (createATSULayoutParameters): Compute padding per space.
1145
1146 2005-12-27  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1147
1148         Reviewed by Maciej, landed by Darin.
1149
1150         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=4844
1151         Render "simple" Hebrew using the CG codepath
1152
1153         * WebCoreSupport.subproj/WebTextRenderer.m: (shouldUseATSU): Exclude Hebrew letters and maqaf.
1154
1155 2005-12-25  Maciej Stachowiak  <mjs@apple.com>
1156
1157         Reviewed by Geoff
1158
1159         - Remove WebFrame's parent frame pointer, instead rely on WebCore's parent concept
1160         http://bugzilla.opendarwin.org/show_bug.cgi?id=6241
1161
1162         * WebCoreSupport.subproj/WebBridge.h:
1163         * WebCoreSupport.subproj/WebBridge.m:
1164         (-[WebBridge canTargetLoadInFrame:]): Use bridge parent method instead of needlessly
1165         asking for parent via WebFrame
1166         (-[WebBridge frameDetached]): Don't call _removeChild on the parent frame any more
1167         because WebFame's _detachFromParent takes care of that now.
1168         * WebView.subproj/WebFrame.m:
1169         (-[WebFrame _createItemTreeWithTargetFrame:clippedAtTarget:]): Fix stray spaces
1170         (-[WebFrame _detachChildren]): Don't remove children as we loop any more, they
1171         can remove themselves.
1172         (-[WebFrame _detachFromParent]): Remove self from parent; don't nil out bridge
1173         until we are done with it.
1174         (-[WebFrame _transitionToCommitted:]): Remove some extra braces.
1175         (-[WebFrame _goToItem:withLoadType:]): Use parentFrame method in assert instead of parent
1176         field directly.
1177         (-[WebFrame _addChild:]): Don't poke at parent frame pointer in _private
1178         since it is not there any more.
1179         (-[WebFrame _removeChild:]): Remove extra braces and don't clear parent pointer
1180         explicitly any more.
1181         (-[WebFrame _addFramePathToString:]): Get parentFrame from method, not field.
1182         (-[WebFrame _loadDataSource:withLoadType:formState:]): Remove extra braces.
1183         (-[WebFrame _nextFrameWithWrap:]): Get parent in the proper way and clean up the
1184         coding style.
1185         (-[WebFrame _previousFrameWithWrap:]): Ditto.
1186         (-[WebFrame parentFrame]): Get parent from the bridge.
1187
1188 2005-12-25  Maciej Stachowiak  <mjs@apple.com>
1189
1190         Reviewed by Hyatt.
1191
1192         - fixed REGRESSION: world leak of WebDataSource
1193         http://bugzilla.opendarwin.org/show_bug.cgi?id=6242
1194
1195         * WebView.subproj/WebDataSource.m:
1196         (-[WebDataSource _stopLoading]): don't retain self until after
1197         the possible early return.
1198
1199 2005-12-24  Maciej Stachowiak  <mjs@apple.com>
1200
1201         Reviewed by Geoff.
1202
1203         - rearrange some code in WebDataSource so that more of the frame traversal logic
1204         is in WebFrame, in preparation for moving it down to WebBridge.
1205         http://bugzilla.opendarwin.org/show_bug.cgi?id=6239
1206
1207         * WebView.subproj/WebDataSource.m:
1208         (-[WebDataSource _archiveWithMarkupString:nodes:]): Assert that the
1209         data source is committed, doesn't make sense to archive otherwise.
1210         (-[WebDataSource _subframeArchivesWithCurrentState:]): New helper method.
1211         (-[WebDataSource _archiveWithCurrentState:]): Assert that the data source
1212         is committed. Use the helper.
1213         (-[WebDataSource _setWebView:]): Comment that we won't tell subframes that
1214         defers callback changed.
1215         (-[WebDataSource _startLoading]): Remove stray space.
1216         (-[WebDataSource _stopLoading]): Only handle local _stopLoading business.
1217         Cound on WebFrame to tell subframes to stop loading. Fold in _stopLoadingInternal
1218         and remove _recursiveStopLoading.
1219         (-[WebDataSource _startLoading:]): Clean up an assert slightly.
1220         (-[WebDataSource _setTitle:]): Remove stray spaces.
1221         (-[WebDataSource _defersCallbacksChanged]): Don't call subframes. WebFrame
1222         can do that.
1223         (-[WebDataSource isLoading]): Move checking of subframes down to WebFrame.
1224         (-[WebDataSource webArchive]): Return nil if the data source is not yet
1225         committed. It makes no sense to archive a provisional data source since it
1226         has no data yet.
1227         (-[WebDataSource addSubresource:]): Replace an assert with an early return,
1228         ASSERT is not an appropriate way to flag problems with the argument of a public
1229         method.
1230         * WebView.subproj/WebDataSourcePrivate.h:
1231         * WebView.subproj/WebFrame.m:
1232         (-[WebFrame _setLoadType:]): Remove stray space.
1233         (-[WebFrame _checkLoadCompleteForThisFrame]): Stop loading subframes
1234         manually and add a FIXME about confusingness of stopping loading here.
1235         (-[WebFrame _defersCallbacksChanged]): Tell our subframes.
1236         (-[WebFrame _addChild:]): Remove stray space.
1237         (-[WebFrame _stopLoadingSubframes]): New helper method.
1238         (-[WebFrame _subframeIsLoading]): New helper method, code moved
1239         from WebDataSource.
1240         (-[WebFrame stopLoading]): Tell subframes to stop loading.
1241         (-[WebFrame reload]): Remove extra braces.
1242         * WebView.subproj/WebFrameInternal.h:
1243
1244 2005-12-23  Maciej Stachowiak  <mjs@apple.com>
1245
1246         Reviewed by John.
1247
1248         - move more frame tree traversal code from WebView to WebFrame
1249
1250         * WebView.subproj/WebFrame.m:
1251         (-[WebFrame _atMostOneFrameHasSelection]): Moved this debug
1252         method from WebView, renamed it and changed it to return a boolean
1253         so it is appropriate for use in assertions instead of giving its own
1254         errors.
1255         (-[WebFrame _accumulateFramesWithSelection:]): Helper for the above.
1256         (-[WebFrame _findFrameWithSelection]):  Moved from WebView and renamed from
1257         _findSelectedFrame, also removed the skipping variant.
1258         (-[WebFrame _clearSelectionInOtherFrames]): Moved from WebView and
1259         changed how the logic works. Instead of clearing selection in any frame
1260         but the focus frame, it clears selection in all but this one.
1261         * WebView.subproj/WebFrameInternal.h:
1262         * WebView.subproj/WebHTMLView.m:
1263         (-[WebHTMLView becomeFirstResponder]): Call _clearSelectionInOtherFrames
1264         * WebView.subproj/WebPDFView.m:
1265         (-[WebPDFView PDFViewWillClickOnLink:withURL:]): Stop getting WebFrame
1266         in needlessly roundabout way.
1267         (-[WebPDFView becomeFirstResponder]): Call _clearSelectionInOtherFrames
1268         * WebView.subproj/WebTextView.m:
1269         (-[WebTextView _webFrame]): New helper method.
1270         (-[WebTextView _elementAtWindowPoint:]): Use it.
1271         (-[WebTextView becomeFirstResponder]): Call _clearSelectionInOtherFrames
1272         (-[WebTextView resignFirstResponder]): Fix style issue
1273         (-[WebTextView clickedOnLink:atIndex:]): Use new helkper
1274         * WebView.subproj/WebView.m:
1275         (-[WebView selectedFrame]): Call to WebFrame as appropriate
1276         (-[WebView _selectedOrMainFrame]): Fix style issue
1277         * WebView.subproj/WebViewInternal.h:
1278
1279 2005-12-22  Maciej Stachowiak  <mjs@apple.com>
1280
1281         Reviewed by Eric.
1282
1283         - move a few more methods from WebView to WebFrame.     
1284
1285         * WebView.subproj/WebFrame.m:
1286         (-[WebFrame _hasSelection]): Renamed from _frameIsSelected: and moved from
1287         WebView.
1288         (-[WebFrame _clearSelection]): Renamed from _deselectFrame: and moved from 
1289         WebView.
1290         * WebView.subproj/WebFrameInternal.h:
1291         * WebView.subproj/WebView.m:
1292         (-[WebView searchFor:direction:caseSensitive:wrap:]): Update for renames.
1293         (-[WebView _findSelectedFrameStartingFromFrame:skippingFrame:]): Ditto.
1294         (-[WebView _debugCollectSelectedFramesIntoArray:startingFromFrame:]): Ditto.
1295         (-[WebView _selectedFrameDidChange]):
1296
1297 2005-12-21  Timothy Hatcher  <timothy@apple.com>
1298
1299         * WebKit.xcodeproj/project.pbxproj:
1300           Set tab width to 8, indent width to 4 and uses tabs to false per file.
1301
1302 2005-12-20  Alexey Proskuryakov  <ap@nypop.com>
1303
1304         Reviewed by justin
1305         
1306         <http://bugzilla.opendarwin.org/show_bug.cgi?id=4682>
1307         -[WebHTMLView firstRectForCharacterRange:] is using _selectedRange instead of the given range if no marked text
1308
1309         * WebView.subproj/WebHTMLView.m:
1310         (-[WebHTMLView firstRectForCharacterRange:]): 
1311         Handle some large unsigned values the way NSTextView does.
1312         Actually use the range passed in instead of _selectedRange,
1313         use of _selectedRange was a workaround that is no longer necessary.
1314
1315 2005-12-20  John Sullivan  <sullivan@apple.com>
1316
1317         Reviewed by Darin Adler.
1318         
1319         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=6146
1320           (REGRESSION: Bold font used for Google search result pages is too thick)
1321           
1322         This is a problem with a particular font that was installed by Microsoft Office X. Though the
1323         font and/or lower levels of font-handling code in the system are buggy, this bad symptom will
1324         occur for users of Safari and other WebKit clients who happen to have one of these bad fonts.
1325         This adds a workaround to avoid the problem.
1326
1327         * WebCoreSupport.subproj/WebTextRendererFactory.m:
1328         (-[WebTextRendererFactory fontWithFamilies:traits:size:]):
1329         When we're going to synthesize bold or italic, yet the font we looked up was apparently a
1330         match for the traits, try to look up a font that without the to-be-synthesized traits.
1331         This way, instead of applying synthetic bold over Arial Bold, we'll apply synthetic
1332         bold over Arial Regular, which is uglier than just using Arial Bold, but far less ugly
1333         than using Arial Bold with synthetic bold too.
1334
1335  2005-12-16  Justin Garcia  <justin.garcia@apple.com>
1336  
1337          <rdar://problem/4103393> Frequent Safari crash on lexisnexus.com (khtml::Selection::xPosForVerticalArrowNavigation)
1338          <rdar://problem/4330451> CrashTracer: [REGRESSION] 2235 crashes in Safari at com.apple.WebCore: khtml::Selection::xPosForVerticalArrowNavigation const  436
1339          
1340          Reviewed by darin
1341          
1342          WebCore will crash when a selection that starts or ends in a node 
1343          that has been removed from the document is modify()d.  This can occur:
1344          (1) in non-editable regions (4103393 and 4330451), (2) in editable 
1345          regions (4383146) as the result of arbitrary DOM operations, and (3) in 
1346          Mail (4099739) as the result of an editing operation that sets a 
1347          bad ending selection.
1348          
1349          Crashes of type (1) can occur when the user uses the arrow keys 
1350          to interact with a web app, or when the user tries to use 
1351          command-shift-arrow to switch tabs (this is a depricated
1352          combo that will work if no one else responds to it). The easiest 
1353          way to fix these crashes is to disallow editing'ish selection changes 
1354          like moveDown:, selectWord:, pageDown:, etc, when the selection 
1355          is in a non-editable region.
1356          
1357          Crashes of type (2) will require a more complicated fix (but occur 
1358          much less often than type (1)).  Crashes of type (3) must be 
1359          fixed by tracking down the editing operation that sets bad selections.
1360          
1361          Added a layout-test:
1362          * editing/selection/selection-actions.html
1363  
1364          * WebView.subproj/WebHTMLView.m:
1365          (-[WebHTMLView _canAlterCurrentSelection]):
1366          (-[WebHTMLView _alterCurrentSelection:direction:granularity:]):
1367          (-[WebHTMLView _alterCurrentSelection:verticalDistance:]):
1368          (-[WebHTMLView _expandSelectionToGranularity:]):
1369          * WebView.subproj/WebHTMLViewPrivate.h:
1370
1371 2005-12-20  Justin Garcia  <justin.garcia@apple.com>
1372
1373         Reviewed by mitz
1374         
1375         Fixed more uninitialized variable warnings, and 
1376         removed an extra semicolon.
1377
1378         * WebCoreSupport.subproj/WebTextRenderer.m:
1379         (overrideLayoutOperation):
1380         (createATSULayoutParameters):
1381
1382 2005-12-20  Maciej Stachowiak  <mjs@apple.com>
1383
1384         Reviewed by Darin.
1385
1386         - push more of frame lookup and management from WebView to
1387         WebFrame, this is in preparation for shifting this to WebCore
1388         http://bugzilla.opendarwin.org/show_bug.cgi?id=6163
1389         
1390         * WebCoreSupport.subproj/WebBridge.m:
1391         (-[WebBridge closeWindowSoon]): Adjust for change to WebFrameNamespaces
1392         (-[WebBridge runModal]): ditto
1393         * WebView.subproj/WebControllerSets.h:
1394         * WebView.subproj/WebControllerSets.m:
1395         (+[WebFrameNamespaces addFrame:toNamespace:]): This now operates in terms
1396         of WebFrames (expected to be the main frame) not WebViews.
1397         (+[WebFrameNamespaces framesInNamespace:]): Ditto.
1398         * WebView.subproj/WebFrame.m:
1399         (-[WebFrame _setFrameNamespace:]): Set self, not WebView.
1400         (-[WebFrame _shouldAllowAccessFrom:]): Moved this code above use
1401         to avoid prototyping the method.
1402         (-[WebFrame _descendantFrameNamed:sourceFrame:]): Ditto.
1403         (-[WebFrame _frameInAnyWindowNamed:sourceFrame:]): Copied logic
1404         over from WebView.
1405         (-[WebFrame findFrameNamed:]): Do it all here, don't call WebView.
1406         * WebView.subproj/WebFramePrivate.h:
1407         * WebView.subproj/WebView.m:
1408         * WebView.subproj/WebViewPrivate.h:
1409
1410 2005-12-20  Geoffrey Garen  <ggaren@apple.com>
1411
1412         Reviewed by adele.
1413
1414         Fixed build failure due to missing 'b's in my last checkin.
1415
1416         * WebCoreSupport.subproj/WebBridge.m:
1417         (-[WebBridge isStatusbarVisible]): changed 'B' to 'b'
1418         (-[WebBridge setStatusbarVisible:]): ditto
1419
1420 2005-12-20  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1421
1422         Reviewed by Darin, committed by Adele.
1423
1424         - fix deployment builds broken by the ATSUI multiple renderers patch
1425         http://bugzilla.opendarwin.org/show_bug.cgi?id=6153
1426
1427         * WebCoreSupport.subproj/WebTextRenderer.m:
1428         (createATSULayoutParameters): Assign initial values, which will never be used,
1429         to substituteRenderer and firstSmallCap, to avoid uninitialized variable warnings.
1430
1431 2005-12-20  Geoffrey Garen  <ggaren@apple.com>
1432
1433         Reviewed by John.
1434
1435         Part of fix for <rdar://problem/4310363> JavaScript window.open: Height
1436         is 1 pixel short, and related bugs. See WebCore ChageLog.
1437
1438         * WebCoreSupport.subproj/WebBridge.m:
1439         (-[WebBridge webView]): Added method.
1440
1441 2005-12-20  Eric Seidel  <eseidel@apple.com>
1442
1443         Reviewed by mjs.
1444
1445         Development-only build fix.
1446
1447         * WebView.subproj/WebFrame.m:
1448         (-[WebFramePrivate dealloc]): fixed typo
1449
1450 2005-12-20  Maciej Stachowiak  <mjs@apple.com>
1451
1452         Not reviewed.
1453
1454         - revert accidental commit of this file.
1455
1456 2005-12-19  Maciej Stachowiak  <mjs@apple.com>
1457
1458         Reviewed by Eric.
1459
1460         - Move handling of frame namespaces down to WebFrame.
1461         - Put some internal class declarations in the implementation file.
1462
1463         * WebView.subproj/WebControllerSets.m:
1464         (+[WebFrameNamespaces addWebView:toFrameNamespace:]):
1465         (+[WebFrameNamespaces webViewsInFrameNamespace:]):
1466         * WebView.subproj/WebFrame.m:
1467         (-[WebFramePrivate dealloc]):
1468         (-[WebFrame _setFrameNamespace:]):
1469         (-[WebFrame _frameNamespace]):
1470         * WebView.subproj/WebFrameInternal.h:
1471         * WebView.subproj/WebFramePrivate.h:
1472         * WebView.subproj/WebView.m:
1473         (-[WebView _close]):
1474         (-[WebView _findFrameNamed:sourceFrame:]):
1475         (-[WebView setGroupName:]):
1476         (-[WebView groupName]):
1477         * WebView.subproj/WebViewInternal.h:
1478
1479 2005-12-19  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1480
1481         Reviewed by Darin, committed by Adele.
1482         
1483         Test: fast/text/atsui-multiple-renderers.html
1484
1485         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6139
1486           ATSUI code path should implement small caps, synthetic bold and oblique and correct metrics for fallback fonts
1487
1488         * WebCoreSupport.subproj/WebTextRenderer.m:
1489         (overrideLayoutOperation): Fetch renderer info from the renderers array;
1490         add synthetic bold offset; render only synthetic bold in the synthetic bold pass.
1491         (drawGlyphs): Replaced 14 with new SYNTHETIC_OBLIQUE_ANGLE define.
1492         (initializeATSUStyle): Apply a skewing transform for synthetic oblique.
1493         (createATSUTextLayout): Merged into createATSUTextLayout.
1494         (createATSULayoutParameters): Merged in createATSUTextLayout; allocate
1495         and fill a renderers array and a character buffer for small caps and mirroring;
1496         (applyMirroringToRun): Merged into createATSULayoutParameters.
1497         (ATSU_drawHighlight): Deleted mirroring code.
1498         (ATSU_draw): Deleted mirroring code; added second pass for synthetic bold.
1499         (ATSU_pointToOffset): Deleted mirroring code.
1500
1501 2005-12-19  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1502
1503         Reviewed by Darin, committed by Adele.
1504         
1505         Test: fast/text/atsui-kerning-and-ligatures.html
1506
1507         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6137
1508           Disable kerning and some ligatures in the ATSUI code path
1509
1510         * WebCoreSupport.subproj/WebTextRenderer.m:
1511         (initializeATSUStyle): Disable kerning; disable ligatures unless the font
1512         does not contain 'a', in which case it is assumed to never be rendered
1513         by the CG code path.
1514
1515 2005-12-19  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1516
1517         Reviewed by Darin, committed by Adele.
1518         
1519         Test: fast/text/should-use-atsui.html
1520
1521         - fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=6132
1522           Incorrect selection highlighting for ATSUI text when selected range is "CG-safe"
1523
1524         * WebCoreSupport.subproj/WebTextRenderer.m:
1525         (shouldUseATSU): Always start scanning from 0 since drawing and
1526         highlighting also measure everything up to run->from.
1527
1528 2005-12-17  Maciej Stachowiak  <mjs@apple.com>
1529
1530         Rubber stamped by Eric.
1531
1532         - remove some unused SPI headers.
1533
1534         * DOM.subproj/WebDOMDocument.h: Removed.
1535         * DOM.subproj/WebDOMElement.h: Removed.
1536         * DOM.subproj/WebDOMNode.h: Removed.
1537         * WebKit.xcodeproj/project.pbxproj:
1538
1539 2005-12-17  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1540
1541         Reviewed and landed by Darin.
1542
1543         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5479
1544           Can't select text with RTL override rendered by ATSUI
1545
1546         * WebCoreSupport.subproj/WebTextRenderer.m:
1547         (overrideLayoutOperation): Update since the layout only includes from -> to now.
1548         (-[WebTextRenderer pointToOffset:style:position:includePartialGlyphs:]): Remove
1549         reversed parameter.
1550         (CG_floatWidthForRun): Add code to handle RTL case.
1551         (addDirectionalOverride): Put the override around the entire run.
1552         (ATSU_drawHighlight): Rearrange and reuse ATSU_floatWidthForRun for more of the work.
1553         Also round.
1554         (ATSU_pointToOffset): Remove reversed parameter and run swapping.
1555         (CG_pointToOffset): Remove reversed parameter, using rtl flag in style instead.
1556
1557 2005-12-16  Evan Gross  <evan@rainmakerinc.com>
1558
1559         Reviewed and landed by Darin.
1560
1561         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=4680
1562           WebHTMLView (WebNSTextInputSupport) - attributedSubstringFromRange "not yet implemented"
1563
1564         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView attributedSubstringFromRange:]):
1565         Implement by calling the same RTF conversion used when copying to the pasteboard.
1566
1567 2005-12-16  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1568
1569         Reviewed and landed by Darin.
1570
1571         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6090
1572           REGRESSION: Assertion failure when choosing Copy from a WebImageView's contextual menu
1573
1574         * WebView.subproj/WebImageView.m:
1575         (-[WebImageView elementAtPoint:]): Use WebCoreElementImageRendererKey
1576         for the image renderer and WebElementImageKey for the image.
1577
1578 2005-12-15  Maciej Stachowiak  <mjs@apple.com>
1579
1580         Reviewed by Darin.
1581
1582         - remove _frameForView: method from WebView and replace with a direct pointer on the WebFrameView in the WebFrame
1583
1584         * Misc.subproj/WebNSViewExtras.m:
1585         * WebView.subproj/WebFrame.m:
1586         (-[WebFrame _detachFromParent]):
1587         (-[WebFrame _loadDataSource:withLoadType:formState:]):
1588         (-[WebFrame initWithName:webFrameView:webView:]):
1589         * WebView.subproj/WebFrameView.m:
1590         (-[WebFrameView _setWebFrame:]):
1591         (-[WebFrameView webFrame]):
1592         * WebView.subproj/WebFrameViewInternal.h:
1593         * WebView.subproj/WebView.m:
1594         * WebView.subproj/WebViewPrivate.h:
1595
1596 2005-12-13  Maciej Stachowiak  <mjs@apple.com>
1597
1598         Reviewed by Darin.
1599
1600         - remove the dead _frameForDataSource: method (WebDataSource now knows its WebFrame)
1601         http://bugzilla.opendarwin.org/show_bug.cgi?id=6072
1602         
1603         * WebView.subproj/WebView.m:
1604         * WebView.subproj/WebViewPrivate.h:
1605
1606 === Safari-521~5 ===
1607
1608 2005-12-12  Timothy Hatcher  <timothy@apple.com>
1609
1610         Reviewed by nobody, simple build fix.
1611
1612         Fixes a couple ambiguous selector build errors when building with GCC 3.3.
1613
1614         * Misc.subproj/WebIconDatabase.m:
1615         (-[WebIconDatabase releaseIconForURL:]):
1616         * WebView.subproj/WebHTMLView.m:
1617         (-[NSView _web_layoutIfNeededRecursive:testDirtyRect:]):
1618         (-[NSArray elementAtPoint:]):
1619
1620 2005-12-12  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1621
1622         Reviewed and checked in by John Sullivan.
1623         
1624         Fix for: http://bugzilla.opendarwin.org/show_bug.cgi?id=6053
1625         WebIconDatabase returns the Accessibility Verifier app icon instead of
1626         a generic document icon
1627         
1628         * Misc.subproj/WebIconDatabase.m:
1629         (-[WebIconDatabase _iconForFileURL:withSize:]):
1630         use file type iconForFileType:NSFileTypeForHFSTypeCode(kGenericDocumentIcon) instead of '????'
1631         to get the generic document icon.
1632
1633 2005-12-12  John Sullivan  <sullivan@apple.com>
1634
1635         Reviewed by Tim Omernick.
1636         
1637         - Made protocol <WebDocumentSelection> include protocol <WebDocumentText>, for clarity.
1638         This required moving some methods from WebTextView, which conformed to <WebDocumentText>,
1639         up into superclass WebSearchableTextView, which conformed to <WebDocumentSelection>.
1640
1641         * Misc.subproj/WebSearchableTextView.m:
1642         (-[NSString supportsTextEncoding]):
1643         moved this method (unchanged) from subclass WebTextView
1644         (-[NSString string]):
1645         ditto
1646         (-[NSString attributedString]):
1647         ditto
1648         (-[NSString selectedString]):
1649         ditto
1650         (-[NSString selectedAttributedString]):
1651         ditto
1652         (-[NSString selectAll]):
1653         ditto
1654         (-[NSString deselectAll]):
1655         ditto
1656         
1657         * WebView.subproj/WebDocumentPrivate.h:
1658         made <WebDocumentSelection> incorporate <WebDocumentText> rather than just <NSObject>
1659         * WebView.subproj/WebHTMLView.h:
1660         removed <WebDocumentText> from protocol list since it's covered by <WebDocumentSelection>
1661         * WebView.subproj/WebPDFView.h:
1662         ditto
1663         * WebView.subproj/WebTextView.h:
1664         ditto
1665         * WebView.subproj/WebTextView.m:
1666         removed the methods that were moved into WebSearchableTextView.m
1667
1668 2005-12-10  Darin Adler  <darin@apple.com>
1669
1670         Reviewed by John Sullivan.
1671
1672         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6032
1673           REGRESSION: Uncaught exception when image is dragged out of webpage
1674
1675         * WebView.subproj/WebHTMLView.m:
1676         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1677         Pass the image renderer, not the NSImage.
1678         (-[WebHTMLView elementAtPoint:]): Add an NSImage to the dictionary, which now comes from
1679         WebCore with only an image renderer.
1680         * WebView.subproj/WebView.m: (-[WebView _writeImageElement:withPasteboardTypes:toPasteboard:]):
1681         Pass the image renderer, not the NSImage.
1682
1683 2005-12-10  Darin Adler  <darin@apple.com>
1684
1685         Was getting build failures related to "count" methods.
1686         Made Tim's build fix Leopard-only.
1687
1688         * WebView.subproj/WebPreferencesPrivate.h: Go back to <PDFKit/PDFKit.h> on Tiger.
1689
1690 2005-12-09  John Sullivan  <sullivan@apple.com>
1691
1692         Reviewed by Adele Peterson.
1693         
1694         - fixed <rdar://problem/4373905> Cannot paste in Tiger Mail using TOT WebKit
1695
1696         * WebView.subproj/WebView.m:
1697         (-[WebView _frameForCurrentSelection]):
1698         I removed this method many moons ago when restructuring the code involving frames and selection.
1699         Too bad Mail was still using it (d'oh!). In Leopard Mail has updated to use newer SPI (which should
1700         become API), but to continue to work with Mail on Tiger we need this method to be around. Now it's
1701         just a cover for the method _selectedOrMainFrame, to which it was renamed so very long ago.
1702
1703 2005-12-09  Tim Omernick  <timo@apple.com>
1704
1705         Reviewed by John Sullivan.
1706
1707         * Carbon.subproj/HIWebView.m:
1708         (UpdateCommandStatus):
1709         Don't call -performSelector:withObject: on a method that returns a BOOL; this is not guaranteed to work on all architectures.
1710         -performSelector:withObject:'s return value should only be checked if the method returns an object.
1711
1712 2005-12-09  Timothy Hatcher  <timothy@apple.com>
1713
1714         Reviewed by nobody, build fix.
1715
1716         Using <PDFKit/PDFKit.h> was causing build failures for the Mail team.
1717         The comment about getting an ambiguous signature conflict anywhere the
1718         method "count" is used seems to no longer be an issue.
1719
1720         * WebView.subproj/WebPreferencesPrivate.h: Use <Quartz/Quartz.h>
1721
1722 2005-12-08  John Sullivan  <sullivan@apple.com>
1723
1724         Reviewed by Tim Hatcher.
1725         
1726         Some cleanup of how selection rects are associated with NSViews.
1727
1728         * WebView.subproj/WebDocumentPrivate.h:
1729         Added a -selectionView method to <WebDocumentSelection>, and clarified that the
1730         selectionRect is in the coordinate system of this view.
1731
1732         * Misc.subproj/WebSearchableTextView.m:
1733         (-[WebSearchableTextView selectionView]):
1734         new method, returns self
1735         
1736         * WebView.subproj/WebHTMLView.m:
1737         (-[WebHTMLView selectionView]):
1738         new method, returns self
1739         
1740         * WebView.subproj/WebPDFView.m:
1741         (-[WebPDFView selectionRect]):
1742         translate result into coordinate system of [PDFSubview documentView]
1743         (-[WebPDFView selectionView]):
1744         new method, returns [PDFSubview documentView]
1745
1746 2005-12-08  John Sullivan  <sullivan@apple.com>
1747
1748         Reviewed by Tim Omernick and Dave Hyatt.
1749         
1750         - fixed these semi-legendary bugs:
1751         <rdar://problem/4032405> Inline PDF doesn't get keyboard focus like web pages do, so can't scroll with keys without clicking
1752         <rdar://problem/4265684> PDFs use secondary selection when displaying found text (4748)
1753
1754         * WebView.subproj/WebPDFView.m:
1755         (-[WebPDFView becomeFirstResponder]):
1756         Discovered that there is indeed PDFKit API for accessing the view that becomes focused; now
1757         passes the focus down to that view.
1758
1759 2005-12-08  John Sullivan  <sullivan@apple.com>
1760
1761         Reviewed by Tim Omernick.
1762         
1763         - Added WebKit mechanism to help correctly pass the first responder into the PDF view hierarchy,
1764         in order to start addressing keyboard focus and selection highlight issues. Unfortunately this 
1765         doesn't actually have any user effect yet due to problems that must be fixed in PDFKit.
1766
1767         * WebView.subproj/WebPDFView.m:
1768         (-[WebPDFView acceptsFirstResponder]):
1769         Overridden to returns YES. Needed so NSClipView knows it's OK to pass focus down to this level.
1770         (-[WebPDFView becomeFirstResponder]):
1771         With setNextKeyView:, splices the PDF view into the focus-passing mechanism in much the same
1772         way as NSScrollView and NSClipView.
1773         (-[WebPDFView setNextKeyView:]):
1774         With becomeFirstResponder:, splices the PDF view into the focus-passing mechanism in much the same
1775         way as NSScrollView and NSClipView.
1776         (-[WebPDFView resignFirstResponder]):
1777         Removed this method because the WebPDFView itself is never first responder except transiently.
1778
1779 2005-12-08  Maciej Stachowiak  <mjs@apple.com>
1780
1781         Reviewed by John.
1782
1783         - some small changes towards frame tree refactoring
1784
1785         Renamed WebViewSets to WebFrameNamespaces, and put the method for
1786         performing a selector on all extant WebViews to WebView itself,
1787         with a separate set tracking live WebViews. This should allow
1788         moving the storage of this info down to WebCore more easily.
1789
1790         * WebCoreSupport.subproj/WebBridge.m:
1791         (-[WebBridge closeWindowSoon]):
1792         (-[WebBridge runModal]):
1793         * WebCoreSupport.subproj/WebViewFactory.m:
1794         (-[WebViewFactory refreshPlugins:]):
1795         * WebView.subproj/WebControllerSets.h:
1796         * WebView.subproj/WebControllerSets.m:
1797         (+[WebFrameNamespaces addWebView:toFrameNamespace:]):
1798         (webView::if):
1799         (+[WebFrameNamespaces webViewsInFrameNamespace:]):
1800         * WebView.subproj/WebView.m:
1801         (+[WebView _makeAllWebViewsPerformSelector:]):
1802         (-[WebView _removeFromAllWebViewsSet]):
1803         (-[WebView _addToAllWebViewsSet]):
1804         (-[WebView _close]):
1805         (-[WebView _findFrameNamed:sourceFrame:]):
1806         (-[WebView _commonInitializationWithFrameName:groupName:]):
1807         (-[WebView setGroupName:]):
1808         * WebView.subproj/WebViewInternal.h:
1809
1810 2005-12-08  Darin Adler  <darin@apple.com>
1811
1812         Reviewed by Eric.
1813
1814         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5689
1815           add support for CSS "custom cursors" (cursor images)
1816
1817         * WebCoreSupport.subproj/WebImageRenderer.h: Remove declaration of TIFFRepresentation and
1818         image methods since both are required by the WebCoreImageRenderer protocol now and we don't
1819         have to re-declare them.
1820
1821         * Misc.subproj/WebNSPasteboardExtras.m: Add an import of the WebCoreImageRenderer.h file
1822         since we need to use methods inherited from that protocol.
1823         * Misc.subproj/WebNSViewExtras.m: Ditto.
1824         * WebCoreSupport.subproj/WebImageRenderer.m: Ditto. (Use and implement.)
1825
1826 2005-12-07  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1827
1828         Reviewed by Maciej, landed by Darin.
1829
1830         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5878
1831           REGRESSION (WebTextRenderer.m r1.201): pointToOffset always takes the CG code path
1832
1833         * WebCoreSupport.subproj/WebTextRenderer.m:
1834         (-[WebTextRenderer pointToOffset:style:position:reversed:includePartialGlyphs:]):
1835         Added the missing "return".
1836
1837 2005-12-07  John Sullivan  <sullivan@apple.com>
1838
1839         Reviewed by Tim Omernick.
1840         
1841         - <rdar://problem/4331488> TOT Assertion failure in -[WebHTMLView nextValidKeyView] 
1842         @ home.netscape.com
1843
1844         * WebView.subproj/WebHTMLView.m:
1845         (-[NSArray nextValidKeyView]):
1846         Removed assert that I added a while back. In this case at least, the assertion is
1847         overzealous, and I can't recreate the tortured chain of logic that led me to adding
1848         this assertion in the first place.
1849
1850 2005-12-06  David Harrison  <harrison@apple.com>
1851
1852         Reviewed by Darin.
1853
1854         - fix <rdar://problem/4365308> Glendale Regression: Floating dictionary doesn't work well in Safari text areas/fields
1855         
1856         Add use of NSAccessibilityHitTest to the list of exceptions.
1857
1858         * WebView.subproj/WebHTMLView.m:
1859         (-[WebHTMLView hitTest:]): check for NSFlagsChanged event. 
1860
1861 2005-12-05  John Sullivan  <sullivan@apple.com>
1862
1863         Reviewed by Darin Adler.
1864
1865         * WebView.subproj/WebHTMLView.m:
1866         (-[NSArray validateUserInterfaceItem:]):
1867         one more tweak: moved jumpToSelection: to be validated the same way as
1868         centerSelectionInVisibleArea:, since it now calls the same code. Might not
1869         make a difference in any real code, but you never know.
1870
1871 2005-12-05  John Sullivan  <sullivan@apple.com>
1872
1873         Reviewed by Darin Adler.
1874
1875         * WebView.subproj/WebHTMLView.m:
1876         (-[NSArray validateUserInterfaceItem:]):
1877         removed double handling of centerSelectionInVisibleArea
1878
1879 2005-12-05  John Sullivan  <sullivan@apple.com>
1880
1881         Reviewed by Tim Omernick.
1882         
1883         - WebKit part of fix for 
1884         <rdar://problem/4365690> Find > Jump to Selection does nothing on plain-text documents (inc. source HTML)        
1885
1886         * WebView.subproj/WebHTMLView.m:
1887         (-[WebHTMLView jumpToSelection:]):
1888         Reimplement jumpToSelection: to call centerSelectionInVisibleArea:, and added a comment explaining why
1889         jumpToSelection: exists at all. Note that centerSelectionInVisibleArea: was already implemented here; it
1890         was added as part of HTML editing implementation without us realizing that it was the API replacement
1891         for jumpToSelection:.
1892         (-[WebHTMLView validateUserInterfaceItem:]):
1893         validate centerSelectionInVisibleArea: the same way we validate jumpToSelection: (we should have done
1894         this when centerSelectionInVisibleArea: was implemented)
1895         
1896         * WebView.subproj/WebPDFView.m:
1897         (-[WebPDFView centerSelectionInVisibleArea:]):
1898         new method, same code that jumpToSelection: used to have
1899         (-[WebPDFView jumpToSelection:]):
1900         now calls centerSelectionInVisibleArea:, and there's now a comment about why it exists at all.
1901         (-[WebPDFView validateUserInterfaceItem:]):
1902         validate centerSelectionInVisibleArea: the same way we validate jumpToSelection:
1903
1904 2005-12-04  Tim Omernick  <timo@apple.com>
1905
1906         Reviewed by Dave Harrison, John Sullivan.
1907
1908         <rdar://problem/4364847> REGRESSION: QuickTime movies open without controller or don't open at all (5928)
1909
1910         I changed WebFrameView on 2005-11-29 so that it avoids creating duplicate WebPluginDocumentViews.
1911         Unfortunately, this change caused a regression due to the fact that it subtly changed when plugins are
1912         initialized.  Certain plugins (e.g. QuickTime) expect to be initialized after the WebPluginDocumentView
1913         has been "committed" (inserted into the view hierarchy).
1914
1915         My fix is to ensure that the plugin is initialized where we previously would have created that second
1916         WebPluginDocumentView -- that is, the plugin is created after the WebPluginDocumentView has been committed.
1917         
1918         * Plugins.subproj/WebPluginDocumentView.m:
1919         (-[WebPluginDocumentView setDataSource:]):
1920         Don't initialize the plugin if the WebPluginDocumentView has not been inserted into the view hierarchy.
1921         We assume here that a later call to -setDataSource: will pass this conditional, once the WebDocumentView
1922         has been committed.
1923         
1924 2005-12-02  Justin Garcia <justin.garcia@apple.com>
1925
1926         <rdar://problem/4345030>
1927         Denver REGRESSION (10.4.2-10.4.3): Two identical warnings on "Back" from Amazon's package tracker
1928         
1929         Before checking the navigation policy for a request, the request is compared
1930         against the last checked request.  If the two are the same, no check is done.
1931         In the bug, the two requests are identical except for the boolean on
1932         NSURLRequests that tells Foundation to support multipart loads for that request.
1933         One request was the one that was used to start servicing "Back" operation, and
1934         the second was being used to start loading the page (it needed to be reloaded 
1935         because it was the result of a form submission). Set the boolean on all 
1936         NSURLRequests, not just one's that are about to be used to start a load.   
1937
1938         Reviewed by harrison
1939
1940         * WebView.subproj/WebDataSource.m:
1941         (-[WebDataSource _startLoading:]):
1942         (-[WebDataSource initWithRequest:]):
1943         * WebView.subproj/WebDataSourcePrivate.h:
1944
1945 2005-12-01  Darin Adler <darin@apple.com>
1946
1947         Reviewed by Vicki.
1948         
1949         - fix <rdar://problem/4349721> Regression: Hovering over menu item doesn't highlight menu item or 
1950         mousing up on menu item in applet does not open URL in new window at smartmoney.com
1951
1952         Since Java depends on doing a hit test inside it's mouse moved handling, let hit testing on Java 
1953         applets go through the standard NSView code path. Since this should only happen for Java, add a global
1954         so that we can Use our own WebHTMLView hit testing when calling from _updateMouseoverWithEvent.
1955
1956         * WebView.subproj/WebHTMLView.m:
1957         (-[WebHTMLView _hitViewForEvent:]): rename forceRealHitTest to forceNSViewHitTest
1958         (-[WebHTMLView _updateMouseoverWithEvent:]): set global variable  to force a WebHTMLView-style hit test from here
1959         (-[WebHTMLView hitTest:]): perform the appropriate hit test based on global variables 
1960
1961 2005-11-29  Andrew Wellington  <proton@wiretapped.net>
1962
1963         Reviewed by darin.  Committed by eseidel.
1964
1965         Fix for: http://bugzilla.opendarwin.org/show_bug.cgi?id=4726
1966         Drop of multiple non-image file URLs only yields one item
1967
1968         * WebView.subproj/WebHTMLView.m:
1969         (-[WebHTMLView _documentFragmentWithPaths:]):
1970
1971 2005-11-29  Tim Omernick  <timo@apple.com>
1972
1973         Reviewed by John Sullivan, Eric Seidel
1974
1975         <rdar://problem/4340787> Safari & Dashcode create 2 instances of the QC plug-in
1976         
1977         * WebView.subproj/WebFrameView.m:
1978         (-[WebFrameView _makeDocumentViewForDataSource:]):
1979         Instead of creating a new WebDocumentView, use the WebDataSource's representation if it is a WebDocumentView
1980         of the appropriate class.  Right now, this can only happen when the loading document is a standalone WebKit
1981         plugin, because WebPluginDocumentView is both the WebDocumentView and the WebDocumentRepresentation for that
1982         kind of page load.
1983         
1984         I have verified that this does not affect other kinds of page loads; in all other cases, the representation
1985         class is distinct from the document view class.
1986
1987         I talked with Chris Blumenberg about this change (he knows this code), and he agreed that this is the right
1988         approach.
1989
1990 2005-11-28  Alexey Proskuryakov  <ap@nypop.com>
1991
1992         Reviewed by Darin. Committed by Maciej.
1993
1994         - fixed "Word completion doesn't work at end of word (unless last word)"
1995         (http://bugzilla.opendarwin.org/show_bug.cgi?id=4062)
1996
1997         * WebView.subproj/WebHTMLView.m:
1998         (-[WebTextCompleteController doCompletion]):
1999
2000 2005-11-28  John Sullivan  <sullivan@apple.com>
2001
2002         Reviewed by Tim Omernick.
2003         
2004         Probable fix for <rdar://problem/4356060> crash in -[WebHistoryItem _mergeAutoCompleteHints:]
2005
2006         * History.subproj/WebHistory.m:
2007         (-[WebHistoryPrivate addItem:]):
2008         retain/release oldEntry until we're done with it, since removing it from dictionary might
2009         cause it to be dealloc'ed otherwise.
2010         
2011         * History.subproj/WebHistoryItem.m:
2012         (-[WebHistoryItem _mergeAutoCompleteHints:]):
2013         added an assert
2014
2015 2005-11-26  Alexey Proskuryakov  <ap@nypop.com>
2016
2017         Reviewed by mjs.  Committed by eseidel.
2018
2019         Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=5230
2020         "characterIndexForPoint: not yet implemented"
2021
2022         * WebView.subproj/WebHTMLView.m:
2023         (-[WebHTMLView characterIndexForPoint:]):
2024         (-[WebHTMLView firstRectForCharacterRange:]):
2025
2026 2005-11-22  Darin Adler  <darin@apple.com>
2027
2028         * WebView.subproj/WebView.h: Fixed incorrect comment in public header.
2029
2030 2005-11-18  Vicki Murley  <vicki@apple.com>
2031
2032         Changes by Tim H, reviewed by Vicki.
2033
2034         - call shouldClose on the bridge for the main frame
2035
2036         * WebView.subproj/WebView.m:
2037         (-[WebView shouldClose]):
2038
2039 2005-11-18  Vicki Murley  <vicki@apple.com>
2040
2041         Changes by Darin, reviewed by Beth and Vicki.
2042
2043         - fix <rdar://problem/3939265> support "before unload" event and onbeforeunload handler (supported by both IE and Mozilla)
2044
2045         * WebCoreSupport.subproj/WebBridge.m:
2046         (-[WebBridge canRunBeforeUnloadConfirmPanel]):
2047         (-[WebBridge runBeforeUnloadConfirmPanelWithMessage:]):
2048         * WebView.subproj/WebFrame.m:
2049         (-[WebFrame _checkNavigationPolicyForRequest:dataSource:formState:andCall:withSelector:]):
2050         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
2051         * WebView.subproj/WebUIDelegatePrivate.h:
2052         * WebView.subproj/WebView.m:
2053         (-[WebView shouldClose]):
2054         * WebView.subproj/WebViewPrivate.h:
2055
2056 2005-11-10  Maciej Stachowiak  <mjs@apple.com>
2057
2058         Build fix, not reviewed.
2059
2060         * Plugins.subproj/WebBaseNetscapePluginViewInternal.h: Added.
2061
2062 2005-11-10  Tim Omernick  <timo@apple.com>
2063
2064         Reviewed by Geoff.
2065
2066         <rdar://problem/4237941> Dashboard needs a way to stop Netscape plug-ins from getting null events
2067
2068         * Plugins.subproj/WebBaseNetscapePluginViewInternal.h: Added.
2069         Added WebInternal category, with -stopNullEvents and -restartNullEvents.  These methods already exist on WebBaseNetscapePluginView.
2070         I am just exposing them to callers elsewhere within WebKit.
2071
2072         * WebKit.xcodeproj/project.pbxproj:
2073         Added WebBaseNetscapePluginViewInternal.h.
2074
2075         * WebView.subproj/WebFrame.m:
2076         (-[WebFrame _recursive_pauseNullEventsForAllNetscapePlugins]):
2077         Walks down the web frame hierarchy and calls -_pauseNullEventsForAllNetscapePlugins on each WebHTMLView.
2078         (-[WebFrame _recursive_resumeNullEventsForAllNetscapePlugins]):
2079         Same as above, but calls -_resumeNullEventsForAllNetscapePlugins.
2080         
2081         * WebView.subproj/WebFramePrivate.h:
2082         Declared -_recursive_pauseNullEventsForAllNetscapePlugins and -_recursive_pauseNullEventsForAllNetscapePlugins.
2083         
2084         * WebView.subproj/WebHTMLView.m:
2085         (-[WebHTMLView _pauseNullEventsForAllNetscapePlugins]):
2086         Checks subviews for WebBaseNetscapePluginViews, and calls -stopNullEvents on them.
2087         (-[WebHTMLView _resumeNullEventsForAllNetscapePlugins]):
2088         Same as above, but calls -restartNullEvents.
2089
2090         * WebView.subproj/WebHTMLViewInternal.h:
2091         Declared -_pauseNullEventsForAllNetscapePlugins and -_resumeNullEventsForAllNetscapePlugins.
2092
2093 2005-11-07  Geoffrey Garen  <ggaren@apple.com>
2094
2095         Darin reviewed this a while back.
2096
2097         - Fixed <rdar://problem/4161660> window.close followed by window.print
2098         in onload handler crashes Safari in KJS::ScopeChain::bottom
2099         (redmccombstoyota.com)
2100         
2101         Added a call to stopLoading inside closeWindowSoon to prevent load
2102         events from firing after a window has torn down.
2103         
2104         Manual test case: WebCore/manual-tests/window-close-during-parsing.html
2105
2106         * WebCoreSupport.subproj/WebBridge.m:
2107         (-[WebBridge closeWindowSoon]):
2108
2109 2005-11-03  Timothy Hatcher  <timothy@apple.com>
2110
2111         Reviewed by Darin and Vicki.
2112
2113         * WebKit.xcodeproj/project.pbxproj:
2114           Change to use $(SYSTEM_LIBRARY_DIR) consistently and place
2115           $(NEXT_ROOT) in a few spots to make build-root work.
2116
2117 2005-11-01  Tim Omernick  <timo@apple.com>
2118
2119         Reviewed by John Sullivan.
2120
2121         <rdar://problem/4318632>
2122
2123         I've added a new notification, WebPluginWillPresentNativeUserInterfaceNotification.  Plugins are expected to post this
2124         notification before presenting "native UI", such as dialog boxes.  A Dashboard client can observe this notification to
2125         hide the Dashboard layer when plugins present external UI.
2126         
2127         * English.lproj/StringsNotToBeLocalized.txt:
2128         Added "WebPluginWillPresentNativeUserInterface".
2129
2130         * Plugins.subproj/WebPluginsPrivate.h: Added.
2131         * Plugins.subproj/WebPluginsPrivate.m: Added.
2132         Declare WebPluginWillPresentNativeUserInterfaceNotification.
2133
2134         * WebKit.xcodeproj/project.pbxproj:
2135         Added WebPluginsPrivate.[hm]
2136
2137         * WebKit.exp:
2138         Added _WebPluginWillPresentNativeUserInterfaceNotification.
2139
2140 2005-11-01  John Sullivan  <sullivan@apple.com>
2141
2142         Reviewed by Darin Adler.
2143         
2144         fixed deployment build by hiding local variables used only in ASSERTs on builds for
2145         which ASSERT_DISABLED is true.
2146
2147         * History.subproj/WebHistory.m:
2148         (-[WebHistoryPrivate removeItemForURLString:]):
2149         (-[WebHistoryPrivate setLastVisitedTimeInterval:forItem:]):
2150
2151 2005-11-01  John Sullivan  <sullivan@apple.com>
2152
2153         Reviewed by Tim Omernick.
2154         
2155         - fixed <rdar://problem/4324104> Assertion failure (foundDate) in WebHistory
2156         
2157         WebFrame was updating the last visited date on a WebHistoryItem behind WebHistory's
2158         back, causing WebHistory's caches of items by date to get out of sync with reality.
2159         Changed to set the date through WebHistory rather than directly.
2160
2161         * History.subproj/WebHistory.m:
2162         (-[WebHistoryPrivate _removeItemFromDateCaches:]):
2163         New method, extracted from removeItemForURLString.
2164         (-[WebHistoryPrivate removeItemForURLString:]):
2165         Now calls extracted method. Cleaned up white space a little.
2166         (-[WebHistoryPrivate _addItemToDateCaches:]):
2167         New method, extracted from addItem:
2168         (-[WebHistoryPrivate addItem:]):
2169         Now calls extracted method. Cleaned up white space a little.
2170         (-[WebHistoryPrivate setLastVisitedTimeInterval:forItem:]):
2171         New method, removes item from date caches, changes date, then adds item back to
2172         date caches and sends notification.
2173         (-[WebHistory setLastVisitedTimeInterval:forItem:]):
2174         New method, cover for WebHistoryPrivate version.
2175         
2176         * History.subproj/WebHistoryItem.m:
2177         (-[WebHistoryItem _setLastVisitedTimeInterval:]):
2178         Don't send notification here; send from new WebHistory method instead.
2179         
2180         * History.subproj/WebHistoryItemPrivate.h:
2181         Added comment about avoiding incorrect use of _setLastVisitedTimeInterval:
2182         * History.subproj/WebHistoryPrivate.h:
2183         Added declarations for WebHistory and WebHistoryPrivate versions of 
2184         setLastVisitedTimeInterval:forItem:
2185         
2186         * WebView.subproj/WebFrame.m:
2187         (-[WebFrame _transitionToCommitted:]):
2188         change history item's date via new WebHistory method rather than directly
2189
2190 2005-10-25  Timothy Hatcher  <timothy@apple.com>
2191
2192         Reviewed by Darin.
2193
2194         Remove the use of a stamp file in the Frameworks symlink build phase.
2195         This lets us pass the build verification.
2196
2197         * WebKit.xcodeproj/project.pbxproj:
2198
2199 2005-10-24  Darin Adler  <darin@apple.com>
2200
2201         Reviewed by Geoff.
2202
2203         - change internal methods in WebTextRenderer to be functions in case this
2204           has any effect on speed (also makes things a bit clearer, in my opinion)
2205
2206         * WebCoreSupport.subproj/WebTextRenderer.h: Made all fields public, which is
2207         OK since this is really a private class. Made setAlwaysUseATSU: class method
2208         public too for the same reason.
2209
2210         * WebCoreSupport.subproj/WebTextRenderer.m: Change all methods to functions.
2211         (destroy): Function name for method free.
2212         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]): Removed code to first subtract
2213         lineSpacing - descent, then later add it back.
2214         (getSmallCapsRenderer): Function name for method smallCapsRenderer.
2215         (findSubstituteFont): Function name for method substituteFontForString:families:.
2216         (findSubstituteRenderer): Function name for method substituteRendererForCharacters:length:families:.
2217         (updateGlyphMapEntry): Function name for method updateGlyphEntryForCharacter:glyphID:substituteRenderer:.
2218         (extendGlyphMap): Function name for method extendCharacterToGlyphMapToInclude:.
2219         (extendWidthMap): Function name for method extendGlyphToWidthMapToInclude:.
2220         (getTextBounds): Function name for method trapezoidForRun:style:atPoint:.
2221
2222 2005-10-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2223
2224         Reviewed by Darin.  Committed by David Harrison.
2225
2226         http://bugzilla.opendarwin.org/show_bug.cgi?id=5415
2227         "Left border of selection highlight leaves behind a trail"
2228         
2229         * manual-tests/drag_select_highlighting.html: Added.
2230         (this test case was added to WebCore)
2231    
2232         * WebCoreSupport.subproj/WebTextRenderer.m:
2233         (overrideLayoutOperation):
2234         (-[WebTextRenderer CG_drawHighlightForRun:style:geometry:]):
2235         (-[WebTextRenderer ATSU_drawHighlightForRun:style:geometry:]):
2236         (advanceWidthIterator):
2237
2238
2239 2005-10-23  Tim Omernick  <tomernick@apple.com>
2240
2241         Reviewed by Dave Hyatt.
2242
2243         <http://bugzilla.opendarwin.org/show_bug.cgi?id=5365>
2244
2245         Send -webPlugInStop (or -pluginStop) and -webPluginDestroy (or -pluginDestroy)
2246         to complying plugins right when they're removed from the WebHTMLView, and also
2247         release them from the plugin controller's arrays.
2248         
2249         I think this patch makes WebKit behave more like plugins expect it to, which is
2250         the way it already behaves with Netscape plugins.
2251         
2252         I expect complying plugins to stop making noise when receiving the stop
2253         message, but QuickTime doesn't. If it's lucky, then it will be deallocated
2254         because of the release and will stop then. However, JS, for one, can retain the
2255         plugin (e.g. if you execute <javascript:document.getElementById('obj').width;>
2256         before clicking Remove OBJECT), in which case it will just keep playing.
2257         
2258         * Plugins.subproj/WebPluginController.h:
2259         * Plugins.subproj/WebPluginController.m:
2260         (-[WebPluginController destroyPlugin:]):
2261         Stop and destroy the plugin.
2262         * WebView.subproj/WebHTMLView.m:
2263         (-[NSArray willRemoveSubview:]):
2264         Destroy plugins when they are removed from the HTML view.
2265         
2266 2005-10-23  Geoffrey Garen  <ggaren@apple.com>
2267
2268         Reviewed by Maciej.
2269
2270         For better abstraction, made the tokenizer -- instead of the 
2271         data source -- responsible for calling [WebFrame _checkLoadComplete]
2272         when the tokenizer stops.
2273
2274         * WebView.subproj/WebDataSource.m:
2275         (-[WebDataSource _stopLoadingInternal]):
2276
2277 2005-10-21  Geoffrey Garen  <ggaren@apple.com>
2278
2279         Reviewed by darin.
2280         
2281         WebKit side of the fix for <rdar://problem/4184719> window.print() followed by 
2282         window.close() causes world leak
2283         
2284         No test case added because I have another reviewed patch that will include a test
2285         for this bug as well as many others.
2286
2287         Under some conditions, [WebDataSource stopLoading] did not set [WebDataSource isLoading]
2288         to false, so the didFInishLoad delegates never fired.
2289         
2290         The reason isLoading didn't become false was that the tokenizer was still running.
2291         The fix here is to move the call to [WebCoreBridge stopLoading] above the early return
2292         inside [WebDataSource stopLoading] -- since the tokenizer may still be running even if the
2293         loader is finished loading -- and then to call [WebFrame _checkLoadComplete] to 
2294         give the frame a chance to fire its delegates.
2295         
2296         * WebView.subproj/WebDataSource.m:
2297         (-[WebDataSource _stopLoadingInternal]):
2298
2299 2005-10-21  Beth Dakin  <bdakin@apple.com>
2300
2301         Reviewed by Darin??
2302
2303         Fix for <rdar://problem/3853672> Malformed HTML using crashes Safari in NSFireTimer
2304
2305         The webFrame was being deleted prematurely by a call to stop(), so we changed it
2306         so that the calls to _receivedMainResourceError and _mainReceivedError happen 
2307         before the stop(), and we retain the bridge.
2308
2309         * WebView.subproj/WebDataSource.m:
2310         (-[WebDataSource _receivedMainResourceError:complete:]):
2311
2312 2005-10-21  Geoffrey Garen  <ggaren@apple.com>
2313
2314         Patch by TimO, Reviewed by hyatt, tested and landed by me.
2315
2316         Found what appears to be a misguided optimization that actually causes a measurable performance problem.
2317         A fixed-size buffer was allocated on the stack to pass into CFURLGetBytes(), presumably to avoid malloc()
2318         for URLs less than 2048 bytes.  There was also a fallback which malloc()'ed a buffer in case the fixed-size
2319         buffer was too small to hold the URL's bytes.  This malloc()'ed buffer was then wrapped in an NSData using
2320         +dataWithBytesNoCopy:length:, avoiding a memory copy (yay!)
2321
2322         The problem with this approach is two-fold:
2323     
2324         1. Regardless of how the buffer was allocated and filled, it is immediately wrapped in an NSData using
2325         +dataWithBytes:length:, which copies the input bytes.  This is pretty much unavoidable; we need to get
2326         the data into a malloc()'ed buffer to return it to the caller, unless the caller provides its own storage
2327         (which would be super inconvenient).
2328     
2329         2. The size of the fixed buffer was large enough that it fit most (if not all) URLs involved in our Page
2330         Load Test.  This means the unintentionally-inefficient case was by far the most *common* case!
2331         
2332         My fix is to malloc() the buffer from the start, and then use +[NSData dataWithBytes:length:freeWhenDone:]
2333         to wrap the buffer in an NSData.  This avoids a memory copy for the normal case where a URL is less than
2334         2048 bytes, and keeps the efficient behavior for the uncommon long URL case.
2335
2336         * Misc.subproj/WebNSURLExtras.m:
2337         (-[NSURL _web_originalData]):
2338
2339 2005-10-21  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2340
2341         Reviewed and landed by Darin.
2342
2343         - fixed a couple regressions caused by my last check-in
2344           http://bugzilla.opendarwin.org/show_bug.cgi?id=5437
2345           http://bugzilla.opendarwin.org/show_bug.cgi?id=5443
2346
2347         * WebCoreSupport.subproj/WebTextRenderer.m:
2348         (-[WebTextRenderer CG_drawHighlightForRun:style:geometry:]): Compute background width
2349         correctly, by subtracting position after run from position before run.
2350         (addDirectionalOverride): Make the range include only the characters between the
2351         directional override characters, not the directional override characters themselves.
2352         (initializeWidthIterator): Correctly compute "widthToStart" based on the offset to
2353         the beginning of the run, not to the end of the run!
2354
2355 2005-10-19  Darin Adler  <darin@apple.com>
2356
2357         Reviewed by Maciej.
2358
2359         - optimizations for a total of about 1% speed-up on PLT
2360
2361         * WebCoreSupport.subproj/WebTextRenderer.h: Updated to use bool instead of BOOL,
2362         since BOOL is a signed char (which is not so efficient, at least on PPC).
2363         * WebCoreSupport.subproj/WebTextRenderer.m:
2364         (isSpace): Changed BOOL to bool and UniChar to UChar32. This actually fixes a
2365         potential bug when the passed-in character is a non-BMP character (> FFFF).
2366         (isRoundingHackCharacter): Ditto.
2367         (widthForGlyph): Merged getUncachedWidth, widthFromMap, and widthForGlyph into
2368         one function. Marked it inline. Changed to include syntheticBoldOffset in the
2369         cached widths to save an add in the cached case. Instead of the special constant
2370         UNINITIALIZED_GLYPH_WIDTH, just check for a width >= 0. This allows us to use
2371         a negative number or NAN for the uninitialized width value -- I chose NAN.
2372         (overrideLayoutOperation): Use bool instead of Boolean in one place.
2373         (-[WebTextRenderer initWithFont:]): Use lroundf instead of ROUND_TO_INT.
2374         (-[WebTextRenderer floatWidthForRun:style:]): Put the code to choose the ATSU
2375         vs. CG code path back in here, because there are no callers inside the class
2376         that need to call both.
2377         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
2378         Use bool instead of BOOL.
2379         (+[WebTextRenderer setAlwaysUseATSU:]): Ditto.
2380         (fontContainsString): Ditto.
2381         (-[WebTextRenderer computeWidthForSpace]): Ditto. Also use roundf instead of
2382         using ROUND_TO_INT.
2383         (-[WebTextRenderer setUpFont]): Use bool instead of BOOL.
2384         (drawGlyphs): Ditto.
2385         (-[WebTextRenderer CG_drawHighlightForRun:style:geometry:]): Restructure the
2386         code so it can use the new advanceWidthIterator function instead of the old
2387         widthForNextCharacter function.
2388         (-[WebTextRenderer CG_drawRun:style:geometry:]): Use malloc instead of calloc
2389         since we don't need initialization. Call CG_floatWidthForRun instead of
2390         floatWidthForRun -- no need to re-check whether to use the CG or ATSU code path.
2391         Removed code to handle a renderer of 0 since we no longer generate that in
2392         the renderers array in advanceWidthIterator.
2393         (CG_floatWidthForRun): Changed to call the new advanceWidthIterator instead of
2394         the old widthForNextCharacter.
2395         (-[WebTextRenderer extendCharacterToGlyphMapToInclude:]): Use malloc instead of
2396         calloc and explicitly initialize the one field that needs it. Fixed a potential
2397         storage leak by adding a call to WKClearGlyphVector. Initialize the renderers
2398         to self instead of to 0.
2399         (-[WebTextRenderer extendGlyphToWidthMapToInclude:]): Initialize the widths to
2400         NAN instead of UNINITIALIZED_GLYPH_WIDTH.
2401         (addDirectionalOverride): Fixed bug where the first and last character in the buffer
2402         could be uninitialized and where characters before and after the direction override
2403         could be incorrect.
2404         (-[WebTextRenderer ATSU_drawRun:style:geometry:]): Use bool instead of BOOL.
2405         (-[WebTextRenderer ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
2406         Ditto.
2407         (advanceWidthIteratorOneCharacter): Added new helper function for CG_pointToOffset.
2408         (-[WebTextRenderer CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
2409         Reimplemented to use advanceWidthIteratorOneCharacter instead of widthForNextCharacter.
2410         Also call CG_floatWidthForRun instead of floatWidthForRun since we don't need to
2411         reconsider whether to use CG or ATSU.
2412         (glyphForCharacter): Removed the map parameter and changed the renderer parameter to
2413         be an in-out one. Removed uneeded special case for when map is 0 and always get the
2414         renderer from the map. Also call extendCharacterToGlyphMapToInclude in here instead of
2415         making that the caller's responsibility.
2416         (initializeWidthIterator): Renamed to make the name shorter (removed "Character").
2417         Streamlned common cases like "no padding" and removed some unneeded casts. Changed to
2418         use advanceWidthIterator to compute width fo the first part of the run.
2419         (normalizeVoicingMarks): Factored this out into a separate function, since it's not part
2420         of the common case.
2421         (advanceWidthIterator): Changed widthForNextCharacter to this, eliminating per-character
2422         function overhead for iterating past a few characters. Merged the handling of surrogate
2423         pairs and of voicing marks so that we typically only have to do one "if" to rule out both.
2424         Merged the mirroring for RTL and uppercasing for small caps into a single boolean so that
2425         we only need one "if" to rule out both. Call the new glyphForCharacter. Check for the
2426         character '\t' first since that's cheaper than looking at tabWidth. Check tabWidth for 0
2427         first so that we don't have to convert it to floating point when not using it. Changed
2428         the special case for spaces to first check width, so that we don't bother with the rest
2429         of the code for glyphs not the same width as spaces. Fixed substitution code to call
2430         CG_floatWidthForRun -- no need to reconsider whether to use CG or ATSU. Also changed to
2431         properly get width from the result of that function. Merged the handling of letter spacing,
2432         padding, and word spacing into a single boolean so that we typically only have to do one
2433         "if" to rule out all three. Check for letterSpacing of 0 first so that we don't have to
2434         convert it to floating point when not using it. Same for padding and wordSpacing.
2435         Move the work from ceilCurrentWidth in line into this function. Assume that either we have
2436         all three pointers (widths, renderers, glyphs), or none of the three, to cut down on branches.
2437         (fillStyleWithAttributes): Use bool instead of BOOL.
2438         (shouldUseATSU): Ditto.
2439
2440         * Misc.subproj/WebKitNSStringExtras.m: (-[NSString _web_widthWithFont:]): Update since
2441         the floatWidthForRun method no longer takes a widths parameter.
2442         * Misc.subproj/WebStringTruncator.m: (stringWidth): Ditto.
2443
2444 2005-10-19  Tim Omernick  <tomernick@apple.com>
2445
2446         Reviewed by eseidel & darin.
2447
2448         Changed some of the run measurement methods to C functions
2449         to avoid overhead associated with objc_msgSend().
2450                 
2451         * WebCoreSupport.subproj/WebTextRenderer.m:
2452         (-[WebTextRenderer floatWidthForRun:style:widths:]):
2453         Updated to call new run measurement functions instead
2454         of calling ObjC methods.
2455         (-[WebTextRenderer CG_drawRun:style:geometry:]): ditto
2456         (floatWidthForRun): ditto
2457         (CG_floatWidthForRun): ditto
2458         (ATSU_floatWidthForRun): ditto
2459         (widthForNextCharacter): ditto
2460
2461 2005-10-14  Vicki Murley  <vicki@apple.com>
2462
2463         Changes by Mitz Pettel, reviewed by Maciej.
2464
2465         Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5029 (Assertion failure in -[NSPasteboard(WebExtras) 
2466         _web_writeImage:URL:title:archive:types:] when trying to drag an image from a site with no favicon)
2467
2468         * Misc.subproj/WebNSPasteboardExtras.m:
2469         (-[NSPasteboard _web_writeImage:URL:title:archive:types:]): Prefer the main resource if it is an image
2470
2471 2005-10-12  Vicki Murley  <vicki@apple.com>
2472
2473         Reviewed by Darin.
2474
2475         - fix <rdar://problem/4043643> iframe swallows events for overlapping elements (3449)
2476
2477         * WebView.subproj/WebHTMLView.m:
2478         (-[WebHTMLView hitTest:]): 
2479         (-[WebHTMLView _updateMouseoverWithEvent:]): eliminate _hitViewForEvent hackery and self
2480         dependency from this function
2481
2482 2005-10-12  Timothy Hatcher  <timothy@apple.com>
2483
2484         Reviewed by Darin.
2485         
2486         Define WebNSInt and WebNSUInt to wrap around NSInt on Leopard and still build on Tiger
2487         Once building on Tiger isn't needed we will drop WebNSInt and use NSInt
2488
2489         * WebView.subproj/WebDefaultResourceLoadDelegate.m:
2490         (-[WebDefaultResourceLoadDelegate webView:resource:didReceiveContentLength:fromDataSource:]):
2491         * WebView.subproj/WebFrame.m:
2492         (-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]):
2493         * WebView.subproj/WebLoader.m:
2494         (-[NSURLProtocol didReceiveData:lengthReceived:]):
2495         * WebView.subproj/WebResourceLoadDelegate.h:
2496         * WebView.subproj/WebUIDelegate.h:
2497         * WebView.subproj/WebView.h:
2498         * WebView.subproj/WebView.m:
2499         (-[WebView _mouseDidMoveOverElement:modifierFlags:]):
2500         (-[WebView spellCheckerDocumentTag]):
2501         * WebView.subproj/WebViewInternal.h:
2502         * WebView.subproj/WebViewPrivate.h:
2503
2504 2005-10-12  Darin Adler  <darin@apple.com>
2505
2506         * WebView.subproj/WebPolicyDelegate.h: Fix a comment.
2507
2508 2005-10-11  Timothy Hatcher  <timothy@apple.com>
2509
2510         Reviewed by Darin.
2511         
2512         Test for 10.4 because of <rdar://problem/4243463>
2513
2514         * WebView.subproj/WebHTMLView.m:
2515         (-[WebHTMLView conversationIdentifier]):
2516
2517 2005-10-11  Adele Peterson  <adele@apple.com>
2518
2519         Rolling out fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=5195
2520         since it caused:
2521
2522         REGRESSION text areas draw focus ring around each glyph, no caret in text fields
2523         http://bugzilla.opendarwin.org/show_bug.cgi?id=5335
2524
2525         * WebView.subproj/WebHTMLView.m:
2526         (-[WebHTMLView _propagateDirtyRectsToOpaqueAncestors]):
2527         (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
2528         (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
2529
2530 2005-10-09  Darin Adler  <darin@apple.com>
2531
2532         Reviewed by Maciej.
2533
2534         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5195
2535           Would like API to flush rendering of pending DOM changes
2536
2537         This was actually a Tiger regression. When AppKit added a new code path for rendering
2538         NSView, our special hack for doing layout when we draw didn't work any more. So we
2539         were able to fix this without adding any API.
2540
2541         * WebView.subproj/WebHTMLView.m:
2542         (-[WebHTMLView _recursiveDisplayRectIgnoringOpacity:inContext:topView:]): Added.
2543         Does the same thing that other _recursiveDisplay methods do.
2544
2545 2005-10-08  Alexey Proskuryakov  <ap@nypop.com>
2546
2547         Reviewed by Maciej.
2548
2549         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5187
2550           UTF-8 in long text files breaks at some point
2551
2552         * WebView.subproj/WebTextRepresentation.m:
2553         (-[WebTextRepresentation finishedLoadingWithDataSource:]):
2554         Call flushReceivedData on the WebTextView so it can decode any final bytes.
2555
2556         * WebView.subproj/WebTextView.h: Added WebCoreTextDecoder field and flushReceivedData method.
2557         * WebView.subproj/WebTextView.m:
2558         (-[WebTextView dealloc]): Release WebCoreTextDecoder.
2559         (-[WebTextView appendReceivedData:fromDataSource:]): Create a WebCoreTextDecoder to decode
2560         the text; use the textEncodingName from the data source. Use it to decode instead of the
2561         data source's stringWithData.
2562         (-[WebTextView flushReceivedData]): Call flush on the decoder and append any last bytes to
2563         the text view.
2564
2565 2005-10-07  John Sullivan  <sullivan@apple.com>
2566
2567         Reviewed by Tim Omernick.
2568         
2569         WebKit support for allowing clients to know which frame originated a particular JavaScript alert/dialog.
2570
2571         * WebView.subproj/WebUIDelegatePrivate.h:
2572         New optional delegate methods for the three JavaScript alert/dialogs. These are just like the existing
2573         ones in WebUIDelegate.h except that each adds a parameter specifying the frame that the JavaScript was
2574         running in. Eventually we'll deprecate the old three methods in favor of these in the public API.
2575         
2576         * WebCoreSupport.subproj/WebBridge.m:
2577         (-[WebBridge runJavaScriptAlertPanelWithMessage:]):
2578         Call version of the delegate method that has the frame parameter if the delegate supports it.
2579         (-[WebBridge runJavaScriptConfirmPanelWithMessage:]):
2580         ditto
2581         (-[WebBridge runJavaScriptTextInputPanelWithPrompt:defaultText:returningText:]):
2582         ditto
2583         
2584         * WebView.subproj/WebDefaultUIDelegate.m:
2585         (-[WebDefaultUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]):
2586         Now implements the new version of the delegate method that includes the frame parameter. (Still
2587         doesn't do anything though.)
2588         (-[WebDefaultUIDelegate webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:]):
2589         Now implements the new version of the delegate method that includes the frame parameter. (Still
2590         doesn't do anything though.)
2591         (-[WebDefaultUIDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:]):
2592         Now implements the new version of the delegate method that includes the frame parameter. Doesn't
2593         actually use the frame parameter here yet though.
2594         
2595 2005-10-06  Darin Adler  <darin@apple.com>
2596
2597         - fixed compiling on Deployment
2598
2599         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer initWithFont:]):
2600         Put initialFont inside !LOG_DISABLED.
2601
2602 2005-10-06  Darin Adler  <darin@apple.com>
2603
2604         Reviewed by Eric.
2605
2606         - tweaked formatting
2607
2608         * WebCoreSupport.subproj/WebTextRenderer.m: Changed function names to remove underscores;
2609         fixed formatting to match our coding guidelines, other related tweaks.
2610
2611 2005-10-06  Darin Adler  <darin@apple.com>
2612
2613         Reviewed by Eric.
2614
2615         - fixed regression in drawing of text in non-flipped contexts from my last check-in
2616
2617         * WebCoreSupport.subproj/WebTextRenderer.m:
2618         (drawGlyphs): Only flip the matrix if the NSGraphicsContext is flipped.
2619         (-[WebTextRenderer _ATSU_drawRun:style:geometry:]): Use -[NSGraphicsContext isFlipped]
2620         instead of [[NSView focusView] isFlipped].
2621
2622 2005-10-06  Darin Adler  <darin@apple.com>
2623
2624         Reviewed by Hyatt.
2625
2626         - fixed <rdar://problem/3217793> Monaco bold comes out as Helvetica bold, very bad if you choose Monaco as your fixed-width font
2627         - fixed <rdar://problem/3256269> CSS1: bold/italic font styles not programmatically created if font doesn't include them (3231)
2628           also <http://bugzilla.opendarwin.org/show_bug.cgi?id=3231>
2629
2630         * WebCoreSupport.subproj/WebTextRenderer.h: Removed public declarations of private structures that are not
2631         used in the header. Removed the separate 16-bit character map; the difference in code size is only a few
2632         bytes per page and there's no measurable performance difference by always using the 32-bit character version.
2633         Removed substitute font width maps altogether, since we now use the width map in the substitute font's renderer.
2634         Also removed a few more now-unused fields and methods. Changed initWithFont to take WebCoreFont. Changed
2635         the setAlwaysUseATSU: method to remove the underscore prefix.
2636
2637         * WebCoreSupport.subproj/WebTextRenderer.m:
2638         (getUncachedWidth): Get font from WebCoreFont directly instead of taking a parameter, since we now use only
2639         one NSFont per WebTextRenderer.
2640         (widthFromMap): Removed NSFont parameter for same reason as above; simplified.
2641         (widthForGlyph): Ditto.
2642         (overrideLayoutOperation): Updated for change to WebCoreFont.
2643         (-[WebTextRenderer initWithFont:]): Changed to use WebCoreFont. Removed code to deal with substitute font maps.
2644         Changed lineGap computation to use floats instead of doubles. Added code to compute a synthetic bold offset.
2645         Currently this is the font size divided by 24 and then rounded up to an integer.
2646         (-[WebTextRenderer dealloc]): Updated for change to WebCoreFont and other related changes.
2647         (-[WebTextRenderer finalize]): Ditto.
2648         (-[WebTextRenderer xHeight]): Ditto.
2649         (-[WebTextRenderer drawRun:style:geometry:]): Remove small caps case here; no longer needed. Also updated as above.
2650         (-[WebTextRenderer floatWidthForRun:style:widths:]): Ditto.
2651         (-[WebTextRenderer drawHighlightForRun:style:geometry:]): Ditto.
2652         (-[WebTextRenderer pointToOffset:style:position:reversed:includePartialGlyphs:]): Ditto.
2653         (+[WebTextRenderer setAlwaysUseATSU:]): Renamed to remove underscore prefix.
2654         (-[WebTextRenderer smallCapsRenderer]): Ditto. Changed to create a renderer for the smaller sized font.
2655         (-[WebTextRenderer _substituteFontForString:families:]): Reorganized this to be more readable and to call
2656         the new rendererForAlternateFont method.
2657         (-[WebTextRenderer rendererForAlternateFont:]): Added. Used to select an alternate font taking into account
2658         bold and italic synthesis.
2659         (-[WebTextRenderer substituteRendererForCharacters:length:families:]): Renamed to remove underscore prefix.
2660         Updated to use rendererForAlternateFont.
2661         (-[WebTextRenderer _computeWidthForSpace]): Updated for name changes and to remove unnecessary parameters.
2662         (-[WebTextRenderer setUpFont]): Renamed to remove underscore prefix. Added code to get printer or screen
2663         font as specified by WebCoreFont so calers don't need to do this.
2664         (drawGlyphs): Renamed to remove underscore prefix. Added code for synthetic oblique (14 degree slant), and
2665         synthetic bold (add offset and draw text a second time).
2666         (-[WebTextRenderer _CG_drawRun:style:geometry:]): Keep an array of substitute renderers instead of fonts.
2667         Changed around the loop to reverse the run to be a single loop instead of 3.
2668         (-[WebTextRenderer floatWidthForRun:style:widths:substituteRenderers:glyphs:startPosition:numGlyphs:]):
2669         Renamed to remove the underscore prefix.
2670         (-[WebTextRenderer _CG_floatWidthForRun:style:widths:substituteRenderers:glyphs:startPosition:numGlyphs:]):
2671         Changed to use subsitute renderers rather than fonts.
2672         (-[WebTextRenderer updateGlyphEntryForCharacter:glyphID:substituteRenderer:]): Renamed to remove underscore
2673         prefix and changed to use a substitute renderer rather than a substitute NSFont.
2674         (-[WebTextRenderer extendCharacterToGlyphMapToInclude:]): Updated to work with all characters, both ones
2675         that fit into 16-bit and ones that don't.
2676         (-[WebTextRenderer _extendGlyphToWidthMapToInclude:]): Removed NSFont parameter and simplified. This fixes
2677         a bug where numberOfGlyphs was accidentally used from the main font instead of "subFont".
2678         (glyphForCharacter): Changed to use subsitute renderers instead of substitute fonts.
2679         (widthForNextCharacter): Ditto. Also removed small caps code no longer needed here and replaced it with
2680         simpler small caps code that no longer assumes glyphs match.
2681         (shouldUseATSU): Changed the code to check ranges in order to slightly reduce the number of cases and
2682         to create earlier exit for lower character codes.
2683
2684         * WebCoreSupport.subproj/WebTextRendererFactory.h: Added caches for synthesized font and oblique
2685         variants so we can still use the NSFont as the dictionary key. Removed coalesceTextDrawing methods.
2686         Changed methods to use WebCoreFont as the parameters and results instead of NSFont.
2687         * WebCoreSupport.subproj/WebTextRendererFactory.m:
2688         (-[WebTextRendererFactory clearCaches]): Clear all 8 caches.
2689         (-[WebTextRendererFactory isFontFixedPitch:]): Changed code slightly so there's only one call to
2690         the CFDictionarySetValue function.
2691         (-[WebTextRendererFactory init]): Create all 8 caches.
2692         (-[WebTextRendererFactory dealloc]): Release all 8 caches.
2693         (-[WebTextRendererFactory rendererWithFont:]): Select the appropriate cache based on 3 booleans:
2694         synthetic bold, synthetic oblique, and printer. Use WebCoreFont instead of NSFont.
2695         (-[WebTextRendererFactory fontWithFamilies:traits:size:]): Set the synthetic bold and oblique flags
2696         when returning a WebCoreFont based on requested traits that are not present in the NSFont.
2697         (acceptableChoice): Ignore the synthesizable traits when deciding if a chosen font is acceptable.
2698         (betterChoice): Rather than assuming that every font has all the desired traits, implement a rule
2699         that says a font with an unwanted trait loses out over a font that does not have an unwanted trait.
2700         This lets us chose a bold font over a non-bold font that could use synthesized bold but treat both
2701         as candidates.
2702
2703         * WebCoreSupport.subproj/WebGlyphBuffer.h: Removed.
2704         * WebCoreSupport.subproj/WebGlyphBuffer.m: Removed.
2705         * WebKit.xcodeproj/project.pbxproj: Removed WebGlyphBuffer source files.
2706
2707         * Misc.subproj/WebKitNSStringExtras.m:
2708         (-[NSString _web_drawAtPoint:font:textColor:]): Update to use WebCoreFont.
2709         (-[NSString _web_widthWithFont:]): Ditto.
2710         * Misc.subproj/WebStringTruncator.m:
2711         (truncateString): Ditto.
2712         (+[WebStringTruncator widthOfString:font:]): Ditto.
2713
2714         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView drawRect:]): Removed text drawing coalesce method calls.
2715         * WebView.subproj/WebTextView.m: (-[WebTextView setFixedWidthFont]): Updated to use cachedFontFromFamily
2716         method, which we still have, rather than fontWithFamilies method which we don't (since it now uses WebCoreFont).
2717         * WebView.subproj/WebView.m: (+[WebView _setAlwaysUseATSU:]): Updated for name change to underlying method.
2718
2719 2005-10-05  Maciej Stachowiak  <mjs@apple.com>
2720
2721         Reviewed by Eric.
2722
2723         <rdar://problem/4158439> Safari appears to hang when sending synchronous XMLHttpRequest that gets no server response
2724
2725         No testcase - not testable w/o network.
2726         
2727         * WebCoreSupport.subproj/WebBridge.m:
2728         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): Set a timeout of 10.
2729
2730 2005-10-04  Beth Dakin  <bdakin@apple.com>
2731
2732         Reviewed by Darin
2733
2734         Fix for <rdar://problem/4285538> TOT fix for Denver Regression: Drawing glitch in the transparent dialog's cancel/ok 
2735         button in the widget manager. 
2736
2737         * WebCoreSupport.subproj/WebImageData.m: Calls WKSetPatternPhaseInUserSpace() which is a new function that lies in 
2738                                                 WebKitSystemInterface that and takes care of pattern-setting. Prevents 
2739                                                 regression that occurred with image tiling in transparency layers. 
2740         (-[WebImageData tileInRect:fromPoint:context:]):
2741
2742 2005-10-03  Tim Omernick  <tomernick@apple.com>
2743
2744         Reviewed by John Sullivan.
2745
2746         <rdar://problem/4281095> Denver regression: Seed: Safari HTML 4.01 <object ...> tag problem
2747
2748         * WebCoreSupport.subproj/WebBridge.m:
2749         (-[WebBridge determineObjectFromMIMEType:URL:]):
2750         If no view class is registered to handle the MIME type, check to see if there is a plugin registered which can handle it.
2751         This check is required because the Java plugin does not register an NSView class, so that Java files are downloaded when
2752         not embedded.
2753
2754         Prior to this fix, -determineObjectFromMIMEType:URL: would always return ObjectElementNone for Java applets (MIME type
2755         "application/x-java-applet"), which would cause Java applets embedded in <OBJECT> elements to not be loaded.
2756
2757         This broke on 05-03-2005, when we changed how we handle fallback content for <OBJECT> elements so that we could pass the
2758         Acid2 test.
2759
2760 2005-09-28  Justin Garcia  <justin.garcia@apple.com>
2761
2762         Reviewed by geoff
2763         
2764         Fixed <rdar://problem/4276596> multipart/x-mixed-replace: saved inline images appear only partially loaded
2765         Fixed <rdar://problem/4265439> progress bar should look complete even if there is some more multipart content being loaded
2766
2767         * WebCoreSupport.subproj/WebSubresourceLoader.h:
2768         * WebCoreSupport.subproj/WebSubresourceLoader.m:
2769         (-[WebSubresourceLoader didReceiveResponse:]):
2770         Now calls signalFinish and saveResource.
2771         
2772         (-[WebSubresourceLoader signalFinish]): 
2773         Added.  Does the part of didFinishLoading that signals to the WebDataSource and load delegates that the load is finished.
2774         
2775         (-[WebSubresourceLoader didFinishLoading]):
2776         * WebView.subproj/WebLoader.h:
2777         * WebView.subproj/WebLoader.m:
2778         (-[NSURLProtocol signalFinish]):
2779         Similar to above
2780         
2781         (-[NSURLProtocol didFinishLoading]):
2782
2783 2005-09-28  Adele Peterson  <adele@apple.com>
2784
2785         Reviewed by John.
2786
2787         Moved _downloadWithLoadingConnection and _downloadWithRequestfrom WebDownload.h to WebDownloadInternal.h
2788
2789         * Misc.subproj/WebDownload.h:
2790         * Misc.subproj/WebDownloadInternal.h: Added.
2791         * WebKit.xcodeproj/project.pbxproj: Added WebDownloadInternal.h
2792         * WebView.subproj/WebMainResourceLoader.m: Added import of WebDownloadInternal.h
2793         * WebView.subproj/WebView.m: ditto.
2794
2795 2005-09-27  Adele Peterson  <adele@apple.com>
2796
2797         Reviewed by Maciej.
2798
2799         Changed ints to size_t where appropriate.
2800
2801         * Misc.subproj/WebCoreStatistics.h:
2802         * Misc.subproj/WebCoreStatistics.m:
2803         (+[WebCoreStatistics javaScriptObjectsCount]):
2804         (+[WebCoreStatistics javaScriptInterpretersCount]):
2805         (+[WebCoreStatistics javaScriptNoGCAllowedObjectsCount]):
2806         (+[WebCoreStatistics javaScriptReferencedObjectsCount]):
2807         * WebView.subproj/WebPreferences.m:
2808         (-[WebPreferences _pageCacheSize]):
2809         (-[WebPreferences _objectCacheSize]):
2810         * WebView.subproj/WebPreferencesPrivate.h:
2811
2812 2005-09-26  John Sullivan  <sullivan@apple.com>
2813
2814         Reviewed by Tim Omernick.
2815
2816         - fixed <rdar://problem/4118126> Drag-and-drop text with text containing a colon causes a crash
2817         
2818         There were two problems here. One is that dragging and dropping text within the same WebTextView
2819         should have done nothing rather than try to navigate. The other is that navigating while processing
2820         the end of the drag would dealloc the drag-initiating WebTextView, leading to a crash. Fixing the
2821         former doesn't fix all cases of the latter, since dropping onto (e.g.) Safari's location field
2822         could cause a navigation during the drag. So these two issues needed to be fixed separately.
2823
2824         * WebView.subproj/WebTextView.m:
2825         (-[WebTextView dragSelectionWithEvent:offset:slideBack:]):
2826         Before drag, retain self, and tell WebView that the drag is self-initiated. After drag, do the
2827         opposite. This is the same approach as WebImageView, but it can all be contained in one method
2828         here due to NSTextView's dragging API, which wraps up some of the drag-machinery guts.
2829
2830 2005-09-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2831
2832         Reviewed and landed by Darin.
2833
2834         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5100
2835           -[WebTextRenderer _ATSU_drawRun:...] does not check view flippedness
2836
2837         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
2838         Set up a the CGContext with a matrix that flips the text if the view is not flipped.
2839
2840 2005-09-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2841
2842         Reviewed, tweaked a tiny bit, and landed by Darin.
2843
2844         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4940
2845           CG and ATSUI give different width to the same text
2846
2847         * WebCoreSupport.subproj/WebTextRenderer.m:
2848         (overrideLayoutOperation): Added. ATSU callback to do the rounding.
2849         (-[WebTextRenderer _trapezoidForRun:style:atPoint:]): Use the new createATSULayoutParameters
2850         function instead of calling _createATSUTextLayoutForRun.
2851         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]): Use createATSULayoutParameters,
2852         and also compute the width in a way that works for any direction combination.
2853         (-[WebTextRenderer _ATSU_drawRun:style:geometry:]): Use createATSULayoutParameters.
2854         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
2855         Use createATSULayoutParameters. Also put in code that seems to work around an ATSU bug.
2856         (createATSULayoutParameters): Added.
2857         (disposeATSULayoutParameters): Added.
2858
2859 2005-09-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2860
2861         Reviewed by Dave.
2862         Landed by Darin.
2863
2864         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4862
2865           Incorrect layout of bidi overrides
2866
2867         * WebCoreSupport.subproj/WebTextRenderer.m:
2868         (addDirectionalOverride): Renamed, and made it work in both directions.
2869         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]): Updated to call addDirectionalOverride.
2870         (-[WebTextRenderer _ATSU_drawRun:style:geometry:]): More of the same.
2871         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]): Ditto.
2872
2873 2005-09-24  Alexey Proskuryakov  <ap@nypop.com>
2874
2875         Tweaked, reviewed, and landed by Darin.
2876
2877         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4394
2878           Mouse clicks ignored in inline input areas
2879
2880         * WebView.subproj/WebHTMLView.m:
2881         (-[NSArray mouseDown:]): Removed misleading comment and added code to send mouse event to input manager.
2882         (-[NSArray mouseDragged:]): Added code to send mouse event to input manager.
2883         (-[NSArray mouseUp:]): Ditto.
2884         (-[WebHTMLView _discardMarkedText]): Umnmark text before calling markedTextAbandoned: to match behavior
2885         of NSTextView (not sure why we did things in the opposite order before).
2886         (-[WebHTMLView _updateSelectionForInputManager]): Ditto.
2887
2888         - unrelated tweak
2889
2890         * WebView.subproj/WebView.m:
2891         (-[WebView _performTextSizingSelector:withObject:onTrackingDocs:selForNonTrackingDocs:newScaleFactor:]):
2892         Fix typecast that used ... for no good reason.
2893
2894 2005-09-23  Duncan Wilcox  <duncan@mclink.it>
2895
2896         Reviewed and landed by Darin.
2897
2898         - name changes to prepare for fixing bugzilla bug 4582
2899
2900         * WebView.subproj/WebHTMLView.m: Changed names to match WebCore changes.
2901
2902 2005-09-20  John Sullivan  <sullivan@apple.com>
2903
2904         Reviewed by Tim Omernick.
2905
2906         - fixed <rdar://problem/3228554> We should enforce one selection per WebView instead of per window
2907         
2908         Note that this checkin does not mean that we will always maintain a selection in a WebView when
2909         the focus is elsewhere. Instead it means that there should never be more than one frame containing
2910         a selection in a WebView, and that it's possible to maintain a selection in a WebView when the focus 
2911         is elsewhere.
2912
2913         * WebView.subproj/WebView.m:
2914         (-[WebView searchFor:direction:caseSensitive:wrap:]):
2915         removed unnecessary and somewhat confusing comment
2916         (-[WebView selectedFrame]):
2917         now calls the extracted method -_focusedFrame
2918         (-[WebView _focusedFrame]):
2919         new method, extracted from -selectedFrame; returns frame containing first responder, if any
2920         (-[WebView _findSelectedFrameStartingFromFrame:skippingFrame:]):
2921         added skippingFrame parameter, which is never returned
2922         (-[WebView _findSelectedFrameSkippingFrame:]):
2923         new method, starts from main frame and passes a frame to skip
2924         (-[WebView _findSelectedFrame]):
2925         now calls _findSelectedFrameSkippingFrame:nil
2926         (-[WebView _selectedFrameDidChange]):
2927         new method, called by WebDocumentText protocol implementors; calls -deselectAll on frame that
2928         formerly displayed a selection, if any
2929
2930         * WebView.subproj/WebViewInternal.h:
2931         added category WebDocumentSelectionExtras, with the one method _selectedFrameDidChange
2932
2933         * WebView.subproj/WebHTMLView.m:
2934         (-[WebHTMLView becomeFirstResponder]):
2935         call -[WebView _selectedFrameDidChange]
2936
2937         * WebView.subproj/WebPDFView.m:
2938         (-[WebPDFView becomeFirstResponder]):
2939         call -[WebView _selectedFrameDidChange]
2940         (-[WebPDFView resignFirstResponder]):
2941         deselect all unless webview says not to; note that this doesn't work in all cases due to:
2942         <rdar://problem/4265966> PDFs continue to show a (secondary) selection when the focus moves elsewhere        
2943
2944         * WebView.subproj/WebTextView.m:
2945         (-[WebTextView becomeFirstResponder]):
2946         call -[WebView _selectedFrameDidChange]
2947         (-[WebTextView resignFirstResponder]):
2948         deselect all unless webview says not to
2949
2950 2005-09-20  Eric Seidel  <eseidel@apple.com>
2951
2952         Reviewed by mjs.
2953
2954         Moved MIME type support from a hard coded list
2955         (in two places) to single lists in the corresponding
2956         *Representation classes.  Also moved the list of types
2957         supported by WebCore (WebHTMLRepresentation) into WebCore.
2958         http://bugzilla.opendarwin.org/show_bug.cgi?id=5037
2959
2960         * WebView.subproj/WebDataSource.m:
2961         (addTypesFromClass): new inline function
2962         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
2963         * WebView.subproj/WebFrameView.m:
2964         (addTypesFromClass): new inline function
2965         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
2966         * WebView.subproj/WebHTMLRepresentation.h:
2967         * WebView.subproj/WebHTMLRepresentation.m:
2968         (+[WebHTMLRepresentation supportedMIMETypes]):
2969         * WebView.subproj/WebHTMLView.m:
2970         (+[WebHTMLView supportedMIMETypes]):
2971         * WebView.subproj/WebHTMLViewPrivate.h:
2972         * WebView.subproj/WebImageRepresentation.h:
2973         * WebView.subproj/WebImageRepresentation.m:
2974         (+[WebImageRepresentation supportedMIMETypes]):
2975         * WebView.subproj/WebImageView.h:
2976         * WebView.subproj/WebImageView.m:
2977         (+[WebImageView supportedMIMETypes]):
2978         * WebView.subproj/WebPDFRepresentation.h:
2979         * WebView.subproj/WebPDFRepresentation.m:
2980         (+[WebPDFRepresentation supportedMIMETypes]):
2981         * WebView.subproj/WebPDFView.h:
2982         * WebView.subproj/WebPDFView.m:
2983         (+[WebPDFView supportedMIMETypes]):
2984         * WebView.subproj/WebTextRepresentation.h:
2985         * WebView.subproj/WebTextRepresentation.m:
2986         (+[WebTextRepresentation supportedMIMETypes]):
2987         * WebView.subproj/WebTextView.h:
2988         * WebView.subproj/WebTextView.m:
2989         (+[WebTextView supportedMIMETypes]):
2990         * WebView.subproj/WebView.m:
2991         (+[WebView _viewClass:andRepresentationClass:forMIMEType:]):
2992         (+[WebView MIMETypesShownAsHTML]): updated to match style
2993         (+[WebView setMIMETypesShownAsHTML:]): ditto
2994
2995 2005-09-16  John Sullivan  <sullivan@apple.com>
2996
2997         * WebView.subproj/WebImageView.m:
2998         (-[WebImageView copy:]):
2999         fixed build-breaking silly error in previous checkin
3000
3001 2005-09-16  John Sullivan  <sullivan@apple.com>
3002
3003         Reviewed by Tim Omernick
3004         
3005         - fixed <rdar://problem/4256557> CrashTracer: 238 crashes in Safari at 
3006         com.apple.AppKit: -[NSPasteboard setData:forType:] + 188
3007
3008         * WebView.subproj/WebImageView.m:
3009         (-[WebImageView copy:]):
3010         declare types to pasteboard before starting to set their data
3011         (-[WebImageView writeSelectionToPasteboard:types:]):
3012         ditto
3013
3014 2005-09-16  Adele Peterson  <adele@apple.com>
3015
3016         Rolling out the fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=4924
3017             QPainter should use CGContext as much as possible rather than NSGraphicsContext 
3018         since it caused a performance regression.
3019
3020 2005-09-16  Adele Peterson  <adele@apple.com>
3021
3022         Change by Darin, reviewed by me and Maciej.
3023
3024         Fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=4547
3025         use int instead of long for 32-bit (to prepare for LP64 compiling)
3026
3027         * Plugins.subproj/npapi.m: changed types to match those defined in npapi.h
3028         (NPN_MemAlloc):
3029         (NPN_MemFlush):
3030         (NPN_PostURLNotify):
3031         (NPN_PostURL):
3032         (NPN_Write):
3033
3034 2005-09-14  Justin Garcia  <justin.garcia@apple.com>
3035
3036         Reviewed by john
3037
3038         Fixes <rdar://problem/4237479> REGRESSION (Cambridge-Denver): old QuickTime movie continues to play sound after reload
3039         We were adding the movie to the document twice after the changes were added to handle fallback content.
3040         There are some errors for which we should not render fall back content
3041
3042         * Misc.subproj/WebKitErrorsPrivate.h:
3043         Introduced WebKitErrorPlugInWillHandleLoad to represent the cancel we do
3044         to prevent loading plugin content twice
3045         
3046         * Plugins.subproj/WebPluginDocumentView.m:
3047         (-[WebPluginDocumentView dataSourceUpdated:]): Ditto
3048         
3049         * WebView.subproj/WebDataSource.m:
3050         (-[WebDataSource _receivedMainResourceError:complete:]):
3051         Don't handleFallbackContent on WebKitErrorPlugInWillHandleLoad or on a user cancel
3052
3053 2005-09-14  Timothy Hatcher  <thatcher@apple.com>
3054
3055         Reviewed by Eric.
3056         
3057         * WebKit.xcodeproj/project.pbxproj:
3058         made WebDashboardRegion.h a private header
3059
3060 2005-09-14  Darin Adler  <darin@apple.com>
3061
3062         Reviewed by Maciej.
3063
3064         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4924
3065           QPainter should use CGContext as much as possible rather than NSGraphicsContext
3066
3067         * WebCoreSupport.subproj/WebImageRendererFactory.m: Remove setCGCompositeOperationFromString
3068         method, no longer needed.
3069
3070 2005-09-13  Tim Omernick  <tomernick@apple.com>
3071
3072         Reviewed by Justin Garcia, Darin Adler.
3073
3074         - <rdar://problem/3163393> Safari does not support Windowless mode in Flash
3075
3076         * Plugins.subproj/WebBaseNetscapePluginView.h:
3077         Added 'isTransparent' instance variable.
3078
3079         * Plugins.subproj/WebBaseNetscapePluginView.m:  
3080         (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]):
3081         When updating a plugin in "windowless" (transparent) mode, clip drawing to the dirty
3082         region of the opaque ancestor.  This means that a partially-transparent plugin, which
3083         by definition does not clear its port on redraw, will not overdraw the valid parts
3084         of its port.
3085         (-[WebBaseNetscapePluginView sendEvent:]):
3086         Disabled the "green debug background" for transparent plugins -- since they are not
3087         expected to cover their entire port every redraw, this debug code makes no sense.
3088         (-[WebBaseNetscapePluginView setVariable:value:]):
3089         Implemented -setVariable:value:, which is called from NPN_SetValue() (previously
3090         unimplemented).
3091         Right now we only handle NPPVpluginTransparentBool; if we choose to handle the other
3092         plugin variables, then we may do so here.
3093         * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
3094         Added SPI for -[WebBaseNetscapePluginView setVariable:value].
3095         * Plugins.subproj/npapi.m:
3096         (NPN_SetValue):
3097         Implemented this function so that plugins may set state (such as window mode).
3098         
3099 2005-09-11  Mark Rowe  <opendarwin.org@bdash.net.nz>
3100
3101         Reviewed, tweaked, and landed by Darin.
3102
3103         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4286
3104           .Mac prefpane crashes when Safari using CVS WebKit is running
3105
3106         * WebView.subproj/WebView.m: (-[WebView initWithFrame:frameName:groupName:]):
3107         If ENABLE_WEBKIT_UNSET_DYLD_FRAMEWORK_PATH, and WEBKIT_UNSET_DYLD_FRAMEWORK_PATH
3108         is set in the environment, then unset DYLD_FRAMEWORK_PATH.
3109
3110         * WebKit.xcodeproj/project.pbxproj: Set ENABLE_WEBKIT_UNSET_DYLD_FRAMEWORK_PATH
3111         in configurations other than Default -- we don't want that code in production
3112         builds, but we want it in builds we do ourselves and nightly builds.
3113
3114 2005-09-10  Ingmar J Stein  <IngmarStein@gmail.com>
3115
3116         Reviewed and landed by Darin.
3117
3118         * WebCoreSupport.subproj/WebImageRenderer.m:
3119         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
3120         Removed unused local variable.
3121
3122 2005-09-09  Tim Omernick  <tomernick@apple.com>
3123
3124         Reviewed by John Sullivan.
3125
3126         * History.subproj/WebBackForwardList.m:
3127         (-[WebBackForwardList removeItem:]):
3128         SPI to remove a given WebHistoryItem.
3129
3130         * History.subproj/WebBackForwardListPrivate.h: Added.
3131
3132         * WebKit.xcodeproj/project.pbxproj:
3133         Added WebBackForwardListPrivate.h as a private header.
3134
3135 2005-09-09  John Sullivan  <sullivan@apple.com>
3136
3137         Reviewed by Tim Omernick.
3138         
3139         fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4070:
3140         Find in plain text won't find only occurrence if it overlaps selection
3141
3142         * Misc.subproj/WebSearchableTextView.m:
3143         (-[NSString findString:selectedRange:options:wrap:]):
3144         in the wrap case, extend the search range far enough that text overlapping the
3145         selection (including the exact-match case) will be considered.
3146
3147 2005-09-08  Justin Garcia  <justin.garcia@apple.com>
3148
3149         Reviewed by darin
3150         
3151         WebKit portion of multipart/x-mixed-replace support
3152
3153         * WebCoreSupport.subproj/WebSubresourceLoader.m:
3154         (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
3155         Subresource case: Check for Foundation level multipart support
3156         (-[WebSubresourceLoader didReceiveResponse:]): 
3157         Send previously received data in a multipart section to the coreLoader
3158         (-[WebSubresourceLoader didReceiveData:lengthReceived:]): 
3159         Don't send data to the coreLoader until it has been completely received
3160         * WebView.subproj/WebDataSource.m:
3161         (-[WebDataSource _startLoading:]): 
3162         Main resource case: check for Foundation level multipart support 
3163         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
3164         Some server apps send data right after declaring content multipart/x-mixed-replace, and expect it to be treated as html
3165         (-[WebDataSource _commitIfReady:]):
3166         Don't ask the WebFrame to close its old WebDataSource when loading a multipart section, because we're going to reuse it
3167         (-[WebDataSource _receivedData:]):
3168         For non text/html multipart sections, we commit the data all at once, at the end
3169         (-[WebDataSource _doesProgressiveLoadWithMIMEType:]):
3170         Added heuristic for when to commit the load incrementally
3171         (-[WebDataSource _commitLoadWithData:]):
3172         Moved from _receivedData into its own function
3173         (-[WebDataSource _revertToProvisionalState]):
3174         (-[WebDataSource _setupForReplaceByMIMEType:]):
3175         Commits the data received for the previous multipart section if it wasn't loaded progresively, clears out the WebFrame and WebDatasource for the next multipart section
3176         * WebView.subproj/WebDataSourcePrivate.h:
3177         * WebView.subproj/WebFrame.m:
3178         (-[WebFrame _transitionToCommitted:]): 
3179         The very first multipart section is treated as a normal load, so that the back/forward list and history are updated.
3180         All later sections have a new load type, WebFrameLoadTypeReplace, and are treated like reloads
3181         (-[WebFrame _checkLoadCompleteForThisFrame]): Ditto
3182         (-[WebFrame _itemForRestoringDocState]): Ditto
3183         (-[WebFrame _setupForReplace]):
3184         Clears out the WebFrame for the next multipart section
3185         * WebView.subproj/WebFrameInternal.h:
3186         * WebView.subproj/WebFramePrivate.h:
3187         * WebView.subproj/WebFrameView.m:
3188         (+[WebFrameView _viewTypesAllowImageTypeOmission:]): See above
3189         * WebView.subproj/WebLoader.h:
3190         * WebView.subproj/WebLoader.m:
3191         (-[NSURLProtocol clearResourceData]):
3192         (-[NSURLProtocol setSupportsMultipartContent:]):
3193         * WebView.subproj/WebMainResourceLoader.m: Straightforward
3194         (-[WebMainResourceLoader didReceiveResponse:]):
3195
3196 2005-09-06  Geoffrey Garen  <ggaren@apple.com>
3197
3198         - fixed build bustage from last checkin.
3199         
3200         Reviewed by haytt.
3201
3202         * History.subproj/WebBackForwardList.m:
3203         (-[WebBackForwardList pageCacheSize]): updated debug printf since we no
3204         longer have a variable called 'multiplier'
3205
3206 2005-09-06  David Hyatt  <hyatt@apple.com>
3207
3208         Reduce the # of cached pages for a back/forward list.  The old cache would cache the
3209         following per tab:
3210         > 1gb memory = 16 pages per tab/window
3211         > 512mb memory = 8 pages per tab/window
3212         <= 512mb memory = 4 pages per tab/window
3213
3214         This consumes far too much memory and is way too aggressive.  The new cache sizes are
3215         as follows:
3216         >= 1gb memory = 3 pages per tab/window
3217         >= 512mb memory = 2 pages per tab/window
3218         < 512mb memory = 1 page per tab/window
3219
3220         Reviewed by john
3221
3222         * History.subproj/WebBackForwardList.m:
3223         (-[WebBackForwardList pageCacheSize]):
3224         * WebView.subproj/WebPreferences.m:
3225         (+[WebPreferences initialize]):
3226
3227 2005-09-05  Darin Adler  <darin@apple.com>
3228
3229         Reviewed by John Sullivan.
3230
3231         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4846
3232           REGRESSION: Carbon WebKit applications don't work at all
3233
3234         * Carbon.subproj/HIWebView.m: Remove lots of unneeded declarations of private stuff.
3235         (Draw): Call WKNSWindowOverrideCGContext and WKNSWindowRestoreCGContext rather
3236         than calling a non-existent setCGContext: method on the context.
3237
3238 2005-09-05  John Sullivan  <sullivan@apple.com>
3239
3240         Reviewed by Dave Hyatt.
3241         
3242         - change related to <rdar://problem/4211999> Safari quits when click-drag-hold an image 
3243         that is set to automatically change.
3244
3245         * WebView.subproj/WebHTMLView.m:
3246         (-[NSArray namesOfPromisedFilesDroppedAtDestination:]):
3247         handle nil wrapper with ERROR and early return rather than ASSERT, since we now know
3248         of a way to reproduce this (written up as 4244861)
3249
3250 2005-09-05  Darin Adler  <darin@apple.com>
3251
3252         Reviewed by John Sullivan.
3253
3254         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4357
3255           crash related to animated GIFs, reproducible in non-Safari WebKit application
3256
3257         * WebCoreSupport.subproj/WebImageData.m:
3258         (removeAnimatingRendererFromView): Added.
3259         (removeFromDictionary): Added.
3260         (-[WebImageData removeAnimatingRenderer:]): Rewrote using CF functions rather than
3261         NS functions so that we never retain the views, since this can be called from
3262         a view's dealloc method.
3263         (setNeedsDisplayInAnimationRect): Added.
3264         (-[WebImageData _nextFrame:]): Rewrote as above, even though in this case it can't
3265         be called from the dealloc method.
3266
3267 2005-08-26  David Hyatt  <hyatt@apple.com>
3268
3269         Add support for a new scaling and tiling function so that border images from CSS3
3270         can be implemented.
3271         
3272         Reviewed by darin
3273
3274         * WebCoreSupport.subproj/WebImageData.h:
3275         * WebCoreSupport.subproj/WebImageData.m:
3276         (-[WebImageData scaleAndTileInRect:fromRect:withHorizontalTileRule:withVerticalTileRule:context:]):
3277         * WebCoreSupport.subproj/WebImageRenderer.m:
3278         (-[WebImageRenderer scaleAndTileInRect:fromRect:withHorizontalTileRule:withVerticalTileRule:context:]):
3279         (-[WebImageRenderer setAnimationRect:]):
3280         * WebView.subproj/WebHTMLView.m:
3281         (-[WebHTMLView updateFocusState]):
3282
3283 2005-08-26  Adele Peterson  <adele@apple.com>
3284
3285         Reviewed by Beth.
3286
3287         * WebKit.xcodeproj/project.pbxproj: Changed WebKit.Framework to WebKit.framework in UMBRELLA_FRAMEWORK.
3288
3289 2005-08-25  David Harrison  <harrison@apple.com>
3290
3291         Reviewed by Maciej.
3292
3293         <rdar://problem/4227734> Denver Regression: WebCore selection bug on lines starting with tab (clownfish)
3294
3295         The text is in a DIV styled with "white-space:pre", and uses newline characters as linebreaks.
3296         WebKit's text renderer is erroneously considering the width of the lines leading up to the tab
3297         character when calculating the width of the tab.
3298         Easily fixed by having widthForNextCharacter ignore the widthToStart when working with tabWidth.
3299         Any prior text that fits in the same line is already factored into the xpos, which is paid attention to.
3300
3301         * WebCoreSupport.subproj/WebTextRenderer.m:
3302         (widthForNextCharacter):
3303         Ignore the widthToStart when working with tabWidth.
3304
3305 2005-08-23  John Sullivan  <sullivan@apple.com>
3306
3307         Reviewed by Beth Dakin.
3308         
3309         - fixed <rdar://problem/4229167> 14 leaks of WebFileButton and associated objects, 
3310         seen after running webkit layout tests
3311
3312         * WebCoreSupport.subproj/WebBridge.m:
3313         (-[WebBridge fileButtonWithDelegate:]):
3314         this method was returning a retained object; I added an autorelease
3315
3316 2005-08-23  Darin Adler  <darin@apple.com>
3317
3318         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
3319
3320 2005-08-23  Mitz Pettel  <opendarwin.org@mitzpettel.com>
3321
3322         Reviewed and landed by Darin.
3323
3324         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4604
3325           LEAK -[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:] leaks an ATSUTextLayout
3326           <rdar://problem/4228787> ATSUTextLayout leak in _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs: (4604)
3327
3328         * WebCoreSupport.subproj/WebTextRenderer.m:
3329         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
3330         Added missing call to ATSUDisposeTextLayout.
3331
3332 2005-08-22  Geoffrey Garen  <ggaren@apple.com>
3333
3334         - fixed <rdar://problem/4227011> Debugger SPI should be removed from WebView.h API
3335         
3336         Reviewed by mjs and adele.
3337
3338         Cut and pasted debugging SPI from WebView to WebView(WebPendingPublic)
3339         
3340         * WebView.subproj/WebView.h:
3341         * WebView.subproj/WebView.m:
3342         (-[WebView setScriptDebugDelegate:]):
3343         (-[WebView scriptDebugDelegate]):
3344         * WebView.subproj/WebViewPrivate.h:
3345
3346 2005-08-20  John Sullivan  <sullivan@apple.com>
3347
3348         Reviewed by Darin Adler.
3349         
3350         - WebKit part of fix for 
3351         <rdar://problem/3977607> ER: Safari should check framework versions at launch
3352
3353         * WebView.subproj/WebViewPrivate.h:
3354         * WebView.subproj/WebView.m:
3355         (+[WebView _minimumRequiredSafariBuildNumber]):
3356         new method, returns the minimum build number of Safari that this WebKit is
3357         willing to work with. (The Safari version has to be new enough to check
3358         for this value in order for this to have any effect.)
3359
3360 2005-08-19  Justin Garcia  <justin.garcia@apple.com>
3361
3362         Reviewed by rjw
3363         
3364         The boolean justOpenedForTargetedLink is never used to determine a course of action.  
3365         It was added long ago for findOrCreateFramedNamed, which has since been removed.
3366
3367         * WebView.subproj/WebDataSource.m:
3368         * WebView.subproj/WebDataSourcePrivate.h:
3369         * WebView.subproj/WebFrame.m:
3370         (-[WebFrame _loadDataSource:withLoadType:formState:]):
3371         * WebView.subproj/WebFramePrivate.h:
3372
3373 2005-08-19  Darin Adler  <darin@apple.com>
3374
3375         Reviewed by John.
3376
3377         * English.lproj/Localizable.strings: Updated to include a new localizable string
3378         that was added a long while back. Apprently no one has run into the code using
3379         this string, because if they had, they'd have seen an assert.
3380         * English.lproj/StringsNotToBeLocalized.txt: Updated for various recent changes.
3381
3382 2005-08-17  Maciej Stachowiak  <mjs@apple.com>
3383
3384         Reviewed by Darin.
3385
3386         - fix mysterious CGImageSource error message and possibly crash on layout tests.
3387
3388         * WebView.subproj/WebMainResourceLoader.m:
3389         (-[WebMainResourceLoader receivedError:]): Retain the data source since it may
3390         prematurely self-destruct otherwise.
3391         (-[WebMainResourceLoader cancelWithError:]): ditto
3392
3393 2005-08-17  Justin Garcia  <justin.garcia@apple.com>
3394
3395         Reviewed by rjw
3396         
3397         Addresses <rdar://problem/4192534> new frame load delegate SPI needed for Dashboard
3398             Added handledOnloadEvents delegate method (private for now)
3399
3400         * WebCoreSupport.subproj/WebBridge.m:
3401         (-[WebBridge handledOnloadEvents]):
3402         * WebView.subproj/WebDefaultFrameLoadDelegate.m:
3403         (-[WebDefaultFrameLoadDelegate webView:didHandleOnloadEventsForFrame:]):
3404         * WebView.subproj/WebFrame.m:
3405         (-[WebFrame _handledOnloadEvents]):
3406         * WebView.subproj/WebFramePrivate.h:
3407         * WebView.subproj/WebViewPrivate.h:
3408
3409 2005-08-17  John Sullivan  <sullivan@apple.com>
3410
3411         Reviewed by Geoff Garen.
3412         
3413         - fixed <rdar://problem/4219817> Particular icon database + bookmarks + history crashes Safari on launch
3414
3415         * Misc.subproj/WebIconDatabase.m:
3416         (-[WebIconDatabase releaseIconForURL:]):
3417         Move line that might remove last reference to iconURL to the end of the block.
3418
3419 2005-08-16  Darin Adler  <darin@apple.com>
3420
3421         Reviewed by Trey.
3422
3423         - improved fix for <rdar://problem/4211631>, tiled images tiled incorrectly when printing or 
3424           drawing offscreen
3425
3426         * WebCoreSupport.subproj/WebImageData.m: (-[WebImageData tileInRect:fromPoint:context:]):
3427         Fix pattern phase origin to use the image tile origin, which is clearly right, rather than
3428         the image rectangle, which isn't right, but often is the same.
3429
3430 2005-08-16  Adele Peterson  <adele@apple.com>
3431
34