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