Reviewed by Tim Omernick.
[WebKit-https.git] / WebKit / ChangeLog
1 2006-05-01  John Sullivan  <sullivan@apple.com>
2
3         Reviewed by Tim Omernick.
4         
5         - fixed <rdar://problem/3126419> history load enforces history limit, but deletes the newest instead of oldest items
6         - added notification reporting items discarded during load because the age limit or item count limit is exceeded
7         - a few other minor tweaks
8
9         * History/WebHistory.h:
10         fixed a typo and an incorrect method name
11         
12         * History/WebHistoryPrivate.h:
13         Added declaration of WebHistoryItemsDiscardedWhileLoadingNotification. Also changed signature of
14         WebHistoryPrivate method -loadFromURL:error: to have new collectDiscardedItemsInto: parameter.
15         Also deleted declarations of two methods that didn't actually exist (loadHistory and initWithFile:), 
16         and added comments about which methods should become public API, WebKit-internal, or file-internal.
17
18         * History/WebHistory.m:
19         (-[WebHistoryPrivate arrayRepresentation]):
20         This method, called only by _saveHistoryGuts:, used to deliberately leave out items that violated
21         either the age limit or the item count limit. Now all the items are included (and thus saved), and
22         all the pruning is done at load time, so clients can keep track of the pruned items by observing
23         the new WebHistoryItemsDiscardedWhileLoadingNotification
24         (-[WebHistoryPrivate _loadHistoryGutsFromURL:savedItemsCount:collectDiscardedItemsInto:error:]):
25         Now keeps track of all the items that violated the age limit or item count limit in the new
26         collectedDiscardedItemsInto: parameter. Also, now processes items in forward order rather than
27         reverse order to fix 3126419. Now uses compare: rather than _webkit_compareDay: to check against
28         age limit; this is faster and also more correct (most noticeable with small age limits).
29         (-[WebHistoryPrivate loadFromURL:collectDiscardedItemsInto:error:]):
30         new collectDiscardedItemsInto: parameter, passed into _loadHistoryGuts:...
31         (-[WebHistory loadFromURL:error:]):
32         Now sends new WebHistoryItemsDiscardedWhileLoadingNotification if any items were discarded due
33         to age limit or item count limit.
34         
35         * WebKit.exp:
36         exported symbol for WebHistoryItemsDiscardedWhileLoadingNotification
37
38 2006-04-29  Timothy Hatcher  <timothy@apple.com>
39
40         Reviewed by Maciej.
41
42         Bug 8577: [TabBarView _web_superviewOfClass:stoppingAtClass:]
43         http://bugzilla.opendarwin.org/show_bug.cgi?id=8577
44
45         Added back _web_superviewOfClass:stoppingAtClass:.
46         This method was removed in r14032 (bug 8562), but Safari 2.0 still uses it.
47         We should remove this method once Open Source users have a new version
48         to use with TOT WebKit.
49
50         * Misc/WebNSViewExtras.m:
51         (-[NSView _web_superviewOfClass:stoppingAtClass:]):
52
53 2006-04-28  David Hyatt  <hyatt@apple.com>
54
55         Double the cache size to account for our revised (more accurate)
56         measurement of the image buffers.
57
58         Reviewed by darin
59
60         * WebView/WebPreferences.m:
61         (+[WebPreferences initialize]):
62
63 2006-04-28  David Hyatt  <hyatt@apple.com>
64
65         Fix for 8586, move WebTextRenderer into WebCore.
66
67         Reviewed by darin
68
69         * Misc/WebKitNSStringExtras.m:
70         (-[NSString _web_drawAtPoint:font:textColor:]):
71         (-[NSString _web_widthWithFont:]):
72         * Misc/WebStringTruncator.m:
73         (+[WebStringTruncator centerTruncateString:toWidth:]):
74         (+[WebStringTruncator centerTruncateString:toWidth:withFont:]):
75         (+[WebStringTruncator rightTruncateString:toWidth:withFont:]):
76         (+[WebStringTruncator widthOfString:font:]):
77         * WebCoreSupport/WebSystemInterface.m:
78         (InitWebCoreSystemInterface):
79         * WebCoreSupport/WebTextRenderer.h: Removed.
80         * WebCoreSupport/WebTextRenderer.m: Removed.
81         * WebCoreSupport/WebTextRendererFactory.h: Removed.
82         * WebCoreSupport/WebTextRendererFactory.m: Removed.
83         * WebKit.xcodeproj/project.pbxproj:
84         * WebView/WebFrameView.m:
85         (-[WebFrameView initWithFrame:]):
86         * WebView/WebHTMLView.m:
87         (-[NSArray _addToStyle:fontA:fontB:]):
88         * WebView/WebTextView.m:
89         (-[WebTextView setFixedWidthFont]):
90         * WebView/WebView.m:
91         (+[WebView _setAlwaysUseATSU:]):
92         (+[WebView _setShouldUseFontSmoothing:]):
93         (+[WebView _shouldUseFontSmoothing]):
94
95 2006-04-28  Eric Seidel  <eseidel@apple.com>
96
97         Reviewed by darin.
98
99         Misc. style cleanup.
100         http://bugzilla.opendarwin.org/show_bug.cgi?id=8643
101
102         * Misc/WebIconDatabase.m:
103         (-[NSMutableDictionary iconForURL:withSize:cache:]):
104         (-[NSMutableDictionary iconURLForURL:]):
105         (-[NSMutableDictionary retainIconForURL:]):
106         (-[NSMutableDictionary releaseIconForURL:]):
107         (-[WebIconDatabase _setIcon:forIconURL:]):
108         (-[WebIconDatabase _iconsForIconURLString:]):
109         (-[WebIconDatabase _forgetIconForIconURLString:]):
110         (-[WebIconDatabase _releaseIconForIconURLString:]):
111         (-[WebIconDatabase _iconsBySplittingRepresentationsOfIcon:]):
112         * Plugins/WebBasePluginPackage.m:
113         (+[WebBasePluginPackage pluginWithPath:]):
114         (-[WebBasePluginPackage pathByResolvingSymlinksAndAliasesInPath:]):
115         (-[WebBasePluginPackage initWithPath:]):
116         (-[WebBasePluginPackage getPluginInfoFromBundleAndMIMEDictionary:]):
117         (-[WebBasePluginPackage pListForPath:createFile:]):
118         (-[WebBasePluginPackage getPluginInfoFromPLists]):
119         (-[WebBasePluginPackage load]):
120         (-[WebBasePluginPackage setMIMEToExtensionsDictionary:]):
121         (-[WebBasePluginPackage isNativeLibraryData:]):
122         (-[NSArray _web_lowercaseStrings]):
123         * Plugins/WebNetscapePluginPackage.m:
124         (-[WebNetscapePluginPackage openResourceFile]):
125         (-[WebNetscapePluginPackage closeResourceFile:]):
126         (-[WebNetscapePluginPackage stringForStringListID:andIndex:]):
127         (-[WebNetscapePluginPackage getPluginInfoFromResources]):
128         (-[WebNetscapePluginPackage initWithPath:]):
129         (-[WebNetscapePluginPackage executableType]):
130         (-[WebNetscapePluginPackage unloadWithoutShutdown]):
131         (-[WebNetscapePluginPackage load]):
132         (-[WebNetscapePluginPackage unload]):
133         * Plugins/WebNetscapePluginRepresentation.m:
134         (-[WebNetscapePluginRepresentation redeliverStream]):
135         * Plugins/WebPluginDatabase.m:
136         (+[WebPluginDatabase installedPlugins]):
137         (-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]):
138         (-[WebPluginDatabase pluginForExtension:]):
139         (pluginLocations):
140         (-[WebPluginDatabase init]):
141         (-[WebPluginDatabase refresh]):
142         * Plugins/npapi.m:
143         (NPN_MemAlloc):
144         (NPN_MemFree):
145         (pluginViewForInstance):
146         * WebCoreSupport/WebSubresourceLoader.m:
147         (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
148         (-[WebSubresourceLoader willSendRequest:redirectResponse:]):
149         * WebView/WebDataSource.m:
150         (-[WebDataSource isLoading]):
151         * WebView/WebFrame.m:
152         (-[WebFrame _loadDataSource:withLoadType:formState:]):
153         (-[WebFrame _subframeIsLoading]):
154         * WebView/WebView.m:
155         (-[WebView initWithFrame:]):
156         (-[WebView initWithFrame:frameName:groupName:]):
157
158 2006-04-26  Tim Omernick  <timo@apple.com>
159
160         Reviewed by Geoff.
161
162         <rdar://problem/4525105> Repro TOT crash in [WebBaseNetscapePluginView dealloc] at coachella.com
163         <http://bugzilla.opendarwin.org/show_bug.cgi?id=8564> crashed when closing a tab
164
165         * WebView/WebFrame.m:
166         (-[WebFramePrivate dealloc]):
167         Assert that plugInViews has been released.
168         (-[WebFrame _addPlugInView:]):
169         New method.  Adds the plug-in view to the plugInViews set and calls -setWebFrame: on it.
170         (-[WebFrame _removeAllPlugInViews]):
171         New method.  Calls -setWebFrame:nil on all plug-in views and releases the plugInViews set.
172         (-[WebFrame _willCloseURL]):
173         New method.  Dispose of plug-in views when leaving a page (or closing the WebView).
174
175         * WebView/WebFrameInternal.h:
176         Declared -_addPlugInView:, -_removeAllPlugInViews, -_willCloseURL
177
178         * WebCoreSupport/WebFrameBridge.m:
179         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
180         Call -[WebFrame _addPlugInView:] instead of directly setting plug-in views' frames.  This
181         allows us to keep track of them so that we can explicitly dispose of them when leaving the page.
182         (-[WebFrameBridge closeURL]):
183         Override -[WebCoreFrameBridge closeURL] so that we can perform our own teardown when leaving
184         a page or closing the WebView.
185
186         * Plugins/WebBaseNetscapePluginView.h:
187         Declared -stop so that subclass WebNetscapePluginEmbeddedView can call it.
188
189         * Plugins/WebNetscapePluginEmbeddedView.m:
190         (-[WebNetscapePluginEmbeddedView setWebFrame:]):
191         Stop the plug-in when it is removed from its WebFrame.
192
193 2006-04-25  Tim Omernick  <timo@apple.com>
194
195         Reviewed by John Sullivan.
196
197         <rdar://problem/4472035> SPI that checks for URL policy fails in plugin documents
198
199         * Plugins/WebPluginController.h:
200         * Plugins/WebPluginController.m:
201         (-[WebPluginController URLPolicyCheckReferrer]):
202         New method.  Get the referrer from the frame's data source's NSURLResponse.  Note that for
203         document types loaded by WebCore, this URL is the same as -[WebCorePageBridge referrer],
204         since the response URL is what we pass to -[WebCorePageBridge openURL:].
205
206         * Plugins/WebPluginContainerCheck.m:
207         (-[WebPluginContainerCheck _isForbiddenFileLoad]):
208         Use the WebPluginController's -URLPolicyCheckReferrer instead of assuming that the bridge's
209         -referrer is valid.  -[WebCorePageBridge referrer] is only set during the normal WebCore page
210         load process, which has nothing to do with loading standalone plugin documents.
211
212 2006-04-25  Tim Omernick  <timo@apple.com>
213
214         Reviewed by Eric.
215
216         <rdar://problem/4526052> intermittent assertion failure in -[WebBasePluginPackage dealloc]
217         running layout tests
218
219         * Plugins/WebPluginPackage.m:
220         (-[WebPluginPackage unload]):
221         Clear isLoaded here.  It turns out that only WebNetscapePluginPackage cleared its isLoaded
222         flag in -unload.  We need to also do it here, because the superclass (WebBasePluginPackage)
223         asserts in -dealloc that -unload has been called.
224
225 2006-04-25  Tim Omernick  <timo@apple.com>
226
227         Reviewed by Eric.
228
229         <rdar://problem/4526120> -[WebBasePluginPackage finalize] leaks the CFBundle (under GC only)
230
231         * Plugins/WebBasePluginPackage.m:
232         (-[WebBasePluginPackage finalize]):
233         Release the CFBundle here.
234
235 2006-04-25  Tim Omernick  <timo@apple.com>
236
237         Reviewed by Geoff.
238
239         <rdar://problem/4472037>
240         
241         Private extensions to the WebPlugin interface.  A plugin may implement these methods to receive loading callbacks
242         for its main resource.  Plug-ins that implement this SPI show better loading progress in the browser, can be saved
243         to disk, and are more efficient by avoiding making duplicate GET or POST requests for the plug-in's main resource.
244
245         I want to provide a solid API for plug-in networking, but time constraints require that I first provide this simple
246         SPI for internal clients.
247
248         * Plugins/WebPluginViewFactoryPrivate.h:
249         Added a new plugin argument, WebPlugInShouldLoadMainResourceKey.  If YES, the plugin is responsible
250         for loading its own content.  If NO, the plugin should wait for WebKit to send it the data via the
251         new request-sharing SPI.
252
253         * Plugins/WebPluginPrivate.h: Added.
254         Request-sharing SPI.  See comments in code.
255
256         * Plugins/WebPluginDocumentView.h:
257         Hang onto the plugin view as an ivar so we can call the new resource loading methods on it.
258         * Plugins/WebPluginDocumentView.m:
259         (-[WebPluginDocumentView dealloc]):
260         Release pluginView ivar.
261         (-[WebPluginDocumentView setDataSource:]):
262         Pass NO for WebPlugInShouldLoadMainResourceKey to indicate to the plugin that it should not 
263         load its own main resource -- the data will come from WebKit.  This is only necessary for plugin
264         documents.  By the time we create the view for a plugin document, we already have fetched some
265         of its main resource's data.  Embedded plugins do not have this issue because WebKit is not
266         involved in loading their content.
267         Call -webPlugInMainResourceDidReceivResponse: on the plugin if necessary.  This lets the plugin
268         know how much and what kind of data is going to be received.
269         (-[WebPluginDocumentView dataSourceUpdated:]):
270         If the plugin implements the new request-sharing SPI, don't cancel the in-progress request.
271         (-[WebPluginDocumentView receivedData:withDataSource:]):
272         Forward to the plugin via the new request-sharing SPI.
273         (-[WebPluginDocumentView receivedError:withDataSource:]):
274         ditto
275         (-[WebPluginDocumentView finishedLoadingWithDataSource:]):
276         ditto
277
278         * Plugins/WebPluginPackage.m:
279         Added WebPlugInShouldLoadMainResourceKey, tweaked some style a bit.
280
281         * WebCoreSupport/WebFrameBridge.m:
282         (-[WebFrameBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]):
283         Pass YES for WebPlugInShouldLoadMainResourceKey.  Embedded plugins must load their own data.
284         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
285         ditto
286         
287         * WebKit.xcodeproj/project.pbxproj:
288         Added WebPluginPrivate.h
289
290 2006-04-24  Maciej Stachowiak  <mjs@apple.com>
291
292         Reviewed by Geoff.
293         
294         <rdar://problem/4525364> REGRESSION (yesterday?): LOG() mechanism is broken
295         
296         - initialize WebKit's log channels
297
298         * Misc/WebKitLogging.h:
299         * Misc/WebKitLogging.m:
300         (initializeLogChannel):
301         (WebKitInitializeLoggingChannelsIfNecessary):
302         * WebView/WebPreferences.m:
303         (+[WebPreferences initialize]):
304         * WebView/WebView.m:
305         (-[WebView _commonInitializationWithFrameName:groupName:]):
306
307 2006-04-24  Maciej Stachowiak  <mjs@apple.com>
308
309         Build fix:
310         
311         - move some prematurely moved code back
312
313         * WebCoreSupport/WebFrameBridge.h:
314         * WebCoreSupport/WebFrameBridge.m:
315         (-[WebFrameBridge fini]):
316         (-[WebFrameBridge _preferences]):
317         (-[WebFrameBridge _retrieveKeyboardUIModeFromPreferences:]):
318         (-[WebFrameBridge keyboardUIMode]):
319
320 2006-04-24  Maciej Stachowiak  <mjs@apple.com>
321
322         Reviewed by Darin.
323
324         - move more code from WebFrameBridge to WebCoreFrameBridge
325
326         * WebCoreSupport/WebFrameBridge.h:
327         * WebCoreSupport/WebFrameBridge.m:
328         (-[WebFrameBridge fini]):
329         (-[WebFrameBridge expiresTimeForResponse:]):
330         (-[WebFrameBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]):
331         (-[WebFrameBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
332         (-[WebFrameBridge valueForKey:keys:values:]):
333         (-[WebFrameBridge _preferences]):
334
335 2006-04-24  Maciej Stachowiak  <mjs@apple.com>
336
337         Reviewed by Anders.
338         
339         - Remove use of _webSuperviewOfClass: and related
340         http://bugzilla.opendarwin.org/show_bug.cgi?id=8562
341         
342         I removed all use of these, now objects get at each other via
343         actual pointers, not using the view hierarchy. However, I left two
344         of the calls in because other clients rely on them as SPI (ugh).
345
346         * History/WebHistoryItem.m:
347         * Misc/WebNSViewExtras.h:
348         * Misc/WebNSViewExtras.m:
349         (-[NSView _web_superviewOfClass:]):
350         (-[NSView _web_parentWebFrameView]):
351         * Plugins/WebNetscapePluginDocumentView.m:
352         (-[WebNetscapePluginDocumentView layout]):
353         * Plugins/WebNetscapePluginEmbeddedView.h:
354         * Plugins/WebNetscapePluginEmbeddedView.m:
355         (-[WebNetscapePluginEmbeddedView setWebFrame:]):
356         (-[WebNetscapePluginEmbeddedView dataSource]):
357         * Plugins/WebNullPluginView.h:
358         * Plugins/WebNullPluginView.m:
359         (-[WebNullPluginView setWebFrame:]):
360         (-[WebNullPluginView viewDidMoveToWindow]):
361         * Plugins/WebPluginController.h:
362         * Plugins/WebPluginController.m:
363         (-[WebPluginController setDataSource:]):
364         (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
365         (-[WebPluginController webPlugInContainerShowStatus:]):
366         (-[WebPluginController webPlugInContainerSelectionColor]):
367         (-[WebPluginController webFrame]):
368         * Plugins/WebPluginDocumentView.h:
369         * Plugins/WebPluginDocumentView.m:
370         (-[WebPluginDocumentView setDataSource:]):
371         (-[WebPluginDocumentView layout]):
372         (-[WebPluginDocumentView currentWindow]):
373         (-[WebPluginDocumentView viewWillMoveToWindow:]):
374         * WebCoreSupport/WebFrameBridge.m:
375         (-[WebFrameBridge formControlIsBecomingFirstResponder:]):
376         (-[WebFrameBridge formControlIsResigningFirstResponder:]):
377         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
378         * WebCoreSupport/WebViewFactory.m:
379         (-[WebViewFactory bridgeForView:]):
380         * WebView/WebClipView.m:
381         (-[NSView initWithFrame:]):
382         * WebView/WebFrameView.m:
383         (-[WebFrameView _shouldDrawBorder]):
384         (-[WebFrameView webCoreBridge]):
385         * WebView/WebHTMLView.m:
386         (-[WebTextCompleteController dealloc]):
387         (-[WebHTMLView _dataSource]):
388         (-[WebHTMLView _bridge]):
389         (-[WebHTMLView _webView]):
390         (-[WebHTMLView _frameView]):
391         (-[WebHTMLView _web_firstResponderCausesFocusDisplay]):
392         (-[NSArray becomeFirstResponder]):
393         (-[NSArray setDataSource:]):
394         (-[NSArray pageUp:]):
395         (-[NSArray pageDown:]):
396         (-[NSArray pageUpAndModifySelection:]):
397         (-[NSArray pageDownAndModifySelection:]):
398         (-[WebHTMLView _frame]):
399         * WebView/WebHTMLViewInternal.h:
400         * WebView/WebImageView.h:
401         * WebView/WebImageView.m:
402         (-[WebImageView drawRect:]):
403         (-[WebImageView adjustFrameSize]):
404         (-[WebImageView setDataSource:]):
405         (-[WebImageView webView]):
406         (-[WebImageView writeImageToPasteboard:types:]):
407         (-[WebImageView copy:]):
408         (-[WebImageView elementAtPoint:]):
409         (-[WebImageView mouseDragged:]):
410         * WebView/WebPDFView.h:
411         * WebView/WebPDFView.m:
412         (-[WebPDFView _applyPDFDefaults]):
413         (-[WebPDFView _trackFirstResponder]):
414         (-[PDFPrefUpdatingProxy forwardInvocation:]):
415         * WebView/WebRenderNode.m:
416         (-[WebRenderNode initWithWebFrameView:]):
417         * WebView/WebTextView.h:
418         * WebView/WebTextView.m:
419         (-[WebTextView _textSizeMultiplierFromWebView]):
420         (-[WebTextView _preferences]):
421         (-[WebTextView setDataSource:]):
422         (-[WebTextView _webFrame]):
423         (-[WebTextView dragSelectionWithEvent:offset:slideBack:]):
424         (-[WebTextView menuForEvent:]):
425         (-[WebTextView resignFirstResponder]):
426         (-[WebTextView drawPageBorderWithSize:]):
427         (-[WebTextView knowsPageRange:]):
428         * WebView/WebView.m:
429         (-[WebView searchFor:direction:caseSensitive:wrap:]):
430         (containingFrameView):
431         (-[WebView _focusedFrame]):
432         (-[WebView _frameViewAtWindowPoint:]):
433
434 2006-04-23  Maciej Stachowiak  <mjs@apple.com>
435
436         Reviewed by Darin.
437         
438         - push WebFileButton and WebStringTruncator code down to WebCore
439         http://bugzilla.opendarwin.org/show_bug.cgi?id=8552
440
441         * Misc/WebStringTruncator.m:
442         (+[WebStringTruncator centerTruncateString:toWidth:]):
443         (+[WebStringTruncator centerTruncateString:toWidth:withFont:]):
444         (+[WebStringTruncator rightTruncateString:toWidth:withFont:]):
445         (+[WebStringTruncator widthOfString:font:]):
446         * WebCoreSupport/WebFileButton.h: Removed.
447         * WebCoreSupport/WebFileButton.m: Removed.
448         * WebCoreSupport/WebFrameBridge.h:
449         * WebCoreSupport/WebFrameBridge.m:
450         (-[WebFrameBridge runOpenPanelForFileButtonWithResultListener:]):
451         * WebCoreSupport/WebViewFactory.m:
452         (-[WebViewFactory fileButtonChooseFileLabel]):
453         (-[WebViewFactory fileButtonNoFileSelectedLabel]):
454         * WebKit.xcodeproj/project.pbxproj:
455
456 2006-04-23  Maciej Stachowiak  <mjs@apple.com>
457
458         Reviewed by Eric.
459         
460         - remove WebCookieAdapter, WebCore can just use Foundation directly.
461
462         * WebCoreSupport/WebCookieAdapter.h: Removed.
463         * WebCoreSupport/WebCookieAdapter.m: Removed.
464         * WebKit.xcodeproj/project.pbxproj:
465         * WebView/WebFrameView.m:
466         (-[WebFrameView initWithFrame:]):
467
468 2006-04-23  Maciej Stachowiak  <mjs@apple.com>
469
470         Reviewed by Adele.
471         
472         - prune WebView SPI of unused calls
473         
474         Specifically I moved methods that have no callers outside WebKit
475         to WebViewInternal.h or removed them entirely.
476
477         * DefaultDelegates/WebDefaultContextMenuDelegate.m:
478         * Plugins/WebBaseNetscapePluginView.m:
479         * Plugins/WebNetscapePluginDocumentView.m:
480         * Plugins/WebNetscapePluginStream.m:
481         * Plugins/WebNullPluginView.m:
482         * Plugins/WebPluginContainerCheck.m:
483         * Plugins/WebPluginController.m:
484         * WebCoreSupport/WebFrameBridge.m:
485         * WebCoreSupport/WebPageBridge.m:
486         * WebCoreSupport/WebSubresourceLoader.m:
487         * WebView/WebDataSource.m:
488         * WebView/WebHTMLView.m:
489         * WebView/WebImageView.m:
490         * WebView/WebLoader.m:
491         * WebView/WebMainResourceLoader.m:
492         * WebView/WebPDFView.m:
493         * WebView/WebScriptDebugDelegate.m:
494         * WebView/WebView.m:
495         (-[WebView _downloadURL:]):
496         * WebView/WebViewInternal.h:
497         * WebView/WebViewPrivate.h:
498
499 2006-04-22  Maciej Stachowiak  <mjs@apple.com>
500
501         Reviewed by Eric.
502
503         - remove WebKit copy of assertions code, use the assertions
504         stuff from JavaScriptCore instead.
505
506         * Carbon/HIViewAdapter.m:
507         * DOM/WebDOMOperations.m:
508         * DefaultDelegates/WebDefaultContextMenuDelegate.m:
509         * DefaultDelegates/WebDefaultPolicyDelegate.m:
510         (-[WebDefaultPolicyDelegate webView:unableToImplementPolicyWithError:frame:]):
511         * History/WebBackForwardList.m:
512         * History/WebHistory.m:
513         (-[WebHistoryPrivate _loadHistoryGuts:URL:error:]):
514         (-[WebHistoryPrivate _saveHistoryGuts:URL:error:]):
515         * History/WebHistoryItem.m:
516         * Misc/WebAssertions.h: Removed.
517         * Misc/WebAssertions.m: Removed.
518         * Misc/WebDatabase.m:
519         * Misc/WebDownload.m:
520         * Misc/WebFileDatabase.m:
521         (SetThreadPriority):
522         * Misc/WebIconDatabase.m:
523         (-[NSMutableDictionary iconForURL:withSize:cache:]):
524         (-[NSMutableDictionary releaseIconForURL:]):
525         (-[NSMutableDictionary delayDatabaseCleanup]):
526         (-[NSMutableDictionary allowDatabaseCleanup]):
527         (-[WebIconDatabase _loadIconDictionaries]):
528         (-[WebIconDatabase _updateFileDatabase]):
529         (-[WebIconDatabase _iconsBySplittingRepresentationsOfIcon:]):
530         * Misc/WebIconLoader.m:
531         * Misc/WebKitLogging.h:
532         * Misc/WebKitLogging.m:
533         * Misc/WebKitSystemBits.m:
534         (initCapabilities):
535         * Misc/WebLRUFileList.m:
536         (WebLRUFileListRemoveOldestFileFromList):
537         (WebLRUFileListGetFileSize):
538         * Misc/WebLocalizableStrings.m:
539         * Misc/WebNSCalendarDateExtras.m:
540         * Misc/WebNSDataExtras.m:
541         * Misc/WebNSDictionaryExtras.m:
542         * Misc/WebNSFileManagerExtras.m:
543         * Misc/WebNSPasteboardExtras.m:
544         * Misc/WebNSURLExtras.m:
545         (hexDigit):
546         (hexDigitValue):
547         (allCharactersInIDNScriptWhiteList):
548         * Misc/WebNSURLRequestExtras.m:
549         * Misc/WebNSUserDefaultsExtras.m:
550         * Misc/WebStringTruncator.m:
551         * Panels/WebAuthenticationPanel.m:
552         (-[WebAuthenticationPanel loadNib]):
553         * Panels/WebPanelAuthenticationHandler.m:
554         * Plugins/WebBaseNetscapePluginStream.m:
555         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]):
556         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
557         * Plugins/WebBaseNetscapePluginView.m:
558         (TSMEventHandler):
559         (-[WebBaseNetscapePluginView start]):
560         (-[WebBaseNetscapePluginView status:]):
561         (-[WebBaseNetscapePluginView _printedPluginBitmap]):
562         * Plugins/WebBasePluginPackage.m:
563         * Plugins/WebNetscapePluginDocumentView.m:
564         * Plugins/WebNetscapePluginPackage.m:
565         (-[WebNetscapePluginPackage load]):
566         * Plugins/WebNetscapePluginRepresentation.m:
567         * Plugins/WebPluginContainerCheck.m:
568         * Plugins/WebPluginController.m:
569         (-[WebPluginController addPlugin:]):
570         (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
571         (-[WebPluginController webPlugInContainerShowStatus:]):
572         * Plugins/WebPluginDatabase.m:
573         * Plugins/WebPluginDocumentView.m:
574         * WebCoreSupport/WebCookieAdapter.m:
575         * WebCoreSupport/WebFileButton.m:
576         * WebCoreSupport/WebFrameBridge.m:
577         (-[WebFrameBridge runModal]):
578         * WebCoreSupport/WebImageData.m:
579         (-[WebImageData _checkSolidColor:]):
580         (-[WebImageData tileInRect:fromPoint:context:]):
581         (-[WebImageData scaleAndTileInRect:fromRect:withHorizontalTileRule:withVerticalTileRule:context:]):
582         * WebCoreSupport/WebImageDecoder.m:
583         * WebCoreSupport/WebImageRenderer.m:
584         (-[WebImageRenderer TIFFRepresentation]):
585         * WebCoreSupport/WebImageRendererFactory.m:
586         * WebCoreSupport/WebJavaScriptTextInputPanel.m:
587         * WebCoreSupport/WebKeyGenerator.m:
588         * WebCoreSupport/WebPageBridge.m:
589         * WebCoreSupport/WebSubresourceLoader.m:
590         * WebCoreSupport/WebTextRenderer.m:
591         (widthForGlyph):
592         (-[WebTextRenderer initWithFont:]):
593         (drawGlyphs):
594         (initializeATSUStyle):
595         (createATSULayoutParameters):
596         (getTextBounds):
597         (ATSU_draw):
598         * WebCoreSupport/WebTextRendererFactory.m:
599         * WebCoreSupport/WebViewFactory.m:
600         * WebKit.exp:
601         * WebKit.xcodeproj/project.pbxproj:
602         * WebKitPrefix.h:
603         * WebView/WebArchiver.m:
604         (+[WebArchiver _archiveWithMarkupString:fromFrame:nodes:]):
605         * WebView/WebClipView.m:
606         * WebView/WebDataProtocol.m:
607         * WebView/WebDataSource.m:
608         (-[WebDataSource _startLoading]):
609         * WebView/WebFormDataStream.m:
610         (formEventCallback):
611         (webSetHTTPBody):
612         * WebView/WebFrame.m:
613         (-[WebFrame _transitionToCommitted:]):
614         * WebView/WebFrameView.m:
615         * WebView/WebHTMLRepresentation.m:
616         * WebView/WebHTMLView.m:
617         (-[WebHTMLView _lookUpInDictionaryFromMenu:]):
618         (-[NSArray drawSingleRect:]):
619         (-[NSArray namesOfPromisedFilesDroppedAtDestination:]):
620         (-[NSArray _scaleFactorForPrintOperation:]):
621         (-[NSArray deleteBackwardByDecomposingPreviousCharacter:]):
622         (-[NSArray checkSpelling:]):
623         (-[NSArray showGuessPanel:]):
624         (-[NSArray _changeSpellingToWord:]):
625         (-[NSArray ignoreSpelling:]):
626         (-[NSArray performFindPanelAction:]):
627         (-[WebTextCompleteController doCompletion]):
628         * WebView/WebImageView.m:
629         * WebView/WebLoader.m:
630         (-[NSURLProtocol connection:willCacheResponse:]):
631         * WebView/WebPDFRepresentation.m:
632         (+[WebPDFRepresentation PDFDocumentClass]):
633         * WebView/WebPDFView.m:
634         (+[WebPDFView PDFKitBundle]):
635         (+[WebPDFView PDFViewClass]):
636         (-[WebPDFView _menuItemsFromPDFKitForEvent:]):
637         * WebView/WebTextRepresentation.m:
638         * WebView/WebTextView.m:
639         * WebView/WebUnarchivingState.m:
640         * WebView/WebView.m:
641
642 2006-04-22  Timothy Hatcher  <timothy@apple.com>
643
644         Reviewed by Eric.
645
646         http://bugzilla.opendarwin.org/show_bug.cgi?id=8514
647         Bug 8514: Web Inspector hides when the app is in the background
648
649         Makes the inspector not hide in the background. Since the inspector is a floating panel
650         we need to call setFloatingPanel:NO when the app is switching into the background. Then
651         call setFloatingPanel:YES when the app is activated again. Without this the inspector
652         would float above all applications.
653
654         * WebInspector/WebInspector.m:
655         (-[NSWindow window]): setHidesOnDeactivate:NO
656         (-[NSWindow windowWillClose:]): de-regiser appliction active notifications
657         (-[NSWindow showWindow:]): register for appliction active notifications
658         (-[WebInspector _applicationWillResignActive]): setFloatingPanel:NO
659         (-[WebInspector _applicationDidBecomeActive]): setFloatingPanel:YES
660
661 2006-04-21  Adele Peterson  <adele@apple.com>
662
663         Reviewed by Darin.
664
665         - Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=8181
666         REGRESSION: After tabbing in page's field, attempting to tab from Google toolbar search to page fails on first try
667
668         Test: manual-tests/tabbing-input-google.html
669
670         * WebView/WebHTMLView.m: (-[NSArray resignFirstResponder]):
671         When resigning first responder, reset willBecomeFirstResponderForNodeFocus, so when the WebHTMLView gets focus again
672         it knows it can start moving through the tab cycle.
673
674 2006-04-20  Tim Omernick  <timo@apple.com>
675
676         Reviewed by John Sullivan.
677
678         <rdar://problem/4476875> Support printing for embedded Netscape plugins
679
680         NOTE: This only works with the Flash plugin right now.  It appears that the other
681         major plugins either have awful printing support, or no printing support.  If someone
682         can find an example of any other embedded Netscape plugin printing in any browser on
683         the Mac, I will be happy to eat my own words!
684
685         * Plugins/WebBaseNetscapePluginView.m:
686         (-[WebBaseNetscapePluginView drawRect:]):
687         When printing, get the printed bitmap via -_printedPluginBitmap, and draw it into the
688         plugin view.
689         (-[WebBaseNetscapePluginView _printedPluginBitmap]):
690         Call NPP_Print on the plugin to render it into a GWorld.  This GWorld has the same
691         underlying buffer as an NSBitmapImageRep, which is returned to the caller.
692
693 2006-04-20 Mitz Pettel  <opendarwin.org@mitzpettel.com>
694
695         Reviewed by Darin.
696
697         WebKit part of:
698         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8276
699           REGRESSION (NativeTextField): Pasting a Finder item into a text field results in
700             a file: URL being pasted instead of just the file name
701         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8283
702           REGRESSION: File's path doesn't appear after dragging file into input field
703
704         * WebView/WebHTMLView.m:
705         (-[WebHTMLView _plainTextFromPasteboard:]): Added method that tries to copy AppKit
706         text fields' logic for extracting plain text from the pasteboard.
707         (-[WebHTMLView _pasteAsPlainTextWithPasteboard:]): Added helper method.
708         (-[WebHTMLView _shouldInsertText:replacingDOMRange:givenAction:]):
709         (-[WebHTMLView _shouldReplaceSelectionWithText:givenAction:]):
710         (-[WebHTMLView readSelectionFromPasteboard:]): Paste as plain text if
711         rich text is not allowed.
712         (-[WebHTMLView validateUserInterfaceItem:]): Changed to not allow pasteAsRichText:
713         if the paste is not going to be handled by the DOM and the selection
714         does not allow pasting rich text.
715         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Paste as plain text if
716         rich text is not allowed.
717         (-[WebHTMLView paste:]): Ditto.
718         (-[WebHTMLView pasteAsPlainText:]):
719
720 2006-04-20  Darin Adler  <darin@apple.com>
721
722         Reviewed by Adele.
723
724         - WebKit part of http://bugzilla.opendarwin.org/show_bug.cgi?id=8505
725           eliminate WebCoreGraphics bridge, demonstrate new SystemInterface technique
726
727         * WebCoreSupport/WebGraphicsBridge.h: Removed.
728         * WebCoreSupport/WebGraphicsBridge.m: Removed.
729         * WebCoreSupport/WebSystemInterface.h: Added.
730         * WebCoreSupport/WebSystemInterface.m: Added.
731
732         * WebKit.xcodeproj/project.pbxproj: Updated for removed and added files.
733
734         * WebCoreSupport/WebImageData.m: Removed unneeded include of WebGraphicsBridge.h.
735         * WebCoreSupport/WebImageRenderer.m: Ditto.
736         * WebCoreSupport/WebTextRenderer.m: Ditto.
737
738         * WebView/WebFrameView.m: (-[WebFrameView initWithFrame:]): Guarded all the one-time
739         initialization inside a boolean, just in case some things take a little time. Added
740         a call to InitWebCoreSystemInterface to the one-time initialization here. Later, we
741         will need to add it in some other places if we call code that requires the use of
742         WebCoreSystemInterface functions from anywhere that can be invoked before creations
743         of the first WebFrameView, but for now there is no need.
744
745 2006-04-19  James G. Speth  <speth@end.com>
746
747         Reviewed by Timothy.
748
749         http://bugzilla.opendarwin.org/show_bug.cgi?id=8442
750         Bug 8442: improvements to Cocoa bindings support in WebView - code simplification
751
752         Removes the WebController class added earlier; changes NSTreeController and 
753         WebView to together without it. Now you can just bind the contentObject binding
754         of the tree controller directly to the mainFrameDocument key of the WebView.
755
756         * WebCoreSupport/WebFrameBridge.m:
757         (-[WebFrameBridge windowObjectCleared]):
758         * WebView/WebDataSource.m:
759         (-[WebDataSource _setTitle:]):
760         * WebView/WebFrame.m:
761         (-[WebFrame _closeOldDataSources]):
762         * WebView/WebView.m:
763         (-[WebView _progressStarted:]):
764         (-[WebView _finalProgressComplete]):
765         (-[WebView _commonInitializationWithFrameName:groupName:]):
766         (-[WebView setMainFrameDocumentReady:]):
767         (-[WebView mainFrameDocument]):
768         * WebView/WebViewPrivate.h:
769
770 2006-04-19  James G. Speth  <speth@end.com>
771
772         Reviewed by Timothy.
773
774         http://bugzilla.opendarwin.org/show_bug.cgi?id=6635
775         Bug 6635: Crash selecting inspector nodes for tabs that aren't foremost
776
777         Stop observing window will close notifications before we tell the highlight window to close,
778         this prevents the crash. Also prevent drawing highlights for hidden tabs.
779
780         * WebInspector/WebInspector.m:
781         (-[WebInspector _highlightNode:]):
782         * WebInspector/WebNodeHighlight.m:
783         (-[WebNodeHighlight expire]):
784
785 2006-04-19  James G. Speth  <speth@end.com>
786
787         Reviewed by Timothy.
788
789         http://bugzilla.opendarwin.org/show_bug.cgi?id=6637
790         Bug 6637: selecting node in Inspector after closing window crashes Safari
791
792         When the window the Web Inspector was inspecting is closed, the inspector goes into its
793         no-selection state. Choosing to inspect another element activates it again. The inspector
794         will also follow the WebView if the URL changes and select the root element on the new page.
795
796         * WebInspector/WebInspector.m:
797         (-[NSWindow setWebFrame:]):
798         (-[NSWindow setRootDOMNode:]):
799         (-[WebInspector _revealAndSelectNodeInTree:]):
800         (-[WebInspector _update]):
801         (-[WebInspector _updateRoot]):
802         (-[WebInspector inspectedWebViewProgressFinished:]):
803         (-[WebInspector inspectedWindowWillClose:]):
804         (-[WebInspector webView:didFinishLoadForFrame:]):
805         * WebInspector/WebInspectorPanel.m:
806         (-[WebInspectorPanel canBecomeMainWindow]):
807
808 2006-04-18  Darin Adler  <darin@apple.com>
809
810         Reviewed by Beth.
811
812         * WebInspector/webInspector/inspector.css: Add "-webkit-" prefixes to the border
813         radius properties to make the corners rounded again.
814
815 2006-04-16  Mitz Pettel  <opendarwin.org@mitzpettel.com>
816
817         Reviewed by Darin.
818
819         - WebKit part of fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=8324
820           REGRESSION: textarea :focus not applied immediately
821
822         * WebCoreSupport/WebFrameBridge.m:
823         (-[WebFrameBridge formControlIsBecomingFirstResponder:]): Added. Calls the ancestor
824         WebHTMLView's _formControlIsBecomingFirstResponder:
825         * WebView/WebHTMLView.m:
826         (-[WebHTMLView _updateFocusState:]): If a descendant is becoming first responder,
827         enable focused appearance.
828         (-[WebHTMLView _formControlIsBecomingFirstResponder:]): Added. Calls _updateFocusState,
829         causing the frame to display with focus attributes.
830         * WebView/WebHTMLViewInternal.h:
831
832 2006-04-14  James G. Speth  <speth@end.com>
833
834         Reviewed by Timothy.
835
836         Bug 8389: support for Cocoa bindings - binding an NSTreeController to the WebView's DOM
837         http://bugzilla.opendarwin.org/show_bug.cgi?id=8389
838
839         Added a controller class, WebController, that is a subclass of
840         NSTreeController that has a new outlet/binding for the WebView.
841
842         * WebCoreSupport/WebFrameBridge.m:
843         (-[WebFrameBridge windowObjectCleared]): notify bindings about the document change
844         * WebView/WebView.m:
845         (-[WebView _progressStarted:]): notify bindings about the document change
846         (-[WebView _finalProgressComplete]): notify bindings about the document change
847         (-[WebView _declaredKeys]): added a key for the main frame document
848         (-[WebController init]):
849         (-[WebController exposedBindings]):
850         (-[WebController valueClassForBinding:]):
851         (-[WebController setContent:]):
852         (-[WebController webView]):
853         (-[WebController setWebView:]):
854         (-[WebView mainFrameDocument]): get the main frame's DOMDocument
855         * WebView/WebViewPrivate.h: Adds mainFrameDocument to pending public.
856
857 2006-04-12  David Harrison  <harrison@apple.com>
858
859         Reviewed by Darin.
860         
861         <rdar://problem/4386640> AX: AXPreviousSentenceStartTextMarkerForTextMarker does not respect paragraph boundary
862         <rdar://problem/4414575> AX: Dictionary popup cannot find some words on Dictionary.app
863         
864         (see related changes in WebCore)
865         
866         Tests added:
867         * editing/selection/extend-by-sentence-001.html: Added.
868         * fast/dom/inner-text-001.html: Added.
869
870         * WebView/WebHTMLView.m:
871         (-[NSArray validateUserInterfaceItem:]):
872         (-[NSArray moveToBeginningOfSentence:]):
873         (-[NSArray moveToBeginningOfSentenceAndModifySelection:]):
874         (-[NSArray moveToEndOfSentence:]):
875         (-[NSArray moveToEndOfSentenceAndModifySelection:]):
876         (-[NSArray selectSentence:]):
877         * WebView/WebView.m:
878         * WebView/WebViewPrivate.h:
879         Add sentence navigation and selection.
880
881 2006-04-12  Tim Omernick  <timo@apple.com>
882
883         Reviewed by Darin.
884
885         Part of <rdar://problem/4482530>
886
887         * WebView/WebView.m:
888         (-[WebView _focusedFrame]):
889         Fixed up the logic here to take into account immediate subviews of WebView, which are not actually in a WebFrameView
890         (they are peers to the main frame's WebFrameView).
891
892 2006-04-10  John Sullivan  <sullivan@apple.com>
893
894         Reviewed by Tim Omernick.
895         
896         - fixed <rdar://problem/4139799> Seed: Safari: Private Browsing leaves traces in Icon Cache
897         
898         * Misc/WebIconDatabasePrivate.h:
899         new ivars: pageURLsBoundDuringPrivateBrowsing, iconURLsBoundDuringPrivateBrowsing, and privateBrowsingEnabled
900
901         * Misc/WebIconDatabase.m:
902         (-[NSMutableDictionary init]):
903         initialize new ivars, and listen for notifications that WebPreferences changed so we can react to changes
904         to private browsing.
905         (-[NSMutableDictionary iconForURL:withSize:cache:]):
906         Don't remove icon URL from extraRetain dictionary; that's now done in _forgetIconForIconURLString. (I left a
907         comment here earlier about why I was worried about this change, but I convinced myself that it's fine.)
908         (-[WebIconDatabase removeAllIcons]):
909         Removed no-longer-true (and never very clear) comment, and braces. Also remove all objects from the two
910         private-browsing-related dictionaries.
911         (-[WebIconDatabase _setIcon:forIconURL:]):
912         remember icon URL if private browsing is enabled
913         (-[WebIconDatabase _setHaveNoIconForIconURL:]):
914         remember icon URL if private browsing is enabled
915         (-[WebIconDatabase _setIconURL:forURL:]):
916         added an assert that helped me out at one point
917         (-[WebIconDatabase _clearDictionaries]):
918         clear the two new dictionaries too
919         (-[WebIconDatabase _loadIconDictionaries]):
920         made an existing ERROR not fire in the expected case where there are no icons at all on disk
921         (-[WebIconDatabase _updateFileDatabase]):
922         when saving the pageURLToIconURL dictionary to disk, first remove any values that were created during
923         private browsing
924         (-[WebIconDatabase _retainIconForIconURLString:]):
925         skip the code that deals with saving changes to disk if private browsing is enabled
926         (-[WebIconDatabase _forgetIconForIconURLString:]):
927         Remove the icon URL from extraRetain dictionary here. We're forgetting everything about this icon URL
928         so we should forget its former extraRetain count too.
929         (-[WebIconDatabase _resetCachedWebPreferences:]):
930         Cache the new value of private browsing. If it has now been turned off, forget everything we learned
931         while it was on. This causes (e.g.) icons for bookmarks or pre-existing history items to be forgotten
932         if the icon was only learned during private browsing.
933
934         * History/WebHistoryItem.m:
935         removed an unnecessary #import I happened to notice
936         
937 2006-04-10  David Hyatt  <hyatt@apple.com>
938
939         Make the broken CG focus ring painting work when WebCore sets a clip
940         (in addition to respecting the dirty rect clip).
941
942         Reviewed by darin
943
944         * WebCoreSupport/WebGraphicsBridge.m:
945         (-[WebGraphicsBridge drawFocusRingWithPath:radius:color:clipRect:]):
946
947 2006-04-10  Mitz Pettel  <opendarwin.org@mitzpettel.com>
948
949         Reviewed by Darin.
950
951         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8100
952           REGRESSION (NativeTextField): Right-aligned and RTL text jitters in new text fields
953
954         * WebCoreSupport/WebTextRenderer.m:
955         (overrideLayoutOperation): For RTL runs, apply the word-rounding on the left.
956         (CG_floatWidthForRun): For RTL runs, apply the last character's rounding
957         on the left by adjusting the start position.
958         (initializeWidthIterator): Added finalRoundingWidth field to WidthIterator.
959         (advanceWidthIterator): For RTL runs, apply rounding on the left of the character,
960         by increasing the width of the next character (which is the character to the left). For
961         the last character, keep the rounding width in the iterator's finalRoundingWidth, to be used by
962         CG_floatWidthForRun().
963
964 2006-04-08  John Sullivan  <sullivan@apple.com>
965
966         Reviewed by Adele Peterson.
967
968         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=8260
969         REGRESSION: Assertion failure: ![_private->iconsToSaveWithURLs containsObject:iconURLString] 
970         in WebIconDatabase.m:695-[WebIconDatabase(WebInternal) _retainIconForIconURLString:]
971
972         * Misc/WebIconDatabase.m:
973         (-[WebIconDatabase _retainIconForIconURLString:]):
974         This new assertion was one block too high; moved it in.
975
976 2006-04-07  David Hyatt  <hyatt@apple.com>
977
978         A fix that makes coalesced updates work much better (and makes our
979         single animated GIF timer work better).  The new rect painting algorithm
980         for WebHTMLView will use the single unioned rect if the # of rects exceeds
981         a threshold (10 is my initial cut), or if the union has enough "wasted"
982         additional pixels (conservatively set at 75%).
983
984         Reviewed by darin
985
986         * WebView/WebHTMLView.m:
987         (-[NSArray drawSingleRect:]):
988         (-[NSArray drawRect:]):
989
990 2006-04-07  Maciej Stachowiak  <mjs@apple.com>
991
992         Reviewed by Darin.
993         
994         - simplify archive loading
995
996         * WebView/WebDataSource.m:
997         (-[WebDataSource representation]): fix whitespace
998         * WebView/WebHTMLRepresentation.m:
999         (-[WebHTMLRepresentation loadArchive]): Use WebFrame's loadArchive: instead
1000         of trying to do a manual load here.
1001         (-[WebHTMLRepresentation documentSource]): No more special case for WebArchive.
1002
1003 2006-04-07  John Sullivan  <sullivan@apple.com>
1004
1005         Reviewed by Tim Omernick.
1006         
1007         - fixed <rdar://problem/4507054> If an icon file is removed from disk behind Safari's back, 
1008         Safari will not try to refetch it
1009         
1010         In addition to letting WebIconDatabase recover from disk/memory mismatches as per 4507054, I also found
1011         a bug in the way icons are remembered that could account for some of the other cases where
1012         site icons didn't appear (and you'd get an ERROR on debug builds about WebIconDatabase saying it
1013         had some icon when it really doesn't).
1014
1015         * Misc/WebIconDatabase.m:
1016         (-[WebIconDatabase iconForURL:withSize:cache:]):
1017         When the icon file for a previously-saved site icon isn't found, forget about the darn icon URL thoroughly
1018         so that this situation is self-correcting. Formerly, once you got into this state WebKit would never find
1019         the icon again (short of removing the entire icon database cleanly). Note that this does *not* change
1020         the behavior of sites that didn't have a site icon when WebKit checked -- these will continue to not
1021         return a site icon indefinitely (that's a separate, possibly performance-sensitive issue).
1022         (-[WebIconDatabase _retainIconForIconURLString:]):
1023         This code did the wrong thing in the case where an icon was in the process of being forgotten about. In
1024         that case, the icon would still be in _private->iconsOnDiskWithURLs, so we wouldn't try to save it here,
1025         so the new icon wouldn't stick.
1026
1027 2006-04-07  David Hyatt  <hyatt@apple.com>
1028
1029         Re-enable coalesced updates.  Our move to a single timer has essentially
1030         implemented coalescing of updates anyway, so the regression has already
1031         come back.  Since we have to deal with that now anyway, there's no reason
1032         to visually tear also. :)
1033
1034         Reviewed by darin
1035
1036         * ChangeLog:
1037         * WebView/WebView.m:
1038         (-[WebView _commonInitializationWithFrameName:groupName:]):
1039
1040 2006-04-05  Darin Adler  <darin@apple.com>
1041
1042         - fixed a storage leak from that last check-in
1043
1044         * WebView/WebUnarchivingState.m: (-[WebUnarchivingState dealloc]):
1045         Release the two dictionaries.
1046
1047 2006-04-05  Maciej Stachowiak  <mjs@apple.com>
1048
1049         Reviewed by Eric.
1050         
1051         - start on factoring WebArchive unpacking more into a separate class.
1052         http://bugzilla.opendarwin.org/show_bug.cgi?id=8208
1053         
1054         * WebKit.xcodeproj/project.pbxproj:
1055         * WebView/WebDataSource.m:
1056         (-[WebDataSourcePrivate dealloc]):
1057         (-[WebDataSource _addToUnarchiveState:]):
1058         (-[WebDataSource _popSubframeArchiveWithName:]):
1059         (-[WebDataSource _documentFragmentWithArchive:]):
1060         (-[WebDataSource _setupForReplaceByMIMEType:]):
1061         (-[WebDataSource subresourceForURL:]):
1062         * WebView/WebDataSourcePrivate.h:
1063         * WebView/WebFrame.m:
1064         (-[WebFrame _loadRequest:archive:]):
1065         (-[WebFrame loadRequest:]):
1066         (-[WebFrame loadArchive:]):
1067         * WebView/WebFramePrivate.h:
1068         * WebView/WebHTMLRepresentation.m:
1069         (-[WebHTMLRepresentation loadArchive]):
1070         * WebView/WebUnarchivingState.h: Added.
1071         * WebView/WebUnarchivingState.m: Added.
1072         (-[WebUnarchivingState init]):
1073         (-[WebUnarchivingState addArchive:]):
1074         (-[WebUnarchivingState archivedResourceForURL:]):
1075         (-[WebUnarchivingState popSubframeArchiveWithFrameName:]):
1076
1077 2006-04-04  Timothy Hatcher  <timothy@apple.com>
1078
1079         Reviewed by Darin.
1080
1081         The Debug and Release frameworks are now built with install paths relative to the build products directory.
1082         This removes the need for other projects to build with -framework WebCore and -framework JavaScriptCore. 
1083
1084         * WebKit.xcodeproj/project.pbxproj:
1085
1086 2006-04-04  John Sullivan  <sullivan@apple.com>
1087
1088         Reviewed by Adele Peterson.
1089
1090         - WebKit part of <rdar://problem/4498418> "Autosaved" searchterms are saved during private browsing
1091
1092         * WebView/WebView.m:
1093         (-[WebView _updateWebCoreSettingsFromPreferences:]):
1094         Pass private browsing setting down to WebCore.
1095
1096 2006-04-03  John Sullivan  <sullivan@apple.com>
1097
1098         Reviewed by Tim Hatcher.
1099         
1100         - re-fixed <rdar://problem/4481198> REGRESSION (TOT): search results list in bookmarks view 
1101         remains when search text is deleted
1102
1103         * WebView/WebView.m:
1104         (-[WebView searchFor:direction:caseSensitive:wrap:]):
1105         I fixed this recently, but then broke it again by adding an early bail-out to this method. So
1106         now I'm removing the early bail-out.
1107
1108 2006-04-02  Trey Matteson  <trey@usa.net>
1109
1110         Reviewed by Maciej.
1111
1112         fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8121
1113         REGRESSION: 404s are not displayed
1114
1115         * WebView/WebMainResourceLoader.m:
1116         (-[WebMainResourceLoader continueAfterContentPolicy:response:]):
1117         Only cancel failed loads for object elements, not for frames or a whole page.
1118
1119 2006-04-02  Maciej Stachowiak  <mjs@apple.com>
1120
1121         Reviewed by Hyatt.
1122
1123         - fixed <rdar://problem/4198619> REGRESSION: tabbing through links fails after hitting text field w/ sys's "tab to all controls" off
1124         - fixed <rdar://problem/4463760> REGRESSION: Can't tab from old text field (like password fields) to new text field (6811)
1125         (http://bugzilla.opendarwin.org/show_bug.cgi?id=6811)
1126         - fixed tab and shift tab don't select the right things
1127         http://bugzilla.opendarwin.org/show_bug.cgi?id=5685
1128
1129         * WebCoreSupport/WebFrameBridge.m:
1130         (-[WebFrameBridge willMakeFirstResponderForNodeFocus]): New method
1131         - let WebHTMLView know that the next time it becomes first
1132         responder, it's to change focus within the page and the right node
1133         has already been set, so it should not move focus forward or
1134         backward inside it.
1135         * WebView/WebHTMLView.m:
1136         (-[NSArray needsPanelToBecomeKey]): Override to return YES, oddly enough this
1137         is the right way to tell AppKit that you should be in the tab cycle loop.
1138         (-[NSArray becomeFirstResponder]): Don't move forward or back in tab cycle
1139         when this becomeFirstResponder is for tabbing from a control in the page.
1140         (-[WebHTMLView _willMakeFirstResponderForNodeFocus]): Note that the next
1141         time this view becomes first responder, it will be for in-page focus 
1142         navigation.
1143         * WebView/WebHTMLViewInternal.h:
1144
1145 2006-04-01  Darin Adler  <darin@apple.com>
1146
1147         Reviewed by Maciej.
1148
1149         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8105
1150           REGRESSION (NativeTextField): Option-delete deletes one space before the deleted word
1151
1152         Test: fast/forms/input-text-option-delete.html
1153
1154         * WebView/WebHTMLView.m:
1155         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Pass NO for
1156         smartDeleteOK. Smart deletion only applies to deleting a word at a time, and none of
1157         the callers of this function that delete a word at a time want smart deletion.
1158         (-[WebHTMLView deleteToEndOfLine:]): Fixed tiny formatting glitch.
1159
1160 2006-03-31  Timothy Hatcher  <timothy@apple.com>
1161
1162         Reviewed by Darin.
1163
1164         We need to set reachedTerminalState to YES before we release
1165         the resources to prevent a double dealloc of WebView
1166
1167         Fixes <rdar://problem/4372628> crash deallocating a WebView in -[WebFrame stopLoading]
1168
1169         * WebView/WebLoader.m:
1170         (-[NSURLProtocol releaseResources]): set reachedTerminalState earlier
1171
1172 2006-03-31  John Sullivan  <sullivan@apple.com>
1173
1174         Reviewed by Tim Omernick.
1175         
1176         Some cleanup in the WebIconDatabase code in a fruitless search for the cause
1177         of the mysterious -[WebFileDatabase performSetObject:forKey] crash
1178
1179         * Misc/WebIconDatabase.m:
1180         (-[WebIconDatabase _createFileDatabase]):
1181         removed obsolete comment
1182         (-[WebIconDatabase _loadIconDictionaries]):
1183         Added ERRORs for unexpected early returns. Made dictionaries be autoreleased until
1184         the end of the method where they are retained, so that the early returns don't leak;
1185         added ASSERTs that the _private->dictionary values aren't being leaked.
1186         (-[WebIconDatabase _updateFileDatabase]):
1187         Added an ERROR for an unexpected early return, and made a trivial style fix.
1188
1189 2006-03-31  Trey Matteson  <trey@usa.net>
1190
1191         Reviewed by Maciej, landed by ap.
1192
1193         http://bugzilla.opendarwin.org/show_bug.cgi?id=7739
1194         REGRESSION: Assertion failure loading acid2 test in -[WebCoreFrameBridge installInFrame:]
1195
1196         Tests: http/tests/misc/acid2.html, http/tests/misc/acid2-pixel.html
1197
1198         The gist of this change is that we must cancel the load from the Webkit side when we
1199         realize we're switching to the fallback content.  This is somewhat a temp workaround
1200         since control of loading will be moving to WebCore.
1201
1202         * WebView/WebMainResourceLoader.m:
1203         (-[WebMainResourceLoader continueAfterContentPolicy:response:]):
1204
1205 2006-03-30  Justin Garcia  <justin.garcia@apple.com>
1206
1207         Reviewed by darin
1208         
1209         http://bugzilla.opendarwin.org/show_bug.cgi?id=6989
1210         REGRESSION: Plain-text mode needed for contenteditable area used in new text field
1211
1212         * WebView/WebHTMLView.m:
1213         (-[WebHTMLView _canEditRichly]): Added.
1214         (-[WebHTMLView _canIncreaseSelectionListLevel]): Use _canEditRichly
1215         (-[WebHTMLView _canDecreaseSelectionListLevel]): Ditto.
1216         (-[WebHTMLView _increaseSelectionListLevel]):
1217         (-[WebHTMLView _decreaseSelectionListLevel]):
1218         (-[NSArray validateUserInterfaceItem:]): 
1219         Split rich text editing actions off from ones that can be applied anywhere.
1220         (-[NSArray _applyStyleToSelection:withUndoAction:]):
1221         (-[NSArray _applyParagraphStyleToSelection:withUndoAction:]):
1222         (-[NSArray _alignSelectionUsingCSSValue:withUndoAction:]):
1223         * WebView/WebHTMLViewPrivate.h:
1224
1225 2006-03-29  Tim Omernick  <timo@apple.com>
1226
1227         Reviewed by John Sullivan.
1228
1229         <rdar://problem/4495316> REGRESSION (420+): After page has loaded, spinning progress indicator is displayed on
1230         tab at versiontracker.com
1231
1232         * WebView/WebFrame.m:
1233         (-[WebFrame _receivedMainResourceError:]):
1234         Call -_clientRedirectCancelledOrFinished: here so that the frame load delegate is notified that the redirect's
1235         status has changed, if there was a redirect.  The frame load delegate may have saved some state about
1236         the redirect in its -webView:willPerformClientRedirectToURL:delay:fireDate:forFrame:.  Since we are definitely
1237         not going to use this provisional resource, as it was cancelled, notify the frame load delegate that the redirect
1238         has ended.
1239         The fix for 4432562 was similar to this, but only took care of the case where the redirect load was actually
1240         committed to the frame.  The new call to -_clientRedirectCancelledOrFinished: handles the case where the redirect
1241         load was successful, but was not committed.  This happens with downloads.
1242         
1243 2006-03-29  John Sullivan  <sullivan@apple.com>
1244
1245         Reviewed by Tim Omernick.
1246         
1247         - fixed these bugs:
1248         <rdar://problem/4483806> REGRESSION (417.8-TOT): PDFs don't scale correctly with auto-size (5356)
1249         <rdar://problem/3874856> Safari PDF display should be full width by default rather than 
1250         sized to show the entire page
1251
1252         * WebView/WebPDFRepresentation.m:
1253         (-[WebPDFRepresentation finishedLoadingWithDataSource:]):
1254         Let the WebPDFView handle setting the document, because that's the best time to apply
1255         the sizing-related preferences.
1256         
1257         * WebView/WebPDFView.h:
1258         eliminated firstLayoutDone ivar and -PDFSubview public method; added -setPDFDocument:
1259         
1260         * WebView/WebPDFView.m:
1261         (-[WebPDFView initWithFrame:]):
1262         eliminate use of obsolete firstLayoutDone ivar
1263         (-[WebPDFView _applyPDFDefaults]):
1264         renamed from _readPDFDefaults for clarity
1265         (-[WebPDFView layout]):
1266         removed code that applied the preferences here. This was too early to handle auto-sizing correctly,
1267         because -layout can be called before the document exists, and calling setAutoSize:YES at that
1268         point confuses PDFView into setting the scale factor to 20 (the maximum).
1269         (-[WebPDFView setPDFDocument:]):
1270         New method, does what WebPDFRepresentation used to do and also applies the preferences here.
1271         This is a good place to apply them because the document is guaranteed to now exist (of course).
1272         (-[WebPDFView PDFSubview]):
1273         Moved this into a new FileInternal category because it's still needed by another class in
1274         this file but no longer needs to be public.
1275         
1276         * WebView/WebPreferences.m:
1277         (+[WebPreferences initialize]):
1278         Change WebKitPDFScaleFactorPreferenceKey to 0, which represents auto-size. This fixes 3874856,
1279         but wasn't feasible until 4483806 was fixed.
1280
1281 2006-03-28  Darin Adler  <darin@apple.com>
1282
1283         Reviewed by Geoff.
1284
1285         - added a build step that checks for init routines
1286
1287         * WebKit.xcodeproj/project.pbxproj: Added a custom build phase that invokes the
1288         check-for-global-initializers script.
1289
1290 2006-03-28  Tim Omernick  <timo@apple.com>
1291
1292         Reviewed by Darin.
1293
1294         <rdar://problem/3694090> -[WebBaseNetscapePluginView finalize] is incorrect; design change needed
1295
1296         * Plugins/WebBaseNetscapePluginView.m:
1297         (-[WebBaseNetscapePluginView initWithFrame:]):
1298         Don't observe preferences changes here -- we only want to observe preferences while the view is 
1299         installed in the view hierarchy.  Plugins will appropriately start and stop themselves when added to
1300         or removed from a window.
1301         (-[WebBaseNetscapePluginView dealloc]):
1302         Don't remove observers here -- they should have been removed when the view was removed from its
1303         window.
1304         (-[WebBaseNetscapePluginView finalize]):
1305         ditto
1306         (-[WebBaseNetscapePluginView viewWillMoveToWindow:]):
1307         Stop observing preferences when the view is removed from its window.
1308         (-[WebBaseNetscapePluginView viewDidMoveToWindow]):
1309         Start observing preferences when the view is added to a window.
1310
1311 2006-03-27  Tim Omernick  <timo@apple.com>
1312
1313         Reviewed by Eric.
1314
1315         <rdar://problem/3694090> -[WebBaseNetscapePluginView finalize] is incorrect; design change needed
1316
1317         * ChangeLog:
1318         * Plugins/WebBaseNetscapePluginView.m:
1319         (-[WebBaseNetscapePluginView dealloc]):
1320         Instead of calling -stop, assert that the plugin is not running.  A plugin view cannot be deallocated
1321         until it is removed from its window.  When a plugin view is removed from its window, it calls -stop
1322         on itself.  Therefore I believe that this call to -stop is unnecessary; if I'm wrong, then the
1323         assertion will help catch any edge cases.
1324         (-[WebBaseNetscapePluginView finalize]):
1325         ditto
1326
1327 2006-03-27  Tim Omernick  <timo@apple.com>
1328
1329         Reviewed by Eric.
1330
1331         <rdar://problem/3694086> -[WebBaseNetscapePluginStream finalize] is incorrect; design change needed
1332
1333         * Plugins/WebBaseNetscapePluginStream.m:
1334         (-[WebBaseNetscapePluginStream dealloc]):
1335         Assert that the stream file path either never existed, or was deleted and NULL-ed out.  The stream file
1336         is now deleted immediately after calling NPP_StreamAsFile().
1337         (-[WebBaseNetscapePluginStream finalize]):
1338         ditto
1339         (-[WebBaseNetscapePluginStream _destroyStream]):
1340         Delete the file after calling NPP_StreamAsFile(), instead of in -dealloc/-finalize.  It should be OK
1341         to delete the file here -- NPP_StreamAsFile() is always called immediately before NPP_DestroyStream()
1342         (the stream destruction function), so there can be no expectation that a plugin will read the stream file
1343         asynchronously after NPP_StreamAsFile() is called.
1344
1345 2006-03-27  Tim Omernick  <timo@apple.com>
1346
1347         Reviewed by Eric.
1348
1349         <rdar://problem/3694093> -[WebBasePluginPackage finalize] is incorrect; design change needed
1350
1351         Call -unload on plug-in packages instead of relying on -dealloc/-finalize to do it.  Currently
1352         the only place plug-in packages are deallocated is when refreshing the set of plugins, as when
1353         handling JavaScript's navigator.plugins.refresh().
1354
1355         * Plugins/WebBasePluginPackage.m:
1356         (-[WebBasePluginPackage dealloc]):
1357         Assert that the plug-in has been unloaded by the time -dealloc is called.
1358         (-[WebBasePluginPackage finalize]):
1359         ditto
1360
1361         * Plugins/WebPluginDatabase.m:
1362         (-[WebPluginDatabase refresh]):
1363         Call -unload on the plug-in packages before releasing them.
1364
1365 2006-03-27  Tim Omernick  <timo@apple.com>
1366
1367         Reviewed by Tim Hatcher.
1368
1369         Part of <rdar://problem/4448350> Deprecated ObjC language API used in JavaScriptCore, WebCore,
1370         WebKit and WebBrowser
1371
1372         * Carbon/HIViewAdapter.h:
1373         HIViewAdapter is no longer an NSView subclass, since we no longer pose it as NSView.
1374         * Carbon/HIViewAdapter.m:
1375         (+[NSView bindHIViewToNSView:nsView:]):
1376         Replace individual NSView methods instead of posing as NSView.
1377         (_webkit_NSView_setNeedsDisplay):
1378         Replacement implementation of -[NSView setNeedsDisplay:].
1379         (_webkit_NSView_setNeedsDisplayInRect):
1380         Replacement implementation of -[NSView setNeedsDisplayInRect:]
1381         (_webkit_NSView_nextValidKeyView):
1382         Replacement implementation of -[NSView nextValidKeyView]
1383
1384 2006-03-27  John Sullivan  <sullivan@apple.com>
1385
1386         Reviewed by Darin Adler.
1387         
1388         Removed two overzealous assertions that the steps to reproduce 4451831 were running into.
1389         Improved comments to match.
1390
1391         * WebCoreSupport/WebFrameBridge.m:
1392         (-[WebFrameBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
1393         Remove assertion that _inNextKeyViewOutsideWebFrameViews should always be false here.
1394         
1395         * WebView/WebHTMLView.m:
1396         (-[NSArray nextValidKeyView]):
1397         Removed assertion that the frame should never be the main frame here.
1398
1399 2006-03-27  Tim Omernick  <timo@apple.com>
1400
1401         Reviewed by Tim Hatcher.
1402
1403         Removed tabs & reformatted code.
1404         
1405         * Carbon/HIViewAdapter.m:
1406         (+[NSView bindHIViewToNSView:nsView:]):
1407         (+[NSView getHIViewForNSView:]):
1408         (+[NSView unbindNSView:]):
1409         (-[NSView setNeedsDisplay:]):
1410         (-[NSView setNeedsDisplayInRect:]):
1411         (-[NSView nextValidKeyView]):
1412         (SetViewNeedsDisplay):
1413
1414 2006-03-26  Justin Garcia  <justin.garcia@apple.com>
1415
1416         Reviewed by darin
1417         
1418         <http://bugzilla.opendarwin.org/show_bug.cgi?id=7974>
1419         Add EditActions and WebUndoActions for CreateLink and Unlink
1420
1421         * English.lproj/Localizable.strings:
1422         * WebCoreSupport/WebFrameBridge.m:
1423         (-[WebFrameBridge nameForUndoAction:]):
1424
1425 2006-03-23  Tim Omernick  <timo@apple.com>
1426
1427         Reviewed by John Sullivan.
1428
1429         At John's suggestion, renamed a private WebFrame method and tightened up some of the redirect logic I recently touched.
1430
1431         * WebView/WebFramePrivate.h:
1432         Renamed -_clientRedirectCancelled: to -_clientRedirectCancelledOrFinished:, since we call this both when a redirect is
1433         cancelled and when a redirect is successfully committed.
1434         * WebCoreSupport/WebFrameBridge.m:
1435         (-[WebFrameBridge reportClientRedirectCancelled:]):
1436         Call renamed WebFrame method.
1437         * WebView/WebFrame.m:
1438         Added sentRedirectNotification flag to WebFramePrivate.  This flag is set when we notify the frame load delegate that a
1439         redirect will occur.  We check this flag when committing a provisional load to ensure that the frame load delegate is
1440         notified that the redirect finished.
1441         (-[WebFrame _commitProvisionalLoad:]):
1442         After committing a provisional load, make sure that the frame load delegate is notified that there is no longer a pending
1443         redirect.
1444         (-[WebFrame _clientRedirectedTo:delay:fireDate:lockHistory:isJavaScriptFormAction:]):
1445         Set the new sentRedirectNotification flag.
1446         (-[WebFrame _clientRedirectCancelledOrFinished:]):
1447         Renamed method.
1448         Clear the sentRedirectNotification flag.
1449         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
1450         Call renamed method.
1451
1452 2006-03-23  Tim Omernick  <timo@apple.com>
1453
1454         Reviewed by John Sullivan.
1455
1456         <rdar://problem/4439752> TinyMCE: "Search in Google" context menu is active but fails to work when selection is active
1457         in textarea field.
1458
1459         * DefaultDelegates/WebDefaultContextMenuDelegate.m:
1460         (-[WebDefaultUIDelegate menuItemWithTag:target:representedObject:]):
1461         Added a representedObject parameter, which is set on the newly created menu item.
1462         (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
1463         Instead of setting the representedObject on each menu item after creating them all, pass the element to
1464         -menuItemWithTag:target:representedObject:.
1465         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
1466         ditto.  This fixes 4439752 because this method failed to set the representedObject on the menu items as
1467         -contextMenuItemsForElement:defaultMenuItems: did.
1468
1469 2006-03-23  Darin Adler  <darin@apple.com>
1470
1471         Reviewed by Eric.
1472
1473         - fix <rdar://problem/4380465> repro crash when unsuccessfully attempting to import image from Services menu
1474
1475         * WebView/WebDataSource.m:
1476         (-[WebDataSource _imageElementWithImageResource:]): Quietly do nothing if passed nil.
1477         (-[WebDataSource _documentFragmentWithImageResource:]): Ditto.
1478
1479 2006-03-22  Tim Omernick  <timo@apple.com>
1480
1481         Reviewed by Kevin Decker.
1482
1483         Even better fix for <rdar://problem/4432562>.  We need to notify the frame delegate of a finished redirect for both
1484         "fast" and "slow" redirects, after committing the load.  My previous change only notified for "fast", history-locking
1485         redirects.  Now we notify the frame delegate after committing any kind of provisional load, not just in the case of
1486         a fast redirect.
1487
1488         * WebView/WebFrame.m:
1489         (-[WebFrame _transitionToCommitted:]):
1490         (-[WebFrame _commitProvisionalLoad:]):
1491
1492 2006-03-22  Tim Omernick  <timo@apple.com>
1493
1494         Reviewed by Kevin Decker.
1495
1496         Better fix for <rdar://problem/4432562> REGRESSION (TOT): Safari's "stop loading" active, "view source" inactive after page load [7058]
1497
1498         * WebView/WebFrame.m:
1499         (-[WebFrame _transitionToCommitted:]):
1500         Cancel the client redirect when we commit the provisional load, if we were waiting for a redirect.
1501         This is a better fix for 7058 (<rdar://problem/4432562>).  The original fix for 7058 changed the timing of the redirect cancel
1502         in such a way that WebKit was precluded from ever reusing back/forward list entries for redirects.  Clearing the redirect state
1503         here actually makes logical sense, as the redirect's target page is being committed at this point.
1504
1505 2006-03-21  Darin Adler  <darin@apple.com>
1506
1507         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=3784
1508           <rdar://problem/4483827> JavaScript save dialog disappears right away (sheet triggers blur event) (3784)
1509
1510         * WebView/WebHTMLView.m:
1511         (-[WebHTMLView _updateFocusState]): Treat window as having focus if its sheet is key.
1512         (-[WebHTMLView addWindowObservers]): Observe all focus notifications, not just the ones involving this window.
1513         (-[WebHTMLView removeWindowObservers]): Ditto.
1514         (-[WebHTMLView windowDidBecomeKey:]): Add checks so that we call the methods only when appropriate,
1515         since this will now be called for all windows.
1516         (-[WebHTMLView windowDidResignKey:]): Ditto.
1517
1518 2006-03-21  Adele Peterson  <adele@apple.com>
1519
1520         Reviewed by Darin.
1521
1522         - Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=6813
1523         elementAtPoint needs to return input element when clicking on new text field
1524
1525         * WebView/WebDocumentInternal.h: Added elementAtPoint:allowShadowContent:
1526         * WebView/WebHTMLView.m:
1527         (-[NSArray elementAtPoint:]): Does not allow shadow content.  This way, by default, callers would get the input element instead of the inner div.
1528         (-[NSArray elementAtPoint:allowShadowContent:]): Allows callers to specify whether or not the element can be a shadow node.
1529         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): Allows shadow content when getting element.
1530         (-[WebHTMLView _mayStartDragAtEventLocation:]): ditto.
1531         (-[NSArray _isSelectionEvent:]): ditto.
1532         (-[NSArray _canProcessDragWithDraggingInfo:]): ditto.
1533         * WebView/WebFrame.m: (-[WebFrame _actionInformationForNavigationType:event:originalURL:]): Does not allow shadow content when getting element.
1534         * WebView/WebImageView.m: (-[WebImageView elementAtPoint:allowShadowContent:]): Added to conform to the WebDocumentElement protocol.
1535         * WebView/WebPDFView.m: (-[WebPDFView elementAtPoint:allowShadowContent:]): ditto.
1536         * WebView/WebTextView.m: (-[WebTextView elementAtPoint:allowShadowContent:]): ditto.
1537
1538 2006-03-21  Tim Omernick  <timo@apple.com>
1539
1540         Reviewed by Tim Hatcher and Darin.
1541
1542         <rdar://problem/4427068> LMGetCurApRefNum, CloseConnection and GetDiskFragment deprecated, used in Netscape
1543         plugin code
1544
1545         * Plugins/WebNetscapeDeprecatedFunctions.h: Added.
1546         * Plugins/WebNetscapeDeprecatedFunctions.c: Added.
1547         Added wrappers for deprecated CFM and LowMem functions.  These exist in a separate file so that we can set
1548         -Wno-deprecated-declarations on this one file without ignoring other deprecated function usage elsewhere.
1549         (WebGetDiskFragment):
1550         (WebCloseConnection):
1551         (WebLMGetCurApRefNum):
1552         (WebLMSetCurApRefNum):
1553
1554         * Plugins/WebNetscapePluginPackage.h:
1555         Don't include connID ivar in 64-bit, since CFM is not supported in 64-bit.
1556         * Plugins/WebNetscapePluginPackage.m:
1557         (+[WebNetscapePluginPackage initialize]):
1558         Don't bother setting the resource refNum in 64-bit, because the API to get and set it does not exist.
1559         A theoretical 64-bit plugin couldn't possibly rely this, since there is no API.
1560         (-[WebNetscapePluginPackage unloadWithoutShutdown]):
1561         No need to close the connID in 64-bit.
1562         (-[WebNetscapePluginPackage load]):
1563         Don't load CFM bundles in 64-bit, because CFM is not supported.
1564
1565         * WebKit.xcodeproj/project.pbxproj:
1566         Added WebNetscapeDeprecatedFunctions.[hm].
1567
1568 2006-03-21  John Sullivan  <sullivan@apple.com>
1569
1570         Reviewed by Kevin Decker.
1571         
1572         - fixed <rdar://problem/4485637> Implementors of searchFor:direction:caseSensitive:wrap: should bail 
1573         out early if search string is empty
1574         
1575         This doesn't change any existing behavior, but avoids unnecessary work.
1576
1577         * Misc/WebSearchableTextView.m:
1578         (-[WebSearchableTextView searchFor:direction:caseSensitive:wrap:]):
1579         bail out immediately (returning NO) if search string is empty
1580         
1581         * WebView/WebHTMLView.m:
1582         (-[WebView searchFor:direction:caseSensitive:wrap:]):
1583         ditto
1584         
1585         * WebView/WebPDFView.m:
1586         (-[WebPDFView searchFor:direction:caseSensitive:wrap:]):
1587         ditto
1588         
1589         * WebView/WebView.m:
1590         (-[WebView searchFor:direction:caseSensitive:wrap:]):
1591         ditto
1592
1593 2006-03-20  Tim Omernick  <timo@apple.com>
1594
1595         Reviewed by John Sullivan.
1596
1597         Moved -_contentView from WebFrameViewInternal to WebFrameViewPrivate.  Safari
1598         needs this.
1599
1600         * WebView/WebFrameView.m:
1601         (-[WebFrameView _contentView]):
1602         * WebView/WebFrameViewInternal.h:
1603         * WebView/WebFrameViewPrivate.h:
1604
1605 2006-03-17  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1606
1607         Reviewed by Darin, landed by Beth.
1608
1609         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7693
1610           WebKit relies on unpredictable timing for onload events
1611
1612         * WebView/WebDataSource.m:
1613         (-[WebDataSource _receivedMainResourceError:complete:]): Check for 
1614         completion on the WebCore side before checking on the WebKit side, 
1615         to ensure that the onload event is emitted before the WebFrame load 
1616         delegate is sent the webView:didFinishLoadForFrame: message. For 
1617         DumpRenderTree, this ensures that the render tree is dumped after 
1618         the onload handler is run.
1619         * WebView/WebLoader.m:
1620         (-[NSURLProtocol didFailWithError:]): If load has already been 
1621         cancelled (which could happen if the parent's onload handler caused 
1622         the frame to detach), do nothing.
1623
1624 2006-03-17  John Sullivan  <sullivan@apple.com>
1625
1626         Reviewed by Beth Dakin
1627         
1628         - fixed <rdar://problem/4239051> Sometimes "Copy Link" in Safari results in a 
1629         URL on the pasteboard with no usable "title"
1630
1631         * History/WebURLsWithTitles.m:
1632         (+[WebURLsWithTitles writeURLs:andTitles:toPasteboard:]):
1633         trim whitespace from titles that are put on pasteboard. This leaves an empty string
1634         for the title in cases where there's no displayed text, like an image in an <a> element
1635         that happens to have whitespace in the source, e.g. <a href="foo"> <img whatever></a>
1636
1637 2006-03-17  Darin Adler  <darin@apple.com>
1638
1639         - missing bit of my check-in yesterday
1640
1641         Maciej moved setWindowFrame for me, but I also had removed
1642         setWindowContentRect.
1643
1644         * WebCoreSupport/WebFrameBridge.m: Removed unused setWindowContextRect and
1645         windowContentRect methods.
1646
1647 2006-03-17  Adele Peterson  <adele@apple.com>
1648
1649         Reviewed by Hyatt.
1650
1651         WebKit part of fix for:
1652         http://bugzilla.opendarwin.org/show_bug.cgi?id=7797 
1653         Can't set background color on new text fields
1654
1655         Added function to draw bezeled text field without drawing background.
1656
1657         * WebCoreSupport/WebGraphicsBridge.m:
1658         (-[WebGraphicsBridge drawBezeledTextFieldCell:enabled:]): Added.
1659
1660 2006-03-16  Maciej Stachowiak  <mjs@apple.com>
1661
1662         Reviewed by Eric.
1663         
1664         - move setWindowFrame / windowFrame to WebPageBridge to fix build
1665
1666         * WebCoreSupport/WebFrameBridge.m:
1667         * WebCoreSupport/WebPageBridge.m:
1668         (-[WebPageBridge setWindowFrame:]):
1669         (-[WebPageBridge windowFrame]):
1670
1671 2006-03-15  Darin Adler  <darin@apple.com>
1672
1673         Fix by Patrick Beard, reviewed by me.
1674
1675         - fix <rdar://problem/4478181> WebPluginController leaks NSArray and NSMutableSet objects
1676
1677         * Plugins/WebPluginController.m:
1678         (-[WebPluginController initWithDocumentView:]): Call CFMakeCollectable on the CFSet
1679         so we can act like it's an NSSet.
1680         (-[WebPluginController dealloc]): Release _views and _checksInProgress.
1681
1682 2006-03-13  Tim Omernick  <timo@apple.com>
1683
1684         Reviewed by Maciej.
1685
1686         <rdar://problem/4476873> Support printing for plugin documents (not embedded plugins)
1687
1688         * WebView/WebFrameViewPrivate.h:
1689         * WebView/WebFrameView.m:
1690         (-[WebFrameView documentViewShouldHandlePrint]):
1691         Called by the host application before it initializes and runs a print operation.  If NO
1692         is returned, the host application will abort its print operation and call
1693         -printDocumentView on the WebFrameView.  The document view is then expected to run its
1694         own print operation.  If YES is returned, the host application's print operation will
1695         continue as normal.
1696         (-[WebFrameView printDocumentView]):
1697         Called by the host application when the WebFrameView returns YES from -documentViewShouldHandlePrint.
1698
1699         * Plugins/WebNetscapePluginDocumentView.m:
1700         (-[WebNetscapePluginDocumentView documentViewShouldHandlePrint]):
1701         Allow the plugin to take over printing if it defines an NPP_Print function
1702         (-[WebNetscapePluginDocumentView printDocumentView]):
1703         Print the plugin document.
1704
1705 2006-03-13  Geoffrey Garen  <ggaren@apple.com>
1706
1707         Reviewed by timo.
1708
1709         - Fixed the load progress indicator to give more incremental feedback, 
1710         and to stop spending so much time near 100%.
1711
1712         I did two things:
1713         (1) Fixed some bugs and a misspelling in the previous heuristic's 
1714         implementation
1715         (2) Added two new rules to the heuristic:
1716             (a) Treat the first layout as the half-way point.
1717             (b) Just like we jump the first 10% to indicate that a load has
1718             started, jump the last 10% to indicate that a load has finished.
1719
1720         Rule 2a is good for two reasons. First, it seems unnatural for loading
1721         to be "more than half done" when you can't even see anything. Second,
1722         in the early stages of laading our estimate of how much we'll need to
1723         load is often off by as much as 6000% (e.g., cnn.com). So anything that
1724         makes the progress indicator more conservative in the early stages of 
1725         loading is helpful.
1726
1727         Rule 2b is good because it's confusing for loading to be "100% done"
1728         but still ongoing.
1729
1730         FIXME: The indicator still isn't perfect. For example, the old behavior
1731         shows up @ moviefone.com. Two areas for future work:
1732         (1) Estimate number of linked resources. Our code estimates the size
1733         of a single resource, but does nothing to estimate the number of
1734         resources that resource might link to. This is the key to why we're
1735         so wrong at the beginning.
1736         (2) Improve "when to do first layout" heuristic. A JavaScript query
1737         for a style property forces layout, creating a phantom first layout 
1738         with no content, essentially nullifying 2a for certain pages.
1739         
1740         Filed <rdar://problem/4475834> to track estimating the number of 
1741         linked resources. Phantom layouts are already on Hyatt's radar.
1742
1743         * WebView/WebFrame.m:
1744         (-[WebFrame _setState:]): Update firstLayoutDone
1745         (-[WebFrame _numPendingOrLoadingRequests:]): Bug fix: In the recurisve 
1746         case, query 'frame' instead of 'self', so that we actually recurse.
1747         (-[WebFrame _firstLayoutDone]): New method
1748         (-[WebFrame _didFirstLayout]): Update firstLayoutDone
1749         * WebView/WebFramePrivate.h: Added firstLayoutDone ivar
1750         * WebView/WebView.m:
1751         (-[WebView _incrementProgressForConnectionDelegate:data:]):
1752         (1) Implemented 2a and 2b
1753         (2) Bug fix: only update the 'last time I sent a notification' time if 
1754         we actually send a notification.
1755         (3) Don't test for progress < 0 because ensuring progress < max
1756         also ensures max - progress > 0. (Do still test for progress > max 
1757         because rounding errors make that a possibility -- although a very 
1758         minor one.)
1759         (4) Query only the loading frame and its subframes for pending
1760         requests instead of defaulting to the main frame. This is a slight
1761         optimization in cases where the main frame did not begin the load,
1762         and it makes the code more consistent.
1763
1764 2006-03-13  John Sullivan  <sullivan@apple.com>
1765
1766         Reviewed by Tim Omernick.
1767         
1768         - fixed <rdar://problem/4475857> API: Setting a history item limit programmatically doesn't work
1769
1770         * History/WebHistory.m:
1771         (-[WebHistoryPrivate _loadHistoryGuts:URL:error:]):
1772         use [self historyItemLimit], which prefers the explicitly-set value and falls back to the
1773         NSUserDefaults value, instead of using the NSUserDefaults value explicitly.
1774
1775 2006-03-10  Darin Adler  <darin@apple.com>
1776
1777         Reviewed by Adele.
1778
1779         * WebCoreSupport/WebFrameBridge.m: Remove unused requestedURLString method.
1780
1781 2006-03-10  Darin Adler  <darin@apple.com>
1782
1783         Reviewed by Geoff.
1784
1785         - change how frame namespacing works to be more completely on the WebCore side
1786
1787         * WebView/WebFrameInternal.h: Remove _setFrameNamespace: and _frameNamespace.
1788         * WebView/WebFrame.m: Ditto.
1789
1790         * WebView/WebView.m:
1791         (-[WebView setGroupName:]): Call -[WebCorePageBridge setGroupName:].
1792         (-[WebView groupName]): Call -[WebCorePageBridge groupName].
1793
1794 2006-03-09  Alexey Proskuryakov  <ap@nypop.com>
1795
1796         Reviewed by Darin.
1797
1798         - http://bugzilla.opendarwin.org/show_bug.cgi?id=7656
1799          Query string always appended to Flash URLs, instead of being replaced.
1800
1801         * Misc/WebNSURLExtras.h: Added _webkit_URLByRemovingResourceSpecifier.
1802         * Misc/WebNSURLExtras.m:
1803         (+[NSURL _web_URLWithData:relativeToURL:]): Call _webkit_URLByRemovingResourceSpecifier to
1804         work around CFURL not removing non-path components from base URLs in some cases.
1805         (-[NSURL _webkit_URLByRemovingComponent:]): New generic function for removing URL components.
1806         (-[NSURL _webkit_URLByRemovingFragment]): Moved implementation to the above method.
1807         (-[NSURL _webkit_URLByRemovingResourceSpecifier]): Added.
1808
1809 2006-03-07  Darin Adler  <darin@apple.com>
1810
1811         Reviewed by Anders.
1812
1813         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7655
1814           unwanted output while running layout tests
1815
1816         * WebView/WebDataSourcePrivate.h:
1817         * WebView/WebDataSource.m:
1818         (-[WebDataSource _setRepresentation:]): Clear the flag that records whether we've sent
1819         all the data to the representation or not; need this to prevent telling the same representation
1820         both that we've succeeded and then later that we've failed.
1821         (-[WebDataSource _setMainDocumentError:]): Don't send an error if representationFinishedLoading
1822         is already YES. Set representationFinishedLoading.
1823         (-[WebDataSource _finishedLoading]): Set representationFinishedLoading.
1824         (-[WebDataSource _setupForReplaceByMIMEType:]): Ditto.
1825
1826 2006-03-06  Tim Omernick  <timo@apple.com>
1827
1828         Reviewed by Kevin Decker.
1829
1830         <rdar://problem/4457574> assertion failure watching trailers at netflix.com -[WebNetscapePluginRepresentation
1831         receivedData:withDataSource:] + 684
1832
1833         * Plugins/WebNetscapePluginRepresentation.m:
1834         (-[WebNetscapePluginRepresentation receivedData:withDataSource:]):
1835         Moved the ASSERT(instance) to the block that actually requires an assertion -- the plugin view should never
1836         have a NULL instance by the time we start the NPStream (by calling -startStreamWithResponse:).
1837         Some stream teardown logic changed with my fix to 4153419: when a WebBaseNetscapePluginStream is destroyed,
1838         it now clears its NPP instance backpointer.  The WebBaseNetscapePluginStream may be destroyed from within
1839         -startStreamWithResponse: if NPP_NewStream() returns an error.  We can handle this gracefully by changing
1840         the assertion before -receivedData: to a simple NULL check.
1841         This is unrelated to the Radar, but prior to this fix, we would attempt an NPP_Write() with the initial
1842         stream data even if NPP_NewStream() returned an error.  Seems like that alone could cause issues, though
1843         I'm guessing that plugins handle this in practice.
1844
1845 2006-03-03  Timothy Hatcher  <timothy@apple.com>
1846
1847         Reviewed by Darin.
1848         
1849         <rdar://problem/4411822> wrong element shown in Inspector inspecting main image at apple.com
1850         <rdar://problem/4411908> in the Web Inspector, state of disclosure triangles should be preserved after search
1851         http://bugzilla.opendarwin.org/show_bug.cgi?id=6616
1852         Bug 6616: Double-clicking on a search result seems broken
1853         http://bugzilla.opendarwin.org/show_bug.cgi?id=6709
1854         Bug 6709: TypeError: Value undefined (result of expression treeScrollbar.refresh) is not object.
1855
1856         Code clean up and move more code into JavaScript.
1857         Removes a few unused ObjC methods.
1858         Many search fixes. Reveals the focused node when exiting the search.
1859         Shows a "No Selection" screen when there are no search results.
1860         Shows a node count for the number of results.
1861         Fixes a couple of TypeErrors that show on the console.
1862         Uses the system selection color in the Style pane tables.
1863
1864         * English.lproj/Localizable.strings: removed localized strings
1865         * WebInspector.subproj/WebInspector.m:
1866         (-[WebInspector init]):
1867         (-[WebInspector dealloc]):
1868         (-[WebInspector window]):
1869         (-[WebInspector setSearchQuery:]):
1870         (-[WebInspector resizeTopArea]):
1871         (-[WebInspector searchPerformed:]): called from JavaScript when a search happens
1872         (-[WebInspector _toggleIgnoreWhitespace:]):
1873         (-[WebInspector _exitSearch:]): exit search results on double click
1874         (-[WebInspector _focusRootNode:]):
1875         (-[WebInspector _revealAndSelectNodeInTree:]):
1876         (-[WebInspector _refreshSearch]):
1877         (-[WebInspector _update]):
1878         (-[WebInspector _updateTraversalButtons]):
1879         (-[WebInspector _updateRoot]):
1880         (-[WebInspector _updateTreeScrollbar]):
1881         (-[WebInspector _updateSystemColors]): update CSS with system colors
1882         (-[WebInspector webView:didFinishLoadForFrame:]):
1883         (-[WebInspector webView:plugInViewWithArguments:]):
1884         (-[WebInspector outlineViewSelectionDidChange:]): test for webViewLoaded
1885         (-[WebInspectorPrivate init]): alloc rightArrowImage and downArrowImage
1886         (-[WebInspectorPrivate dealloc]): no more matchedRules
1887         (-[DOMNode _displayName]): removed localization UI_STRING calls.
1888         * WebInspector.subproj/WebInspectorInternal.h:
1889         * WebInspector.subproj/webInspector/inspector.css:
1890         * WebInspector.subproj/webInspector/inspector.html:
1891         * WebInspector.subproj/webInspector/inspector.js:
1892
1893 2006-03-02  Alexey Proskuryakov  <ap@nypop.com>
1894
1895         Fixed a typo in the comments added in the previous checkin.
1896
1897         * WebCoreSupport/WebFrameBridge.m:
1898         (-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
1899         * WebCoreSupport/WebSubresourceLoader.m:
1900         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:referrer:forDataSource:]):
1901         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:postData:referrer:forDataSource:]):
1902
1903 2006-03-02  Alexey Proskuryakov  <ap@nypop.com>
1904
1905         Reviewed by Darin.
1906
1907         - http://bugzilla.opendarwin.org/show_bug.cgi?id=7540
1908           REGRESSION: frequent cache-related crashes
1909
1910         - http://bugzilla.opendarwin.org/show_bug.cgi?id=7393
1911           A stale comment about XMLHttpRequest responses being never cached
1912
1913         * WebCoreSupport/WebFrameBridge.m: Don't call setHTTPHeader if the method is GET.
1914         (-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
1915         * WebCoreSupport/WebSubresourceLoader.m: Ditto. Also removed a stale comment about
1916         XMLHTTPRequests.
1917         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:referrer:forDataSource:]):
1918         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:postData:referrer:forDataSource:]):
1919
1920 2006-02-23  David Harrison  <harrison@apple.com>
1921
1922         Reviewed by Justin.
1923
1924         <rdar://problem/4359736> Support outlining ability with lists
1925
1926         Added Mail SPI for list level changes.  It is SPI because it is not complete support
1927         for outlining.  See <rdar://problem/4457070> "API for html lists as note outlines".
1928         
1929         * WebView/WebHTMLView.m:
1930         (-[WebHTMLView _canIncreaseSelectionListLevel]):
1931         (-[WebHTMLView _canDecreaseSelectionListLevel]):
1932         (-[WebHTMLView _increaseSelectionListLevel]):
1933         (-[WebHTMLView _decreaseSelectionListLevel]):
1934         * WebView/WebHTMLViewPrivate.h:
1935
1936 2006-03-01  Alexey Proskuryakov  <ap@nypop.com>
1937
1938         Reviewed by Darin.
1939
1940         - http://bugzilla.opendarwin.org/show_bug.cgi?id=3812
1941           XMLHttpRequest: PUT, DELETE, HEAD and all other methods but POST actually do a GET.
1942
1943         All WebKit changes are to use the method parameter passed from WebCore.
1944
1945         * WebCoreSupport/WebFrameBridge.m:
1946         (-[WebFrameBridge startLoadingResource:withMethod:URL:customHeaders:]):
1947         (-[WebFrameBridge startLoadingResource:withMethod:URL:customHeaders:postData:]):
1948         (-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
1949         * WebCoreSupport/WebSubresourceLoader.h:
1950         * WebCoreSupport/WebSubresourceLoader.m:
1951         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:referrer:forDataSource:]):
1952         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:postData:referrer:forDataSource:]):
1953
1954 2006-03-01  Timothy Hatcher  <timothy@apple.com>
1955
1956         Reviewed by Darin.
1957
1958         http://bugzilla.opendarwin.org/show_bug.cgi?id=7450
1959         elementAtPoint is expensive and should return a smart dictionary
1960         
1961         <rdar://problem/2952761> moving the mouse around eats more CPU than I would expect (7450)
1962         
1963         elementAtPoint for WebHTMLView now returns a WebElementDictionary,
1964         when objectForKey is called it will lookup in the DOM, cache and return the value
1965
1966         * Misc/WebElementDictionary.h: Added.
1967         * Misc/WebElementDictionary.m: Added.
1968         (addLookupKey):
1969         (cacheValueForKey):
1970         (+[WebElementDictionary initializeLookupTable]):
1971         (-[WebElementDictionary initWithInnerNonSharedNode:innerNode:URLElement:andPoint:]):
1972         (-[WebElementDictionary dealloc]):
1973         (-[WebElementDictionary _fillCache]):
1974         (-[WebElementDictionary count]):
1975         (-[WebElementDictionary keyEnumerator]):
1976         (-[WebElementDictionary objectForKey:]):
1977         (-[WebElementDictionary _domNode]):
1978         (-[WebElementDictionary _webFrame]):
1979         (-[WebElementDictionary _targetWebFrame]):
1980         (-[WebElementDictionary _title]):
1981         (-[WebElementDictionary _imageRect]):
1982         (-[WebElementDictionary _isSelected]):
1983         * Misc/WebNSViewExtras.m:
1984         (-[NSView _web_dragImage:element:rect:event:pasteboard:source:offset:]):
1985         * WebKit.xcodeproj/project.pbxproj:
1986         * WebView/WebHTMLView.m:
1987         (-[WebHTMLView _updateMouseoverWithEvent:]):
1988         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1989         (-[NSArray elementAtPoint:]):
1990         * WebView/WebView.m:
1991         * WebView/WebViewPrivate.h:
1992
1993 2006-02-28  Darin Adler  <darin@apple.com>
1994
1995         Reviewed by Adele.
1996
1997         - remove obsolete WebCoreScrollView class
1998
1999         * WebView/WebDynamicScrollBarsView.h: Change base class to NSScrollView instead of WebCoreScrollView.
2000         * WebView/WebDynamicScrollBarsView.m: (-[WebDynamicScrollBarsView autoforwardsScrollWheelEvents]): Added.
2001
2002 2006-02-28  John Sullivan  <sullivan@apple.com>
2003
2004         Reviewed by Eric Seidel
2005         
2006         Wean WebKit from one more SPI call. We learned about this new-to-Tiger
2007         API from filing Radar 4433222.
2008
2009         * WebView/WebHTMLView.m:
2010         (-[WebHTMLView _autoscroll]):
2011         use public CGEventSourceButtonState() instead of WKMouseIsDown() (which was using SPI internally)
2012
2013 2006-02-27  Tim Omernick  <timo@apple.com>
2014
2015         Reviewed by Adele.
2016
2017         <rdar://problem/4222043> Safari should reduce null events sent to invisible plugins
2018
2019         * Plugins/WebBaseNetscapePluginView.h:
2020         * Plugins/WebBaseNetscapePluginView.m:
2021         (-[WebBaseNetscapePluginView restartNullEvents]):
2022         Check to see if the plugin view is completely obscured (scrolled out of view, for example).  If it is
2023         obscured and it wasn't before, or the other way around, then restart the null event timer so it can
2024         fire at the appropriate rate.
2025         (-[WebBaseNetscapePluginView viewHasMoved:]):
2026         If a plugin is obscured, send it null events as if it were in an inactive window.
2027
2028 2006-02-26  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2029
2030         Test: fast/frames/empty-frame-document.html
2031
2032         Reviewed by Darin.
2033
2034         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7293
2035           REGRESSION: Using Javascript Bookmarklets that reference location.href on a blank tab crashes WebKit
2036
2037         The crash happened because an empty frame did not have a document.
2038
2039         * WebView/WebFrame.m:
2040         (-[WebFrame _commitProvisionalLoad:]): Use "about:blank" instead of an empty URL for empty
2041         frames. This causes a document to be created for the frame.
2042
2043 2006-02-21  Kevin Decker  <kdecker@apple.com>
2044
2045         Reviewed by Darin.
2046
2047         Backed out my previous check in. Since these methods are internal to WebKit (and not private)
2048         it's perfectly OK for them to remain as categories. 
2049         * ChangeLog:
2050         * WebView/WebPreferences.m:
2051         (-[WebPreferences _integerValueForKey:]):
2052         (-[WebPreferences _setIntegerValue:forKey:]):
2053         (-[WebPreferences _floatValueForKey:]):
2054         (-[WebPreferences _setFloatValue:forKey:]):
2055         (-[WebPreferences _boolValueForKey:]):
2056         (-[WebPreferences _setBoolValue:forKey:]):
2057         * WebView/WebPreferencesPrivate.h:
2058
2059 2006-02-20  Darin Adler  <darin@apple.com>
2060
2061         Collaborated with Graham Dennis <Graham.Dennis@gmail.com> on this.
2062
2063         - WebKit part of fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=6831
2064           contentEditable outline darkens as caret moves
2065
2066         * WebCoreSupport/WebGraphicsBridge.m:
2067         (-[WebGraphicsBridge drawFocusRingWithPath:radius:color:]):
2068         Replaced the old bridge function that set up style with this one that renders a path.
2069
2070 2006-02-19  Darin Adler  <darin@apple.com>
2071
2072         Reviewed by Maciej.
2073
2074         - cut out a little unneeded bridge code
2075
2076         * WebCoreSupport/WebFrameBridge.m:
2077         (-[WebFrameBridge webView]): Added. Helper, since the WebCore side of the bridge no longer
2078         has this method.
2079         (-[WebFrameBridge createWindowWithURL:]): Removed the frameName parameter -- this is now
2080         handled on the WebCore side. Also return a page bridge instead of a frame bridge.
2081         (-[WebFrameBridge createModalDialogWithURL:]): Changed to return a page bridge instead of
2082         a frame bridge.
2083
2084         * WebView/WebFrame.m: (-[WebFrame webView]): Change to get the webView from the page bridge
2085         instead of the frame bridge, since it's a per-page thing.
2086
2087         * WebView/WebView.m: Removed init method since it just does what the default does (calls
2088         initWithFrame: with a zero rect).
2089         (-[WebView initWithCoder:]): Added checking so that if the obejcts have the wrong type
2090         we will fail gracefully instead of hitting "method not found" and the like.
2091         (-[WebView setPreferencesIdentifier:]): Fix storage leak. The WebPreferences object was
2092         not released.
2093         (-[WebView mainFrame]): Removed excess "return nil".
2094         (-[WebView _pageBridge]): Added. Helper to let you go from the WebView to the bridge
2095         from outside the WebView class.
2096         * WebView/WebViewInternal.h: Put _pageBridge into an internal header.
2097
2098         * WebCoreSupport/WebPageBridge.m: (-[WebPageBridge outerView]): Added. Replaces "webView"
2099         as public method to tell the WebCore side about the view everything's embedded in.
2100
2101         - other cleanup
2102
2103         * WebCoreSupport/WebPageBridge.h: Removed some unneeded declarations.
2104
2105         * Plugins/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView loadPluginRequest:]):
2106         Rearrange code so it doesn't have to get the main frame twice.
2107
2108 2006-02-18  Maciej Stachowiak  <mjs@apple.com>
2109
2110         Not reviewed.
2111         
2112         - fix build broken by my last checkin, the remaining code was not doing anything.
2113
2114         * WebView/WebDataSource.m:
2115         * WebView/WebDataSourcePrivate.h:
2116         * WebView/WebFrame.m:
2117         (-[WebFrame _createPageCacheForItem:]):
2118
2119 2006-02-16  Maciej Stachowiak  <mjs@apple.com>
2120
2121         Reviewed by Darin.
2122         
2123         - removed a few unused fields and methods of WebDataSource
2124
2125         * WebView/WebDataSource.m:
2126         * WebView/WebDataSourcePrivate.h:
2127         * WebView/WebView.m:
2128         (+[WebView _MIMETypeForFile:]):
2129         (-[WebView _updateWebCoreSettingsFromPreferences:]):
2130
2131 2006-02-15  Justin Garcia  <justin.garcia@apple.com>
2132
2133         Reviewed by darin
2134         
2135         <http://bugzilla.opendarwin.org/show_bug.cgi?id=7148>
2136         Add drag and drop support to DumpRenderTree
2137         
2138         Added a UI delegate method so that DumpRenderTree can perform dragging on its own.
2139         Made _updateFocusState SPI, to allow us to test the behavior and appearance of
2140         windows that have or don't have focus.
2141
2142         * WebView/WebHTMLView.m:
2143         (-[WebHTMLView _updateFocusState]):
2144         (-[NSArray viewDidMoveToWindow]):
2145         (-[NSArray windowDidBecomeKey:]):
2146         (-[NSArray windowDidResignKey:]):
2147         (-[NSArray dragImage:at:offset:event:pasteboard:source:slideBack:]):
2148         (-[NSArray becomeFirstResponder]):
2149         (-[NSArray resignFirstResponder]):
2150         (-[WebHTMLView _formControlIsResigningFirstResponder:]):
2151         * WebView/WebHTMLViewInternal.h:
2152         * WebView/WebHTMLViewPrivate.h:
2153         * WebView/WebUIDelegatePrivate.h:
2154         * WebView/WebView.m:
2155
2156 2006-02-15  Darin Adler  <darin@apple.com>
2157
2158         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
2159
2160 2006-02-15  Maciej Stachowiak  <mjs@apple.com>
2161
2162         Rubber stamped by Anders.
2163
2164         * WebView/WebControllerPolicyHandlerDelegate.h: Removed.
2165
2166 2006-02-15  Maciej Stachowiak  <mjs@apple.com>
2167
2168         Reviewed by Anders.
2169         
2170         - remove some voodoo code
2171
2172         * WebView/WebDataSource.m:
2173         (-[WebDataSource _setLoading:]): Removed useless ref/deref of self and WebView.
2174         A WebDataSource cannot be loading unless it is still connected to the WebView that
2175         owns it and retained by it, because getting disconnected stops loading.
2176
2177 2006-02-13  Maciej Stachowiak  <mjs@apple.com>
2178
2179         Reviewed by Anders.
2180         
2181         Improvements to frame loading:
2182         
2183         - remove LayoutAcceptable state entirely
2184         - fix WebImageView to work right without LayoutAcceptable state
2185         - move guts of commitIfReady: to WebFrame
2186         - try to separate page cache loading from normal loading a bit more
2187
2188         * English.lproj/StringsNotToBeLocalized.txt:
2189         * WebView/WebDataSource.m:
2190         (-[WebDataSource _prepareForLoadStart]):
2191         (-[WebDataSource _loadFromPageCache:]):
2192         (-[WebDataSource _startLoading]):
2193         (-[WebDataSource _commitIfReady]):
2194         (-[WebDataSource _setupForReplaceByMIMEType:]):
2195         * WebView/WebDataSourcePrivate.h:
2196         * WebView/WebFrame.m:
2197         (-[WebFrame _transitionToCommitted:]):
2198         (-[WebFrame _commitProvisionalLoad:]):
2199         (-[WebFrame _checkLoadCompleteForThisFrame]):
2200         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
2201         * WebView/WebFramePrivate.h:
2202         * WebView/WebImageRepresentation.h:
2203         * WebView/WebImageRepresentation.m:
2204         * WebView/WebImageView.m:
2205         (-[WebImageView dataSourceUpdated:]):
2206         (-[WebImageView setNeedsLayout:]):
2207         (-[WebImageView writeImageToPasteboard:types:]):
2208         (-[WebImageView copy:]):
2209         (-[WebImageView mouseDragged:]):
2210         * WebView/WebView.m:
2211         (-[WebView _finishedLoadingResourceFromDataSource:]):
2212         (-[WebView _mainReceivedBytesSoFar:fromDataSource:complete:]):
2213
2214 2006-02-13  John Sullivan  <sullivan@apple.com>
2215
2216         Reviewed by Tim Omernick.
2217
2218         Support for highlighting multiple text matches.
2219
2220         * WebView/WebHTMLViewPrivate.h:
2221         * WebView/WebHTMLView.m:
2222         (-[WebHTMLView highlightAllMatchesForString:caseSensitive:]):
2223         new method, calls through to bridge
2224         (-[WebHTMLView clearHighlightedMatches]):
2225         ditto
2226
2227         * WebView/WebViewPrivate.h:
2228         * WebView/WebView.m:
2229         (-[WebView highlightAllMatchesForString:caseSensitive:]):
2230         new method, calls through to documentView. For now this is hardwired to only work
2231         with WebHTMLViews.
2232         (-[WebView clearHighlightedMatches]):
2233         ditto
2234
2235 2006-02-13  Darin Adler  <darin@apple.com>
2236
2237         Reviewed by Maciej.
2238
2239         - move pointer from frame to page over to WebCore
2240
2241         * WebCoreSupport/WebPageBridge.m: (-[WebPageBridge initWithMainFrameName:webView:frameView:]):
2242         Call super init to create the page before creating the main frame and calling setMainFrame: with it.
2243
2244         * WebCoreSupport/WebFrameBridge.h: Remove page pointer, and change init function parameters.
2245         * WebCoreSupport/WebFrameBridge.m:
2246         (-[WebFrameBridge initMainFrameWithPage:frameName:view:]): New function that is used only for
2247         the main frame. Passes the page over to the other side of the bridge.
2248         (-[WebFrameBridge initSubframeWithRenderer:frameName:view:]): New function that is used only for
2249         subframes. Passes the renderer over to the other side of the bridge.
2250         (-[WebFrameBridge mainFrame]):
2251         (-[WebFrameBridge webView]):
2252         (-[WebFrameBridge createWindowWithURL:frameName:]):
2253         (-[WebFrameBridge showWindow]):
2254         (-[WebFrameBridge areToolbarsVisible]):
2255         (-[WebFrameBridge setToolbarsVisible:]):
2256         (-[WebFrameBridge isStatusbarVisible]):
2257         (-[WebFrameBridge setStatusbarVisible:]):
2258         (-[WebFrameBridge setWindowFrame:]):
2259         (-[WebFrameBridge windowFrame]):
2260         (-[WebFrameBridge setWindowContentRect:]):
2261         (-[WebFrameBridge windowContentRect]):
2262         (-[WebFrameBridge setWindowIsResizable:]):
2263         (-[WebFrameBridge windowIsResizable]):
2264         (-[WebFrameBridge firstResponder]):
2265         (-[WebFrameBridge makeFirstResponder:]):
2266         (-[WebFrameBridge closeWindowSoon]):
2267         (-[WebFrameBridge runJavaScriptAlertPanelWithMessage:]):
2268         (-[WebFrameBridge runJavaScriptConfirmPanelWithMessage:]):
2269         (-[WebFrameBridge canRunBeforeUnloadConfirmPanel]):
2270         (-[WebFrameBridge runBeforeUnloadConfirmPanelWithMessage:]):
2271         (-[WebFrameBridge runJavaScriptTextInputPanelWithPrompt:defaultText:returningText:]):
2272         (-[WebFrameBridge addMessageToConsole:]):
2273         (-[WebFrameBridge runOpenPanelForFileButtonWithResultListener:]):
2274         (-[WebFrameBridge setStatusText:]):
2275         (-[WebFrameBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
2276         (-[WebFrameBridge focusWindow]):
2277         (-[WebFrameBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
2278         (-[WebFrameBridge userAgentForURL:]):
2279         (-[WebFrameBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
2280         (-[WebFrameBridge previousKeyViewOutsideWebFrameViews]):
2281         (-[WebFrameBridge defersLoading]):
2282         (-[WebFrameBridge setDefersLoading:]):
2283         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
2284         (-[WebFrameBridge _preferences]):
2285         (-[WebFrameBridge selectWordBeforeMenuEvent]):
2286         (-[WebFrameBridge historyLength]):
2287         (-[WebFrameBridge canGoBackOrForward:]):
2288         (-[WebFrameBridge goBackOrForward:]):
2289         (-[WebFrameBridge print]):
2290         (-[WebFrameBridge pollForAppletInView:]):
2291         (-[WebFrameBridge respondToChangedContents]):
2292         (-[WebFrameBridge respondToChangedSelection]):
2293         (-[WebFrameBridge undoManager]):
2294         (-[WebFrameBridge issueCutCommand]):
2295         (-[WebFrameBridge issueCopyCommand]):
2296         (-[WebFrameBridge issuePasteCommand]):
2297         (-[WebFrameBridge issuePasteAndMatchStyleCommand]):
2298         (-[WebFrameBridge canPaste]):
2299         (-[WebFrameBridge overrideMediaType]):
2300         (-[WebFrameBridge isEditable]):
2301         (-[WebFrameBridge shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
2302         (-[WebFrameBridge shouldBeginEditing:]):
2303         (-[WebFrameBridge shouldEndEditing:]):
2304         (-[WebFrameBridge windowObjectCleared]):
2305         (-[WebFrameBridge spellCheckerDocumentTag]):
2306         (-[WebFrameBridge isContinuousSpellCheckingEnabled]):
2307         (-[WebFrameBridge didFirstLayout]):
2308         (-[WebFrameBridge dashboardRegionsChanged:]):
2309         (-[WebFrameBridge createModalDialogWithURL:]):
2310         (-[WebFrameBridge canRunModal]):
2311         (-[WebFrameBridge runModal]):
2312         Change all calls to [_page webView] to use [self webView] instead.
2313
2314 === WebKit-521.7
2315
2316 2006-02-11  Maciej Stachowiak  <mjs@apple.com>
2317
2318         Reviewed by Hyatt.
2319         
2320         - factor WebArchive creation code out of other classes into new WebArchiver
2321         http://bugzilla.opendarwin.org/show_bug.cgi?id=7208
2322
2323         * DOM/WebDOMOperations.m:
2324         (-[DOMNode webArchive]):
2325         (-[DOMRange webArchive]):
2326         * WebKit.xcodeproj/project.pbxproj:
2327         * WebView/WebArchiver.h: Added.
2328         * WebView/WebArchiver.m: Added.
2329         (+[WebArchiver _subframeArchivesForFrame:]):
2330         (+[WebArchiver archiveFrame:]):
2331         (+[WebArchiver _archiveCurrentStateForFrame:]):
2332         (+[WebArchiver _archiveWithMarkupString:fromFrame:nodes:]):
2333         (+[WebArchiver archiveRange:]):
2334         (+[WebArchiver archiveNode:]):
2335         (+[WebArchiver archiveSelectionInFrame:]):
2336         * WebView/WebDataSource.m:
2337         (-[WebDataSource webArchive]):
2338         * WebView/WebDataSourcePrivate.h:
2339         * WebView/WebHTMLView.m:
2340         (-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]):
2341         (-[WebHTMLView _writeSelectionToPasteboard:]):
2342         * WebView/WebHTMLViewPrivate.h:
2343
2344 2006-02-11  Darin Adler  <darin@apple.com>
2345
2346         * English.lproj/StringsNotToBeLocalized.txt: Updated paths for recent changes in directory structure.
2347
2348 2006-02-11  David Kilzer  <ddkilzer@kilzer.net>
2349
2350         Reviewed by John Sullivan.
2351
2352         - Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7171
2353         No description in WebKitErrors.m for WebKitErrorPlugInWillHandleLoad
2354
2355         * English.lproj/Localizable.strings: Added new UI_STRING().
2356         * Misc/WebKitErrors.m: Added #define for description.
2357         (registerErrors): Added dictionary entry.
2358
2359 2006-02-09  Tim Omernick  <timo@apple.com>
2360
2361         Reviewed by Tim Hatcher.
2362
2363         <rdar://problem/4153419> CrashTracer: 576 crashes in Safari at com.apple.WebKit: NPN_DestroyStream + 56
2364
2365         I never could reproduce this crasher, which seems to be caused by the Speed Download plugin.  However,
2366         I did find a way to make the affected code more bulletproof for those who are experiencing the crash.
2367         
2368         * Plugins/WebBaseNetscapePluginStream.h:
2369         Keep a WebBaseNetscapePluginView instead of the WebNetscapePluginPackage, since the plugin view could
2370         potentially be deallocated before the stream finishes loading.
2371         * Plugins/WebBaseNetscapePluginStream.m:
2372         (-[WebBaseNetscapePluginStream _pluginCancelledConnectionError]):
2373         Use pluginView instead of plugin.
2374         (-[WebBaseNetscapePluginStream dealloc]):
2375         Assert that the plugin instance has been nulled out, since that's now part of the stream's teardown
2376         phase.
2377         Release pluginView instead of plugin.
2378         (-[WebBaseNetscapePluginStream setPluginPointer:]):
2379         Retain the plugin view instead of the plugin package, since the plugin view could be deallocated while
2380         the stream is running.
2381         This method now accepts a NULL argument so that we can easily clear out the pluginView backpointer
2382         (and other ivars derived from it).
2383         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]):
2384         Use pluginView instead of plugin.
2385         (-[WebBaseNetscapePluginStream _destroyStream]):
2386         ditto
2387         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
2388         ditto
2389         (-[WebBaseNetscapePluginStream cancelLoadAndDestroyStreamWithError]):
2390         Set the plugin instance to NULL, so that the pluginView backpointer is released.  This method is called
2391         for every plugin view's stream when the plugin view is stopped/destroyed.
2392         (-[WebBaseNetscapePluginStream _deliverData]):
2393         Use pluginView instead of plugin.
2394
2395 == Rolled over to ChangeLog-2006-02-09 ==