WebCore:
[WebKit-https.git] / WebKit / ChangeLog
1 2006-08-31  Adele Peterson  <adele@apple.com>
2
3         Reviewed by John Sullivan.
4
5         Removed wkSecureEventInput and wkSetSecureEventInput, since this can be done with API.
6
7         * WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface):
8
9 2006-08-31  John Sullivan  <sullivan@apple.com>
10
11         Reviewed by Tim Omernick
12         
13         - fixed <rdar://problem/4711200> Loading history would be faster if it bypassed 
14         NSURL API for local files
15
16         * History/WebHistory.m:
17         (-[WebHistoryPrivate _loadHistoryGutsFromURL:savedItemsCount:collectDiscardedItemsInto:error:]):
18         Load file URLs using [NSDictionary dictionaryWithContentsOfFile:]. I also cleaned up some minor
19         style issues in this method, and I removed the support for old NSArray-style history files (which we
20         stopped using before Safari 1.0).
21
22 2006-08-30  Adele Peterson  <adele@apple.com>
23
24         Reviewed by Hyatt.
25
26         WebKit part of fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=10575
27         Enable secure input mode for new password fields
28
29         * WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface):
30
31 2006-08-30  Brady Eidson  <beidson@apple.com>
32
33         Reviewed by John
34
35         <rdar://problem/4707718> Change behavior so if the WebCore::IconDatabase can't open, WebKit releases the bridge and 
36         continues on as if the IconDatabase is disabled.
37  
38         * Misc/WebIconDatabase.m:
39         (-[WebIconDatabase init]): Release the bridge on failure to open
40         * WebCoreSupport/WebIconDatabaseBridge.m:
41         (+[WebIconDatabaseBridge sharedBridgeInstance]): Moved static shared instance out as a global
42         (-[WebIconDatabaseBridge dealloc]): Clear pointer to the shared instance
43
44 2006-08-30  Timothy Hatcher  <timothy@apple.com>
45
46         Reviewed by Darin.
47
48         Simplify the header copies from WebCore and JavaScriptCore.
49         Headers that need to be migrated from the other projects need
50         to be added to MigrateHeaders.make.
51
52         * MigrateHeaders.make: Added.
53         * WebKit.xcodeproj/project.pbxproj:
54
55 2006-08-30  Sam Weinig  <sam.weinig@gmail.com>
56
57         Reviewed by Tim H.
58
59         - patch for http://bugzilla.opendarwin.org/show_bug.cgi?id=10640
60           Auto-generate 10 more Objective-C DOM HTML bindings
61
62         * WebKit.xcodeproj/project.pbxproj:
63
64 2006-08-30  Adele Peterson  <adele@apple.com>
65
66         Reviewed by Darin.
67
68         WebKit part of fix for:
69         http://bugzilla.opendarwin.org/show_bug.cgi?id=10576
70         Disallow copy from new password fields
71
72         * WebView/WebHTMLView.m:
73         (-[WebHTMLView _canCopy]): Now also calls across the bridge to ask if it mayCopy.
74         (-[WebHTMLView _canCut]): Calls _canCopy now.
75         (-[NSArray validateUserInterfaceItem:]): Calls _canCut when validating the "Cut" menu item.
76          This used to call _canDelete (which used to be the same as _canCut), but now _canCut also checks _canCopy.
77
78 2006-08-30  Karl Adam  <karladam@yahoo-inc.com>
79
80         Reviewed by Eric and Tim H.
81
82         Bug 10634: -webView:dragDestinationActionMaskForDraggingInfo: is ignored
83         http://bugzilla.opendarwin.org/show_bug.cgi?id=10634
84         
85         Remove the check for canShowFile: from _web_bestURL: since
86         it shouldn't be concerned with whether or not the view
87         can show the URL, merely return the most appropriate URL.
88
89         * Misc/WebNSPasteboardExtras.m:
90         (-[NSPasteboard _web_bestURL]):
91         * Misc/WebNSViewExtras.m:
92         (-[NSView _web_dragOperationForDraggingInfo:]):
93
94 2006-08-29  Brady Eidson  <beidson@apple.com>
95
96         Reviewed by Kevin Decker (Sarge)
97
98         <rdar://problem/4678414> - New IconDB needs to delete icons when asked
99
100         * Misc/WebIconDatabase.m:
101         (-[WebIconDatabase removeAllIcons]): Call through to WebCore to remove icons, then send notification
102
103 2006-08-29  Brady Eidson  <beidson@apple.com>
104
105         Reviewed by Alice
106
107         Added a truth value check for to setIconURL:forURL so WebKit can avoid sending a notification
108         This is a win on the iBench
109
110         * Misc/WebIconDatabase.m:
111         (-[WebIconDatabase _setIconURL:forURL:]):
112
113 2006-08-29  Brady Eidson  <beidson@apple.com>
114
115         Reviewed by Tim Hatchers rubber stamp
116
117         Removed some accidentally left-in console spew during the conversion to the new DB
118  
119         * Misc/WebIconDatabase.m:
120         (objectFromPathForKey): Nuked some NSLogs
121
122 2006-08-29  Tim Omernick  <timo@apple.com>
123
124         Reviewed by Darin Adler.
125
126         <rdar://problem/4688618> REGRESSION(10.4.7-9A241): JMol java applet fails in Safari not Firefox
127
128         No layout test for now because Java doesn't work in DumpRenderTree.
129
130         * Plugins/WebPluginDatabase.m:
131         (-[WebPluginDatabase refresh]):
132         Add each plug-in MIME type to registeredMIMETypes, even if we don't register a document view class for the
133         MIME type.  This fixes -[WebPluginDatabase isMIMETypeRegistered:] and thus fallback content for Java applets
134         (we were always rendering fallback content, if any, for Java applets).
135
136 2006-08-29  Sam Weinig  <sam.weinig@gmail.com>
137
138         Reviewed by Tim H.
139
140         - patch for http://bugzilla.opendarwin.org/show_bug.cgi?id=10628
141           Auto-generate the remaining Objective-C DOM bindings
142
143           Auto-generates DOMHTMLCollection, DOMHTMLElement, DOMHTMLFormElement,
144           and DOMHTMLOptionsCollection.
145
146         * WebKit.xcodeproj/project.pbxproj:
147
148 2006-08-28  Brady Eidson  <beidson@apple.com>
149
150         Reviewed by Darin
151
152         Short of a few small snippets that still need to be pushed to WebCore, this
153         is a final prune of WebIconDatabase.  WebFileDatabase and WebLRUFileList are gone
154         and the small remaining snippets of WebFileDatabase code that were still important
155         are now in static functions in WebIconDatabase.m
156
157         * Loader/WebIconLoader.m:
158         (-[WebIconLoader didFinishLoading]): Removed the flag
159         * Misc/WebFileDatabase.h: Removed.
160         * Misc/WebFileDatabase.m: Removed.
161         * Misc/WebIconDatabase.m:
162         (+[WebIconDatabase sharedIconDatabase]):
163         (-[WebIconDatabase init]):
164         (-[WebIconDatabase iconForURL:withSize:cache:]):
165         (-[WebIconDatabase iconURLForURL:]):
166         (-[WebIconDatabase defaultIconWithSize:]):
167         (-[WebIconDatabase retainIconForURL:]):
168         (-[WebIconDatabase releaseIconForURL:]):
169         (-[WebIconDatabase _isEnabled]):
170         (-[WebIconDatabase _setIconData:forIconURL:]):
171         (-[WebIconDatabase _setHaveNoIconForIconURL:]):
172         (-[WebIconDatabase _setIconURL:forURL:]):
173         (-[WebIconDatabase _hasEntryForIconURL:]):
174         (-[WebIconDatabase _applicationWillTerminate:]):
175         (-[WebIconDatabase _resetCachedWebPreferences:]):
176         (uniqueFilePathForKey): Added from WebFileDatabase
177         (objectFromPathForKey): Added from WebFileDatabase
178         (iconDataFromPathForIconURL):
179         (-[WebIconDatabase _convertToWebCoreFormat]): Make use of static functions and local variables
180           instead of using WebFileDatabase and WebIconDatabase variables that are now obsolete
181         * Misc/WebIconDatabasePrivate.h: Removed alot of obsoleted members
182         * Misc/WebLRUFileList.h: Removed.
183         * Misc/WebLRUFileList.m: Removed.
184         * WebKit.xcodeproj/project.pbxproj: Deleted 4 files
185         * WebKitPrefix.h: Removed ICONDEBUG
186
187 2006-08-28  Tim Omernick  <timo@apple.com>
188
189         Reviewed by Darin Adler.
190
191         * Plugins/WebBaseNetscapePluginView.m:
192         (-[WebBaseNetscapePluginView createPluginScriptableObject]):
193         Removed a bogus typecast.
194
195 2006-08-28  Tim Omernick  <timo@apple.com>
196
197         Reviewed by John Sullivan.
198
199         Part of <rdar://problem/4481553> NetscapeMoviePlugIn example code scripting doesn't work in Firefox (4319)
200         <http://bugzilla.opendarwin.org/show_bug.cgi?id=4319>: NetscapeMoviePlugIn example code scripting doesn't work
201         in Firefox
202
203         * Plugins/WebBaseNetscapePluginView.h:
204         * Plugins/WebBaseNetscapePluginView.m:
205         (-[WebBaseNetscapePluginView createPluginScriptableObject]):
206         Renamed this method (see corresponding WebCore ChangeLog entry for an explanation).
207         Style changes.
208
209 2006-08-28  Brady Eidson  <beidson@apple.com>
210
211         Reviewed by Tim Hatcher's rubberstamp
212
213         Rolled out my last change (16070 - pruning WebFileDatabase code) as it caused a difficult-to-track down
214         failure in layout tests on a release build.
215
216         * Misc/WebFileDatabase.h:
217         * Misc/WebFileDatabase.m:
218         (+[WebFileDatabaseOp opWithCode:key:object:]):
219         (-[WebFileDatabaseOp initWithCode:key:object:]):
220         (-[WebFileDatabaseOp opcode]):
221         (-[WebFileDatabaseOp key]):
222         (-[WebFileDatabaseOp object]):
223         (-[WebFileDatabaseOp perform:]):
224         (-[WebFileDatabaseOp dealloc]):
225         (SetThreadPriority):
226         (-[WebFileDatabase _createLRUList:]):
227         (-[WebFileDatabase _truncateToSizeLimit:]):
228         (+[WebFileDatabase _syncLoop:]):
229         (databaseInit):
230         (-[WebFileDatabase setTimer]):
231         (-[WebFileDatabase setObject:forKey:]):
232         (-[WebFileDatabase removeObjectForKey:]):
233         (-[WebFileDatabase removeAllObjects]):
234         (-[WebFileDatabase objectForKey:]):
235         (-[WebFileDatabase performSetObject:forKey:]):
236         (-[WebFileDatabase performRemoveObjectForKey:]):
237         (-[WebFileDatabase open]):
238         (-[WebFileDatabase close]):
239         (-[WebFileDatabase lazySync:]):
240         (-[WebFileDatabase sync]):
241         (-[WebFileDatabase sizeLimit]):
242         (-[WebFileDatabase count]):
243         (-[WebFileDatabase usage]):
244         (-[WebFileDatabase setSizeLimit:]):
245         * Misc/WebIconDatabase.m:
246         (-[WebIconDatabase _createFileDatabase]):
247         (-[WebIconDatabase _loadIconDictionaries]):
248         * WebKit.xcodeproj/project.pbxproj:
249
250 2006-08-28  Darin Adler  <darin@apple.com>
251
252         Reviewed by Tim Hatcher.
253
254         * WebInspector/webInspector/inspector.js: Add "resize: none" to the list of
255         default values for CSS properties so it will be omitted from most displays
256         of computed style.
257
258 2006-08-28  Brady Eidson  <beidson@apple.com>
259
260         Reviewed by Maciej
261
262         Major prune of unnecessary WebFileDatabase code.  In the end, what
263         useful code that remains in WebFileDatabase will likely be moved directly
264         into WebIconDatabase
265
266         * Misc/WebFileDatabase.h:
267         * Misc/WebFileDatabase.m:
268         (-[WebFileDatabase initWithPath:]):
269         (-[WebFileDatabase objectForKey:]):
270         (-[WebFileDatabase open]):
271         (-[WebFileDatabase close]):
272         * Misc/WebIconDatabase.m:
273         (-[WebIconDatabase _createFileDatabase]):
274         (-[WebIconDatabase _loadIconDictionaries]):
275         * Misc/WebLRUFileList.h: Removed.
276         * Misc/WebLRUFileList.m: Removed.
277         * WebKit.xcodeproj/project.pbxproj:
278
279 2006-08-27  Sam Weinig  <sam.weinig@gmail.com>
280
281         Reviewed by Tim H.
282
283         - patch for http://bugzilla.opendarwin.org/show_bug.cgi?id=4624
284           WebCore needs autogenerated Obj-C DOM bindings
285
286           First round of auto-generated Objective C DOM bindings, starting
287           with the DOM Core.
288
289         * WebKit.xcodeproj/project.pbxproj:
290
291 2006-08-25  Brady Eidson  <beidson@apple.com>
292
293         Reviewed by Tim Hatcher
294
295         Fixed up some leaks on [WebIconDatabase init]
296
297         * Misc/WebIconDatabase.m:
298         (-[WebIconDatabase init]):
299
300 2006-08-24  Timothy Hatcher  <timothy@apple.com>
301
302         Reviewed by Darin.
303
304         * WebView/WebFrame.m:
305         (-[WebFrame _updateBackground]): reworded the comment about scroll view and setDrawsBackground:YES
306         * WebView/WebView.m:
307         (-[WebViewPrivate dealloc]): release the background color
308
309 2006-08-24  Timothy Hatcher  <timothy@apple.com>
310
311         Reviewed by Hyatt.
312
313         WebView API to allow changing the background color that draws under transparent page backgrounds.
314
315         * WebView/WebFrame.m:
316         (-[WebFrame _makeDocumentView]):
317         (-[WebFrame _updateBackground]):
318         * WebView/WebFrameInternal.h:
319         * WebView/WebFrameView.m:
320         (-[WebFrameView drawRect:]):
321         * WebView/WebView.m:
322         (-[WebView setBackgroundColor:]):
323         (-[WebView backgroundColor]):
324         (-[WebView _commonInitializationWithFrameName:groupName:]):
325         (-[WebView setDrawsBackground:]):
326         * WebView/WebViewPrivate.h:
327
328 2006-08-24  Timothy Hatcher  <timothy@apple.com>
329
330         Reviewed by Darin.
331
332         Fix for Mail stationary. Selecting a stationary item would cause this exception.
333         *** -[WebSubresourceLoader copyWithZone:]: selector not recognized
334         Uncaught exception - *** -[WebSubresourceLoader copyWithZone:]: selector not recognized
335
336         * Loader/WebFrameLoader.m:
337         (-[WebFrameLoader willUseArchiveForRequest:originalURL:loader:]):
338         Use _webkit_setObject:forUncopiedKey: when addign the resource to pendingArchivedResources.
339
340 2006-08-23  Maciej Stachowiak  <mjs@apple.com>
341
342         Reviewed by Adele.
343         
344         - fix assertion which I accidentally changed to one that sometimes fails
345         http://bugzilla.opendarwin.org/show_bug.cgi?id=10531
346         
347         * Loader/WebDocumentLoadState.m:
348         (-[WebDocumentLoadState dealloc]):
349         * WebView/WebDataSource.m:
350         (-[WebDataSourcePrivate dealloc]):
351         (-[WebDataSource dealloc]):
352
353 2006-08-23  Maciej Stachowiak  <mjs@apple.com>
354
355         Reviewed by Brady.
356         
357         - move WebFrame code that creates WebDataSources down to WebFrameLoader, in preparation
358         for WebFrameLoader just holding on to WebDocumentLoadState
359
360         * Loader/WebFrameLoader.h:
361         * Loader/WebFrameLoader.m:
362         (-[WebFrameLoader _loadRequest:archive:]):
363         (-[WebFrameLoader _loadRequest:triggeringAction:loadType:formState:]):
364         (-[WebFrameLoader _reloadAllowingStaleDataWithOverrideEncoding:]):
365         (-[WebFrameLoader reload]):
366         * WebView/WebFrame.m:
367         (-[WebFrame _loadItem:withLoadType:]):
368         (-[WebFrame _continueLoadRequestAfterNewWindowPolicy:frameName:formState:]):
369         (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
370         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
371         (-[WebFrame _shouldReloadToHandleUnreachableURLFromRequest:]):
372         (-[WebFrame loadRequest:]):
373         (-[WebFrame loadArchive:]):
374         (-[WebFrame reload]):
375         * WebView/WebFrameInternal.h:
376         * WebView/WebFramePrivate.h:
377         * WebView/WebView.m:
378         (-[WebView setCustomTextEncodingName:]):
379
380 2006-08-23  Brady Eidson  <beidson@apple.com>
381
382         Reviewed by Maciej
383
384         First pass at pruning unused WebIconDatabase code.  Focus on removing methods that simply
385         have no place in the new DB at all.  A few renames and a few important FIXMEs result, but no
386         functionality changes.
387
388         * Loader/WebIconLoader.m:
389         (-[WebIconLoader didFinishLoading]): Call to WebIconDatabase instead of directly to the bridge
390         * Misc/WebIconDatabase.h:
391         * Misc/WebIconDatabase.m:
392         (-[WebIconDatabase init]):
393         (-[WebIconDatabase iconForURL:withSize:cache:]):
394         (-[WebIconDatabase iconURLForURL:]):
395         (-[WebIconDatabase defaultIconWithSize:]):
396         (-[WebIconDatabase retainIconForURL:]):
397         (-[WebIconDatabase releaseIconForURL:]):
398         (-[WebIconDatabase removeAllIcons]):
399         (-[WebIconDatabase _setIconData:forIconURL:]):
400         (-[WebIconDatabase _setHaveNoIconForIconURL:]):
401         (-[WebIconDatabase _setIconURL:forURL:]):
402         (-[WebIconDatabase _hasEntryForIconURL:]):
403         (-[WebIconDatabase _applicationWillTerminate:]):
404         (-[WebIconDatabase _resetCachedWebPreferences:]):
405         * Misc/WebIconDatabasePrivate.h: Changed setIcon: to setIconData:
406
407 2006-08-23  Maciej Stachowiak  <mjs@apple.com>
408
409         Reviewed by Adele.
410         
411         - started factoring most of the guts of WebDataSource into a new class
412         
413         WebDocumentLoadState is decoupled from the rest of WebKit and will
414         be moved down to WebCore. I only moved one of the data fields of
415         WebDataSource for now.
416
417         * Loader/WebDocumentLoadState.h: Added.
418         * Loader/WebDocumentLoadState.m: Added.
419         (-[WebDocumentLoadState initWithRequest:]): New class.
420         (-[WebDocumentLoadState dealloc]):
421         (-[WebDocumentLoadState setFrameLoader:]):
422         (-[WebDocumentLoadState setMainResourceData:]):
423         (-[WebDocumentLoadState mainResourceData]):
424         * Loader/WebFrameLoader.m:
425         (-[WebFrameLoader _setDataSource:]): Remove redundant _setWebFrame: call,
426         it would have been called already by this point.
427         (-[WebFrameLoader _setProvisionalDataSource:]): ditto.
428         * WebKit.xcodeproj/project.pbxproj:
429         * WebView/WebDataSource.m:
430         (-[WebDataSourcePrivate dealloc]):
431         (-[WebDataSource _setWebFrame:]):
432         (-[WebDataSource _setPrimaryLoadComplete:]):
433         (-[WebDataSource initWithRequest:]):
434         (-[WebDataSource data]):
435
436 2006-08-23  Maciej Stachowiak  <mjs@apple.com>
437
438         Reviewed by Adele.
439         
440         - refactoring of WebDataSource in preparation for moving a bunch of it to a new class
441         
442         - minimize WebDataSourceInternal.h to be only methods called from outside WebDataSource
443         - reduce Private category implementation to be only the SPI methods
444         - make new Internal and FileInternal categories which contain the
445         remainder (depending on whether they are called from outside of
446         WebDataSource)
447
448         * WebView/WebDataSource.m:
449         (-[WebDataSource _setMainDocumentError:]):
450         (addTypesFromClass):
451         (+[WebDataSource _representationClassForMIMEType:]):
452         (-[WebDataSource _commitIfReady]):
453         (-[WebDataSource _commitLoadWithData:]):
454         (-[WebDataSource _doesProgressiveLoadWithMIMEType:]):
455         (-[WebDataSource _addResponse:]):
456         (-[WebDataSource _revertToProvisionalState]):
457         (-[WebDataSource _mainDocumentError]):
458         (-[WebDataSource _addSubframeArchives:]):
459         (-[WebDataSource _fileWrapperForURL:]):
460         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
461         (-[WebDataSource _decidePolicyForMIMEType:decisionListener:]):
462         (-[WebDataSource _finishedLoading]):
463         (-[WebDataSource _setResponse:]):
464         (-[WebDataSource _setRequest:]):
465         (-[WebDataSource _setupForReplaceByMIMEType:]):
466         (-[WebDataSource _receivedMainResourceError:complete:]):
467         (-[WebDataSource _mainReceivedError:complete:]):
468         (-[WebDataSource _defersCallbacks]):
469         (-[WebDataSource _downloadWithLoadingConnection:request:response:proxy:]):
470         (-[WebDataSource _didFailLoadingWithError:forResource:]):
471         (-[WebDataSource _didFinishLoadingForResource:]):
472         (-[WebDataSource _didReceiveData:contentLength:forResource:]):
473         (-[WebDataSource _didReceiveResponse:forResource:]):
474         (-[WebDataSource _didCancelAuthenticationChallenge:forResource:]):
475         (-[WebDataSource _didReceiveAuthenticationChallenge:forResource:]):
476         (-[WebDataSource _willSendRequest:forResource:redirectResponse:]):
477         (-[WebDataSource _identifierForInitialRequest:]):
478         (-[WebDataSource _archivedSubresourceForURL:]):
479         (-[WebDataSource _startLoading]):
480         (-[WebDataSource _stopRecordingResponses]):
481         (-[WebDataSource _loadingStartedTime]):
482         (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]):
483         (-[WebDataSource _documentFragmentWithArchive:]):
484         (-[WebDataSource _documentFragmentWithImageResource:]):
485         (-[WebDataSource _imageElementWithImageResource:]):
486         (-[WebDataSource _title]):
487         (-[WebDataSource _isStopping]):
488         (-[WebDataSource _setWebFrame:]):
489         (-[WebDataSource _URL]):
490         (-[WebDataSource _loadFromPageCache:]):
491         (-[WebDataSource _popSubframeArchiveWithName:]):
492         (-[WebDataSource _setIsClientRedirect:]):
493         (-[WebDataSource _setURL:]):
494         (-[WebDataSource _setLastCheckedRequest:]):
495         (-[WebDataSource _defersCallbacksChanged]):
496         (-[WebDataSource _lastCheckedRequest]):
497         (-[WebDataSource _stopLoading]):
498         (-[WebDataSource _bridge]):
499         (-[WebDataSource _webView]):
500         (-[WebDataSource _triggeringAction]):
501         (-[WebDataSource _setTriggeringAction:]):
502         (-[WebDataSource __adoptRequest:]):
503         (-[WebDataSource _isDocumentHTML]):
504         (-[WebDataSource _stopLoadingWithError:]):
505         (-[WebDataSource _setPrimaryLoadComplete:]):
506         (-[WebDataSource _responses]):
507         (-[WebDataSource _makeRepresentation]):
508         (-[WebDataSource _isClientRedirect]):
509         (-[WebDataSource _originalRequest]):
510         (-[WebDataSource _URLForHistory]):
511         (-[WebDataSource _addToUnarchiveState:]):
512         (-[WebDataSource _setOverrideEncoding:]):
513         (-[WebDataSource _setIconURL:]):
514         (-[WebDataSource _setIconURL:withType:]):
515         (-[WebDataSource _overrideEncoding]):
516         (-[WebDataSource _setTitle:]):
517         * WebView/WebDataSourceInternal.h:
518
519 2006-08-23  Brady Eidson  <beidson@apple.com>
520
521         Reviewed by John Sullivan
522
523         /me crosses fingers
524         Flip the switch to the new Icon Database
525         Massive code pruning is coming up
526
527         * WebKitPrefix.h: Flipped the switch
528
529 2006-08-23  Brady Eidson  <beidson@apple.com>
530
531         Reviewed by Beth
532         Since I just pushed the default URL icon from WebKit to WebCore, but
533         WebKit was still using its version of the default icon, this patch makes it
534         use the WebCore version
535
536         * Misc/WebIconDatabase.m:
537         (-[WebIconDatabase defaultIconWithSize:]):
538
539 2006-08-22  Maciej Stachowiak  <mjs@apple.com>
540
541         Reviewed by Brady.
542         
543         - remove "loading" flag from WebDataSource and code that manages it; it is redundat.
544
545         * Loader/WebFrameLoader.m:
546         (-[WebFrameLoader addPlugInStreamLoader:]):
547         (-[WebFrameLoader removePlugInStreamLoader:]):
548         (-[WebFrameLoader addSubresourceLoader:]):
549         (-[WebFrameLoader removeSubresourceLoader:]):
550         * WebView/WebDataSource.m:
551         (-[WebDataSourcePrivate dealloc]):
552         (-[WebDataSource _setPrimaryLoadComplete:]):
553         (-[WebDataSource _stopLoading]):
554         (-[WebDataSource _prepareForLoadStart]):
555         (-[WebDataSource _startLoading]):
556         (-[WebDataSource isLoading]):
557         * WebView/WebDataSourceInternal.h:
558
559 2006-08-22  Maciej Stachowiak  <mjs@apple.com>
560
561         Reviewed by Eric.
562
563         <rdar://problem/4683948> REGRESSION: Assertion failure in [FrameProgressEntry addChild:forDataSource:] (fandango.com)
564         
565         * Loader/WebFrameLoader.m:
566         (-[WebFrameLoader addSubresourceLoader:]): Add a WebKit-level assertion that should fire when this bad
567         situation occurs.
568         * Loader/WebSubresourceLoader.m:
569         (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forFrameLoader:]): Prevent
570         the situation from occuring.
571
572 2006-08-22  Maciej Stachowiak  <mjs@apple.com>
573
574         Reviewed by Anders.
575         
576         - pull more WebDataSource code into WebFrameLoader
577         - make WebMainResourceLoader not depend on WebKit or on SPI
578
579         * Loader/WebFrameLoader.h:
580         * Loader/WebFrameLoader.m:
581         (-[WebFrameLoader _downloadWithLoadingConnection:request:response:proxy:]):
582         (-[WebFrameLoader _updateIconDatabaseWithURL:]):
583         (-[WebFrameLoader _notifyIconChanged:]):
584         (-[WebFrameLoader _iconLoaderReceivedPageIcon:]):
585         (-[WebFrameLoader _checkNavigationPolicyForRequest:andCall:withSelector:]):
586         (-[WebFrameLoader _checkContentPolicyForMIMEType:andCall:withSelector:]):
587         (-[WebFrameLoader cancelContentPolicy]):
588         * Loader/WebIconLoader.m:
589         (-[WebIconLoader didFinishLoading]):
590         * Loader/WebLoader.m:
591         (-[NSURLProtocol loadWithRequest:]):
592         (-[NSURLProtocol setDefersCallbacks:]):
593         * Loader/WebMainResourceLoader.h:
594         * Loader/WebMainResourceLoader.m:
595         (-[WebMainResourceLoader initWithFrameLoader:]):
596         (-[WebMainResourceLoader dealloc]):
597         (-[WebMainResourceLoader cancelWithError:]):
598         (-[WebMainResourceLoader continueAfterNavigationPolicy:formState:]):
599         (-[WebMainResourceLoader willSendRequest:redirectResponse:]):
600         (-[WebMainResourceLoader continueAfterContentPolicy:]):
601         (-[WebMainResourceLoader checkContentPolicy]):
602         (-[WebMainResourceLoader didReceiveResponse:]):
603         * Plugins/WebPluginContainerCheck.m:
604         * WebCoreSupport/WebSystemInterface.m:
605         (InitWebCoreSystemInterface):
606         * WebView/WebDataSource.m:
607         (-[WebDataSource _loadIcon]):
608         (-[WebDataSource _cancelledError]):
609         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
610         (+[WebDataSource _representationClassForMIMEType:]):
611         (-[WebDataSource _commitLoadWithData:]):
612         (-[WebDataSource _isDocumentHTML]):
613         * WebView/WebDataSourceInternal.h:
614         * WebView/WebFramePrivate.h:
615         * WebView/WebPolicyDelegate.m:
616         * WebView/WebPolicyDelegatePrivate.h:
617
618 2006-08-21  Maciej Stachowiak  <mjs@apple.com>
619
620         Reviewed by Brady.
621         
622         - move more code from WebDataSource to WebFrameLoader
623         
624         Also marked a few more methods in WebDataSource as likely MOVABLE in a future round, since they do not
625         use any of WebDataSource's private data.
626
627         * Loader/WebFrameLoader.h:
628         * Loader/WebFrameLoader.m:
629         (-[WebFrameLoader addPlugInStreamLoader:]):
630         (-[WebFrameLoader removePlugInStreamLoader:]):
631         (-[WebFrameLoader addSubresourceLoader:]):
632         (-[WebFrameLoader removeSubresourceLoader:]):
633         (-[WebFrameLoader _didReceiveAuthenticationChallenge:forResource:]):
634         (-[WebFrameLoader _didCancelAuthenticationChallenge:forResource:]):
635         (-[WebFrameLoader _didReceiveResponse:forResource:]):
636         (-[WebFrameLoader _didReceiveData:contentLength:forResource:]):
637         (-[WebFrameLoader _didFinishLoadingForResource:]):
638         (-[WebFrameLoader _didFailLoadingWithError:forResource:]):
639         (-[WebFrameLoader _privateBrowsingEnabled]):
640         (-[WebFrameLoader _finishedLoadingResource]):
641         (-[WebFrameLoader _receivedError:]):
642         (-[WebFrameLoader _finishedLoading]):
643         * Loader/WebMainResourceLoader.m:
644         (-[WebMainResourceLoader didReceiveData:lengthReceived:allAtOnce:]):
645         (-[WebMainResourceLoader didFinishLoading]):
646         * Loader/WebNetscapePlugInStreamLoader.m:
647         (-[WebNetscapePlugInStreamLoader didFinishLoading]):
648         (-[WebNetscapePlugInStreamLoader didFailWithError:]):
649         (-[WebNetscapePlugInStreamLoader cancelWithError:]):
650         * Loader/WebSubresourceLoader.m:
651         (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forFrameLoader:]):
652         (-[WebSubresourceLoader signalFinish]):
653         (-[WebSubresourceLoader didFailWithError:]):
654         (-[WebSubresourceLoader cancel]):
655         * Plugins/WebNetscapePluginStream.m:
656         (-[WebNetscapePluginStream start]):
657         * WebView/WebDataSource.m:
658         (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]):
659         (-[WebDataSource _updateIconDatabaseWithURL:]):
660         (-[WebDataSource _loadIcon]):
661         (-[WebDataSource _setPrimaryLoadComplete:]):
662         (-[WebDataSource _cancelledError]):
663         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
664         (+[WebDataSource _representationClassForMIMEType:]):
665         (-[WebDataSource _commitLoadWithData:]):
666         (-[WebDataSource _receivedMainResourceError:complete:]):
667         (-[WebDataSource _iconLoaderReceivedPageIcon:]):
668         (-[WebDataSource _isDocumentHTML]):
669         * WebView/WebDataSourceInternal.h:
670
671 2006-08-21  Brady Eidson  <beidson@apple.com>
672
673         Reviewed by John
674
675         Quick ICONDEBUG flag fix
676
677         * Misc/WebIconDatabase.m:
678         (-[WebIconDatabase _applicationWillTerminate:]):
679
680 2006-08-21  Brady Eidson  <beidson@apple.com>
681
682         Reviewed by Anders
683
684         -Renamed an internal only method for clarity
685         -Tweaked WebDataSource for notification purposes with the new expiring icons
686         -Fixed a bug with the ICONDEBUG flag
687
688         * Misc/WebIconDatabase.m:
689         (-[WebIconDatabase init]):
690         (-[WebIconDatabase iconForURL:withSize:cache:]): #ifdef bug fixed
691         (-[WebIconDatabase _hasEntryForIconURL:]): Renamed for clarity
692         * Misc/WebIconDatabasePrivate.h:
693         * WebView/WebDataSource.m:
694         (-[WebDataSource _updateIconDatabaseWithURL:]):
695         (-[WebDataSource _notifyIconChanged:]):
696         (-[WebDataSource _loadIcon]):
697         (-[WebDataSource _iconLoaderReceivedPageIcon:]):
698
699 2006-08-17  Maciej Stachowiak  <mjs@apple.com>
700
701         Reviewed by Brady.
702         
703         - pull a bit of WebDataSource code into WebFrameLoader
704
705         * Loader/WebFrameLoader.m:
706         (-[WebFrameLoader _receivedError:]):
707         (-[WebFrameLoader webFrame]):
708         (-[WebFrameLoader _handleFallbackContent]):
709         (+[WebFrameLoader _canShowMIMEType:]):
710         (+[WebFrameLoader _representationExistsForURLScheme:]):
711         (+[WebFrameLoader _generatedMIMETypeForURLScheme:]):
712         * WebView/WebDataSource.m:
713         * WebView/WebDataSourceInternal.h:
714
715 2006-08-17  Timothy Hatcher  <timothy@apple.com>
716
717         Reviewed by Kevin Decker.
718
719         <rdar://problem/4606857> WebKit: WebPreferencesChangedNotification not exported in 64-bit
720
721         * WebKit.LP64.exp:
722
723 2006-08-17  Timothy Hatcher  <timothy@apple.com>
724
725         Reviewed by Kevin Decker.
726
727         <rdar://problem/4633896> -[WebView close] should clear all delegates and call setHostWindow:nil
728         <rdar://problem/4649759> Crash when selecting View Source menu using Chinese (-[WebView _close])
729
730         Check to make sure _private is not null. A WebView can be dealloced before _private is setup.
731         Set the _private->closed flag at the beginning of _close to prevent reentry.
732         Set the host window and all the delegates to nil in _close.
733
734         * WebView/WebView.m:
735         (-[WebView _close]):
736
737 2006-08-16  Brady Eidson  <beidson@apple.com>
738
739         Reviewed by Maciej
740
741         * Misc/WebIconDatabase.m: Pruned unused method
742         * Misc/WebIconDatabasePrivate.h: Ditto
743
744
745 2006-08-15  Maciej Stachowiak  <mjs@apple.com>
746
747         Reviewed by Adele (preliminary version) and later by Kevin.
748         
749         - remove most WebKit dependencies from WebMainResourceLoader.
750
751         * Loader/WebFrameLoader.h:
752         * Loader/WebFrameLoader.m:
753         (-[WebFrameLoader cannotShowMIMETypeForURL:]):
754         (-[WebFrameLoader interruptForPolicyChangeErrorWithRequest:]):
755         (-[WebFrameLoader isHostedByObjectElement]):
756         (-[WebFrameLoader isLoadingMainFrame]):
757         (+[WebFrameLoader _canShowMIMEType:]):
758         (+[WebFrameLoader _representationExistsForURLScheme:]):
759         (+[WebFrameLoader _generatedMIMETypeForURLScheme:]):
760         * Loader/WebMainResourceLoader.h:
761         * Loader/WebMainResourceLoader.m:
762         (-[WebMainResourceLoader interruptForPolicyChangeError]):
763         (-[WebMainResourceLoader willSendRequest:redirectResponse:]):
764         (isCaseInsensitiveEqual):
765         (shouldLoadAsEmptyDocument):
766         (-[WebMainResourceLoader continueAfterContentPolicy:response:]):
767         (-[WebMainResourceLoader didReceiveResponse:]):
768         (-[WebMainResourceLoader didReceiveData:lengthReceived:allAtOnce:]):
769         (-[WebMainResourceLoader didFinishLoading]):
770         (-[WebMainResourceLoader loadWithRequestNow:]):
771         (-[WebMainResourceLoader loadWithRequest:]):
772
773 2006-08-15  Tim Omernick  <timo@apple.com>
774
775         Reviewed by Kevin Decker.
776
777         * Plugins/WebNetscapePluginPackage.m:
778         (-[WebNetscapePluginPackage _unloadWithShutdown:]):
779         Fixed a subtle problem with the 64-bit debug build -- as written, this would LOG() on 64-bit and do nothing on
780         32-bit!
781         * Plugins/WebPluginDatabase.m:
782         (-[WebPluginDatabase _scanForNewPlugins]):
783         Use +[NSMutableSet set] here.
784
785 2006-08-15  Tim Omernick  <timo@apple.com>
786
787         Reviewed by Darin Adler.
788
789         <http://bugzilla.opendarwin.org/show_bug.cgi?id=8980>
790         ASSERTION FAILED: !isLoaded (WebKit/WebKit/Plugins/WebBasePluginPackage.m:228 -[WebBasePluginPackage dealloc])
791
792         <rdar://problem/4526052> intermittent assertion failure in -[WebBasePluginPackage dealloc] running layout tests (8980)
793         
794         * Plugins/WebPluginDatabase.h:
795         * Plugins/WebPluginDatabase.m:
796         (+[WebPluginDatabase installedPlugins]):
797         Observe NSApplicationWillTerminateNotification so we can unload plug-ins on quit.
798         (-[WebPluginDatabase plugins]):
799         'plugins' is now a dictionary.
800         (-[WebPluginDatabase close]):
801         Call new -_removePlugin: method.
802         (-[WebPluginDatabase refresh]):
803         Moved parts of this method out into other methods: -_addPlugin:, -_removePlugin:, and -_scanForNewPlugins.
804         (-[WebPluginDatabase _plugInPaths]):
805         No changes; just moved in file.
806         (-[WebPluginDatabase _addPlugin:]):
807         New method.  Refactored from -refresh.  Adds a plug-in to the database.
808         (-[WebPluginDatabase _removePlugin:]):
809         New method.  Refactored from -refresh.  Remove a plug-in from the database.
810         (-[WebPluginDatabase _scanForNewPlugins]):
811         New method.  Refactored from -refresh.  Returns the list of plug-in packages on disk.
812         (-[WebPluginDatabase _applicationWillTerminate]):
813         New method.  Called when the application terminates.  Closes the plug-in database so that all plug-ins are
814         removed from the DB (and unloaded if necessary).
815
816         * Plugins/WebBasePluginPackage.h:
817         * Plugins/WebBasePluginPackage.m:
818         (-[WebBasePluginPackage initWithPath:]):
819         Try to create the NSBundle first, so if the file is not a valid bundle we bail out early.  This
820         avoids some stat()s and allocations during the plug-in refresh process.
821         (-[WebBasePluginPackage isLoaded]):
822         Removed.
823         (-[WebBasePluginPackage load]):
824         Base class for plug-in packages now always loads "successfully".
825         (-[WebBasePluginPackage dealloc]):
826         Removed this assertion.  The base plug-in package class has no concept of
827         "unloading".
828         (-[WebBasePluginPackage finalize]):
829         ditto.
830         (-[WebBasePluginPackage wasRemovedFromPluginDatabase:]):
831         Moved code to unload plug-in package to WebNetscapePluginPackage.  Not all plug-in
832         packages can be "unloaded".
833
834         * Plugins/WebNetscapePluginPackage.h:
835         * Plugins/WebNetscapePluginPackage.m:
836         (-[WebNetscapePluginPackage _unloadWithShutdown:]):
837         Combined old -unload and -unloadWithoutShutdown methods into this new one.
838         (-[WebNetscapePluginPackage initWithPath:]):
839         Call new unload method.
840         (-[WebNetscapePluginPackage load]):
841         ditto
842         (-[WebNetscapePluginPackage wasRemovedFromPluginDatabase:]):
843         ditto
844         (-[WebNetscapePluginPackage open]):
845         New method.  Called when a plug-in instance starts running.
846         (-[WebNetscapePluginPackage close]):
847         New method.  Called when a plug-in instance stops running.  When all plug-in instances
848         close the plug-in package, and the plug-in package is removed from the database, the plug-in
849         is unloaded.
850
851         * Plugins/WebPluginPackage.m:
852         (-[WebPluginPackage initWithPath:]):
853         (-[WebPluginPackage load]):
854         Made this a bit more efficient by checking if the bundle is already loaded.
855         (-[WebBasePluginPackage unload]):
856         Removed.
857         (-[WebBasePluginPackage isLoaded]):
858         Removed.
859
860         * Plugins/WebBaseNetscapePluginView.m:
861         (-[WebBaseNetscapePluginView start]):
862         Open the plug-in package so it remains loaded while this instance uses it.
863         (-[WebBaseNetscapePluginView stop]):
864         Close the plug-in package when the plug-in instance is stopped.
865         
866         * Plugins/WebBaseNetscapePluginStream.m:
867         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]):
868         This check is not necessary.  Netscape plug-in packages are never unloaded until all their instances have
869         been stopped, and a Netscape plug-in instance will stop its streams when it is stopped.
870         (-[WebBaseNetscapePluginStream _destroyStream]):
871         ditto
872         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
873         ditto
874         (-[WebBaseNetscapePluginStream _deliverData]):
875         ditto
876
877 2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>
878
879         Reviewed by Tim H.
880
881         Build fix:  DWARF and -gfull are incompatible with symbol separation.
882
883         * WebKit.xcodeproj/project.pbxproj:
884
885 2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>
886
887         Reviewed by Tim H.
888
889         http://bugzilla.opendarwin.org/show_bug.cgi?id=10394
890         Bug 10394: WebKit Release and Production configurations should enable dead code stripping
891
892         * WebKit.xcodeproj/project.pbxproj:
893
894 2006-08-15  Maciej Stachowiak  <mjs@apple.com>
895
896         Reviewed by Anders.
897         
898         - remove WebKit dependencies from WebPlugInStreamLoader via a protocol veil of ignorance
899
900         * Loader/WebNetscapePlugInStreamLoader.h:
901         * Loader/WebNetscapePlugInStreamLoader.m:
902         (-[WebNetscapePlugInStreamLoader initWithDelegate:frameLoader:]):
903         * Loader/WebPlugInStreamLoaderDelegate.h: Added.
904         * Plugins/WebBaseNetscapePluginStream.h:
905         * Plugins/WebNetscapePluginStream.m:
906         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
907         * WebKit.xcodeproj/project.pbxproj:
908
909 2006-08-15  Mark Rowe  <opendarwin.org@bdash.net.nz>
910
911         Reviewed by Tim H.
912
913         http://bugzilla.opendarwin.org/show_bug.cgi?id=10384
914         Bug 10384: Switch to DWARF for Release configuration
915
916         * WebKit.xcodeproj/project.pbxproj:
917
918 2006-08-15  Graham Dennis  <graham.dennis@gmail.com>
919
920         Reviewed by Darin.
921         
922         - patch for http://bugzilla.opendarwin.org/show_bug.cgi?id=10314
923           WebUnarchivingState archivedResourceForURL: doesn't work
924
925         * WebView/WebUnarchivingState.m:
926         (-[WebUnarchivingState archivedResourceForURL:]):
927         Fixed to get objects from the archived resources dictionary using
928         the URL as a string instead of as the URL itself (as this is how
929         the data is put into the dictionary).
930
931 2006-08-14  Maciej Stachowiak  <mjs@apple.com>
932
933         Reviewed by Beth.
934         
935         - remove many (but not all) WebKit dependencies from WebNetscapePlugInStreamLoader (it still 
936         depends on WebNetscapePluginStream).
937
938         * Loader/WebFrameLoader.h:
939         * Loader/WebFrameLoader.m:
940         (-[WebFrameLoader fileDoesNotExistErrorWithResponse:]):
941         * Loader/WebNetscapePlugInStreamLoader.h:
942         * Loader/WebNetscapePlugInStreamLoader.m:
943         (-[WebNetscapePlugInStreamLoader initWithStream:frameLoader:]):
944         (-[WebNetscapePlugInStreamLoader releaseResources]):
945         (-[WebNetscapePlugInStreamLoader didReceiveResponse:]):
946         * Plugins/WebNetscapePluginStream.m:
947         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
948
949 2006-08-14  Maciej Stachowiak  <mjs@apple.com>
950
951         Reviewed by Tim Omernick.
952         
953         - fixed REGRESSION: crash when leaving youtube page while movie is still loading
954         http://bugzilla.opendarwin.org/show_bug.cgi?id=10398
955
956         * Loader/WebNetscapePlugInStreamLoader.m:
957         (-[WebNetscapePlugInStreamLoader initWithStream:view:]): Set the frame loader for this stream.
958         (-[WebNetscapePlugInStreamLoader cancelWithError:]): Make sure to destroy the stream as well;
959         otherwise, when we try to clean up later, we won't have the right context.
960
961 2006-08-14  David Hyatt  <hyatt@apple.com>
962
963         Fix for Radar bug 4478840, Safari should not reduce null events sent to
964         plug-ins in windows that are inactive but visible.
965
966         With this fix you can view videos in visible background windows on YouTube
967         (for example) and not see any drop in frame rate.
968
969         Reviewed by timo
970
971         * Plugins/WebBaseNetscapePluginView.m:
972         (-[WebBaseNetscapePluginView restartNullEvents]):
973
974 2006-08-14  Maciej Stachowiak  <mjs@apple.com>
975
976         Reviewed by Brady.
977         
978         - removed WebKit-level dependencies from WebFormDataStream. Use WebCore version of system interface
979
980         * Loader/WebFormDataStream.m:
981         (formCanRead):
982         (formEventCallback):
983         (webSetHTTPBody):
984         * WebCoreSupport/WebSystemInterface.m:
985         (InitWebCoreSystemInterface):
986
987 2006-08-14  Maciej Stachowiak  <mjs@apple.com>
988
989         Rubber stamped by Brady.
990         
991         - move WebFormDataStream from WebView to Loader
992
993         * WebKit.xcodeproj/project.pbxproj:
994         * WebView/WebFormDataStream.h: Removed.
995         * WebView/WebFormDataStream.m: Removed.
996
997 2006-08-13  Maciej Stachowiak  <mjs@apple.com>
998
999         Reviewed by Brady.
1000         
1001         - remove WebKit dependencies from WebSubresourceLoader, except WebFormDataStream
1002         
1003         (WebFormDataStream will be moved into the Loader directory soon)
1004
1005         * Loader/WebFrameLoader.h:
1006         * Loader/WebFrameLoader.m:
1007         (-[WebFrameLoader _addExtraFieldsToRequest:mainResource:alwaysFromRequest:]):
1008         * Loader/WebSubresourceLoader.m:
1009         (isConditionalRequest):
1010         (hasCaseInsensitivePrefix):
1011         (isFileURLString):
1012         (setHTTPReferrer):
1013         (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forFrameLoader:]):
1014
1015 2006-08-13  Brady Eidson  <beidson@apple.com>
1016
1017         Reviewed by Maciej
1018
1019         Relocated the WebIconLoaders
1020
1021         * Misc/WebIconLoader.h: Moved to Loader/
1022         * Misc/WebIconLoader.m: Moved to Loader/
1023         * WebKit.xcodeproj/project.pbxproj:
1024
1025 2006-08-13  Maciej Stachowiak  <mjs@apple.com>
1026
1027         Reviewed by Beth.
1028         
1029         - removed non-Loader WebKit dependencies from WebDataProtocol for
1030         real (whoops) and fix some typos.
1031
1032         * Loader/WebDataProtocol.m:
1033         (isCaseInsensitiveEqual): Added.
1034         (+[WebDataProtocol _webIsDataProtocolURL:]): Avoid WebKit calls.
1035         (-[WebDataProtocol startLoading]): ditto
1036         * Loader/WebFrameLoader.m:
1037         (isCaseInsensitiveEqual): Fixed spelling from isCaseSensitiveEqual.
1038         (-[WebFrameLoader _canUseResourceForRequest:]): Use proper call.
1039
1040 2006-08-13  Brady Eidson  <beidson@apple.com>
1041
1042         Reviewed by Maciej
1043
1044         The way of detecting a failed icon load before was to try and construct
1045         an image from the icon and if that image construction failed, mark the icon
1046         as missing.  
1047         A much more efficient way is to check for an error response.  We'll still
1048         check for invalid image data, but most servers will correctly return an HTTP 
1049         error on a missing icon.
1050         
1051         * Misc/WebIconLoader.m:
1052         (-[WebIconLoader didFinishLoading]): Added check for http error response
1053
1054 2006-08-13  Maciej Stachowiak  <mjs@apple.com>
1055
1056         Reviewed by Darin.
1057         
1058         - remove all non-Loader dependencies from WebLoader
1059         
1060         As part of this I moved WebDataProtocol to the loader directory
1061         and removed dependencies on the rest of WebKit from that too.
1062
1063         * Loader/WebFrameLoader.h:
1064         * Loader/WebFrameLoader.m:
1065         (-[WebFrameLoader setDefersCallbacks:]):
1066         (-[WebFrameLoader stopLoading]):
1067         (-[WebFrameLoader cancelledErrorWithRequest:]):
1068         (-[WebFrameLoader clearArchivedResources]):
1069         (-[WebFrameLoader deliverArchivedResources]):
1070         (-[WebFrameLoader deliverArchivedResourcesAfterDelay]):
1071         (isCaseSensitiveEqual):
1072         (-[WebFrameLoader _canUseResourceForRequest:]):
1073         (-[WebFrameLoader _canUseResourceWithResponse:]):
1074         (-[WebFrameLoader pendingArchivedResources]):
1075         (-[WebFrameLoader willUseArchiveForRequest:originalURL:loader:]):
1076         (-[WebFrameLoader archiveLoadPendingForLoader:]):
1077         (-[WebFrameLoader cancelPendingArchiveLoadForLoader:]):
1078         * Loader/WebLoader.h:
1079         * Loader/WebLoader.m:
1080         (-[NSURLProtocol releaseResources]):
1081         (-[NSURLProtocol loadWithRequest:]):
1082         (-[NSURLProtocol setDefersCallbacks:]):
1083         (-[NSURLProtocol addData:allAtOnce:]):
1084         (-[NSURLProtocol resourceData]):
1085         (-[NSURLProtocol didReceiveData:lengthReceived:allAtOnce:]):
1086         (-[NSURLProtocol connection:didReceiveData:lengthReceived:]):
1087         (-[NSURLProtocol cancelWithError:]):
1088         (-[NSURLProtocol cancelledError]):
1089         * Loader/WebMainResourceLoader.m:
1090         (-[WebMainResourceLoader addData:allAtOnce:]):
1091         (-[WebMainResourceLoader didReceiveData:lengthReceived:allAtOnce:]):
1092         * Loader/WebNetscapePlugInStreamLoader.m:
1093         (-[WebNetscapePlugInStreamLoader didReceiveData:lengthReceived:allAtOnce:]):
1094         * Loader/WebSubresourceLoader.m:
1095         (-[WebSubresourceLoader didReceiveData:lengthReceived:allAtOnce:]):
1096         * WebKit.xcodeproj/project.pbxproj:
1097         * WebView/WebDataProtocol.h: Removed.
1098         * WebView/WebDataProtocol.m: Removed.
1099
1100 2006-08-11  Tim Omernick  <timo@apple.com>
1101
1102         Reviewed by Darin.
1103
1104         <http://bugzilla.opendarwin.org/show_bug.cgi?id=10111> - Menu flickers over Flash content
1105         <rdar://problem/3052546> Plugins don't work with z-index (overlapping elements, etc.)
1106
1107         * Plugins/WebBaseNetscapePluginView.m:
1108         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
1109         Don't just clip to the dirty region for "transparent" plug-ins -- do it for all plug-ins.  This is a
1110         generally useful thing to do, as it prevents the plug-in from drawing over parts of the window that
1111         have already been drawn and are not expected to be redrawn in the same update.
1112
1113 2006-08-11  Brady Eidson  <beidson@apple.com>
1114
1115         Reviewed by John, Timo, Adele, and Darin
1116
1117         In addition to a few style/good-practice cleanups, this patch will convert the old icon database
1118         format to the WebCore format if the WebCore db is empty (implying this conversion has yet to take
1119         place).  After the conversion, it will delete all traces of the old format to free the unneeded space
1120
1121         * Misc/WebIconDatabase.m:
1122         (-[WebIconDatabase init]):  
1123         (-[WebIconDatabase _setIconURL:forURL:]):  Changed the bridge's name for this method to be more clear
1124         (-[WebIconDatabase _createFileDatabase]):  
1125         (-[WebIconDatabase _iconDataForIconURL:]):  This grabs the raw data for use in the conversion function
1126         (-[WebIconDatabase _convertToWebCoreFormat]):  This does the actual conversion
1127
1128 2006-08-11  Tim Omernick  <timo@apple.com>
1129
1130         Reviewed by John Sullivan.
1131         
1132         Needed for <rdar://problem/4678070>.
1133
1134         * Plugins/WebBaseNetscapePluginView.m:
1135         (-[WebBaseNetscapePluginView sendEvent:]):
1136         Changed an assertion to an early return.  It should be possible to send events, especially updateEvt (for image capturing
1137         purposes), to off-screen plug-ins.  It just doesn't work right now.  See <rdar://problem/4318269>.
1138
1139 2006-08-11  John Sullivan  <sullivan@apple.com>
1140
1141         Reviewed by Darin
1142         
1143         - fixed <rdar://problem/4522894> Would be nice if Safari shrank pages a little if necessary 
1144         to avoid printing an almost-empty page
1145
1146         * WebView/WebHTMLView.m:
1147         (-[NSArray knowsPageRange:]):
1148         If the last page has a short-enough orphan (< 1/10 of the page height is the number I pulled
1149         out of ... the air), then we adjust the scale factor slightly and check whether this reduces
1150         the page count and thus eliminates the orphan.
1151         
1152 2006-08-07  Brady Eidson  <beidson@apple.com>
1153
1154         Reviewed by Anders and John
1155
1156         * Misc/WebIconDatabase.m:
1157         (-[WebIconDatabase init]):
1158         (-[WebIconDatabase isIconExpiredForIconURL:]): Get if an icon expired
1159         (-[WebIconDatabase isIconExpiredForPageURL:]): Ditto
1160         (-[WebIconDatabase _setIconURL:forURL:]):
1161         (-[WebIconDatabase _sendNotificationForURL:]): Moved to WebKitPendingPublic for use outside of WebIconDatabase
1162         (-[WebIconDatabase loadIconFromURL:]): Allow a load outside the context of a page load
1163         * Misc/WebIconDatabasePrivate.h:
1164
1165         * Misc/WebIconLoader.m:
1166         (-[WebIconLoader didFinishLoading]): fixed up the "flipping the switch" #defs a bit
1167         (-[WebIconLoader willSendRequest:redirectResponse:]): override to allow a load
1168         outside of the context of a page load
1169
1170         * WebCoreSupport/WebIconDatabaseBridge.h: Added.
1171         * WebCoreSupport/WebIconDatabaseBridge.m: Added.
1172         (-[WebIconDatabaseBridge init]):
1173         (-[WebIconDatabaseBridge dealloc]):
1174         (-[WebIconDatabaseBridge loadIconFromURL:]):  Kick off a load on an icon outside
1175         of the context of any page load
1176         (-[WebIconDatabaseBridge _setIconData:forIconURL:]):  WebKit side of bridge method
1177         (-[WebIconDatabaseBridge _setHaveNoIconForIconURL:]):  WebKit side of bridge method
1178         (-[WebIconDatabaseBridge releaseCachedLoaderForIconURL:]): 
1179         (+[WebIconDatabaseBridge sharedBridgeInstance]): Moved this from WebCore to WebKit
1180         so both sides of the bridge get the WebKit version
1181         * WebKit.xcodeproj/project.pbxproj: Added some files
1182         * WebView/WebDataSource.m:
1183         (-[WebDataSource _loadIcon]): Added check for reload/expired icon to force
1184         a load even if we already have it
1185
1186 2006-08-04  Sam Weinig  <sam.weinig@gmail.com>
1187
1188         Reviewed by Darin.
1189
1190         - patch for http://bugzilla.opendarwin.org/show_bug.cgi?id=10192
1191           Make WebCore (and friends) compile with -Wshorten-64-to-32
1192
1193           * Adds 'f' to float literals where expecting a float.
1194           * Use ceilf() instead of ceil() when assigning to a float.
1195           * Adds explicit casts where OK.
1196           
1197           NOTE: The -Wshorten-64-to-32 flag was not added for WebKit
1198           because there are still a few places where no error handling 
1199           is in place.  The flag can be added as soon as those are worked
1200           out.
1201
1202         * Misc/WebNSControlExtras.m:
1203         (-[NSControl sizeToFitAndAdjustWindowHeight]):
1204         * Misc/WebNSImageExtras.m:
1205         (-[NSImage _web_scaleToMaxSize:]):
1206         * Misc/WebNSViewExtras.h:
1207         * Misc/WebNSViewExtras.m:
1208         * Plugins/WebBaseNetscapePluginView.m:
1209         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
1210         (-[WebBaseNetscapePluginView drawRect:]):
1211         * WebCoreSupport/WebFrameBridge.m:
1212         (-[WebFrameBridge expiresTimeForResponse:]):
1213         * WebInspector/WebInspector.m:
1214         (-[NSWindow window]):
1215         (-[WebInspector treeViewScrollTo:]):
1216         (-[WebInspector _updateSystemColors]):
1217         (-[WebInspector webView:plugInViewWithArguments:]):
1218         (-[WebInspector outlineView:objectValueForTableColumn:byItem:]):
1219         * WebInspector/WebInspectorOutlineView.m:
1220         (-[WebInspectorOutlineView _highlightRow:clipRect:]):
1221         * WebInspector/WebNodeHighlight.m:
1222         (-[WebNodeHighlight initWithBounds:andRects:forView:]):
1223         * WebInspector/WebNodeHighlightView.m:
1224         (-[WebNodeHighlightView roundedRect:withRadius:]):
1225         (-[WebNodeHighlightView initWithHighlight:andRects:forView:]):
1226         (-[WebNodeHighlightView drawRect:]):
1227         * WebView/WebFrame.m:
1228         (-[WebFrame _opened]):
1229         * WebView/WebFrameView.m:
1230         (-[WebFrameView initWithFrame:]):
1231         * WebView/WebHTMLView.m:
1232         (-[WebHTMLView _dragImageForLinkElement:]):
1233         (-[WebHTMLView _web_setPrintingModeRecursive]):
1234         (-[WebHTMLView _web_clearPrintingModeRecursive]):
1235         (-[NSArray layout]):
1236         (-[NSArray _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
1237         (-[NSArray adjustPageHeightNew:top:bottom:limit:]):
1238         (-[NSArray _scaleFactorForPrintOperation:]):
1239         (-[NSArray setPageWidthForPrinting:]):
1240         (-[NSArray _endPrintMode]):
1241         (-[NSArray knowsPageRange:]):
1242         (-[NSArray _originalFontA]):
1243         (-[NSArray _originalFontB]):
1244         (-[WebTextCompleteController _buildUI]):
1245         (-[WebTextCompleteController _placePopupWindow:]):
1246         * WebView/WebPDFView.m:
1247         (-[WebPDFView _makeTextStandardSize:]):
1248         (-[WebPDFView selectionImageForcingWhiteText:]):
1249         (-[PDFPrefUpdatingProxy forwardInvocation:]):
1250         * WebView/WebPreferences.m:
1251         (-[WebPreferences _floatValueForKey:]):
1252         * WebView/WebView.m:
1253         (-[WebView makeTextSmaller:]):
1254         (-[WebView canMakeTextStandardSize]):
1255         (-[WebView makeTextStandardSize:]):
1256
1257 2006-08-04  David Kilzer  <ddkilzer@kilzer.net>
1258
1259         Reviewed by NOBODY (build fix).
1260
1261         * WebCoreSupport/WebSubresourceLoader.m: REALLY moved to Loader/
1262         * WebView/WebFrameLoader.h: REALLY moved to Loader/
1263         * WebView/WebFrameLoader.m: REALLY moved to Loader/
1264         * WebView/WebLoader.h: REALLY moved to Loader/
1265         * WebView/WebLoader.m: REALLY moved to Loader/
1266         * WebView/WebMainResourceLoader.m: REALLY moved to Loader/
1267
1268 2006-08-03  Maciej Stachowiak  <mjs@apple.com>
1269
1270         Reviewed by Darin.
1271         
1272         - moved all loader code that is slated to be moved down to WebCore to a new Loader directory
1273         
1274         (next step is to remove dependencies on the rest of WebKit from this directory)
1275
1276         * Loader/WebNetscapePlugInStreamLoader.h: Added.
1277         * Loader/WebNetscapePlugInStreamLoader.m: Added. Cut out of WebNetscapePluginStream.m
1278         (-[WebNetscapePlugInStreamLoader initWithStream:view:]):
1279         (-[WebNetscapePlugInStreamLoader isDone]):
1280         (-[WebNetscapePlugInStreamLoader releaseResources]):
1281         (-[WebNetscapePlugInStreamLoader didReceiveResponse:]):
1282         (-[WebNetscapePlugInStreamLoader didReceiveData:lengthReceived:]):
1283         (-[WebNetscapePlugInStreamLoader didFinishLoading]):
1284         (-[WebNetscapePlugInStreamLoader didFailWithError:]):
1285         (-[WebNetscapePlugInStreamLoader cancelWithError:]):
1286         * Plugins/WebNetscapePluginStream.m:
1287         * WebKit.xcodeproj/project.pbxproj:
1288         * WebCoreSupport/WebSubresourceLoader.h: Moved to Loader/
1289         * WebCoreSupport/WebSubresourceLoader.m: Moved to Loader/
1290         * WebView/WebFrameLoader.h: Moved to Loader/
1291         * WebView/WebFrameLoader.m: Moved to Loader/
1292         * WebView/WebLoader.h: Moved to Loader/
1293         * WebView/WebLoader.m: Moved to Loader/
1294         * WebView/WebMainResourceLoader.h: Moved to Loader/
1295         * WebView/WebMainResourceLoader.m: Moved to Loader/
1296
1297 2006-08-03  Tim Omernick  <timo@apple.com>
1298
1299         Reviewed by Kevin Decker.
1300
1301         <rdar://problem/4667460> Windowless OpenGL plug-ins render incorrectly on PowerPC
1302
1303         * Plugins/WebBaseNetscapePluginView.m:
1304         (-[WebBaseNetscapePluginView _aglOffscreenImageForDrawingInRect:]):
1305         Fixed color component swapping so that it works on both x86 and PPC.  See comments.
1306
1307 2006-08-03  Brady Eidson  <beidson@apple.com>
1308
1309         Reviewed by Tim Hatcher's rubber stamp
1310         Fixed Intel build break caused by weinig's -W change in r15781
1311
1312         * WebView/WebView.m: wrapped cpu-dependent defs with defined() macro
1313
1314 2006-08-03  Maciej Stachowiak  <mjs@apple.com>
1315
1316         Reviewed by John.
1317
1318         - fixed problem that could cause assertion failures in Safari
1319         
1320         * Plugins/WebBaseNetscapePluginView.m:
1321         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]): Don't
1322         allow a plugin to start new loads once its document is no longer the one actively loading.
1323
1324 2006-08-03  Maciej Stachowiak  <mjs@apple.com>
1325
1326         Reviewed by John.
1327         
1328         - remove use of WebDataSource from WebLoader and subclasses, just have them talk to the
1329         WebFrameLoader instead. 
1330         
1331         For now this is done by forarding all the calls.
1332
1333         * Misc/WebIconLoader.m:
1334         (-[WebIconLoader didFinishLoading]):
1335         * Plugins/WebNetscapePluginStream.m:
1336         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
1337         (-[WebNetscapePluginStream start]):
1338         (-[WebNetscapePlugInStreamLoader didFinishLoading]):
1339         (-[WebNetscapePlugInStreamLoader didFailWithError:]):
1340         (-[WebNetscapePlugInStreamLoader cancelWithError:]):
1341         * WebCoreSupport/WebFrameBridge.m:
1342         (-[WebFrameBridge startLoadingResource:withMethod:URL:customHeaders:]):
1343         (-[WebFrameBridge startLoadingResource:withMethod:URL:customHeaders:postData:]):
1344         * WebCoreSupport/WebSubresourceLoader.h:
1345         * WebCoreSupport/WebSubresourceLoader.m:
1346         (-[WebSubresourceLoader initWithLoader:frameLoader:]):
1347         (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forFrameLoader:]):
1348         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:referrer:forFrameLoader:]):
1349         (+[WebSubresourceLoader startLoadingResource:withMethod:URL:customHeaders:postData:referrer:forFrameLoader:]):
1350         (-[WebSubresourceLoader receivedError:]):
1351         (-[WebSubresourceLoader signalFinish]):
1352         (-[WebSubresourceLoader didFailWithError:]):
1353         (-[WebSubresourceLoader cancel]):
1354         * WebKit.xcodeproj/project.pbxproj:
1355         * WebView/WebDataSource.m:
1356         (-[WebDataSource _updateLoading]):
1357         (-[WebDataSource textEncodingName]):
1358         (-[WebDataSource _mainReceivedBytesSoFar:complete:]):
1359         * WebView/WebFrameLoader.h:
1360         * WebView/WebFrameLoader.m:
1361         (-[WebFrameLoader loadIconWithRequest:]):
1362         (-[WebFrameLoader startLoadingMainResourceWithRequest:identifier:]):
1363         (-[WebFrameLoader clearIconLoader]):
1364         (-[WebFrameLoader commitProvisionalLoad]):
1365         (-[WebFrameLoader activeDataSource]):
1366         (-[WebFrameLoader _archivedSubresourceForURL:]):
1367         (-[WebFrameLoader _defersCallbacks]):
1368         (-[WebFrameLoader _identifierForInitialRequest:]):
1369         (-[WebFrameLoader _willSendRequest:forResource:redirectResponse:]):
1370         (-[WebFrameLoader _didReceiveAuthenticationChallenge:forResource:]):
1371         (-[WebFrameLoader _didCancelAuthenticationChallenge:forResource:]):
1372         (-[WebFrameLoader _didReceiveResponse:forResource:]):
1373         (-[WebFrameLoader _didReceiveData:contentLength:forResource:]):
1374         (-[WebFrameLoader _didFinishLoadingForResource:]):
1375         (-[WebFrameLoader _didFailLoadingWithError:forResource:]):
1376         (-[WebFrameLoader _privateBrowsingEnabled]):
1377         (-[WebFrameLoader _addPlugInStreamLoader:]):
1378         (-[WebFrameLoader _removePlugInStreamLoader:]):
1379         (-[WebFrameLoader _finishedLoadingResource]):
1380         (-[WebFrameLoader _receivedError:]):
1381         (-[WebFrameLoader _addSubresourceLoader:]):
1382         (-[WebFrameLoader _removeSubresourceLoader:]):
1383         (-[WebFrameLoader _originalRequest]):
1384         (-[WebFrameLoader webFrame]):
1385         (-[WebFrameLoader _receivedMainResourceError:complete:]):
1386         (-[WebFrameLoader initialRequest]):
1387         (-[WebFrameLoader _receivedData:]):
1388         (-[WebFrameLoader _setRequest:]):
1389         (-[WebFrameLoader _downloadWithLoadingConnection:request:response:proxy:]):
1390         (-[WebFrameLoader _handleFallbackContent]):
1391         (-[WebFrameLoader _isStopping]):
1392         (-[WebFrameLoader _decidePolicyForMIMEType:decisionListener:]):
1393         (-[WebFrameLoader _setupForReplaceByMIMEType:]):
1394         (-[WebFrameLoader _setResponse:]):
1395         (-[WebFrameLoader _mainReceivedError:complete:]):
1396         (-[WebFrameLoader _finishedLoading]):
1397         (-[WebFrameLoader _mainReceivedBytesSoFar:complete:]):
1398         (-[WebFrameLoader _iconLoaderReceivedPageIcon:]):
1399         (-[WebFrameLoader _URL]):
1400         * WebView/WebLoader.h:
1401         * WebView/WebLoader.m:
1402         (-[NSURLProtocol releaseResources]):
1403         (-[NSURLProtocol loadWithRequest:]):
1404         (-[NSURLProtocol setFrameLoader:]):
1405         (-[NSURLProtocol frameLoader]):
1406         (-[NSURLProtocol willSendRequest:redirectResponse:]):
1407         (-[NSURLProtocol didReceiveAuthenticationChallenge:]):
1408         (-[NSURLProtocol didCancelAuthenticationChallenge:]):
1409         (-[NSURLProtocol didReceiveResponse:]):
1410         (-[NSURLProtocol didReceiveData:lengthReceived:]):
1411         (-[NSURLProtocol signalFinish]):
1412         (-[NSURLProtocol didFailWithError:]):
1413         (-[NSURLProtocol willCacheResponse:]):
1414         (-[NSURLProtocol cancelWithError:]):
1415         * WebView/WebMainResourceLoader.h:
1416         * WebView/WebMainResourceLoader.m:
1417         (-[WebMainResourceLoader initWithFrameLoader:]):
1418         (-[WebMainResourceLoader receivedError:]):
1419         (-[WebMainResourceLoader cancelWithError:]):
1420         (-[WebMainResourceLoader _isPostOrRedirectAfterPost:redirectResponse:]):
1421         (-[WebMainResourceLoader addData:]):
1422         (-[WebMainResourceLoader willSendRequest:redirectResponse:]):
1423         (-[WebMainResourceLoader continueAfterContentPolicy:response:]):
1424         (-[WebMainResourceLoader continueAfterContentPolicy:]):
1425         (-[WebMainResourceLoader checkContentPolicyForResponse:]):
1426         (-[WebMainResourceLoader didReceiveResponse:]):
1427         (-[WebMainResourceLoader didReceiveData:lengthReceived:]):
1428         (-[WebMainResourceLoader didFinishLoading]):
1429         (-[WebMainResourceLoader didFailWithError:]):
1430         (-[WebMainResourceLoader loadWithRequestNow:]):
1431
1432 2006-08-03  Sam Weinig  <sam.weinig@gmail.com>
1433
1434         Reviewed by Darin.
1435
1436         - patch for http://bugzilla.opendarwin.org/show_bug.cgi?id=10176
1437           Make WebCore compile with -Wundef
1438
1439           * Adds -Wundef flag to Xcode project
1440           * Converts #ifs to #ifdef and #ifndefs where needed.
1441
1442         * Carbon/CarbonUtils.m:
1443         * Carbon/CarbonWindowAdapter.m:
1444         * Carbon/HIViewAdapter.m:
1445         (+[NSView bindHIViewToNSView:nsView:]):
1446         * Carbon/HIWebView.m:
1447         (HIWebViewEventHandler):
1448         * Misc/WebFileDatabase.m:
1449         (UniqueFilePathForKey):
1450         * Misc/WebNSWindowExtras.m:
1451         (swizzleInstanceMethod):
1452         * Misc/WebTypesInternal.h:
1453         * Plugins/WebNetscapeDeprecatedFunctions.c:
1454         * Plugins/WebNetscapeDeprecatedFunctions.h:
1455         * Plugins/WebNetscapePluginPackage.h:
1456         * Plugins/WebNetscapePluginPackage.m:
1457         (-[WebNetscapePluginPackage unloadWithoutShutdown]):
1458         (-[WebNetscapePluginPackage load]):
1459         * WebKit.xcodeproj/project.pbxproj:
1460
1461 2006-08-03  Darin Adler  <darin@apple.com>
1462
1463         Reviewed by Eric Seidel.
1464
1465         - fix storage leak
1466
1467         * WebView/WebFrame.m: (-[WebFramePrivate dealloc]): Release the frame loader.
1468
1469 2006-08-02  Timothy Hatcher  <timothy@apple.com>
1470
1471         Rubber stamped by Maciej.
1472
1473         Adding back resultsWithXpathQuery, removed by Darin's earlier change.
1474         This function is called from ObjC, but not used from JavaScript.
1475
1476         * WebInspector/webInspector/inspector.js:
1477
1478 2006-08-02  Timothy Hatcher  <timothy@apple.com>
1479
1480         Reviewed by Darin.
1481
1482         Bug 10200: [Drosera] Deadlock between Drosera and Safari while loading page
1483         http://bugzilla.opendarwin.org/show_bug.cgi?id=10200
1484
1485         Prevent reentrancy in our debugger callbacks. This was causing a deadlock in Drosera because
1486         suspendProcessIfPaused was being called during a DO call into Safari.
1487
1488         Preventing reentrancy also prevents scripts that Drosera injects and evaluates from showing
1489         up in rare cases (such as a iframe loading about:blank). I thought this would prevent cases
1490         where you call a function from the console and expect it to break on a breakpoint in them, but
1491         this appears to never have worked even without this change. When that is figured out we can
1492         reconsider a better solution to reentrancy. I have filed that as bug 10214.
1493
1494         I also removed the NSRunLoop runMode:beforeDate: calls since DO handles this for us since
1495         we don't use "onway void" as the return type for the callbacks. Note: using onway void for
1496         the listener callbacks causes bad synchronization issues and obscure crashes.
1497
1498         * DefaultDelegates/WebScriptDebugServer.m:
1499         (-[WebScriptDebugServer webView:didLoadMainResourceForDataSource:]):
1500         (-[WebScriptDebugServer webView:didParseSource:baseLineNumber:fromURL:sourceId:forWebFrame:]):
1501         (-[WebScriptDebugServer webView:failedToParseSource:baseLineNumber:fromURL:withError:forWebFrame:]):
1502         (-[WebScriptDebugServer webView:didEnterCallFrame:sourceId:line:forWebFrame:]):
1503         (-[WebScriptDebugServer webView:willExecuteStatement:sourceId:line:forWebFrame:]):
1504         (-[WebScriptDebugServer webView:willLeaveCallFrame:sourceId:line:forWebFrame:]):
1505         (-[WebScriptDebugServer webView:exceptionWasRaised:sourceId:line:forWebFrame:]):
1506         * DefaultDelegates/WebScriptDebugServerPrivate.h:
1507
1508 2006-08-02  Maciej Stachowiak  <mjs@apple.com>
1509
1510         Reviewed by John.
1511         
1512         - fix assertion failure on layout tests by stopping plugins from loading at a clearly defined time
1513         - add more assertions for safety
1514
1515         * WebView/WebDataSource.m:
1516         (-[WebDataSourcePrivate dealloc]): Removed obsolete comment.
1517         (-[WebDataSource _updateLoading]): Add assertion ensuring this method is only called
1518         at a time when this data source is the one that might be loading for a frame.
1519         (-[WebDataSource _stopLoading]): Stop loading plugins as a FIXME suggests we should.
1520         * WebView/WebFrameLoader.m:
1521         (-[WebFrameLoader isLoadingPlugIns]): New helper method.
1522         (-[WebFrameLoader isLoading]): Consider plugin loads too - otherwise we won't stop them
1523         at stopLoading time.
1524
1525 2006-08-02  Adam Roben  <aroben@apple.com>
1526
1527         Reviewed by Brady.
1528
1529         - Rename TransferJob to ResourceLoader (this file was forgotten in an
1530         earlier change by Maciej)
1531
1532         * COM/WebView.cpp:
1533
1534 2006-08-01  Maciej Stachowiak  <mjs@apple.com>
1535
1536         Reviewed by Adele.
1537         
1538         - Change things around so WebFrameLoader tracks the main and provisional data source,
1539         as well as the frame load state, pulling much code out of WebFrame along the way.
1540         
1541         The most significant aspects of this change are:
1542         
1543         - management of WebDataSources and WebFrameState was moved into WebFrameLoader
1544         - there is now just one WebFrameLoader shared between the primary and provisional data source
1545
1546         * WebKit.xcodeproj/project.pbxproj:
1547         * WebView/WebDataSource.m:
1548         (-[WebDataSourcePrivate dealloc]):
1549         (-[WebDataSource _updateLoading]):
1550         (-[WebDataSource _loadIcon]):
1551         (-[WebDataSource _setPrimaryLoadComplete:]):
1552         (-[WebDataSource _stopLoading]):
1553         (-[WebDataSource _startLoading]):
1554         (-[WebDataSource _addSubresourceLoader:]):
1555         (-[WebDataSource _removeSubresourceLoader:]):
1556         (-[WebDataSource _addPlugInStreamLoader:]):
1557         (-[WebDataSource _removePlugInStreamLoader:]):
1558         (-[WebDataSource _defersCallbacksChanged]):
1559         (-[WebDataSource _stopLoadingWithError:]):
1560         (-[WebDataSource _revertToProvisionalState]):
1561         (-[WebDataSource _setupForReplaceByMIMEType:]):
1562         (-[WebDataSource initWithRequest:]):
1563         (-[WebDataSource data]):
1564         (-[WebDataSource isLoading]):
1565         * WebView/WebFrame.m:
1566         (-[WebFramePrivate init]):
1567         (-[WebFramePrivate dealloc]):
1568         (-[WebFrame _closeOldDataSources]):
1569         (-[WebFrame _detachFromParent]):
1570         (-[WebFrame _makeDocumentView]):
1571         (-[WebFrame _receivedMainResourceError:]):
1572         (-[WebFrame _transitionToCommitted:]):
1573         (+[WebFrame _timeOfLastCompletedLoad]):
1574         (-[WebFrame _checkLoadCompleteForThisFrame]):
1575         (-[WebFrame _loadItem:withLoadType:]):
1576         (-[WebFrame _continueAfterWillSubmitForm:]):
1577         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
1578         (-[WebFrame _initWithWebFrameView:webView:bridge:]):
1579         (-[WebFrame _frameLoader]):
1580         (-[WebFrame _provisionalLoadStarted]):
1581         (-[WebFrame _prepareForDataSourceReplacement]):
1582         (-[WebFrame _frameLoadCompleted]):
1583         (-[WebFrame provisionalDataSource]):
1584         (-[WebFrame dataSource]):
1585         (-[WebFrame stopLoading]):
1586         * WebView/WebFrameInternal.h:
1587         * WebView/WebFrameLoader.h:
1588         * WebView/WebFrameLoader.m:
1589         (-[WebFrameLoader initWithWebFrame:]):
1590         (-[WebFrameLoader dealloc]):
1591         (-[WebFrameLoader dataSource]):
1592         (-[WebFrameLoader _setDataSource:]):
1593         (-[WebFrameLoader clearDataSource]):
1594         (-[WebFrameLoader provisionalDataSource]):
1595         (-[WebFrameLoader _setProvisionalDataSource:]):
1596         (-[WebFrameLoader _clearProvisionalDataSource]):
1597         (-[WebFrameLoader state]):
1598         (+[WebFrameLoader timeOfLastCompletedLoad]):
1599         (-[WebFrameLoader _setState:]):
1600         (-[WebFrameLoader clearProvisionalLoad]):
1601         (-[WebFrameLoader markLoadComplete]):
1602         (-[WebFrameLoader commitProvisionalLoad]):
1603         (-[WebFrameLoader stopLoading]):
1604         (-[WebFrameLoader startLoading]):
1605         (-[WebFrameLoader startProvisionalLoad:]):
1606         (-[WebFrameLoader setupForReplace]):
1607         * WebView/WebFramePrivate.h:
1608
1609 2006-08-01  Tim Omernick  <timo@apple.com>
1610
1611         Reviewed by John Sullivan.
1612
1613         <rdar://problem/4480737> Flash crashes after it replaces itself via a document.write()
1614         
1615         I kind of hate to do this, but this is the best way to work around buggy plug-ins like Flash that assume that
1616         NPP_Destroy() cannot be called while the browser is calling one of its other plug-in functions.  The classic
1617         situation is a plug-in that replaces itself via an NPN_Invoke() that executes a document.write().
1618
1619         * Plugins/WebBaseNetscapePluginView.h:
1620         * Plugins/WebBaseNetscapePluginView.m:
1621         (-[WebBaseNetscapePluginView sendEvent:]):
1622         Call -willCallPlugInFunction and -didCallPlugInFunction around calls to the NPP_* functions.
1623         (-[WebBaseNetscapePluginView setWindowIfNecessary]):
1624         ditto
1625         (-[WebBaseNetscapePluginView start]):
1626         It should not be possible to start a plug-in instance while we are calling into it (one of those chicken/egg
1627         problems).  Added a sanity-checking assertion.
1628         (-[WebBaseNetscapePluginView stop]):
1629         If we're already calling a plug-in function, do not call NPP_Destroy().  The plug-in function we are calling
1630         may assume that its instance->pdata, or other memory freed by NPP_Destroy(), is valid and unchanged until said
1631         plugin-function returns.
1632         (-[WebBaseNetscapePluginView pluginScriptableObject]):
1633         Call -willCallPlugInFunction and -didCallPlugInFunction around calls to the NPP_* functions.
1634         (-[WebBaseNetscapePluginView willCallPlugInFunction]):
1635         Increment plug-in function call depth.
1636         (-[WebBaseNetscapePluginView didCallPlugInFunction]):
1637         Decrement plug-in function call depth.  Stop if we're supposed to stop.
1638         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]):
1639         Call -willCallPlugInFunction and -didCallPlugInFunction around calls to the NPP_* functions.
1640         (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]):
1641         ditto
1642         (-[WebBaseNetscapePluginView _printedPluginBitmap]):
1643         ditto
1644
1645         * Plugins/WebBaseNetscapePluginStream.m:
1646         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]):
1647         Call -willCallPlugInFunction and -didCallPlugInFunction around calls to the NPP_* functions.
1648         (-[WebBaseNetscapePluginStream _destroyStream]):
1649         ditto
1650         (-[WebBaseNetscapePluginStream _deliverData]):
1651         ditto
1652
1653 2006-08-01  Maciej Stachowiak  <mjs@apple.com>
1654
1655         - fix build after last change
1656
1657         * WebView/WebFrame.m:
1658         (-[WebFrame _checkLoadCompleteForThisFrame]):
1659
1660 2006-08-01  Maciej Stachowiak  <mjs@apple.com>
1661
1662         Reviewed by Beth.
1663
1664         - revert part of my last fix that broke the Safari bookmarks view
1665         
1666         * WebView/WebFrame.m:
1667         (-[WebFrame _checkLoadCompleteForThisFrame]): still send layout message for non-HTML views
1668
1669 2006-08-01  Tim Omernick  <timo@apple.com>
1670
1671         Reviewed by Anders.
1672
1673         Fixed an assertion failure I ran into while debugging <rdar://problem/4652683>.
1674
1675         * Plugins/WebNetscapePluginEmbeddedView.m:
1676         (-[WebNetscapePluginEmbeddedView redeliverStream]):
1677         Don't clear the "instance" ivar here.  This code was refactored here from the old WebNetscapePluginRepresentation,
1678         which also had an "instance" ivar.  It is never appropriate to clear a plug-in view's instance.  That is done when
1679         the plug-in is destroyed.
1680
1681 2006-08-01  Maciej Stachowiak  <mjs@apple.com>
1682
1683         Reviewed by Geoff.
1684         
1685         - some refactoring in preparation for moving more stuff to WebFrameLoader.
1686
1687         * WebView/WebFrame.m:
1688         (-[WebFrame _clearDataSource]): 
1689         (-[WebFrame _detachFromParent]):
1690         (-[WebFrame _commitProvisionalLoad]):
1691         (-[WebFrame _transitionToCommitted:]):
1692         (-[WebFrame _clearProvisionalLoad]):
1693         (-[WebFrame _markLoadComplete]):
1694         (-[WebFrame _checkLoadCompleteForThisFrame]):
1695         (-[WebFrame _startProvisionalLoad:]):
1696         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
1697         (-[WebFrame stopLoading]):
1698
1699 2006-07-31  Maciej Stachowiak  <mjs@apple.com>
1700
1701         Reviewed by Tim Hatcher.
1702         
1703         - renamed TransferJob to ResourceLoader in WebCore
1704
1705         * COM/WebFrame.cpp:
1706         (WebFrame::loadDataSource):
1707         (WebFrame::receivedRedirect):
1708         (WebFrame::receivedResponse):
1709         (WebFrame::receivedData):
1710         (WebFrame::receivedAllData):
1711         (WebFrame::setStatusText):
1712         * COM/WebFrame.h:
1713
1714 2006-07-31  Darin Adler  <darin@apple.com>
1715
1716         Reviewed by Maciej.
1717
1718         - omit the margin and padding boxes for display types where they are ignored
1719         - use CSS instead of properties for table spacing and padding as suggested by Tim H.
1720
1721         * WebInspector/webInspector/inspector.css: Added rules for spacing and padding.
1722         Added rules that hide the margin and padding boxes (borders and all but the center cell)
1723         when the hide attribute is present.
1724         * WebInspector/webInspector/inspector.html: Added classes for the rules above.
1725         Removed cellpadding and cellspacing attributes.
1726         * WebInspector/webInspector/inspector.js: Added code to hide/show the margin and
1727         padding boxes based on the display type.
1728
1729 2006-07-31  Duncan Wilcox  <duncan@mclink.it>
1730
1731         Reviewed by Darin.
1732
1733         Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=10159>
1734         "REGRESSION: delegate returning no menu elements crashes webkit"
1735
1736         No automated test, because there's no way to programmatically open a context menu,
1737         no manual test because there's no way to customize the context menu delegate.
1738
1739         * WebView/WebView.m:
1740         (-[WebView _menuForElement:defaultItems:]): Make sure the context menu returned
1741         some menu items before accessing the first one.
1742
1743 2006-07-31  Timothy Hatcher  <timothy@apple.com>
1744
1745         Reviewed by John.
1746
1747         <rdar://problem/4658194> REGRESSION: "Search in Google"
1748         and "Search in Spotlight" fail to work on text selected in a frame
1749
1750         Use selectedFrame to get the frame with the text selection.
1751
1752         * WebView/WebView.m:
1753         (-[WebView _searchWithGoogleFromMenu:]):
1754         (-[WebView _searchWithSpotlightFromMenu:]):
1755
1756 2006-07-31  Darin Adler  <darin@apple.com>
1757
1758         Reviewed by Tim Hatcher.
1759
1760         - http://bugzilla.opendarwin.org/show_bug.cgi?id=10168
1761           add a first cut at a Metrics pane to the inspector
1762
1763         * WebInspector/webInspector/inspector.css: Add styles for the new metrics pane.
1764         * WebInspector/webInspector/inspector.html: Add the new metrics pane, starting with
1765         the table to show the box model.
1766         * WebInspector/webInspector/inspector.js: Add the new metrics pane. Add back some
1767         "title" attributes so we have more tooltips. Removed the optional parameter to
1768         getComputedStyle.
1769
1770 2006-07-31  Anders Carlsson  <acarlsson@apple.com>
1771
1772         Reviewed by John.
1773
1774         * Plugins/WebPluginDatabase.m:
1775         (-[WebPluginDatabase refresh]):
1776         Create a mutable set instead of a mutable array.
1777
1778 2006-07-30  Darin Adler  <darin@apple.com>
1779
1780         Reviewed by Tim Hatcher.
1781
1782         * WebInspector/webInspector/inspector.js: Fix bug where a null property value
1783         leads to an empty style pane.
1784
1785 2006-07-30  Darin Adler  <darin@apple.com>
1786
1787         Reviewed by Tim Hatcher.
1788
1789         - http://bugzilla.opendarwin.org/show_bug.cgi?id=10163
1790           some improvements for the inspector
1791
1792         * WebInspector/WebInspector.m:
1793         (+[WebInspector sharedWebInspector:]): Fixed bug that could cause the inspector
1794         to be garbage collected if used in an application with GC enabled.
1795         (-[WebInspector dealloc]): Removed a call to a non-existent close method.
1796         (-[WebInspector window]): Added a custom WebPreferences object and called
1797         setPrivateBrowsingEnabled:YES so the inspector won't appear in the history menu.
1798         Also call setProhibitsMainFrameScrolling:YES to try to get rid of trouble where
1799         the inspector scrolls when dragging.
1800
1801         * WebInspector/webInspector/inspector.css: Added style for the new color swatch,
1802         and JavaScript properties. More of the style should be shared between the panes,
1803         but this should be OK for now.
1804
1805         * WebInspector/webInspector/inspector.html: Added a first cut at a JavaScript
1806         properties pane. Needs work, but better than nothing.
1807
1808         * WebInspector/webInspector/inspector.js: Lots of improvements:
1809         - Omit "typical" property values from computed style display, making it much shorter.
1810         - Use the words "black", "white", and "transparent" when appropriate for color values.
1811         - Refactored the loaded() function to get rid of repetitive scrollbar setup.
1812         - Added a new scrollarea for the JavaScript properties pane.
1813         - Simplified refreshScrollbars() -- we now refresh all scrollbars every time, which does no harm.
1814         - Removed unused resultsWithXpathQuery().
1815         - Use [] instead of "new Array()" and {} instead of "new Object()".
1816         - Removed unused xpathForNode().
1817         - Changed style pane to display the style for a text node's parent instead of saying
1818           it can't display the style for text.
1819         - Fixed regression I caused a while back by checking the length of a computed style
1820           and not trying to display anything if its length is 0. Before this change and the
1821           corresponding change in WebCore, we'd see a complete list of all styles with the
1822           empty string as the value for each one.
1823         - Changed the name of the computedStyle flag on the style rules array to isComputedStyle
1824           to make it easier to understand it's a boolean.
1825         - Fixed an error in the code that does !important scanning where it was trying to
1826           do a special case for computed style, but was checking the computed style flag on
1827           the wrong object.
1828         - Added populateStyleListItem() function to factor out things in common between the
1829           items in the top level list and the expanded tree for shorthand properties.
1830         - Added code to make a color swatch next to the textual representation for any
1831           property that contains a color.
1832         - Implemented a first cut at a simple JavaScript properties pane.
1833
1834 2006-07-29  Darin Adler  <darin@apple.com>
1835
1836         - Removed tabs from these source files that still had them.
1837           We don't use them; that way source files look fine in editors
1838           that have tabs set to 8 spaces or to 4 spaces.
1839         - Removed allow-tabs Subversion property from the files too.
1840
1841         * DefaultDelegates/WebDefaultPolicyDelegate.m:
1842         * History/WebHistory.m:
1843         * Misc/WebDownload.m:
1844         * Misc/WebIconDatabase.m:
1845         * Misc/WebKitErrors.m:
1846         * Misc/WebKitLogging.m:
1847         * Misc/WebNSDataExtras.m:
1848         * Misc/WebNSFileManagerExtras.m:
1849         * Panels/WebPanelAuthenticationHandler.m:
1850         * Plugins/WebBaseNetscapePluginView.m:
1851         * Plugins/npfunctions.h:
1852         * WebCoreSupport/WebSubresourceLoader.m:
1853         * WebView/WebMainResourceLoader.m:
1854         * WebView/WebView.h:
1855         * WebView/WebView.m:
1856
1857 2006-07-29  Sam Weinig  <sam.weinig@gmail.com>
1858
1859         Reviewed by Darin.
1860
1861         - patch for http://bugzilla.opendarwin.org/show_bug.cgi?id=10080
1862           Adopt pedantic changes from the Unity project to improve 
1863           cross-compiler compatibility
1864
1865           Changes include:
1866           * Adding missing newline to the end of the file.
1867           * Turning on gcc warning for missing newline at the end of a source file
1868             (GCC_WARN_ABOUT_MISSING_NEWLINE in Xcode, -Wnewline in gcc).
1869
1870         * WebKit.xcodeproj/project.pbxproj:
1871         * WebView/WebResourcePrivate.h:
1872
1873 2006-07-29  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1874
1875         Reviewed by John Sullivan.
1876
1877          - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9984
1878           ASSERTION FAILURE: _private->mouseDownEvent != nil
1879           (WebKit/WebView/WebHTMLView.m:4863 -[WebHTMLView(WebInternal) _delegateDragSourceActionMask])
1880
1881         * WebView/WebHTMLView.m:
1882         (-[WebHTMLView _setMouseDownEvent:]): Moved into the WebHTMLViewFileInternal category and changed
1883         to accept nil.
1884         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1885         Copy the hit HTMLView's mouse down event to the top HTMLView.
1886         (-[WebHTMLView acceptsFirstMouse:]): Added a call to _setMouseDownEvent:nil before returning.
1887         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): Added a call to _setMouseDownEvent:nil
1888         before returning.
1889         (-[WebHTMLView mouseUp:]): Added a call to _setMouseDownEvent:nil to clear the event set in
1890         mouseDown: (and used during dragging).
1891         (-[WebHTMLView _delegateDragSourceActionMask]): Copy the hit HTMLView's mouse down event to
1892         the top HTMLView.
1893
1894 2006-07-28  Timothy Hatcher  <timothy@apple.com>
1895
1896         Reviewed by John.
1897
1898         <rdar://problem/4657473> REGRESSION: Spell check not available from contextual menu in Mail
1899
1900         The context menu code should be checking isContentEditable
1901         on DOMNode not just DOMElement. This is needed because DOMText
1902         will be the node class of any text that is clicked.
1903
1904         * DefaultDelegates/WebDefaultContextMenuDelegate.m:
1905         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]):
1906
1907 2006-07-25  Geoffrey Garen  <ggaren@apple.com>
1908
1909         Reviewed by Maciej, inspired by John.
1910         
1911         - Fixed <rdar://problem/4651931> 1% REGRESSION on iBench HTML due to 
1912         repeated requests for non-existent favicon
1913         
1914         An optimization to avoid serializing favicon data for missing icons had stomped an
1915         optimization to avoid GETing a missing favicon more than once. The solution
1916         is a happy marriage of optimizations, ensuring that we *retain* the missing
1917         favicon's "i am missing" data without posting a notification or saving it to disk.
1918
1919         * Misc/WebIconDatabase.m:
1920         (-[WebIconDatabase _setIconURL:forURL:]):
1921
1922 2006-07-25  David Harrison  <harrison@apple.com>
1923
1924         Reviewed by timo and Darin.
1925
1926         <rdar://problem/4618584> "Paste and Match Style" is not working in Mail (add SPI)
1927         
1928         * WebKit.xcodeproj/project.pbxproj:
1929         * WebView/WebView.m:
1930         (-[WebView replaceSelectionWithNode:]):
1931         (-[WebView _replaceSelectionWithNode:matchStyle:]):
1932         * WebView/WebViewPrivate.h:
1933         (-[WebView _replaceSelectionWithNode:matchStyle::]):
1934         New SPI that is same as replaceSelectionWithNode: with added parameter whether to match existing style.
1935
1936 2006-07-24  Darin Adler  <darin@apple.com>
1937
1938         Reviewed by Adele and Justin.
1939
1940         - update for change to require context when creating fragments from text
1941           (needed to handle whitespace properly)
1942
1943         * WebView/WebHTMLView.m:
1944         (-[WebHTMLView _documentFragmentFromPasteboard:inContext:allowPlainText:chosePlainText:]):
1945         Added context parameter, pass through to bridge.
1946         (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): Pass selection range as context
1947         when calling above method.
1948         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Pass drag caret as context when
1949         calling above method.
1950
1951 2006-07-24  Maciej Stachowiak  <mjs@apple.com>
1952
1953         Reviewed by Geoff.
1954         
1955         - fix <rdar://problem/4609195> Help Viewer loads empty window (not getting didFailLoadingWithError: callback)
1956         (without re-introducing http://bugzilla.opendarwin.org/show_bug.cgi?id=10062 )
1957
1958         * WebView/WebLoader.h:
1959         * WebView/WebMainResourceLoader.m:
1960         (-[WebMainResourceLoader receivedError:]): Copy in some code from the base class to do it in the proper
1961         order, surrounding the call to [ds _receivedMainResourceError:error complete:YES].
1962
1963 2006-07-24  Anders Carlsson  <acarlsson@apple.com>
1964
1965         Reviewed by Tim O.
1966
1967         * Misc/WebIconDatabase.m:
1968         (-[WebIconDatabase removeAllIcons]):
1969         Make an array of the keys and iterate through it to avoid modifying the
1970         dictionary while enumerating it.
1971
1972 2006-07-24  Timothy Hatcher  <timothy@apple.com>
1973
1974         Reviewed by John and Darin.
1975
1976         <rdar://problem/4634290> Cannot selectively install a custom
1977         scroller that differs from the default Aqua frame size.
1978
1979         Adds two new private methods to WebFrameView that allows
1980         an application to set a custom scroll view class. This is needed
1981         if the application wants to install a custom scroller that is wider
1982         than the typical scroller, because NSScrollView does the content
1983         rect calculations in a class method (ignoring custom scrollers.)
1984         The _setScrollViewClass method requires the class to be a subclass
1985         of WebDynamicScrollBarView, or nil can be passed to reset to the default class.
1986         A new scroll view of the specified class will then replace the previous
1987         one without the need to reload content of the frame.
1988
1989         * WebView/WebFrameView.m:
1990         (-[WebFrameView _customScrollViewClass]):
1991         (-[WebFrameView _setCustomScrollViewClass:]):
1992         * WebView/WebFrameViewPrivate.h:
1993
1994 2006-07-24  Alexey Proskuryakov  <ap@nypop.com>
1995
1996         Reviewed by Darin.
1997
1998         Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10009
1999         REGRESSION: Schubert-IT PDF Plug-in not working for full page (works in frames)
2000
2001         * WebView/WebView.m:
2002         (+[WebView _viewClass:andRepresentationClass:forMIMEType:]): If we've got a type supported by WebPDFView,
2003         make sure to initialize the plugin database, in case a plugin wants to handle it.
2004
2005 2006-07-23  Mark Rowe  <opendarwin.org@bdash.net.nz>
2006
2007         Reviewed by Maciej.
2008
2009         Bug 9686: [Drosera] Need the ability to break into Drosera on Javascript exceptions
2010         http://bugzilla.opendarwin.org/show_bug.cgi?id=9686
2011
2012         WebKit portion of the fix.
2013
2014         * DefaultDelegates/WebDefaultScriptDebugDelegate.m:
2015         (-[WebDefaultScriptDebugDelegate webView:exceptionWasRaised:sourceId:line:forWebFrame:]):
2016         * DefaultDelegates/WebScriptDebugServer.h:
2017         * DefaultDelegates/WebScriptDebugServer.m:
2018         (-[WebScriptDebugServer webView:exceptionWasRaised:sourceId:line:forWebFrame:]): Notify
2019         listeners that an exception has been raised.
2020         * WebView/WebScriptDebugDelegate.h:
2021         * WebView/WebScriptDebugDelegate.m:
2022         (-[WebScriptCallFrame exceptionRaised:sourceId:line:]): Dispatch through to delegate and
2023         WebScriptDebugServer.
2024
2025 2006-07-23  Adele Peterson  <adele@apple.com>
2026
2027         Reviewed by Darin.
2028
2029         - Fix for <rdar://problem/4646276> CrashTracer: 7 crashes in Safari at com.apple.WebCore: WebCore::RenderTableSection::paint + 155
2030
2031         * WebView/WebHTMLView.m: (-[WebHTMLView _web_layoutIfNeededRecursive:testDirtyRect:]):
2032         needsDisplay was returning NO even though the view has a dirty rect (see <rdar://problem/4647062>).  Since we know about
2033         the dirty rect, we don't actually need to check needsDisplay.
2034
2035 2006-07-22  Timothy Hatcher  <timothy@apple.com>
2036
2037         Rolling out r15572.
2038         
2039         Bug 10062: REGRESSION: dom/xhtml/level2/html/HTMLIFrameElement11.xhtml asserts/crashes
2040         http://bugzilla.opendarwin.org/show_bug.cgi?id=10062
2041
2042     2006-07-21  Timothy Hatcher  <timothy@apple.com>
2043
2044         Reviewed by Maciej.
2045
2046         <rdar://problem/4609195> Help Viewer loads empty window
2047         (not getting didFailLoadingWithError: callback)
2048
2049         Call super's didFailWithError before _receivedMainResourceError
2050         because _receivedMainResourceError will cause the datasource's
2051         frame to be set to nil before the didFailLoadingWithError delegate
2052         callback is sent. (This order is needed now that WebDataSource does
2053         not hold on to the WebView; it uses the WebFrame to get to the WebView.
2054         If the WebFrame is nil we can't get to the WebView's resource load delegate.)
2055
2056         * WebView/WebMainResourceLoader.m:
2057         (-[WebMainResourceLoader receivedError:]):
2058
2059
2060 2006-07-22  Timothy Hatcher  <timothy@apple.com>
2061
2062         Reviewed by Adele.
2063
2064         <rdar://problem/4646318> REGRESSION: Ctrl-clicking on a selection containing a word doesn't display a complete contextual menu
2065         
2066         Show the editing context menu if the WebView is editible.
2067         The original change only checked if the DOM element was editable,
2068         and isContentEditable returns NO if entire WebView is editable.
2069
2070         * DefaultDelegates/WebDefaultContextMenuDelegate.m:
2071         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]):
2072
2073 2006-07-21  Timothy Hatcher  <timothy@apple.com>
2074
2075         Reviewed by Maciej.
2076
2077         <rdar://problem/4609195> Help Viewer loads empty window
2078         (not getting didFailLoadingWithError: callback)
2079
2080         Call super's didFailWithError before _receivedMainResourceError
2081         because _receivedMainResourceError will cause the datasource's
2082         frame to be set to nil before the didFailLoadingWithError delegate
2083         callback is sent. (This order is needed now that WebDataSource does
2084         not hold on to the WebView; it uses the WebFrame to get to the WebView.
2085         If the WebFrame is nil we can't get to the WebView's resource load delegate.)
2086
2087         * WebView/WebMainResourceLoader.m:
2088         (-[WebMainResourceLoader receivedError:]):
2089
2090 === Safari-521.20 ===
2091
2092 2006-07-21  Timothy Hatcher  <timothy@apple.com>
2093
2094         Reviewed by John.
2095
2096         <rdar://problem/4607572> REGRESSION (521.10.1 - 521.13): most context menu items missing when a form field is focused (common on google.com) (9680)
2097
2098         Do not use _isEditable call since that only checks if the current
2099         selection or frame is editible. We now check if the currently clicked element
2100         is a content editible area, a textarea, an isindex or an input element that
2101         return YES to _isTextField.
2102
2103         * DefaultDelegates/WebDefaultContextMenuDelegate.m:
2104         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]):
2105
2106 2006-07-20  John Sullivan  <sullivan@apple.com>
2107
2108         Reviewed by Maciej
2109
2110         - WebKit part of fix for:
2111         <rdar://problem/4557386> REGRESSION (419.3-521.19): repro Safari world leak involving 
2112         closing tabs after clicking in a web page
2113
2114         * WebCoreSupport/WebFrameBridge.m:
2115         (-[WebFrameBridge textViewWasFirstResponderAtMouseDownTime:]):
2116         renamed to be more specific (formerly wasFirstResponderAtMouseDownTime:)        
2117         
2118         * WebView/WebHTMLViewInternal.h:
2119         * WebView/WebHTMLView.m:
2120         (-[WebTextCompleteController dealloc]):
2121         updated for name change
2122         (-[NSArray _setMouseDownEvent:]):
2123         Now only retains the first responder if it's a textView, since that's the only case that the only client
2124         actually cares about. This avoids a reference cycle caused by retaining self. This is the only substantive
2125         part of the patch; all the rest is just renaming for clarity, and comments.
2126         (-[NSArray mouseDown:]):
2127         updated for name change
2128         (-[WebHTMLView _textViewWasFirstResponderAtMouseDownTime:]):
2129         renamed to be more specific (formerly _wasFirstResponderAtMouseDownTime:)        
2130
2131 2006-07-19  Tim Omernick  <timo@apple.com>
2132
2133         Reviewed by Darin.
2134
2135         <rdar://problem/4523432> safari crashed right after disabling "block pop up windows" (or other WebPreferences changes)
2136
2137         * Plugins/WebBaseNetscapePluginView.m:
2138         (-[WebBaseNetscapePluginView viewWillMoveToSuperview:]):
2139         Stop the plug-in when it is removed from its superview.  It is not sufficient to do this in -viewWillMoveToWindow:nil, because
2140         the WebView might still has a hostWindow at that point, which prevents the plug-in from being destroyed.
2141         There is no need to start the plug-in when moving into a superview.  -viewDidMoveToWindow takes care of that.
2142
2143 === Safari-521.19 ===
2144
2145 2006-07-17  Tim Omernick  <timo@apple.com>
2146
2147         Reviewed by Maciej.
2148
2149         <rdar://problem/4612079> need a way to prevent pages from scrolling to reveal elements that are focused
2150         by script
2151
2152         * WebView/WebViewPrivate.h:
2153         * WebView/WebView.m:
2154         (-[WebView setProhibitsMainFrameScrolling:]):
2155         New method.  Prohibits scrolling in the WebView's main frame.  Used to "lock" a WebView to a specific
2156         scroll position.
2157
2158 2006-07-17  Timothy Hatcher  <timothy@apple.com>
2159
2160         Reviewed by Darin.
2161         
2162         <rdar://problem/4635311> REGRESSION: WebKit should call windowScriptObjectAvailable before attaching the script debugger
2163
2164         * WebCoreSupport/WebFrameBridge.m:
2165         (-[WebFrameBridge windowObjectCleared]):
2166
2167 2006-07-17  Timothy Hatcher  <timothy@apple.com>
2168
2169         Reviewed by Maciej.
2170
2171         <rdar://problem/4634874> WebScriptObject and WebUndefined are no longer defined by WebKit
2172
2173         Copy WebScriptObject.h from WebCore's private headers, not JavaScriptCore.
2174
2175         * WebKit.xcodeproj/project.pbxproj:
2176
2177 2006-07-17  John Sullivan  <sullivan@apple.com>
2178
2179         Reviewed by Tim Omernick.
2180         
2181         - fixed <rdar://problem/4604366> Orange Find highlight displays text in wrong size on PDF pages 
2182         if they're not at "actual size"
2183         
2184         To match WebHTMLView, I made the methods that return attributed strings take the view's scale
2185         factor into account.
2186
2187         * WebView/WebPDFView.m:
2188         (-[WebPDFView _scaledAttributedString:]):
2189         new helper method, takes an attributed string and returns one that's scaled by the view's
2190         current scale factor
2191         (-[WebPDFView attributedString]):
2192         pass result through _scaledAttributedString:
2193         (-[WebPDFView selectedAttributedString]):
2194         ditto
2195
2196 2006-07-17  Justin Garcia  <justin.garcia@apple.com>
2197
2198         Reviewed by levi
2199         
2200         Rolled the first fix for:
2201         <http://bugzilla.opendarwin.org/show_bug.cgi?id=9642>
2202         GMail Editor: Operations that use drop down menus blow away the selection
2203         back in and removed the call to _clearSelectionInOtherFrames from 
2204         -[WebHTMLView becomeFirstResponder] to fix the bug.
2205
2206         * WebView/WebHTMLView.m:
2207         (-[NSArray maintainsInactiveSelection]):
2208         (-[NSArray becomeFirstResponder]):
2209         * WebView/WebView.m:
2210         (-[WebView maintainsInactiveSelection]):
2211
2212 2006-07-15  Darin Adler  <darin@apple.com>
2213
2214         Reviewed by John Sullivan.
2215
2216         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9928
2217           REGRESSION: Text Encoding menu inoperative (after gcc protocol build fix)
2218
2219         * WebView/WebHTMLView.m:
2220         (-[WebHTMLView _documentRange]): Moved into WebHTMLViewFileInternal category.
2221         (-[WebHTMLView selectionRect]): Moved into WebDocumentPrivateProtocols category.
2222         (-[WebHTMLView selectionView]): Ditto.
2223         (-[WebHTMLView selectionImageForcingWhiteText:]): Ditto.
2224         (-[WebHTMLView selectionImageRect]): Ditto.
2225         (-[WebHTMLView pasteboardTypesForSelection]): Ditto.
2226         (-[WebHTMLView selectAll]): Ditto.
2227         (-[WebHTMLView deselectAll]): Ditto.
2228         (-[WebHTMLView string]): Ditto.
2229         (-[WebHTMLView _attributeStringFromDOMRange:]): Ditto.
2230         (-[WebHTMLView attributedString]): Ditto.
2231         (-[WebHTMLView selectedString]): Ditto.
2232         (-[WebHTMLView selectedAttributedString]): Ditto.
2233         (-[WebHTMLView supportsTextEncoding]): Ditto.
2234         (-[WebHTMLView _canProcessDragWithDraggingInfo:]): Moved into WebDocumentInternalProtocols.
2235         (-[WebHTMLView _isMoveDrag]): Ditto.
2236         (-[WebHTMLView _isNSColorDrag:]): Ditto.
2237         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): Ditto.
2238         (-[WebHTMLView draggingCancelledWithDraggingInfo:]): Ditto.
2239         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Ditto.
2240         (-[WebHTMLView elementAtPoint:]): Ditto.
2241         (-[WebHTMLView elementAtPoint:allowShadowContent:]): Ditto.
2242
2243         * WebKit.xcodeproj/project.pbxproj: Let Xcode 2.3 do its thing.
2244
2245 === Safari-521.17 ===
2246
2247 2006-07-14  Timothy Hatcher  <timothy@apple.com>
2248
2249         Rolling out this fix from r15358 since it isn't resolved.
2250
2251     2006-07-11  Justin Garcia  <justin.garcia@apple.com>
2252
2253         Reviewed by levi & thatcher
2254
2255         <http://bugzilla.opendarwin.org/show_bug.cgi?id=9642>
2256         GMail Editor: Operations that use drop down menus blow away the selection
2257
2258         * WebView/WebHTMLView.m:
2259         (-[WebHTMLView maintainsInactiveSelection]): Maintain an inactive selection
2260         when resigning as first responder if the selection is editable
2261         or if the WebView tells us to.
2262         * WebView/WebView.m:
2263         (-[WebView maintainsInactiveSelection]): Just because a WebView is
2264         editable doesn't mean selections inside subframes will be.  Return
2265         NO by default.
2266
2267 2006-07-14  Timothy Hatcher  <timothy@apple.com>
2268
2269         <rdar://problem/4623957> SWB: gcc-5412 (new?) objc warning causes WebCore project failure
2270
2271         Build fix with the new GCC. Removes forward declarations of protocols.
2272
2273         * Misc/WebSearchableTextView.h:
2274         * WebCoreSupport/WebSubresourceLoader.h:
2275         * WebKit.xcodeproj/project.pbxproj:
2276         * WebView/WebDocumentInternal.h:
2277         * WebView/WebDocumentPrivate.h:
2278         * WebView/WebHTMLView.h:
2279         * WebView/WebPDFView.h:
2280         * WebView/WebScriptDebugDelegatePrivate.h:
2281
2282 2006-06-28  Darin Adler  <darin@apple.com>
2283
2284         Reviewed by Adele.
2285
2286         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9625
2287           <rdar://problem/4604703>
2288           REGRESSION: Focus not removed from password field after ctrl-click in text field
2289
2290         * WebView/WebHTMLView.m: (-[WebHTMLView menuForEvent:]): Set handlingMouseDownEvent to
2291         YES while calling sendContextMenuEvent: on the bridge.
2292
2293 2006-07-14  Timothy Hatcher  <timothy@apple.com>
2294
2295         Reviewed by Maciej.
2296
2297         Moved JavaScriptCore to be a public framework.
2298
2299         * WebKit.xcodeproj/project.pbxproj:
2300
2301 2006-07-13  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2302
2303         Reviewed by Darin.
2304
2305         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9795
2306           REGRESSION: Crash in [WebHTMLView(WebPrivate) 
2307           _updateMouseoverWithEvent:]
2308           and http://bugzilla.opendarwin.org/show_bug.cgi?id=9850
2309           REGRESSION: Assertion failure (SHOULD NEVER BE REACHED) in -
2310           [WebHTMLView(WebPrivate) removeTrackingRect:]
2311
2312         * WebView/WebHTMLView.m:
2313         (-[WebHTMLView _updateMouseoverWithEvent:]): Return immediately if 
2314         the view has already been closed.
2315
2316 2006-07-13  David Harrison  <harrison@apple.com>
2317
2318         Reviewed by Justin and Levi.
2319
2320         <rdar://problem/4620743> REGRESSION: Option-Delete doesn't delete words during typing
2321
2322         * Tests:
2323         editing/deleting/delete-by-word-001.html
2324         editing/deleting/delete-by-word-002.html
2325
2326         * WebView/WebHTMLView.m:
2327         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:granularity:]):
2328
2329 2006-07-13  Timothy Hatcher  <timothy@apple.com>
2330
2331         Rolling out this earlier change (r15378) now that it is fixed on AGL's end.
2332         Fixes <rdar://problem/4624865> Restore 64-bit OpenGL plug-in support once AGL is 64-bit
2333
2334         <rdar://problem/4624858> AGL isn't 64-bit yet; temporarily remove it from WebKit 64-bit build
2335
2336         * Plugins/WebBaseNetscapePluginView.h:
2337         * Plugins/WebBaseNetscapePluginView.m:
2338
2339 2006-07-13  Timothy Hatcher  <timothy@apple.com>
2340
2341         Reviewed by Darin.
2342
2343         <rdar://problem/4616920> REGRESSION: tabbing in mail moves focus
2344         to next control instead of inserting a tab space.
2345
2346         Change editible WebView's tabKeyCyclesThroughElements to NO only
2347         if the setTabKeyCyclesThroughElements SPI wasn't called.
2348
2349         * WebView/WebView.m:
2350         (-[WebView setEditable:]):
2351
2352 2006-07-12  Anders Carlsson  <acarlsson@apple.com>
2353
2354         Reviewed by Darin.
2355
2356         http://bugzilla.opendarwin.org/show_bug.cgi?id=9624
2357         REGRESSION: After ctrl-clicking in a EMPTY input or textarea field, the contextual menu shows "Search in Google" and "Search in Spotlight" as active menu items
2358
2359         * DefaultDelegates/WebDefaultContextMenuDelegate.m:
2360         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
2361         Don't create Dictionary, Spotlight or Google lookup items if there's no selection.
2362
2363 2006-07-12  Mark Rowe  <opendarwin.org@bdash.net.nz>
2364
2365         Reviewed by Timothy.
2366
2367         http://bugzilla.opendarwin.org/show_bug.cgi?id=9868
2368         Applications shown in Drosera's "Attach" window remain after exit
2369
2370         * DefaultDelegates/WebScriptDebugServer.m:
2371         (-[WebScriptDebugServer init]): Register for NSApplicationWillTerminateNotification so we will
2372         know when the application is being exited.
2373         (-[WebScriptDebugServer dealloc]): Unregister notification before we are deallocated.
2374         (-[WebScriptDebugServer applicationTerminating:]): Inform anyone listening that we are going away.
2375
2376 2006-07-12  Tim Omernick  <timo@apple.com>
2377
2378         Reviewed by Tim Hatcher.
2379
2380         <rdar://problem/4624858> AGL isn't 64-bit yet; temporarily remove it from WebKit 64-bit build
2381
2382         Also, fixed a LOG_ERROR() so that it uses the CGL error instead of the AGL error; Tim H missed this in his build fix
2383         from earlier.
2384
2385         * Plugins/WebBaseNetscapePluginView.h:
2386         * Plugins/WebBaseNetscapePluginView.m:
2387
2388 2006-07-11  John Sullivan  <sullivan@apple.com>
2389
2390         Reviewed by Kevin and Tim O
2391
2392         - added support for creating a selection image with white text
2393
2394         * WebView/WebDocumentPrivate.h:
2395         added -selectionImageForcingWhiteText: and -selectionImageRect to the private
2396         <WebDocumentSelection> protocol
2397
2398         * Misc/WebSearchableTextView.m:
2399         (-[NSString selectionImageForcingWhiteText:]):
2400         added stub for this new method to this obsolete class to satisfy the compiler
2401         (-[NSString selectionImageRect]):
2402         ditto
2403         
2404         * WebView/WebHTMLView.m:
2405         (-[WebHTMLView _selectionDraggingImage]):
2406         now calls -selectionImageForcingWhiteText:NO instead of just -selectionImage
2407         (-[WebHTMLView _selectionDraggingRect]):
2408         now calls selectionImageRect, to which the implementation moved
2409         (-[WebHTMLView selectionImageForcingWhiteText:]):
2410         implemented this new method by calling through to new bridge method selectionImageForcingWhiteText:
2411         (-[WebHTMLView selectionImageRect]):
2412         implemented this new method by using existing _selectionDraggingRect implementation
2413         
2414         * WebView/WebPDFView.m:
2415         (-[WebPDFView selectionImageForcingWhiteText:]):
2416         implemented by using code that was formerly in Safari
2417         (-[WebPDFView selectionImageRect]):
2418         implemented by returning selectionRect
2419
2420 2006-07-11  Tim Omernick  <timo@apple.com>
2421
2422         Reviewed by Geoff.
2423
2424         <http://bugzilla.opendarwin.org/show_bug.cgi?id=9843>:
2425         Give Netscape plug-ins access to their own DOM element
2426
2427         * Plugins/WebBaseNetscapePluginView.h:
2428         * Plugins/WebBaseNetscapePluginView.m:
2429         (-[WebBaseNetscapePluginView dealloc]):
2430         Release DOM element.
2431         (-[WebBaseNetscapePluginView getVariable:value:]):
2432         Return NPObject for plugin DOM element.
2433
2434         * Plugins/WebNetscapePluginEmbeddedView.h:
2435         * Plugins/WebNetscapePluginEmbeddedView.m:
2436         (-[WebNetscapePluginEmbeddedView initWithFrame:plugin:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:DOMElement:]):
2437         Now takes a DOMElement, in much the same way that WebKit plug-in views take a DOMElement.
2438
2439         * WebCoreSupport/WebFrameBridge.m:
2440         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:DOMElement:loadManually:]):
2441         Pass DOMElement to Netscape plug-ins.
2442         (-[WebFrameBridge viewForJavaAppletWithFrame:attributeNames:attributeValues:baseURL:DOMElement:]):
2443         ditto
2444
2445 2006-07-11  Justin Garcia  <justin.garcia@apple.com>
2446
2447         Reviewed by levi & thatcher
2448         
2449         <http://bugzilla.opendarwin.org/show_bug.cgi?id=9642>
2450         GMail Editor: Operations that use drop down menus blow away the selection
2451         
2452         * WebView/WebHTMLView.m:
2453         (-[WebHTMLView maintainsInactiveSelection]): Maintain an inactive selection
2454         when resigning as first responder if the selection is editable
2455         or if the WebView tells us to.
2456         * WebView/WebView.m:
2457         (-[WebView maintainsInactiveSelection]): Just because a WebView is
2458         editable doesn't mean selections inside subframes will be.  Return
2459         NO by default.
2460
2461 2006-07-11  Tim Omernick  <timo@apple.com>
2462
2463         Reviewed by Tim Hatcher.
2464
2465         <rdar://problem/4622748> WebKit now uses deprecated AGL functions
2466
2467         * Plugins/WebBaseNetscapePluginView.m:
2468         (-[WebBaseNetscapePluginView _createWindowedAGLContext]):
2469         aglSetDrawable() is deprecated in AGL 3.0.  Use aglSetWindowRef() instead.
2470         (-[WebBaseNetscapePluginView _createWindowlessAGLContext]):
2471         aglSetOffScreen() is deprecated in AGL 3.0.  Use CGLSetOffScreen(), which does the same thing.
2472
2473 2006-07-11  Alexey Proskuryakov  <ap@nypop.com>
2474
2475         Reviewed by Tim O.
2476
2477         - http://bugzilla.opendarwin.org/show_bug.cgi?id=7808
2478         Assertion failure in -[WebBaseNetscapePluginStream dealloc] when requesting an invalid URL
2479
2480         * Plugins/WebNetscapePluginStream.m:
2481         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
2482         Remove the early return when requesting an invalid (unsupported) URL.
2483
2484 === Safari-521.16 ===
2485
2486 2006-07-10  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2487
2488         Reviewed by John Sullivan.
2489
2490         - fix <rdar://problem/4621541>, aka <http://bugzilla.opendarwin.org/show_bug.cgi?id=9838>
2491           REGRESSION (r14968-r14977): View Source doesn't work for pages from the back/forward cache
2492
2493         * WebView/WebDataSource.m:
2494         (-[WebDataSource _setPrimaryLoadComplete:]): Set our data only if the frame loader is
2495         has just loaded it (when coming from the back/forward cache, it hasn't).
2496
2497 2006-07-10  Brady Eidson  <beidson@apple.com>
2498
2499         Reviewed by Alexey
2500
2501         Resolved the console error messages people got from the new DB even if they didn't have it enabled
2502
2503         * Misc/WebIconDatabase.m:
2504         (-[WebIconDatabase init]):
2505         Disabled initializing the IconDatabaseBridge if user is living on the old DB
2506
2507 2006-07-10  Darin Adler  <darin@apple.com>
2508
2509         - try to fix Windows build
2510
2511         * COM/WebFrame.h: Qualify DeprecatedString and KURL with WebCore:: prefixes.
2512
2513 2006-07-09  Darin Adler  <darin@apple.com>
2514
2515         - try to fix Windows build
2516
2517         * COM/WebFrame.cpp: Rename QChar to DeprecatedChar.
2518
2519 2006-07-09  Darin Adler  <darin@apple.com>
2520
2521         - fix newlines to be consistent for all files in the COM directory
2522           (many had mixed style) and set the EOL style to "native" on them.
2523
2524         * COM/*: Set properties and changed files.
2525
2526 2006-07-09  Tim Omernick  <timo@apple.com>
2527
2528         Reviewed by Maciej.
2529
2530         <rdar://problem/4404652> Netscape plug-in mouse events broken in HiDPI
2531
2532         Multiply global mouse coordinates by the window scale factor so that plug-ins can use GlobalToLocal() in HiDPI.
2533         This fixes many bugs involving plug-in mouse event handling in HiDPI.  Most notably, the Flash player will now
2534         correctly respond to clicks.
2535
2536         * Plugins/WebBaseNetscapePluginView.m:
2537         (+[WebBaseNetscapePluginView getCarbonEvent:]):
2538         (-[WebBaseNetscapePluginView getCarbonEvent:withEvent:]):
2539
2540 2006-07-09  Darin Adler  <darin@apple.com>
2541
2542         Reviewed by Tim Hatcher.
2543
2544         - fix assertion firing in plug-in layout tests
2545
2546         * Plugins/WebBaseNetscapePluginView.m:
2547         (-[WebBaseNetscapePluginView restartNullEvents]):
2548         Don't start null events if the plug-in is not in the
2549         started state. This happens when the plug-in moves within
2550         its view hierarchy after it has been stopped.
2551
2552 2006-07-09  Timothy Hatcher  <timothy@apple.com>
2553
2554         Reviewed by Darin.
2555
2556         Bug 9820: Move new DOM API that has been through API review to public headers
2557         http://bugzilla.opendarwin.org/show_bug.cgi?id=9820
2558
2559         * Misc/WebElementDictionary.m: include DOMExtensions.h
2560         * Misc/WebNSViewExtras.m: include DOMExtensions.h
2561         * WebKit.xcodeproj/project.pbxproj: make DOMXPath.h public
2562
2563 2006-07-09  Timothy Hatcher  <timothy@apple.com>
2564
2565         Reviewed by Kevin.
2566
2567         Bug 9818: move new UIDelegate API that has been through API review to public headers
2568         http://bugzilla.opendarwin.org/show_bug.cgi?id=9818
2569
2570         <rdar://problem/4387541> API: Remove webView:setContentRect: & webViewContentRect: delegate methods?
2571         The fix for 4310363 removed the only use of webViewContentRect: in our code. webView:setContentRect:
2572         was never used to begin with. There's no harm in leaving these around in the API, but they'll cruft it up.
2573
2574         Also removes the never used webViewPrint: SPI that was replaced by webView:printFrameView:.
2575
2576         * DefaultDelegates/WebDefaultUIDelegate.m:
2577         * WebCoreSupport/WebFrameBridge.m:
2578         (-[WebFrameBridge print]):
2579         * WebView/WebFrameView.h:
2580         * WebView/WebFrameView.m:
2581         * WebView/WebFrameViewPrivate.h:
2582         * WebView/WebUIDelegate.h:
2583         * WebView/WebUIDelegatePrivate.h:
2584
2585 2006-07-09  Timothy Hatcher  <timothy@apple.com>
2586
2587         Reviewed by Darin.
2588
2589         Bug 9814: Move new WebView API that has been through API review to public headers
2590         http://bugzilla.opendarwin.org/show_bug.cgi?id=9814
2591
2592         * WebView/WebView.h:
2593         * WebView/WebView.m:
2594         (-[WebView close]):
2595         (-[WebView setShouldCloseWithWindow:]):
2596         (-[WebView shouldCloseWithWindow]):
2597         (-[WebView selectedFrame]):
2598         (-[WebView setMainFrameURL:]):
2599         (-[WebView mainFrameURL]):
2600         (-[WebView isLoading]):
2601         (-[WebView mainFrameTitle]):
2602         (-[WebView mainFrameIcon]):
2603         (-[WebView mainFrameDocument]):
2604         (-[WebView setDrawsBackground:]):
2605         (-[WebView drawsBackground]):
2606         (-[WebView toggleSmartInsertDelete:]):
2607         (-[WebView toggleContinuousSpellChecking:]):
2608         (-[WebView canMakeTextStandardSize]):
2609         (-[WebView makeTextStandardSize:]):
2610         (-[WebView maintainsInactiveSelection]):
2611         * WebView/WebViewPrivate.h:
2612
2613 2006-07-09  Timothy Hatcher  <timothy@apple.com>
2614
2615         Reviewed by Maciej.
2616
2617         Bug 9487: The XPath section should be removed and/or moved.
2618         http://bugzilla.opendarwin.org/show_bug.cgi?id=9487
2619
2620         * WebInspector/webInspector/inspector.css:
2621         * WebInspector/webInspector/inspector.html:
2622         * WebInspector/webInspector/inspector.js:
2623
2624 2006-07-09  Anders Carlsson  <acarlsson@apple.com>
2625
2626         Reviewed by Tim O.
2627
2628         * WebCoreSupport/WebSystemInterface.m:
2629         (InitWebCoreSystemInterface):
2630         Initialize wkPathFromFont.
2631
2632 2006-07-09  Darin Adler  <darin@apple.com>
2633
2634         - fix release build
2635
2636         * Plugins/WebBaseNetscapePluginView.m:
2637         (-[WebBaseNetscapePluginView restorePortState:]): Cast inside the assertion so
2638         that we don't have an unused variable in versions with assertions disabled.
2639         The alternative would be to wrap the whole thing in an #if statement.
2640
2641 2006-07-08  Tim Omernick  <timo@apple.com>
2642
2643         Reviewed by John Sullivan.
2644
2645         * Plugins/WebBaseNetscapePluginView.h:
2646         - Added ivars for OpenGL support.  Someday it would be nice to refactor this class so
2647           that each drawing model is encapsulated in a class; this would allow
2648           WebBaseNetscapePluginView to make more efficient use of space, for example by not
2649           keeping OpenGL-related ivars for Quickdraw plug-ins.
2650         
2651         * Plugins/WebBaseNetscapePluginView.m:
2652         - Declared a bunch of internal methods for OpenGL support (see below).
2653         - Removed "forUpdate" from CoreGraphics port state struct; it was always set to "YES",
2654           so I just cleaned up the silly code that used it.
2655         - Declared OpenGL port state struct.
2656         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
2657         - Moved a CoreGraphics-related assertion down to the big "switch" statement.
2658         - Don't set window.type here -- according to the Netscape Plug-in API docs, the plug-in
2659           should default to "windowed" mode, and may call NPN_SetValue() during its NPN_New() to
2660           request that the browser use a "windowless" (offscreen) context instead.
2661         - Moved the assertion from the top of this method here; removed a less restrictive
2662           assertion that is now obsolete.
2663         - Removed "forUpdate" flag from CoreGraphics port state struct.
2664         - Fill in OpenGL port state struct.  Set up the viewport appropriately for both windowed
2665           and windowless OpenGL plug-ins.  Windowed plug-ins need to have their GL viewport
2666           transformed by the amount the plug-in is clipped; windowless plug-ins are drawn off-screen
2667           into a surface whose geometry is never changed or clipped, so they may always draw with
2668           a viewport origin of (0, 0).
2669         (-[WebBaseNetscapePluginView restorePortState:]):
2670         - Removed "forUpdate" flag from CoreGraphics port state struct.
2671         - Restore the old OpenGL context saved by -saveAndSetNewPortStateForUpdate:.
2672         (-[WebBaseNetscapePluginView sendEvent:]):
2673         - Updated an assertion to also include OpenGL.  To ensure that attached plug-in window movements
2674           happen atomically with web page redisplays, we assert that the plug-in's window is set only while
2675           the plug-in view is redrawing.
2676         - Same deal as with the assertion; only save/set port state when redrawing the plug-in view.  Plug-ins
2677           that use the new drawing models are only allowed to draw when the web page draws.  I might consider
2678           changing this for windowed OpenGL plug-ins, since they always obscure the page content anyway.
2679         (-[WebBaseNetscapePluginView isNewWindowEqualToOldWindow]):
2680         - Compare new NP_GLContext structs.
2681         (-[WebBaseNetscapePluginView updateAndSetWindow]):
2682         - In OpenGL mode, can only set window when updating plug-in view.
2683         (-[WebBaseNetscapePluginView setWindowIfNecessary]):
2684         - ditto
2685         - Updated logging for OpenGL drawing mode.
2686         (-[WebBaseNetscapePluginView addWindowObservers]):
2687         - No need to observe frame/bounds change notifications for this and all parent views.  See -renewGState
2688           comments below.
2689         (-[WebBaseNetscapePluginView removeWindowObservers]):
2690         - Don't need to remove frame/bounds observers anymore.
2691         (-[WebBaseNetscapePluginView start]):
2692         - Plug-ins are "windowed" by default.  This is not a change from our previous behavior, but this is a
2693           better place to set the default value as it allows the plug-in to override it later.
2694         (-[WebBaseNetscapePluginView stop]):
2695         - Destroy AGL context when the plug-in stops.
2696         (-[WebBaseNetscapePluginView dealloc]):
2697         - Assert that the AGL stuff has been cleaned up.
2698         (-[WebBaseNetscapePluginView drawRect:]):
2699         - If this is a windowless OpenGL plugin, blit its contents back into this view.
2700         (-[WebBaseNetscapePluginView renewGState]):
2701         - This method is called when the view or one of its parents is moved or resized (see comments).
2702         (-[WebBaseNetscapePluginView viewWillMoveToWindow:]):
2703         - Hide the AGL window if the plug-in view is about to be removed from its window.
2704         (-[WebBaseNetscapePluginView viewHasMoved:]):
2705         - Renamed and moved to the "Internal" category.
2706         (-[WebBaseNetscapePluginView invalidateRegion:]):
2707         - Style changes.
2708         - Add support for OpenGL (uses the same region type as CoreGraphics).
2709         (-[WebBaseNetscapePluginView getVariable:value:]):
2710         - Style changes.
2711         - Implemented NPNVsupportsOpenGLBool; returns YES since we now support the OpenGL drawing model.
2712         (-[WebBaseNetscapePluginView setVariable:value:]):
2713         - Implemented NPPVpluginWindowBool, which allows plug-ins to specify whether they should be rendered in
2714           "windowed" or "windowless" mode.  This is an older part of the Netscape Plug-in API that was never
2715           implemented in WebKit.  "Windowed" Quickdraw plug-ins do not actually reside in a separate window, and
2716           can already do many of the same things (such as transparency) that only "windowless" plug-ins can do on
2717           other platforms.  However, we need the "windowed" vs. "windowless" distinction for OpenGL plug-ins so
2718           that they have some way of specifying whether they should be rendered on an accelerated overlay surface,
2719           composited into the browser window.
2720         - Support for setting the drawing model to OpenGL.
2721         (-[WebBaseNetscapePluginView _viewHasMoved]):
2722         - Renamed from -viewHasMoved:, and moved down in the file.
2723         - None of this work is necessary when the plug-in is not in a window; the plug-in's state will be properly
2724           restored when it is moved back into a window.
2725         - Reshape OpenGL surface window here.
2726         (-[WebBaseNetscapePluginView _createAGLContextIfNeeded]):
2727         - Creates the AGL context of the appropriate type (windowed/windowless).
2728         (-[WebBaseNetscapePluginView _createWindowedAGLContext]):
2729         - Creates a windowed AGL context, which is an AGL context attached to a child window.  This is the only way
2730           to get true hardware acceleration.
2731         (-[WebBaseNetscapePluginView _createWindowlessAGLContext]):
2732         - Creates a windowless AGL context, which is an AGL context attached to an offscreen buffer.  This buffer can
2733           then be blitted back into the browser window with a different alpha, or scaled, or whatever.
2734         (-[WebBaseNetscapePluginView _cglContext]):
2735         - Returns the underlying CGL context from the AGL context.  We give the plug-in access to the CGL context because
2736           CGL is the more primitive of the GL drawable APIs and allows for finer control over the context.
2737         (-[WebBaseNetscapePluginView _getAGLOffscreenBuffer:width:height:]):
2738         - Returns the buffer allocated for the offscreen AGL context, if there is one.
2739         (-[WebBaseNetscapePluginView _destroyAGLContext]):
2740         - Destroys the AGL context, as well as the associated offscreen buffer or child window.
2741         (-[WebBaseNetscapePluginView _reshapeAGLWindow]):
2742         - Positions the AGL window over the browser window.
2743         (-[WebBaseNetscapePluginView _hideAGLWindow]):
2744         - Hides the AGL window.
2745         (-[WebBaseNetscapePluginView _aglOffscreenImageForDrawingInRect:]):
2746         - Returns an NSImage representation of the offscreen AGL context's framebuffer.  This is used to draw the offscreen
2747           bits back into the plug-in view.  This is kind of tricky because it has to convert the offscreen buffer in-place
2748           from BGRA to RGBA so that it can be wrapped in an NSBitmapImageRep.  See comments.
2749
2750         * WebKit.xcodeproj/project.pbxproj:
2751         Link OpenGL and AGL.
2752
2753 2006-07-09  Brady Eidson  <beidson@apple.com>
2754
2755         Reviewed by Maciej
2756
2757         The ICONDEBUG flag now chooses either the new icon database or the old one
2758         No longer any need to live side by side to compare results
2759
2760         * Misc/WebIconDatabase.m:
2761         (-[NSMutableDictionary iconURLForURL:]):
2762         (-[NSMutableDictionary retainIconForURL:]):
2763         (-[NSMutableDictionary releaseIconForURL:]):
2764         (-[WebIconDatabase _setHaveNoIconForIconURL:]):
2765         (-[WebIconDatabase _setIconURL:forURL:]):
2766         (-[WebIconDatabase _resetCachedWebPreferences:]):
2767
2768 2006-07-08  Timothy Hatcher  <timothy@apple.com>
2769
2770         Reviewed by Maciej.
2771
2772         Bug 5312: comments aren't available via DOM
2773         http://bugzilla.opendarwin.org/show_bug.cgi?id=5312
2774
2775         Makes the Web Inspector show comment node contents.
2776
2777         * WebInspector/WebInspector.m:
2778         (-[DOMNode _displayName]): return the contents of the comment
2779         * WebInspector/webInspector/inspector.js: check for comment nodes
2780
2781 2006-07-09  Alexey Proskuryakov  <ap@nypop.com>
2782
2783         Reviewed by Darin.
2784
2785         - http://bugzilla.opendarwin.org/show_bug.cgi?id=9572
2786         Add application/xhtml+xml to the Accept header
2787
2788         * WebView/WebFrame.m:
2789         (-[WebFrame _addExtraFieldsToRequest:mainResource:alwaysFromRequest:]): Add an Accept header
2790         to main resource requests.
2791         * English.lproj/StringsNotToBeLocalized.txt: Added new strings.
2792
2793 2006-07-08  Darin Adler  <darin@apple.com>
2794
2795         * DefaultDelegates/WebDefaultContextMenuDelegate.m:
2796         (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
2797         Removed misleading old comment.
2798
2799 === Safari-521.15 ===
2800
2801 2006-07-07  Levi Weintraub  <lweintraub@apple.com>
2802
2803         Reviewed by justin
2804
2805         Finished moving deletion selection expansion across the bridge... say that 3 times fast.
2806
2807         * WebView/WebHTMLView.m:  Pass granularity to WebCore to handle expansion
2808         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:granularity:]):
2809         (-[WebHTMLView _deleteSelection]):
2810         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
2811         (-[WebHTMLView deleteToMark:]):
2812
2813 2006-07-07  Brady Eidson  <beidson@apple.com>
2814
2815         Reviewed by John
2816
2817         Changed an ASSERT to a LOG_ERROR for an error that could be handled gracefully, but
2818         whose assertion was reproducibly causing a build bot failure
2819
2820         * Misc/WebIconDatabase.m:
2821         (-[WebIconDatabase _releaseIconForIconURLString:]):
2822
2823 2006-07-06  Levi Weintraub  <lweintraub@apple.com>
2824
2825         Reviewed by justin
2826
2827         Improved table editing
2828
2829         * WebCoreSupport/WebFrameBridge.m: Added method to allow WebCore to trigger
2830         deletion editing delegate
2831         (-[WebFrameBridge shouldDeleteSelectedDOMRange:]):
2832         * WebView/WebHTMLView.m: Moved code that expanded a selection when the delete
2833         key is pressed over to WebCore so we can be more intelligent about how to handle it
2834         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]):
2835         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
2836
2837 2006-07-07  John Sullivan  <sullivan@apple.com>
2838
2839         Reviewed by Tim Hatcher
2840         
2841         - fixed <rdar://problem/4606857> WebKit: WebPreferencesChangedNotification not exported
2842
2843         * WebKit.exp:
2844         added surprisingly missing _WebPreferencesChangedNotification, defined in
2845         WebPreferences.h
2846
2847 2006-07-06  Brady Eidson  <beidson@apple.com>
2848
2849         Reviewed by John.
2850
2851         Small fix to my previous small fix that only lets the ASSERT off the hook if the DB
2852         is closing
2853
2854         * Misc/WebIconDatabase.m:
2855         (-[WebIconDatabase _releaseIconForIconURLString:]):
2856
2857 2006-07-05  Brady Eidson  <beidson@apple.com>
2858
2859         Reviewed by Maciej
2860
2861         Small fix that prevents an assertion from triggering if the DB is being cleaned up 
2862         (ie, the app being shut down)
2863
2864         * Misc/WebIconDatabase.h:
2865         * Misc/WebIconDatabase.m:
2866         (-[NSMutableDictionary init]):
2867         (-[WebIconDatabase _applicationWillTerminate:]):
2868         (-[WebIconDatabase _releaseIconForIconURLString:]):
2869
2870 2006-07-05  Adele Peterson  <adele@apple.com>
2871
2872         Reviewed by Maciej and Hyatt.
2873
2874         WebKit part of initial popup menu implementation.
2875
2876         * WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface):
2877         Initialize WKPopupMenu.
2878
2879 2006-07-05  Anders Carlsson  <acarlsson@apple.com>
2880
2881         Reviewed by Maciej.
2882
2883         http://bugzilla.opendarwin.org/show_bug.cgi?id=3581
2884         iFrames set to display:none are Missing from frames array
2885         
2886         * WebCoreSupport/WebFrameBridge.m:
2887         (-[WebFrameBridge initSubframeWithOwnerElement:frameName:view:]):
2888         (-[WebFrameBridge createChildFrameNamed:withURL:referrer:ownerElement:allowsScrolling:marginWidth:marginHeight:]):
2889         Modify to pass the owner element instead of the owner renderer.
2890         
2891         * WebView/WebHTMLView.m:
2892         (-[WebHTMLView _topHTMLView]):
2893         Remove assertion, it's not valid anymore.
2894
2895 2006-07-05  Timothy Hatcher  <timothy@apple.com>
2896
2897         Reviewed by Harrison.
2898
2899         <rdar://problem/4608423> HIViewAdapter used but not defined
2900         Adds a new export file to fix the build.
2901
2902         * WebKit.LP64.exp: Added.
2903         * WebKit.xcodeproj/project.pbxproj:
2904
2905 2006-07-04  Timothy Hatcher  <timothy@apple.com>
2906
2907         Reviewed by Maciej.
2908
2909         Bug 9731: [Drosera] crash when trying to access the scope chain
2910         http://bugzilla.opendarwin.org/show_bug.cgi?id=9731
2911
2912         Because of <rdar://problem/4608404> the WebScriptObject, _globalObj, that
2913         WebCoreScriptDebugger holds is unprotected each time the page changes.
2914         This causes Drosera to crash Safari when trying to access the scope chain.
2915         We simply need to detach and re-attach the debugger when the window script
2916         object is cleared until 4608404 is fixed. This change also attaches the
2917         debugger before we call the windowScriptObjectAvailable: delegate method,
2918         so the debugger is ready before anyone might use the window object.
2919
2920         * WebCoreSupport/WebFrameBridge.m:
2921         (-[WebFrameBridge windowObjectCleared]):
2922
2923 2006-07-04  Timothy Hatcher  <timothy@apple.com>
2924
2925         Reviewed by Darin.
2926
2927         Bug 9732: [Drosera] calling removeListener to many times will cause
2928                   WebKit's listener count to underflow/wraparound
2929         http://bugzilla.opendarwin.org/show_bug.cgi?id=9732
2930
2931         Adds a check to make sure the listener was in our listeners set before
2932         decrementing the global listener count. Also checks for nil in addListner
2933         to prevent a possible exception when adding the object to the set.
2934
2935         * DefaultDelegates/WebScriptDebugServer.m:
2936         (-[WebScriptDebugServer addListener:]):
2937         (-[WebScriptDebugServer removeListener:]):
2938
2939 2006-07-04  Alexey Proskuryakov  <ap@nypop.com>
2940
2941         Reviewed by Maciej.
2942
2943         - http://bugzilla.opendarwin.org/show_bug.cgi?id=8210
2944         Conditional XMLHttpRequest gets should pass 304 responses unchanged
2945
2946         Test: http/tests/xmlhttprequest/cache-override.html
2947
2948         * Misc/WebNSURLRequestExtras.h: Added _web_isConditionalRequest
2949         * Misc/WebNSURLRequestExtras.m:
2950         (-[NSURLRequest _web_isConditionalRequest]):
2951         * WebCoreSupport/WebFrameBridge.m:
2952         (-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
2953         Bypass the cache for conditional requests.
2954         * WebCoreSupport/WebSubresourceLoader.m:
2955         (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]): Ditto.
2956
2957 2006-07-01  David Kilzer  <ddkilzer@kilzer.net>
2958
2959         Reviewed by NOBODY (fixed Tim's build fix).
2960
2961         * WebView/WebView.m: Added back missing '/' at the beginning of the file.
2962
2963 2006-07-01  Tim Omernick  <timo@apple.com>
2964
2965         Reviewed by NOBODY (build fix)
2966
2967         * WebView/WebView.m:
2968         (-[WebView _isMIMETypeRegisteredAsPlugin:]):
2969         Changed nil to NO (typo).
2970
2971 === Safari-521.14 ===
2972
2973 2006-06-30  Timothy Hatcher  <timothy@apple.com>
2974
2975         Reviewed by Darin.
2976
2977         Only enable shouldCloseWithWindow when ObjC GC is enabled.
2978         This maintains backwards compatibility with applications
2979         that expect a WebView to be usable after the window closes.
2980
2981         * WebView/WebView.m:
2982         (-[WebViewPrivate init]):
2983
2984 2006-06-30  Timothy Hatcher  <timothy@apple.com>
2985
2986         Reviewed by Anders.
2987
2988         Call _close in dealloc to ensure we cleanup for backwards
2989         compatibility. This will safeguard and cleanup even if the
2990         application doesn't use the new close API yet, like Mail.
2991
2992         * WebView/WebView.m:
2993         (-[WebView dealloc]):
2994
2995 2006-06-29  Timothy Hatcher  <timothy@apple.com>
2996
2997         Reviewed by Darin.
2998
2999         <rdar://problem/4484405> WebKit leaks, improper tear-down
3000         <rdar://problem/3694059> -[WebBackForwardList finalize] is incorrect; design change needed
3001         <rdar://problem/3694103> -[WebFrame finalize] is incorrect; design change needed
3002         <rdar://problem/3694104> -[WebHTMLView finalize] is incorrect; design change needed
3003
3004         Adds a close method to WebView, this needs to be called when the 
3005         WebView is no longer needed. To make this easier for the common cases
3006         there is now an "auto close" on WebView that listens to the view's
3007         parent window. If the parent window closes and the WebView has no
3008         hostWindow then the WebView is automatically closed if autoClose is YES.
3009         To manage WebView closing yourself call setAutoClose: and pass NO.
3010
3011         When a WebView closes it will tear-down and not be usable anymore.
3012         Close will will called on various other internal objects as a part
3013         of this, to ensure proper tear-down in GC without relying on finalize.
3014
3015         * History/WebBackForwardList.m:
3016         (-[WebBackForwardList dealloc]):
3017         (-[WebBackForwardList finalize]):
3018         (-[WebBackForwardList _close]):
3019         * History/WebHistoryItem.m:
3020         (+[WebHistoryItem _closeObjectsInPendingPageCaches]):
3021         (+[WebHistoryItem _releaseAllPendingPageCaches]):
3022         * History/WebHistoryItemPrivate.h:
3023         * WebCoreSupport/WebFrameBridge.m:
3024         (-[WebFrameBridge close]):
3025         (-[WebFrameBridge saveDocumentToPageCache:]):
3026         (-[WebFrameBridge canGoBackOrForward:]):
3027         * WebView/WebFrame.m:
3028         (-[WebFrame _detachFromParent]):
3029         (-[WebFrame dealloc]):
3030         (-[WebFrame finalize]):
3031         * WebView/WebFrameView.m:
3032         (-[WebFrameView _setWebFrame:]):
3033         (-[WebFrameView finalize]):
3034         * WebView/WebHTMLView.m:
3035         (-[WebHTMLView close]):
3036         (-[WebHTMLView dealloc]):
3037         (-[WebHTMLView finalize]):
3038         * WebView/WebHTMLViewInternal.h:
3039         * WebView/WebHTMLViewPrivate.h:
3040         * WebView/WebScriptDebugDelegate.m:
3041         (-[WebScriptCallFrame _initWithFrame:initWithWebFrame:]):
3042         (-[WebScriptCallFrame parsedSource:fromURL:sourceId:startLine:errorLine:errorMessage:]):
3043         (-[WebScriptCallFrame enteredFrame:sourceId:line:]):
3044         (-[WebScriptCallFrame hitStatement:sourceId:line:]):
3045         (-[WebScriptCallFrame leavingFrame:sourceId:line:]):
3046         * WebView/WebScriptDebugDelegatePrivate.h:
3047         * WebView/WebView.m:
3048         (-[WebViewPrivate init]):
3049         (-[WebView _close]):
3050         (-[WebView dealloc]):
3051         (-[WebView finalize]):
3052         (-[WebView viewWillMoveToWindow:]):
3053         (-[WebView _windowWillClose:]):
3054         (-[WebView setPreferencesIdentifier:]):
3055         (-[WebView mainFrame]):
3056         (-[WebView setHostWindow:]):
3057         (-[WebView searchFor:direction:caseSensitive:wrap:]):
3058         (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]):
3059         (-[WebView close]):
3060         (-[WebView setAutoClose:]):
3061         (-[WebView autoClose]):
3062         (-[WebView _frameViewAtWindowPoint:]):
3063         * WebView/WebViewPrivate.h:
3064
3065 2006-06-29  Kevin Decker  <kdecker@apple.com>
3066
3067         Reviewed by mjs and timo.
3068         
3069         Fixed: <rdar://problem/4609119> handleAuthenticationFromResource was removed; needed by the Dashboard
3070
3071         * WebView/WebViewPrivate.h: Added handleAuthenticationFromResource back into the header. Needed by the
3072         Dashboard, but was removed in r.14028 on 2006-04-23. 
3073
3074 2006-06-29  Tim Omernick  <timo@apple.com>
3075
3076         Reviewed by Kevin Decker.
3077
3078         <rdar://problem/4608487> REGRESSION: reproducible crash in +[WebCoreFrameBridge supportedImageMIMETypes]
3079
3080         * Plugins/WebPluginDatabase.m:
3081         (+[WebPluginDatabase setAdditionalWebPlugInPaths:]):
3082         One might be tempted to add additionalWebPlugInPaths to the global WebPluginDatabase here.
3083         For backward compatibility with earlier versions of the +setAdditionalWebPlugInPaths: SPI,
3084         we need to save a copy of the additional paths and not cause a refresh of the plugin DB
3085         at this time.
3086         (-[WebPluginDatabase _plugInPaths]):
3087         Include additionalWebPlugInPaths if this is the global DB.
3088         (-[WebPluginDatabase refresh]):
3089         Call -_plugInPaths to get the modified array of paths.  This is similar to what the old code
3090         (before we had per-WebView plugin search paths).
3091
3092 2006-06-29  Tim Omernick  <timo@apple.com>
3093
3094         Reviewed by John Sullivan.
3095
3096         WebHistoryItem now supports getting and setting arbitrary properties via _transientPropertyForKey: and
3097         -_setTransientProperty:forKey:.
3098         For now, these properties do not persist with the rest of the history data.  They are intended to hold transient
3099         per-history-item state, which is something that was until now difficult for a WebKit client app to do.
3100         
3101         * History/WebHistoryItemPrivate.h:
3102         * History/WebHistoryItem.m:
3103         (-[WebHistoryItemPrivate dealloc]):
3104         (-[WebHistoryItem _transientPropertyForKey:]):
3105         (-[WebHistoryItem _setTransientProperty:forKey:]):
3106
3107 2006-06-29  Timothy Hatcher  <timothy@apple.com>
3108
3109         Reviewed by Harrison.
3110
3111         Smart insert and delete, continuous spell checking and autoscroll
3112         can now be used for any WebView, not just editable ones. All of
3113         these make sense for documents that might contain content editable 
3114         areas or our new text fields. Autoscroll is usefull for dragging
3115         for file input controls also.
3116
3117         Added a SPI to toggle WebViews tab key behavior, tabKeyCyclesThroughElements.
3118         WebHTMLView's _interceptEditingKeyEvent now uses WebView's
3119         tabKeyCyclesThroughElements state to determine whether or not
3120         to process tab key events. The idea here is that tabKeyCyclesThroughElements
3121         will be YES when this WebView is being used in a browser, and we
3122         desire the behavior where tab moves to the next element in tab order.
3123         If tabKeyCyclesThroughElements is NO, it is likely that the WebView
3124         is being embedded as the whole view, as in Mail, and tabs should input
3125         tabs as expected in a text editor. Using Option-Tab always cycles
3126         through elements.
3127
3128         * WebView/WebHTMLRepresentation.m:
3129         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]):
3130         * WebView/WebHTMLView.m:
3131         (-[WebHTMLView _interceptEditingKeyEvent:]):
3132         * WebView/WebView.m:
3133         (-[WebViewPrivate init]):
3134         (-[WebView _autoscrollForDraggingInfo:timeDelta:]):
3135         (-[WebView _shouldAutoscrollForDraggingInfo:]):
3136         (-[WebView validateUserInterfaceItem:]):
3137         (-[WebView toggleSmartInsertDelete:]):
3138         (-[WebView toggleContinuousSpellChecking:]):
3139         (-[WebView setTabKeyCyclesThroughElements:]):
3140         (-[WebView tabKeyCyclesThroughElements]):
3141         * WebView/WebViewPrivate.h:
3142
3143 2006-06-29  Anders Carlsson  <acarlsson@apple.com>
3144
3145         Reviewed by Tim O.
3146
3147         * WebKit.xcodeproj/project.pbxproj:
3148         Add DOMXPath.h header.
3149
3150 2006-06-28  David Hyatt  <hyatt@apple.com>
3151
3152         Fix custom highlighting so that you can paint the entire line (and go
3153         outside the bounds of the line).
3154
3155         Reviewed by harrison
3156
3157         * WebCoreSupport/WebFrameBridge.m:
3158         (-[WebFrameBridge customHighlightRect:forLine:]):
3159         (-[WebFrameBridge paintCustomHighlight:forBox:onLine:behindText:entireLine:]):
3160         * WebKit.xcodeproj/project.pbxproj:
3161         * WebView/WebHTMLViewPrivate.h:
3162
3163 2006-06-28  Maciej Stachowiak  <mjs@apple.com>
3164
3165         Reviewed by Anders.
3166         
3167         - fix Frame leak on layout tests
3168
3169         * WebCoreSupport/WebPageBridge.m:
3170         (-[WebPageBridge outerView]): Return WebFrameView for main frame instead
3171         of WebView to avoid reference cycle between WebView and Page.
3172
3173 2006-06-28  Timothy Hatcher  <timothy@apple.com>
3174
3175         Prefer the Stabs debugging symbols format until DWARF bugs are fixed.
3176
3177         * WebKit.xcodeproj/project.pbxproj:
3178
3179 2006-06-28  Levi Weintraub  <lweintraub@apple.com>
3180
3181         Reviewed by justin
3182
3183         http://bugzilla.opendarwin.org/show_bug.cgi?id=7568
3184         Bug 7568: Implement Indent/Outdent
3185         Added undo action strings and enum values
3186
3187         * English.lproj/Localizable.strings:
3188         * WebCoreSupport/WebFrameBridge.m: 
3189         (-[WebFrameBridge nameForUndoAction:]):
3190
3191 2006-06-27  Brady Eidson  <beidson@apple.com>
3192
3193         Reviewed by Maciej
3194
3195         Hookup the new semi-functional SQLite icon database.
3196         For now, it is living side-by-side with the old DB so one can compare the
3197         two for debugging purposes.  Also, it is disabled (in WebKit) by default unless you
3198         compile with ICONDEBUG #defined.
3199         Note:  To repeat that, if you want to try the new DB, #define ICONDEBUG (WebKitPrefix.h is a good place to do it)
3200
3201         * Misc/WebIconDatabase.m:
3202         (-[NSMutableDictionary iconForURL:withSize:cache:]):
3203         (-[NSMutableDictionary iconURLForURL:]):
3204         (-[NSMutableDictionary retainIconForURL:]):
3205         (-[NSMutableDictionary releaseIconForURL:]):
3206         (-[WebIconDatabase _setHaveNoIconForIconURL:]):
3207         (-[WebIconDatabase _setIconURL:forURL:]):
3208         (-[WebIconDatabase _hasIconForIconURL:]):
3209         (-[WebIconDatabase _resetCachedWebPreferences:]):
3210         * Misc/WebIconLoader.m:
3211         (-[WebIconLoader didFinishLoading]):
3212         * WebKit.xcodeproj/project.pbxproj:
3213
3214 2006-06-26  David Hyatt  <hyatt@apple.com>
3215
3216         Fix for 9538, support syntax highlighting for HTML source.
3217
3218         Reviewed by darin
3219
3220         * WebKit.xcodeproj/project.pbxproj:
3221         * WebView/WebView.m:
3222         (-[WebView _setInViewSourceMode:]):
3223         (-[WebView _inViewSourceMode]):
3224         * WebView/WebViewPrivate.h:
3225
3226 2006-06-25  Timothy Hatcher  <timothy@apple.com>
3227
3228         Reviewed by Darin.
3229
3230         Bug 9574: Drosera should show inline scripts within the original HTML
3231         http://bugzilla.opendarwin.org/show_bug.cgi?id=9574
3232
3233         * Adds a new version of the didParseSource delegate callback with base line number.
3234         * Adds a new delegate callback for when a script fails to parse.
3235         * These new callbacks use NSURLs for the url parameter.
3236         * Adds a new script listener callback to notify when the main resource loads.
3237         * Adds a WebScriptErrorDomian and other keys for use with NSError.
3238
3239         * DefaultDelegates/WebDefaultScriptDebugDelegate.m:
3240         (-[WebDefaultScriptDebugDelegate webView:didParseSource:baseLineNumber:fromURL:sourceId:forWebFrame:]):
3241         (-[WebDefaultScriptDebugDelegate webView:failedToParseSource:baseLineNumber:fromURL:withError:forWebFrame:]):
3242         * DefaultDelegates/WebScriptDebugServer.h:
3243         * DefaultDelegates/WebScriptDebugServer.m:
3244         (-[WebScriptDebugServer webView:didLoadMainResourceForDataSource:]):
3245         (-[WebScriptDebugServer webView:didParseSource:baseLineNumber:fromURL:sourceId:forWebFrame:]):
3246         (-[WebScriptDebugServer webView:failedToParseSource:baseLineNumber:fromURL:withError:forWebFrame:]):
3247         * DefaultDelegates/WebScriptDebugServerPrivate.h:
3248         * WebKit.exp:
3249         * WebView/WebDataSource.m:
3250         (-[WebDataSource _setPrimaryLoadComplete:]):
3251         * WebView/WebScriptDebugDelegate.h:
3252         * WebView/WebScriptDebugDelegate.m:
3253         (-[WebScriptCallFrame parsedSource:fromURL:sourceId:startLine:errorLine:errorMessage:]):
3254
3255 2006-06-24  David Kilzer  <ddkilzer@kilzer.net>
3256
3257         Reviewed by Timothy.
3258
3259         * Info.plist: Fixed copyright to include 2003-2006.
3260
3261 2006-06-24  Alexey Proskuryakov  <ap@nypop.com>
3262
3263         Reviewed by Darin.
3264
3265         - http://bugzilla.opendarwin.org/show_bug.cgi?id=9418
3266         WebKit will not build when Space exists in path
3267
3268         * WebKit.xcodeproj/project.pbxproj: Enclose search paths in quotes.
3269
3270 2006-06-23  Tim Omernick  <timo@apple.com>
3271
3272         Reviewed by John Sullivan.
3273
3274         * Plugins/WebBaseNetscapePluginView.m:
3275         (-[WebBaseNetscapePluginView sendEvent:]):
3276         Fixed a bug I found in the CoreGraphics drawing model that was preventing certain types of
3277         events from being dispatched to the plugin, unless the plugin was being updated.  The check
3278         for portState was only required to call -setWindowIfNecessary, not required for the entire
3279         event dispatch.
3280         Also, don't paint the green debug rect unless this is a QuickDraw plugin.  Otherwise the
3281         current QD port is not set, and the green rect fills the entire screen.  Pretty awesome
3282         looking, but not intended behavior.
3283         (-[WebBaseNetscapePluginView setWindowIfNecessary]):
3284         Improved the logging here to include the NPWindow's width and height.
3285
3286 2006-06-23  Timothy Hatcher  <timothy@apple.com>
3287
3288         Reviewed by Tim O.
3289
3290         Adds back SPI that Mail is still depending on.
3291
3292         * WebView/WebDataSource.m:
3293         (-[WebDataSource _addSubframeArchives:]):
3294         * WebView/WebDataSourcePrivate.h:
3295
3296 === WebKit-521.13 ===
3297
3298 2006-06-23  Timothy Hatcher  <timothy@apple.com>
3299
3300         Reviewed by Geoff.
3301
3302         script debugger should only attach to JavaScriptCore when there are listeners
3303         http://bugzilla.opendarwin.org/show_bug.cgi?id=9552
3304
3305         Attaches the debugger to all WebFrames when the first listener
3306         is added. Detaches when the last listener is removed.
3307         Also detach when the script debug delegate is set to nil.
3308
3309         * DefaultDelegates/WebScriptDebugServer.m:
3310         (+[WebScriptDebugServer listenerCount]):
3311         (-[WebScriptDebugServer dealloc]):
3312         (-[WebScriptDebugServer attachScriptDebuggerToAllWebViews]):
3313         (-[WebScriptDebugServer detachScriptDebuggerFromAllWebViews]):
3314         (-[WebScriptDebugServer listenerConnectionDidDie:]):
3315         (-[WebScriptDebugServer addListener:]):
3316         (-[WebScriptDebugServer removeListener:]):
3317         * DefaultDelegates/WebScriptDebugServerPrivate.h:
3318         * WebCoreSupport/WebFrameBridge.m:
3319         (-[WebFrameBridge windowObjectCleared]):
3320         * WebView/WebFrame.m:
3321         (-[WebFrame _attachScriptDebugger]):
3322         (-[WebFrame _detachScriptDebugger]):
3323         * WebView/WebFramePrivate.h:
3324         * WebView/WebScriptDebugDelegate.m:
3325         (-[WebScriptCallFrame parsedSource:fromURL:sourceId:]):
3326         (-[WebScriptCallFrame enteredFrame:sourceId:line:]):
3327         (-[WebScriptCallFrame hitStatement:sourceId:line:]):
3328         (-[WebScriptCallFrame leavingFrame:sourceId:line:]):
3329         * WebView/WebView.m:
3330         (-[WebView _attachScriptDebuggerToAllFrames]):
3331         (-[WebView _detachScriptDebuggerFromAllFrames]):
3332         (-[WebView setScriptDebugDelegate:]):
3333         * WebView/WebViewPrivate.h:
3334
3335 2006-06-22  John Sullivan  <sullivan@apple.com>
3336
3337         Reviewed by Tim Omernick
3338         
3339         - added support for UIDelegate to be notified of scrolling in any WebHTMLView
3340         - cleaned up recently-added UIDelegate code
3341
3342         * WebView/WebUIDelegatePrivate.h:
3343         declared webView:didScrollDocumentInFrameView: method
3344
3345         * DefaultDelegates/WebDefaultUIDelegate.m:
3346         (-[NSApplication webView:didDrawRect:]):
3347         provide default (empty) implementation of this recently-added method, so the
3348         DelegateForwarder mechanism will work for it
3349         (-[NSApplication webView:didScrollDocumentInFrameView:]):
3350         same thing for the new method
3351         
3352         * WebView/WebHTMLView.m:
3353         (-[WebHTMLView _frameOrBoundsChanged]):
3354         use _UIDelegateForwarder mechanism to notify delegate that scrolling occurred
3355         (-[WebHTMLView drawSingleRect:]):
3356         use _UIDelegateForwarder mechanism instead of checking respondsToSelector stuff
3357         here (that's packaged up nicely by the forwarder mechanism)
3358         
3359 2006-06-22  Tim Omernick  <timo@apple.com>
3360
3361         Reviewed by NOBODY (build fix)
3362
3363         * WebView/WebFrameLoader.m:
3364         Import WebMainResourceLoader instead of using @class so that we can call WebMainResourceLoader
3365         methods.
3366         
3367 2006-06-22  Tim Omernick  <timo@apple.com>
3368
3369         Reviewed by NOBODY (build fix)
3370
3371         * WebView/WebFrameLoader.m:
3372         Import JavaScriptCore/Assertions.h instead of WebKit/WebAssertions.h (which no longer exists)
3373
3374 2006-06-22  Maciej Stachowiak  <mjs@apple.com>
3375
3376         Reviewed by Adele.
3377         
3378         - start moving loading logic to new WebFrameLoader class; move management of WebLoaders there
3379
3380         * Misc/WebIconLoader.h:
3381         * Misc/WebIconLoader.m:
3382         (-[WebIconLoader didFinishLoading]):
3383         * WebKit.xcodeproj/project.pbxproj:
3384         * WebView/WebDataSource.m:
3385         (-[WebDataSourcePrivate dealloc]):
3386         (-[WebDataSource _updateLoading]):
3387         (-[WebDataSource _loadIcon]):
3388         (-[WebDataSource _setPrimaryLoadComplete:]):
3389         (-[WebDataSource _stopLoading]):
3390         (-[WebDataSource _startLoading]):
3391         (-[WebDataSource _addSubresourceLoader:]):
3392         (-[WebDataSource _removeSubresourceLoader:]):
3393         (-[WebDataSource _addPlugInStreamLoader:]):
3394         (-[WebDataSource _removePlugInStreamLoader:]):
3395         (-[WebDataSource _iconLoaderReceivedPageIcon:]):
3396         (-[WebDataSource _defersCallbacksChanged]):
3397         (-[WebDataSource _stopLoadingWithError:]):
3398         (-[WebDataSource _setupForReplaceByMIMEType:]):
3399         (-[WebDataSource initWithRequest:]):
3400         (-[WebDataSource dealloc]):
3401         (-[WebDataSource finalize]):
3402         (-[WebDataSource data]):
3403         (-[WebDataSource isLoading]):
3404         * WebView/WebFrameLoader.h: Added.
3405         * WebView/WebFrameLoader.m: Added.
3406         (-[WebFrameLoader initWithDataSource:]):
3407         (-[WebFrameLoader dealloc]):
3408         (-[WebFrameLoader hasIconLoader]):
3409         (-[WebFrameLoader loadIconWithRequest:]):
3410         (-[WebFrameLoader stopLoadingIcon]):
3411         (-[WebFrameLoader addPlugInStreamLoader:]):
3412         (-[WebFrameLoader removePlugInStreamLoader:]):
3413         (-[WebFrameLoader setDefersCallbacks:]):
3414         (-[WebFrameLoader stopLoadingPlugIns]):
3415         (-[WebFrameLoader isLoadingMainResource]):
3416         (-[WebFrameLoader isLoadingSubresources]):
3417         (-[WebFrameLoader isLoading]):
3418         (-[WebFrameLoader stopLoadingSubresources]):
3419         (-[WebFrameLoader addSubresourceLoader:]):
3420         (-[WebFrameLoader removeSubresourceLoader:]):
3421         (-[WebFrameLoader mainResourceData]):
3422         (-[WebFrameLoader releaseMainResourceLoader]):
3423         (-[WebFrameLoader cancelMainResourceLoad]):
3424         (-[WebFrameLoader startLoadingMainResourceWithRequest:identifier:]):
3425         (-[WebFrameLoader stopLoadingWithError:]):
3426
3427 2006-06-21  Brady Eidson  <beidson@apple.com>
3428
3429         Reviewed by Maciej
3430
3431         The WebCoreIconDatabaseBridge was getting messages sent to it after it had been closed, resulting in a crash
3432         on an ASSERT().  After closing the databaseBridge, we simply set it to nil so this can't happen.
3433         anymore.
3434
3435         * Misc/WebIconDatabase.m:
3436         (-[WebIconDatabase _applicationWillTerminate:]):
3437
3438 2006-06-21  Tim Omernick  <timo@apple.com>
3439
3440         Reviewed by Geoff Garen.
3441
3442         <rdar://problem/4564131> WebPluginDatabase setAdditionalWebPlugInPaths needs to be per WebView
3443
3444         Added some WebView SPI so that individual WebViews may have different plugin search paths.  There are some 
3445         limitations with the approach taken here:
3446
3447         - JavaScript may only access the global plugin DB.
3448         - When this SPI is in use, certain WebView methods may not give accurate results, such as +canShowMIMEType:.
3449         - This only works for plugins referenced using the <object> or <embed> tags; plugins that reside in non-standard
3450         file system locations may not be loaded directly into frames.
3451         
3452         None of these issues are important to the client that needs this SPI.  Rather than re-architect our entire
3453         plugin database, I think it is better to simply accept these limitations for now.
3454
3455         * Plugins/WebPluginDatabase.h:
3456         Added "plugInPaths" ivar, so different plugin databases can have different search paths.
3457         * Plugins/WebPluginDatabase.m:
3458         (+[WebPluginDatabase installedPlugins]):
3459         Give the global plugin database the default plugin search paths.
3460         (+[WebPluginDatabase setAdditionalWebPlugInPaths:]):
3461         Removed static global; this method now sets the plugin paths on the global plugin database.
3462         (-[WebPluginDatabase setPlugInPaths:]):
3463         Setter method for plugin paths.
3464         (-[WebPluginDatabase close]):
3465         New method; called when the plugin database is no longer needed (when its WebView is being destroyed).
3466         (-[WebPluginDatabase init]):
3467         Don't refresh in -init, so that callers can set the DB's plugin path array before it refreshes.
3468         (-[WebPluginDatabase dealloc]):
3469         Moved here from near the bottom of the file.  Release new ivar.
3470         (-[WebPluginDatabase refresh]):
3471         Use the plugInPaths ivar instead of calling pluginLocations().
3472         Notify plugin packages when they are added to and removed from a plugin database.  A plugin package will
3473         unload itself when it is removed from all of its plugin databases.
3474         The only really tricky thing here is that the global MIME <-> view class registrations are only modified
3475         by the shared plugin DB.
3476         (+[WebPluginDatabase _defaultPlugInPaths]):
3477         Refactored from the old pluginLocations() function; returns the default set of plugin search paths.
3478
3479         * Plugins/WebBasePluginPackage.h:
3480         * Plugins/WebBasePluginPackage.m:
3481         (-[WebBasePluginPackage dealloc]):
3482         Assert that this package has been removed from all of its containing plugin databases.
3483         (-[WebBasePluginPackage finalize]):
3484         ditto
3485         (-[WebBasePluginPackage wasAddedToPluginDatabase:]):
3486         Add plugin database to set.
3487         (-[WebBasePluginPackage wasRemovedFromPluginDatabase:]):
3488         Remove plugin database from set.  If it was the last DB, then unload the plugin package.
3489
3490         * WebView/WebViewInternal.h:
3491         Added instance methods to find the view class or plugin package, given a MIME type or file extension.
3492         * WebView/WebViewPrivate.h:
3493         Added SPI to set plugin search paths per WebView.
3494         * WebView/WebView.m:
3495         (-[WebView _viewClass:andRepresentationClass:forMIMEType:]):
3496         New method; tries the global MIME <-> view map first; failing that, it checks the WebView's plugin DB.
3497         (-[WebView _close]):
3498         Close the plugin DB.
3499         (-[WebView _setAdditionalWebPlugInPaths:]):
3500         Create the plugin DB if necessary, and set its plugin paths.
3501         (-[WebView _pluginForMIMEType:]):
3502         Checks global plugin DB, falls back on WebView DB.
3503         (-[WebView _pluginForExtension:]):
3504         ditto
3505         (-[WebView _isMIMETypeRegisteredAsPlugin:]):
3506         ditto
3507
3508         * WebCoreSupport/WebFrameBridge.m:
3509         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:DOMElement:loadManually:]):
3510         Use new WebView instance methods to look for plugins.
3511         (-[WebFrameBridge viewForJavaAppletWithFrame:attributeNames:attributeValues:baseURL:DOMElement:]):
3512         ditto
3513         (-[WebFrameBridge determineObjectFromMIMEType:URL:]):
3514         ditto
3515
3516 2006-06-20  Brady Eidson  <beidson@apple.com>
3517
3518         Reviewed by Maciej
3519
3520         Added calls through to the WebCoreIconDatabaseBridge for all the major WebIconDatabase API.  For now these calls
3521         are wrapped with #ifdef's and are for debugging only.
3522
3523    &nbs