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