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