f9c5972aa250376f2254c62977f1c87cf5033802
[WebKit-https.git] / WebKit / ChangeLog
1 2007-07-21  Adam Roben  <aroben@apple.com>
2
3         Fix REGRESSION: Right-click/control-click broken
4
5         http://bugs.webkit.org/show_bug.cgi?id=14658
6         <rdar://problem/5346830>
7
8         Reviewed by Mitz.
9
10         * WebCoreSupport/WebContextMenuClient.mm:
11         (fixMenusToSendToOldClients): Update defaultItemsCount after removing
12         items from the defaultItems array.
13
14 2007-07-20  Oliver Hunt  <oliver@apple.com>
15
16         Reviewed by Adele.
17
18         <rdar://problem/5319438> REGRESSION: Cannot paste into an active inline input area (14522)
19         http://bugs.webkit.org/show_bug.cgi?id=14522
20
21         AppKit sends noop: to -[WebHTMLView doCommandBySelector:] when an IM does not handle event,
22         we now check this as it is necessary to work around some IMs that do send messages 
23         (such as insertText: rather than unmarkText: to confirm a composition)
24
25         * WebView/WebHTMLView.mm:
26         (-[WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]):
27         (-[WebHTMLView doCommandBySelector:]):
28         * WebView/WebHTMLViewInternal.h:
29
30 2007-07-20  Brady Eidson  <beidson@apple.com>
31
32         Reviewed by Adele and Andersca
33
34         <rdar://problem/5336105> - WebBackForwardList created from scratch is unusable (always leads to crash)
35
36         * History/WebBackForwardList.mm:
37         (-[WebBackForwardList init]): Have a default initializer that uses an empty BackFowardList not associated with a page.
38
39         * WebView/WebFrame.mm:
40         (kit): For clarity's sake, this should return nil, not 0
41
42 2007-07-20  Justin Garcia  <justin.garcia@apple.com>
43
44         Reviewed by Darin.
45         
46         <rdar://problem/5109817> Ctrl-click on word in non-editable text doesn't select it
47
48         * WebCoreSupport/WebEditorClient.h:
49         * WebCoreSupport/WebEditorClient.mm: Removed the method
50         for enabling/disabling word selection on right click.
51         * WebView/WebView.mm: Ditto.
52         * WebView/WebViewPrivate.h: Removed the getter/setter entirely, 
53         it was in a private Category for Mail, but wasn't used by Mail
54         on Tiger or Leopard, they apparently implement word selection on 
55         their own.
56
57 2007-07-20  Timothy Hatcher  <timothy@apple.com>
58
59         Reviewed by Darin.
60
61         <rdar://problem/5199812> WebView needs to adopt viewWillDraw (moving off of _propagateDirtyRectsToOpaqueAncestors)
62         <rdar://problem/5017301> REGRESSION: Scroller in Widget Manager splits down the middle while scrolling
63
64         On Leopard _propagateDirtyRectsToOpaqueAncestors is no longer called by AppKit. Also marking new dirty rects
65         underneath _recursiveDisplayRectIfNeededIgnoringOpacity will wait until the next runloop to draw them,
66         causing rendering to happen in two steps instead of one as WebCore expected.
67
68         * WebView/WebHTMLView.mm:
69         (-[WebHTMLView _topHTMLView]): Move to the file internal category so we can use it in viewWillDraw.
70         (-[WebHTMLView _isTopHTMLView]): Ditto.
71         (-[WebHTMLView _propagateDirtyRectsToOpaqueAncestors]): #ifdef for Tiger only.
72         (-[WebHTMLView viewWillDraw]): Do a recursive layout if this is the top WebHTMLView.
73         (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
74           Don't do layout here on Leopard since viewWillDraw handled it.
75         (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]): Ditto.
76
77 2007-07-20  Beth Dakin  <bdakin@apple.com>
78
79         Reviewed by Tim and Geoff.
80
81         Fix for <rdar://problem/5346855> Mail crashes at 
82         WebCore::RenderTableSection:paint + 846 when attempting to display 
83         a HTML based message
84
85         After reapplying styles, the RenderView needs layout. However, 
86         layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize used to 
87         return early if the WebHTMLView itself does not need layout. 
88         Because the WebHTMLView is not necessarily in synch with the 
89         RenderTree, returning early here can get us into a bad situation 
90         where we paint before laying out the Render Tree. This patch checks 
91         both the WebHTMLView and the bridge (which checks the RenderView, 
92         etc), so that we do not return early without laying out the Render 
93         Tree. 
94
95         Some day, we should phase out WebHTMLView keeping track of 
96         needsLayout at all. But that is a bit beyond the scope of this fix.  
97
98         * WebView/WebHTMLView.mm:
99         (-[WebHTMLView layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
100
101 2007-07-20  John Sullivan  <sullivan@apple.com>
102
103         Reviewed by Darin Adler and David Harrison
104         
105         - fixed <rdar://problem/5307075> REGRESSION: Bottom of some printed pages are truncated
106         
107         The "avoid orphan" code I added a year ago was causing the page to be imaged to a larger 
108         height (good), but not shrinking everything to compensate (bad). Bad one-year-ago me!
109
110         * WebView/WebHTMLViewInternal.h:
111         added avoidingPrintOrphan boolean
112
113         * WebView/WebHTMLView.mm:
114         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
115         clear _private->avoidingPrintOrphan when clearing _private->printing
116         (-[WebHTMLView _scaleFactorForPrintOperation:]):
117         take _private->avoidingPrintOrphan into account when computing the scale factor
118         (-[WebHTMLView knowsPageRange:]):
119         set _private->avoidingPrintOrphan when we're shrinking to avoid an orphan
120
121 2007-07-19  Adam Roben  <aroben@apple.com>
122
123         Fix <rdar://problem/5344972> REGRESSION: A error dialog occurs when
124         attempting to ctrl-click in a iChat message window (webview)
125
126         Reviewed by Oliver.
127
128         * WebCoreSupport/WebContextMenuClient.mm:
129         (fixMenusToSendToOldClients): Don't check for the Inspect Element item
130         if we have fewer than 2 items.
131
132 2007-07-18  Geoffrey Garen  <ggaren@apple.com>
133
134         Reviewed by Dave Hyatt.
135         
136         <rdar://problem/5345099>
137         
138         Reduced default WebCore cache size from 32 MB to 23 MB on systems below 
139         512 MB RAM. This improves RPRVT usage in the Safari pageout test by 
140         ~10% on a system with 384 MB RAM.
141         
142         At 23 MB, no extra resources are evicted from the cache during a PLT 
143         run, so this is a safe change PLT-wise. 23 MB is also seems to be a
144         generous number in real world usage.
145
146         * WebView/WebPreferences.m:
147         (+[WebPreferences initialize]):
148
149 2007-07-18  Anders Carlsson  <andersca@apple.com>
150
151         Reviewed by Geoff.
152
153         <rdar://problem/5341133> REGRESSION (Safari 2->Safari 3): DjVu plug-in doesn't load in Safari 3
154         
155         The DjVu plug-in uses the size of the passed in NPNetscapeFuncs struct to copy it over to a NPNetscapeFuncs struct
156         whose size was determined when DjVu was compiled. This means that when we add extra functions to the vtable, 
157         DjVu will segfault copying it into the (too small) destination struct.
158         
159         Fix this by special-casing the DjVu plug-in and setting the NPNetscapeFuncs size to be the same size as what DjVu expects.
160         
161         * Plugins/WebNetscapePluginPackage.m:
162         (-[WebNetscapePluginPackage _applyDjVuWorkaround]):
163         (-[WebNetscapePluginPackage load]):
164
165 2007-07-18  Timothy Hatcher  <timothy@apple.com>
166
167         Reviewed by Adam.
168
169         <rdar://problem/5343767> Should have a way to disable the Web Inspector
170
171         Adds a new DisableWebKitDeveloperExtras default that will force the Web Inspector to be disabled.
172         This overrides the WebKitDeveloperExtras and IncludeDebugMenu default. It also disables
173         the Web Inspector in Debug builds.
174
175         * WebView/WebView.mm:
176         (+[WebView _developerExtrasEnabled]): Check for the DisableWebKitDeveloperExtras default.
177         (-[WebView _commonInitializationWithFrameName:groupName:]): Make a new WebInspectorClient when making the Page.
178
179 2007-07-18  Anders Carlsson  <andersca@apple.com>
180
181         Build fix.
182         
183         * Misc/WebNSAttributedStringExtras.mm:
184
185 2007-07-18  Sam Weinig  <sam@webkit.org>
186
187         Rubber-stamped by Adam Roben.
188
189         Update after renaming MimeTypeRegistry to MIMETypeRegistry.
190
191         * Misc/WebNSPasteboardExtras.mm:
192         (-[NSPasteboard _web_writePromisedRTFDFromArchive:containsImage:]):
193         * WebCoreSupport/WebFrameBridge.mm:
194         (-[WebFrameBridge determineObjectFromMIMEType:URL:]):
195         * WebView/WebDataSource.mm:
196         (-[WebDataSource _documentFragmentWithArchive:]):
197         * WebView/WebHTMLRepresentation.mm:
198         (+[WebHTMLRepresentation supportedNonImageMIMETypes]):
199         (+[WebHTMLRepresentation supportedImageMIMETypes]):
200         * WebView/WebHTMLView.mm:
201         (-[WebHTMLView _imageExistsAtPaths:]):
202
203 2007-07-18  Tristan O'Tierney  <tristan@apple.com>
204
205         Reviewed by Maciej Stachowiak.
206         
207         <rdar://problem/5341334> Alt-clicking a link in Safari does not register original URL info with gatekeeper
208         <rdar://problem/5342570> REGRESSION: A hang occurs when attempting to open a attached file from a .Mac web mail message
209
210         * WebCoreSupport/WebFrameLoaderClient.h:
211         Added a new method, setOriginalURLForDownload, for both download() 
212         and startDownload() to share.
213         
214         * WebCoreSupport/WebFrameLoaderClient.mm:
215         (WebFrameLoaderClient::download):
216         Moved all the gatekeeper code into setOriginalURLForDownload.
217         
218         (WebFrameLoaderClient::setOriginalURLForDownload):
219         Same code that was in download() but moved into a single place for both
220         startDownload and download to use.  Also returned the boolean logic
221         for detecting _wasUserGesture back to it's previous state, since my prior change
222         was incorrect.  Additionally I found a loop index bug with backListCount and fixed it.
223         
224         (WebFrameLoaderClient::startDownload):
225         Calls out to setOriginalURLForDownload after a download is created.
226         
227         * WebView/WebView.mm:
228         (-[WebView _downloadURL:]):
229         Changed to return the WebDownload object created inside _downloadURL
230         
231         * WebView/WebViewInternal.h:
232         Changed _downloadURL to return the WebDownload it creates.
233
234 2007-07-17  Timothy Hatcher  <timothy@apple.com>
235
236         Reviewed by Geoff.
237
238         <rdar://problem/5336267> loadData:MIMEType:textEncodingName:baseURL: doesn't like relative URLs
239
240         Get the absoluteURL from any user supplied NSURL before we pass it down to WebCore.
241
242         * WebView/WebFrame.mm:
243         (-[WebFrame _loadURL:referrer:intoChild:]):
244         (-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
245         * WebView/WebView.mm:
246         (-[WebView userAgentForURL:]):
247
248 2007-07-17  Adam Roben  <aroben@apple.com>
249
250         Fix Bug 14324: Cannot remove/customize the "Inspect Element" contextual menu item
251         http://bugs.webkit.org/show_bug.cgi?id=14324
252
253         Only clients linking against new versions of WebKit will see the item.
254         I've maintained our behavior for old clients of not including the
255         Inspect Element item in the menu items passed to the UI delegate.
256
257         Reviewed by Tim.
258
259         * Misc/WebKitVersionChecks.h: Added a new constant.
260         * WebCoreSupport/WebContextMenuClient.mm:
261         (isPreInspectElementTagClient): Added.
262         (fixMenusToSendToOldClients): Return an array of items that should be
263         appended to the menu received from the delegate.
264         (fixMenusReceivedFromOldClients): Append the saved items to the array.
265         (WebContextMenuClient::getCustomMenuFromDefaultItems): Retain/release
266         the saved items.
267
268 2007-07-17  Adam Roben  <aroben@apple.com>
269
270         Remove WebContextMenuClient::shouldIncludeInspectElementItem
271
272         Reviewed by Tim.
273
274         * WebCoreSupport/WebContextMenuClient.h:
275         * WebCoreSupport/WebContextMenuClient.mm:
276
277 2007-07-17  Adam Roben  <aroben@apple.com>
278
279         Initialize Settings::developerExtrasEnabled
280
281         Reviewed by Tim.
282
283         * WebView/WebView.mm:
284         (-[WebView _updateWebCoreSettingsFromPreferences:]):
285
286 2007-07-17  Geoffrey Garen  <ggaren@apple.com>
287
288         Build fix.
289
290         * WebView/WebFrame.mm:
291         (-[WebFrame _loadURL:referrer:intoChild:]):
292         * WebView/WebFramePrivate.h:
293
294 2007-07-17  Tristan O'Tierney  <tristan@apple.com>
295
296         Reviewed by Maciej Stachowiak.
297
298         <rdar://problem/5294691> Source of file is misrepresented if downloaded by typing in URL in Safari address bar
299
300         * WebCoreSupport/WebFrameLoaderClient.h:
301         * WebCoreSupport/WebFrameLoaderClient.mm:
302         (WebFrameLoaderClient::download):
303         Revised code to check the initial request's referrer before assuming it has a history to check.
304
305 2007-07-16  Brady Eidson  <beidson@apple.com>
306
307         Reviewed by Adam
308
309         Begin the arduous task of localizing FTP directory listings while removing a global initializer!
310
311         * English.lproj/Localizable.strings:
312         * WebCoreSupport/WebViewFactory.mm:
313         (-[WebViewFactory unknownFileSizeText]):
314
315 2007-07-16  Adam Roben  <aroben@apple.com>
316
317         Move printing from WebFrameBridge to WebChromeClient
318
319         Reviewed by Darin.
320
321         * WebCoreSupport/WebChromeClient.h: Updated for ChromeClient changes.
322         * WebCoreSupport/WebChromeClient.mm:
323         (WebChromeClient::print): Moved code from WebFrameBridge.
324         * WebCoreSupport/WebFrameBridge.mm: Removed -print.
325
326 2007-07-16  Darin Adler  <darin@apple.com>
327
328         * StringsNotToBeLocalized.txt: Update for recent changes.
329
330 2007-07-16  John Sullivan  <sullivan@apple.com>
331
332         Reviewed by Kevin Decker and Darin Adler
333         
334         - fixed <rdar://problem/5337529> Holes in Find banner overlay on PDF pages are left in wrong place after changing scale
335
336         * WebView/WebPDFView.mm:
337         (-[WebPDFView _scaleOrDisplayModeChanged:]):
338         tell UI delegate that the entire PDF view has been redrawn
339
340 2007-07-14  Brady Eidson  <beidson@apple.com>
341
342         Reviewed by Sam Weinig
343
344         Initial check-in for <rdar://problem/3154486> - Supporting FTP directory listings in the browser
345
346         * WebView/WebPreferenceKeysPrivate.h: Added preference keys for the FTP template location, as well as to force 
347           FTP directory listings, bypassing the policy delegate.  This is necessary to test the new feature until browser
348           policy delegate support is added.
349
350         * WebView/WebPreferences.m:
351         (-[WebPreferences _setFTPDirectoryTemplatePath:]):
352         (-[WebPreferences _ftpDirectoryTemplatePath]):
353         (-[WebPreferences _setForceFTPDirectoryListings:]):
354         (-[WebPreferences _forceFTPDirectoryListings]):
355         * WebView/WebPreferencesPrivate.h:
356         * WebView/WebView.mm:
357         (-[WebView _updateWebCoreSettingsFromPreferences:]):
358
359 2007-07-13  Anders Carlsson  <andersca@apple.com>
360
361         Reviewed by Maciej.
362
363         <rdar://problem/5290103> Assert failure when loading page with multipart resource
364         
365         Don't try to call the delegate method if the resource object doesn't exist in the 
366         identifier map. When a multipart resource has finished loading one part, it is removed from the
367         web view identifier map. 
368         
369         This is not an ideal fix, a better fix would be to special-case multipart resources and not remove
370         them when the first part has finished loading. I've filed <rdar://problem/5335034> to track doing that.
371         
372         * WebCoreSupport/WebFrameLoaderClient.mm:
373         (WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
374         (WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
375         (WebFrameLoaderClient::dispatchDidReceiveResponse):
376         (WebFrameLoaderClient::willCacheResponse):
377         (WebFrameLoaderClient::dispatchDidReceiveContentLength):
378         (WebFrameLoaderClient::dispatchDidFinishLoading):
379         (WebFrameLoaderClient::dispatchDidFailLoading):
380
381 2007-07-13  Timothy Hatcher  <timothy@apple.com>
382
383         Reviewed by Oliver Hunt.
384
385         <rdar://problem/5333766> Can't include WebEditingDelegatePrivate.h
386
387         * WebView/WebEditingDelegatePrivate.h: Changed the include to be a framework include,
388         so other projects can use this header.
389
390 2007-07-12  Anders Carlsson  <andersca@apple.com>
391
392         Reviewed by Darin and Maciej.
393
394         <rdar://problem/5271096> panic after Safari stress test, caused by port leak
395
396         Replace uses of -[NSObject performSelector:withObject:afterDelay:] with CFRunLoopTimer. performSelector
397         causes the target (the WebHTMLView in this case) to be retained until the timer fires. Furthermore, when
398         running the PLT or iBench, the timers will not fire until the main loop is entered (usually after running all tests).
399         
400         This means that the timers and ports will not be released until after the test has finished running.
401         
402         * WebView/WebHTMLView.mm:
403         (-[WebHTMLViewPrivate dealloc]):
404         (-[WebHTMLView _cancelUpdateMouseoverTimer]):
405         (-[WebHTMLView _updateMouseoverWithFakeEvent]):
406         (-[WebHTMLView _updateMouseoverTimerCallback:]):
407         (-[WebHTMLView _frameOrBoundsChanged]):
408         (-[WebHTMLView _updateActiveState]):
409         (-[WebHTMLView _updateActiveStateTimerCallback:]):
410         (-[WebHTMLView viewWillMoveToWindow:]):
411         (-[WebHTMLView viewDidMoveToWindow]):
412         (-[WebHTMLView mouseDown:]):
413         (-[WebTextCompleteController dealloc]):
414         * WebView/WebHTMLViewInternal.h:
415
416 2007-07-13  Mark Rowe  <mrowe@apple.com>
417
418         Reviewed by Mitz.
419
420         Build fix.  Stub out WebChromeClient::print.
421
422         * WebCoreSupport/WebChromeClient.h:
423         * WebCoreSupport/WebChromeClient.mm:
424         (WebChromeClient::print):
425
426 2007-07-11  Timothy Hatcher  <timothy@apple.com>
427
428         Reviewed by Oliver.
429
430         <rdar://problem/5108789> WEBVIEW: Drawing artifacts when dragging in IB
431
432         Interface Builder 3 is relying on KVO notifications for frameOrigin and frameSize,
433         among other standard NSView keys. Change automaticallyNotifiesObserversForKey to 
434         return NO only for keys WebView manually fires notifications for.
435
436         * WebView/WebView.mm:
437         (+[WebView automaticallyNotifiesObserversForKey:]): Selectivly return NO for keys we manually fire.
438         (-[WebView _declaredKeys]): Code clean up.
439
440 2007-07-10  Antti Koivisto  <antti@apple.com>
441
442         Reviewed by John.
443         
444         Fix <rdar://problem/4570550>
445         Hang in layout/layoutBlock/layoutBlockChildren preparing to print certain Mail messages
446         
447         When printing from Mail, WebHTMLView is a subview of the view that is actually printed and does not 
448         receive calls that would set it to printing mode. Method adjustPageHeightNew is called repeatedly (for each page) during
449         printing and it enables printing mode temporarily for each call. This triggers two full style recalcs and layouts
450         each time making printing at least O(n^2). 
451
452         Instead of enabling printing mode and resetting it back immediatly do the resetting asynchronously, after
453         all adjustPageHeightNew calls are done. Normal Safari printing is not affected as adjustPageHeightNew is only
454         called in case WebHTMLView is embedded in the view that is being printed.
455         
456         No automatic test possible, requires printing and non-Safari client.
457         
458         * WebView/WebHTMLView.mm:
459         (-[WebHTMLView adjustPageHeightNew:top:bottom:limit:]):
460
461 2007-07-10  Geoffrey Garen  <ggaren@apple.com>
462
463         Reviewed by Maciej Stachowiak.
464
465         - Fixed <rdar://problem/5049509> REGRESSION(10.4.9-9A377a): REAP Suite 
466         installer shows empty modal alert window (hangs) if user cancels during
467         "installing shared components" phase
468         
469         Added Adobe installers to the family of apps that need a data load
470         loading quirk.
471         
472         Added a linked-on-or-after check because this code is no longer 
473         Tiger-only.
474         
475         I tested this code on Tiger and Leopard.
476
477         * Misc/WebKitVersionChecks.h:
478         * WebKit.xcodeproj/project.pbxproj:
479         * WebView/WebDocumentLoaderMac.mm:
480         (needsDataLoadWorkaround):
481         (WebDocumentLoaderMac::setDataSource):
482
483 2007-07-10  Darin Adler  <darin@apple.com>
484
485         - fix build
486
487         * WebView/WebHTMLView.mm: Add include of ContextMenu.h.
488
489 2007-07-10  Darin Adler  <darin@apple.com>
490
491         Reviewed by John Sullivan.
492
493         - <rdar://problem/5321953> remove workaround for fixed AppKit mouse moved bug
494
495         * WebView/WebHTMLView.mm: Put the workaround for bug 3429631 inside an
496         ifdef BUILDING_ON_TIGER.
497
498 2007-07-09  Anders Carlsson  <andersca@apple.com>
499
500         Reviewed by Oliver.
501
502         <rdar://problem/4954319> 
503         Acrobat 7 / Safari crash: CrashTracer: 99 crashes in Safari at 
504         com.apple.WebCore: WebCore::NetscapePlugInStreamLoader::isDone const + 0
505
506         Add a new initWithFrameLoader: method to WebNetscapePluginStream which is to be used when
507         the stream is a "fake" stream for full frame plug-ins.
508         
509         * Plugins/WebBaseNetscapePluginView.mm:
510         (-[WebBaseNetscapePluginView pluginView:receivedResponse:]):
511         * Plugins/WebNetscapePluginStream.h:
512         * Plugins/WebNetscapePluginStream.mm:
513         (-[WebNetscapePluginStream initWithFrameLoader:]):
514         (-[WebNetscapePluginStream initWithRequest:plugin:notifyData:sendNotification:]):
515         (-[WebNetscapePluginStream start]):
516         (-[WebNetscapePluginStream cancelLoadWithError:]):
517         (-[WebNetscapePluginStream stop]):
518         * WebCoreSupport/WebFrameLoaderClient.mm:
519         (WebFrameLoaderClient::createFrame):
520
521 2007-07-09  John Sullivan  <sullivan@apple.com>
522
523         Reviewed by Darin
524         
525         - fixed <rdar://problem/5320208> WebKit should prevent Time Machine from backing up WebKit clients' icon databases
526
527         * Misc/WebIconDatabase.mm:
528         (-[WebIconDatabase init]):
529         Re-added the code to exclude the icon database from backups. We now do this at the same time we (try to) import
530         the old icon database format, which happens only once per icon database's lifetime.
531         (-[WebIconDatabase _importToWebCoreFormat]):
532         Assert that we haven't imported yet rather than bailing out. It's now the caller's responsibility to check
533         whether we've imported yet.
534
535 2007-07-08  John Sullivan  <sullivan@apple.com>
536
537         * Misc/WebIconDatabase.mm:
538         (-[WebIconDatabase init]):
539         Removed the code to exclude the icon database from backups. We still want to do this, but in a way
540         that only runs once ever, instead of once per launch, due to performance concerns.
541
542 2007-07-07  Darin Adler  <darin@apple.com>
543
544         Reviewed by Maciej.
545
546         - fix <rdar://problem/5124665> WebCore secondary-thread assertion should use linked-on-or-after check instead of building on Tiger check
547
548         * Misc/WebKitVersionChecks.h: Added WEBKIT_FIRST_VERSION_WITH_MAIN_THREAD_EXCEPTIONS.
549
550         * WebView/WebFrameView.mm: (-[WebFrameView initWithFrame:]): In first-time initialization block,
551         check for binaries linked against older versions of WebKit, and set the default thread violation
552         behavior to LogOnFirstThreadViolation.
553
554         * WebView/WebView.mm: (+[WebView initialize]): Improved comments.
555
556 2007-07-06  Oliver Hunt  <oliver@apple.com>
557
558         Reviewed by Maciej.
559
560         <rdar://problem/5318756> Need to refactor IM/Marked text code to share logic with windows.
561
562         Moved a number of methods from WebHTMLView into WebCore.
563         Replaced bridge methods with calls directly into WebCore objects.
564
565         * WebKit.xcodeproj/project.pbxproj:
566         * WebView/WebHTMLView.mm:
567         (-[WebHTMLView setMarkedText:selectedRange:]):
568           Now calls WebCore object methods directly, rather than calling 
569           via the bridge.
570
571 2007-07-06  John Sullivan  <sullivan@apple.com>
572
573         Reviewed by Brady
574
575         - WebKit part of fix for: 
576           <rdar://problem/5310739> Time Machine shouldn't back up WebKit's icon database files
577
578         * Misc/WebIconDatabase.mm:
579         (-[WebIconDatabase init]):
580         Use CSBackupSetItemExcluded to tell Time Machine not to back up the icon database file
581
582 2007-07-07  Mark Rowe  <mrowe@apple.com>
583
584         Build fix.  Update WebDynamicScrollBarsView.h to include methods added and used in r24060.
585
586         * WebView/WebDynamicScrollBarsView.h:
587
588 2007-07-05  Timothy Hatcher  <timothy@apple.com>
589
590         Reviewed by John.
591
592         <rdar://problem/5236277> REGRESSION-9A458: SPI for setting scroll bar behavior doesn't work
593
594         Calling setHorizontalScrollingMode: calls updateScrollers before returning, this will cause
595         WebCore to reset the scrolling mode based on the CSS overflow rules. So the setAlwaysShowHorizontalScroller:
596         and setAlwaysShowVerticalScroller: methods needed a way to lock the scrolling mode before
597         calling updateScrollers.
598
599         * WebView/WebDynamicScrollBarsView.m:
600         (-[WebDynamicScrollBarsView updateScrollers]):
601         (-[WebDynamicScrollBarsView setHorizontalScrollingMode:]):
602         (-[WebDynamicScrollBarsView setHorizontalScrollingMode:andLock:]):
603         (-[WebDynamicScrollBarsView setVerticalScrollingMode:]):
604         (-[WebDynamicScrollBarsView setVerticalScrollingMode:andLock:]):
605         (-[WebDynamicScrollBarsView setScrollingMode:]):
606         (-[WebDynamicScrollBarsView setScrollingMode:andLock:]):
607         * WebView/WebView.mm:
608         (-[WebView setAlwaysShowVerticalScroller:]):
609         (-[WebView setAlwaysShowHorizontalScroller:]):
610
611 2007-07-06  Mitz Pettel  <mitz@webkit.org>
612
613         Reviewed by Maciej.
614
615         - fix http://bugs.webkit.org/show_bug.cgi?id=10267
616           Can't scroll page downwards with scroll wheel, when pointer is on top of non-scrolling iframe
617
618         * WebView/WebDynamicScrollBarsView.m:
619         (-[WebDynamicScrollBarsView scrollWheel:]): Override the superclass
620         implementation to forward the wheel event to the next responder if this view
621         does not allow scrolling in the event's direction.
622
623 2007-07-05  John Sullivan  <sullivan@apple.com>
624
625         Reviewed by Adam
626         
627         - WebKit part of fix for <rdar://problem/5315033>
628
629         * WebView/WebDocumentPrivate.h:
630         new selectionImageForcingBlackText: method. selectionImageForcingWhiteText: is no longer used and was never
631         in an official release of WebKit, so it could be removed, except that doing so would cause trouble for people
632         using nightly WebKit with Safari 3.0 beta. So I left it in, but made it just force black text instead of
633         white text, which will look different for those nightly WebKit/Safari 3.0 beta people but not break anything.
634         
635         * Misc/WebSearchableTextView.m:
636         (-[WebSearchableTextView selectionImageForcingBlackText:]):
637         new unimplemented protocol method for this obsolete class
638         
639         * WebView/WebHTMLView.mm:
640         (-[WebHTMLView selectionImageForcingBlackText:]):
641         calls through to WebCore the way selectionImageForcingWhiteText: used to
642         (-[WebHTMLView selectionImageForcingWhiteText:]):
643         now just calls selectionImageForcingBlackText:, thus not working as you would expect from the name
644         
645         * WebView/WebPDFView.mm:
646         (-[WebPDFView selectionImageForcingBlackText:]):
647         guts of old selectionImageForcingWhiteText:, but with black substituted for white
648         (-[WebPDFView selectionImageForcingWhiteText:]):
649         now just calls selectionImageForcingBlackText:, thus not working as you would expect from the name
650
651 2007-07-05  Timothy Hatcher  <timothy@apple.com>
652
653         Reviewed by John.
654
655         <rdar://problem/5314993> Shiira 2.1 throws an exception open a new window: -[WebInspector window]: unrecognized selector
656
657         Add an empty implementation of this method to prevent Shiira from throwing an exception.
658         Also log that this method is obsolete and the class will be removed.
659
660         * WebInspector/WebInspector.mm:
661         (-[WebInspector window]):
662
663 2007-07-04  Adam Roben  <aroben@apple.com>
664
665         Move tooltip logic down into WebCore so that it can be shared cross-platform
666
667         Reviewed by Sam.
668
669         * WebCoreSupport/WebChromeClient.h:
670         * WebCoreSupport/WebChromeClient.mm:
671         (WebChromeClient::setToolTip): Added.
672         * WebView/WebHTMLView.mm: Removed _resetCachedWebPreferences.
673         (-[WebHTMLView _updateMouseoverWithEvent:]): Removed tooltip code.
674         (-[WebHTMLView initWithFrame:]): Removed call to
675         _resetCachedWebPreferences.
676         (-[WebHTMLView setDataSource:]): Ditto.
677         * WebView/WebHTMLViewInternal.h: Removed showsURLsInToolTips ivar.
678         * WebView/WebHTMLViewPrivate.h: Added declaration for _setTooltip so
679         that WebChromeClient can call it.
680
681 2007-07-04  Adam Roben  <aroben@apple.com>
682
683         Initialize Settings::showsURLsInToolTips
684
685         Reviewed by Sam.
686
687         * WebView/WebView.mm:
688         (-[WebView _updateWebCoreSettingsFromPreferences:]):
689
690 2007-07-04  Adam Roben  <aroben@apple.com>
691
692         Removed call to mouseDidMoveOverElement now that WebCore handles it
693
694         Reviewed by Sam.
695
696         * WebView/WebHTMLView.mm:
697         (-[WebHTMLView _updateMouseoverWithEvent:]):
698
699 2007-07-04  Adam Roben  <aroben@apple.com>
700
701         Add WebChromeClient::mouseDidMoveOverElement
702
703         This is not called yet.
704
705         Reviewed by Sam.
706
707         * WebCoreSupport/WebChromeClient.h:
708         * WebCoreSupport/WebChromeClient.mm:
709
710 2007-07-03  Darin Adler  <darin@apple.com>
711
712         * StringsNotToBeLocalized.txt: Updated for recent changes.
713
714 2007-07-03  Timothy Hatcher  <timothy@apple.com>
715
716         Reviewed by Darin.
717
718         Remove HIWebView in 64-bit.
719
720         Also disable a few calls that are now gone in 64-bit and filed these bugs:
721
722         <rdar://problem/5311653> WebKit needs to adopt HIGetMousePosition where we used GetGlobalMouse before
723         <rdar://problem/5311648> WebKit needs to move off of CopyEvent in WebBaseNetscapePluginView
724         <rdar://problem/5311640> WebKit needs a new solution for HISearchWindowShow on 64-bit
725
726         * Carbon/CarbonUtils.m:
727         * Carbon/CarbonWindowAdapter.m:
728         * Carbon/CarbonWindowContentView.m:
729         * Carbon/CarbonWindowFrame.m:
730         * Carbon/HIViewAdapter.m:
731         (SetViewNeedsDisplay):
732         * Carbon/HIWebView.m:
733         (Draw):
734         (SyncFrame):
735         * Configurations/WebKit.xcconfig:
736         * Plugins/WebBaseNetscapePluginView.mm:
737         (+[WebBaseNetscapePluginView getCarbonEvent:]):
738         (TSMEventHandler):
739         * WebKit.LP64.exp: Added.
740         * WebView/WebView.mm:
741         (-[WebView _searchWithSpotlightFromMenu:]):
742
743 2007-07-03  Adam Roben  <aroben@apple.com>
744
745         Merge the Windows and Mac localized strings and exceptions files
746
747         Reviewed by Darin and Anders.
748
749         * English.lproj/Localizable.strings: Added Windows strings.
750         * StringsNotToBeLocalized.txt: Renamed from WebKit/English.lproj/StringsNotToBeLocalized.txt.
751
752 2007-07-03  Adele Peterson  <adele@apple.com>
753
754         Removed printf I accidently left in.
755
756         * Misc/WebNSURLExtras.m: (mapHostNames):
757
758 2007-07-03  Adele Peterson  <adele@apple.com>
759
760         Reviewed by Darin.
761
762         Fix for: <rdar://problem/5292988> domain names shouldn't contain ignorable characters
763
764         * Misc/WebNSURLExtras.m:
765         (isLookalikeCharacter): Renamed.  Also excludes any non-printable character, 
766          any character considered as whitespace that isn't already converted to a space by ICU, any ignorable character,
767          and any character excluded in Mozilla's blacklist: http://kb.mozillazine.org/Network.IDN.blacklist_chars
768         (allCharactersInIDNScriptWhiteList):
769
770 2007-07-03  Darin Adler  <darin@apple.com>
771
772         Reviewed by Maciej.
773
774         - fix <rdar://problem/5310848> WebDataSource lifetime problem -- may be cause of the leaks seen on the buildbot
775
776         * WebView/WebDataSource.mm:
777         (-[WebDataSourcePrivate dealloc]): Added a call to the new detachDataSource function.
778         (-[WebDataSourcePrivate finalize]): Ditto.
779
780         * WebView/WebDocumentLoaderMac.h: Added detachDataSource function to be used when the
781         WebDataSource is deallocated. Added retain/releaseDataSource helper functions to be
782         used to retain and release the data source object. Replaced the m_hasEverBeenDetached
783         boolean with a more primitive and hence easier to understand m_isDataSourceRetained boolean.
784
785         * WebView/WebDocumentLoaderMac.mm:
786         (WebDocumentLoaderMac::WebDocumentLoaderMac): Initialize m_isDataSourceRetained to false.
787         (WebDocumentLoaderMac::setDataSource): Call retainDataSource instead of calling HardRetain
788         on the dataSource parameter. Also updated a comment.
789         (WebDocumentLoaderMac::attachToFrame): Call retainDataSource unconditionally rather than
790         trying to use m_hasEverBeenDetached to decide if a retain is needed. Also got rid of an
791         assertion that m_loadingResources is empty -- not important any more.
792         (WebDocumentLoaderMac::detachFromFrame): Call releaseDataSource instead of using
793         HardRelease, but only if m_loadingResources is empty. If it's non-empty, then we'll
794         do the releaseDataSource later in decreaseLoadCount.
795         (WebDocumentLoaderMac::increaseLoadCount): Call retainDataSource unconditionally
796         rather than calling HardRetain only if the old set of resources was empty.
797         (WebDocumentLoaderMac::decreaseLoadCount): Call releaseDataSource if m_loadingResources
798         is empty and we're not attached to a frame. If we are attached to a frame, then
799         we'll do the releaseDataSource later in detachFromFrame.
800         (WebDocumentLoaderMac::retainDataSource): Added. Calls CFRetain, but only if the data
801         source is not already retained (according to the boolean).
802         (WebDocumentLoaderMac::releaseDataSource): Added. Calls CFRelease, but only if the data
803         source is currently retained (according to the boolean).
804         (WebDocumentLoaderMac::detachDataSource): Added. Sets m_dataSource to nil. Since this
805         is only called from WebDataSource's dealloc and finalize methods, it won't ever be called
806         when the m_isDataSourceRetained boolean is true.
807
808 2007-07-03  Darin Adler  <darin@apple.com>
809
810         - forgot to check in one file in the fix for <rdar://problem/5307880>
811           some classes need finalize methods because of non-trivial work done in dealloc methods
812
813         * WebView/WebView.mm: (-[WebViewPrivate finalize]): Delete identifierMap so it doesn't leak.
814
815 2007-07-03  Anders Carlsson  <andersca@apple.com>
816
817         Reviewed by Darin.
818
819         * WebView/WebView.mm:
820         (-[WebView stringByEvaluatingJavaScriptFromString:]):
821         ASSERT that the value returned isn't nil. It can't be nil when invoked on the main frame.
822
823 2007-07-04  Mark Rowe  <mrowe@apple.com>
824
825         Unreviewed 64-bit build fixes.
826
827         * WebCoreSupport/WebInspectorClient.mm: Let the compiler know that WebFrameView is a subclass of NSView.
828         * WebView/WebDocumentInternal.h: Remove our preprocessor macro once we're done with it.
829         * WebView/WebHTMLView.mm:
830         (-[WebHTMLView markAllMatchesForText:caseSensitive:limit:]): Fix argument types.
831
832 2007-07-02  Darin Adler  <darin@apple.com>
833
834         Reviewed by Kevin Decker and Tim Hatcher.
835
836         - fix <rdar://problem/5307880> some classes need finalize methods
837           because of non-trivial work done in dealloc methods
838
839         * DefaultDelegates/WebScriptDebugServer.m:
840         (-[WebScriptDebugServer dealloc]): Added a comment about how this probably won't
841         work under GC.
842         * WebInspector/WebNodeHighlight.m:
843         (-[WebNodeHighlight dealloc]): Ditto.
844
845         * WebView/WebDataSource.mm:
846         (+[WebDataSourcePrivate initialize]): Added. Makes finalize run on main thread.
847         (-[WebDataSourcePrivate finalize]): Added. Calls deref on the document loader.
848         * WebView/WebHTMLView.mm:
849         (+[WebHTMLViewPrivate initialize]): Added. Makes finalize run on main thread.
850         (-[WebHTMLViewPrivate finalize]): Added. Calls deref on promisedDragTIFFDataSource.
851
852         * WebKit.xcodeproj/project.pbxproj: Let Xcode be Xcode.
853
854 2007-07-02  Oliver Hunt  <oliver@apple.com>
855
856         Reviewed by Justin.
857
858         Fix for 
859           <rdar://problem/5290113> WebKit does not correctly handle replacement ranges from the IM in -[WebHTMLView insertText:]
860           http://bugs.webkit.org/show_bug.cgi?id=13664
861
862         We replicate the logic of -[WebHTMLView setMarkedText:selectedRange:] to handle the Input Method 
863         feeding us a replacement string through insertText: so we can handle IMs that use insertText to
864         replace text.
865
866         * WebView/WebHTMLView.mm:
867         (-[WebHTMLView insertText:]):
868
869 2007-07-01  Oliver Hunt  <oliver@apple.com>
870
871         Reviewed by Alexey.
872
873         Fix for <rdar://problem/5306210> Some events are still passed to WebCore despite being handled by the IM
874         http://bugs.webkit.org/show_bug.cgi?id=14457
875
876         We have to assume that the IM will consume all events, so we remove the dependency
877         on -[WebHTMLView hasMarkedText].
878
879         * WebView/WebHTMLView.mm:
880         (-[WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]):
881
882 2007-06-29  John Sullivan  <sullivan@apple.com>
883
884         Reviewed by Oliver Hunt.
885
886         - WebKit support for accessing the set of rectangles that encompass the selected text
887
888         * WebView/WebDocumentPrivate.h:
889         added -selectionTextRects to WebDocumentSelection protocol; tweaked comments
890
891         * WebView/WebHTMLView.mm:
892         (-[WebHTMLView _selectionDraggingRect]):
893         use selectionRect instead of selectionImageRect since they're the same and maybe we can get
894         rid of selectionImageRect someday
895         (-[WebHTMLView selectionTextRects]):
896         added implementation of new protocol method, which calls through to WebCore
897         
898         * WebView/WebPDFView.mm:
899         (-[WebPDFView selectionTextRects]):
900         added simple implementation of new protocol method, which just returns the single selection rect.
901         PDFKit doesn't support obtaining multiple rects to describe a multi-line selection.
902         (-[WebPDFView selectionImageForcingWhiteText:]):
903         use selectionRect instead of selectionImageRect since they're the same and maybe we can get
904         rid of selectionImageRect someday
905         
906         * Misc/WebSearchableTextView.m:
907         (-[WebSearchableTextView selectionTextRects]):
908         added no-op implementation of new protocol method to this obsolete class
909
910 2007-06-28  Timothy Hatcher  <timothy@apple.com>
911
912         Reviewed by Darin.
913
914         <rdar://problem/5287569> WEBVIEW: Creating a webview in IB 3.0 (v2.0) NIB later crashes Interface Builder 2.5.4 on Tiger
915
916         Prevent encoding any of the WebView subviews. The subviews are ignored by -[WebView initWithCoder:] and will be recreated.
917         The Tiger 2.0 code crashed when the WebView released the subviews in initWithCoder:, so now there are no subviews to release.
918         This never happened before because the Tiger 2.0 code and IB wouldn't encode a WebView that has a WebHTMLView.
919
920         * WebView/WebView.mm:
921         (-[WebView encodeWithCoder:]):
922
923 2007-06-26  John Sullivan  <sullivan@apple.com>
924
925         Reviewed by Darin
926         
927         - WebKit support for displaying multiple text matches in PDF views (<rdar://problem/4601967>)
928
929         * WebView/WebPDFView.h:
930         new ivars textMatches and lastScrollPosition; now conforms to WebMultipleTextMatches protocol
931         
932         * WebView/WebPDFView.mm:
933         (-[WebPDFView dealloc]):
934         release textMatches
935         (-[WebPDFView viewDidMoveToWindow]):
936         start observing bounds changes in the PDF document's enclosing clip view, so we can notice when
937         scrolling takes place
938         (-[WebPDFView viewWillMoveToWindow:]):
939         stop observing bounds changes in the PDF document's enclosing clip view
940         (-[WebPDFView searchFor:direction:caseSensitive:wrap:startInSelection:]):
941         most of the code here has been moved into the new method _nextMatchFor::::, which this now calls
942         (-[WebPDFView setMarkedTextMatchesAreHighlighted:]):
943         implementation of WebMultipleTextMatches protocol method, does nothing useful here because we don't
944         support inline highlighting of matches in PDF documents
945         (-[WebPDFView markedTextMatchesAreHighlighted]):
946         implementation of WebMultipleTextMatches protocol method
947         (-[WebPDFView markAllMatchesForText:caseSensitive:limit:]):
948         implementation of WebMultipleTextMatches protocol method; calls _nextMatchFor:::: in a loop until
949         entire document is searched or limit is hit; records results by saving PDFSelections in textMatches ivar
950         (-[WebPDFView unmarkAllTextMatches]):
951         implementation of WebMultipleTextMatches protocol method; clears saved textMatches
952         (-[WebPDFView rectsForTextMatches]):
953         implementation of WebMultipleTextMatches protocol method; converts saved PDFSelections into NSValue 
954         objects that represent NSRects
955         (-[WebPDFView _clipViewForPDFDocumentView]):
956         new helper method to find the clip view whose bounds determine the current scroll position
957         (-[WebPDFView _nextMatchFor:direction:caseSensitive:wrap:fromSelection:startInSelection:]):
958         new helper method, extracted from searchFor:::::
959         (-[WebPDFView _PDFDocumentViewMightHaveScrolled:]):
960         new notification callback; tells webView's delegate when document has scrolled
961         (-[WebPDFView _setTextMatches:]):
962         new helper method, stores value in ivar
963
964 2007-06-26  Oliver Hunt  <oliver@apple.com>
965
966         Reviewed by Maciej.
967
968         Hopefully fix remainder of the IME issues on Mac.  
969         We now assume that the IME silently consumes any event given
970         to it during text composition, and only override this assumption
971         if the NSTextInput or NSResponder callbacks are made.
972
973         This prevents us from treating those events that the IME has 
974         consumed internally (eg. candidate window navigation) as unhandled
975         events that should be bubbled.
976
977         This fixes:
978           <rdar://problem/5107538> Major problems handling key press event with non-english Input Methods
979           <rdar://problem/4196249> REGRESSION: Mail: Inputting space (U+0020) with IM deletes subsequent line breaks on Mail.app
980           <rdar://problem/5015544> REGRESSION: Reverse conversion keyboard command does not work in Safari.
981           <rdar://problem/5045121> REGRESSION: Inline is confirmed after press left/right arrow keys, happens in Mail but not in TextEdit.
982           <rdar://problem/5076807> REGRESSION: Can't undo conversion of inline text (by hitting ESC)
983           <rdar://problem/5085781> REGRESSION: Active input area lost "selected" highlight
984           <rdar://problem/5094200> space key pressed to close the associated words candidate window gets inserted as text
985           <rdar://problem/5228294> Candidate item for character matrix is sometimes skipped
986
987         * WebKit.xcodeproj/project.pbxproj:
988         * WebView/WebHTMLView.mm:
989         (-[WebHTMLView launchKeyEvent:]):
990         (-[WebHTMLView keyDown:]):
991         (-[WebHTMLView keyUp:]):
992         (-[WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]):
993         (-[WebHTMLView unmarkText]):
994         (-[WebHTMLView setMarkedText:selectedRange:]):
995         (-[WebHTMLView doCommandBySelector:]):
996         (-[WebHTMLView insertText:]):
997
998 2007-06-26  Jim Correia  <jim.correia@pobox.com>
999
1000         Reviewed by Darin.
1001
1002         Fix http://bugs.webkit.org/show_bug.cgi?id=14411
1003         Bug 14411: WebNetscapePluginPackage overagressively sets CurApRefNum, which affects shipping versions of BBEdit.
1004         <rdar://problem/5297268>
1005
1006         * Plugins/WebNetscapePluginPackage.m:
1007         (+[WebNetscapePluginPackage initialize]): Force the Resource Manager to
1008         lazy initialize, and only set CurApRefNum to the system file if
1009         CurApRefNum is still -1 after that forced lazy initialization.
1010
1011 2007-06-25  Kevin Decker  <kdecker@apple.com>
1012
1013         Reviewed by Darin.
1014
1015         <rdar://problem/5294036> -[WebView customTextEncodingName] API may return empty string instead of nil
1016
1017         * WebView/WebView.mm:
1018         (-[WebView _mainFrameOverrideEncoding]): Addded the nsStringNilIfEmpty() inline to the data being returned because 
1019         our API says "The custom text encoding name or nil if no custom text encoding name has been set." I also verified
1020         the standing Tiger WebKit behavior for this method and it does indeed return nil if a custom encoding wasn't set.
1021
1022 2007-06-25  John Sullivan  <sullivan@apple.com>
1023
1024         Reviewed by Darin
1025         
1026         - WebKit part of <rdar://problem/5293820>, needed to support multiple matches in PDFs
1027
1028         * WebView/WebDocumentInternal.h:
1029         Added WebMultipleTextMatches protocol, containing five methods that were formerly implemented in WebHTMLView
1030         * WebView/WebHTMLViewPrivate.h:
1031         Removed declarations for the methods that are now in WebMultipleTextMatches protocol
1032         
1033         * WebView/WebHTMLView.mm:
1034         (-[WebHTMLView markAllMatchesForText:caseSensitive:limit:]):
1035         moved this method into the WebDocumentInternalProtocols portion of the file
1036         (-[WebHTMLView setMarkedTextMatchesAreHighlighted:]):
1037         ditto
1038         (-[WebHTMLView markedTextMatchesAreHighlighted]):
1039         ditto
1040         (-[WebHTMLView unmarkAllTextMatches]):
1041         ditto
1042         (-[WebHTMLView rectsForTextMatches]):
1043         ditto
1044
1045         * WebView/WebView.mm:
1046         (-[WebView canMarkAllTextMatches]):
1047         new method, returns YES only if the documentView of every frame implements WebMultipleTextMatches
1048         (-[WebView markAllMatchesForText:caseSensitive:highlight:limit:]):
1049         check for WebMultipleTextMatches protocol instead of checking for WebHTMLView class
1050         (-[WebView unmarkAllTextMatches]):
1051         ditto
1052         (-[WebView rectsForTextMatches]):
1053         ditto
1054
1055         * WebView/WebViewPrivate.h:
1056         declared new method canMarkAllTextMatches
1057
1058 2007-06-25  John Sullivan  <sullivan@apple.com>
1059
1060         Reviewed by Darin
1061         
1062         Fixed <rdar://problem/5292259> Find on Page doesn't work (throws exception) on page that includes PDF in a subframe
1063
1064         * WebView/WebView.mm:
1065         (-[WebView markAllMatchesForText:caseSensitive:highlight:limit:]):
1066         We were testing whether the view was an HTMLView, but then running code that assumed it was an HTMLView outside of
1067         that test. That's a bad idea.
1068
1069 2007-06-22  Adele Peterson  <adele@apple.com>
1070
1071         Reviewed by Geoff and Darin.
1072
1073         Fix for: <rdar://problem/5239236> Other slash characters should not be permitted as part of a domain name
1074
1075         * Misc/WebNSURLExtras.m:
1076         (isSlashOrPeriodLookalike):
1077         (allCharactersInIDNScriptWhiteList):
1078
1079 2007-06-21  Sam Weinig  <sam@webkit.org>
1080
1081         Reviewed by Antti.
1082
1083         Remove empty directories
1084
1085         * WebInspector/webInspector: directory removed.
1086         * WebInspector/webInspector/Images: directory removed
1087
1088 2007-06-21  Justin Garcia  <justin.garcia@apple.com>
1089
1090         Reviewed by Tim.
1091         
1092         <rdar://problem/5237524> 
1093         REGRESSION: Keyboard commands don't work in a message window until you click inside the message
1094         
1095         When you open a message in its own window, Mail creates an empty 
1096         WebView, makes that WebView firstResponder and then sets off a 
1097         load inside that WebView.
1098         
1099         When we're asked to create the empty WebView, we put an empty 
1100         WebHTMLView inside it (in r21367 we began creating a document 
1101         for empty frames).  When Mail makes the WebView first responder 
1102         we make that empty WebHTMLView firstResponder.  Then when the 
1103         load finishes we create a new WebHTMLView and set it as the 
1104         document view.  
1105         
1106         Inside _setDocumentView, if the old document view or one of its
1107         descendants was the first responder, we'd makeFirstResponder:nil 
1108         so that the window wouldn't be left with a firstResponder that 
1109         was no longer inside of it.  This change fixes the bug by instead 
1110         transferring firstResponder status to the new document view.
1111         
1112         We could also fix this by not allowing the WebHTMLView to become
1113         firstResponder when it's in the provisional state mentioned above.
1114
1115         * WebView/WebFrameView.mm:
1116         (-[WebFrameView _setDocumentView:]):
1117
1118 2007-06-21  John Sullivan  <sullivan@apple.com>
1119
1120         Reviewed by Adele
1121         
1122         - fixed <rdar://problem/5268673> REGRESSION: Context menu missing for PDF in frame when there's no selection
1123         
1124         This was surprisingly interesting. It turns out that at least for Safari, the method [WebDefaultUIDelegate
1125         webView:contextMenuItemsForElement:defaultMenuItems:] is only exercised from WebPDFView these days. It mimics
1126         some of the code that was moved to WebCore as part of the Great Context Menu Refactoring of 2006, but is
1127         independent of that code. And it was partly broken/incomplete, probably as a result of said refactoring.
1128
1129         * DefaultDelegates/WebDefaultContextMenuDelegate.mm:
1130         (localizedMenuTitleFromAppKit()):
1131         deleted this function since I removed all callers
1132         (-[WebDefaultUIDelegate menuItemWithTag:target:representedObject:]):
1133         Handle WebMenuItemTagOpenFrameInNewWindow tag, since code later in this file was relying on it. Added
1134         ASSERT_NOT_REACHED to the default case, since returning nil from this method is bad.
1135         Also, use WebKit versions of menu title strings rather than AppKit versions. We added these strings to WebKit 
1136         a while back so we don't need to sneakily find them in AppKit anymore.
1137         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]):
1138         make the WebView be the target of the Open Frame in New Window item; previously it was self, but that was
1139         just silly (probably a leftover from some code shuffling when context menus were reimplemented)
1140
1141         * WebView/WebView.mm:
1142         (-[WebView _openFrameInNewWindowFromMenu:]):
1143         new method, used by Open Frame in New Window menu item.
1144
1145         * WebView/WebViewInternal.h:
1146         Declare new method used by menu item. This isn't necessary for compilation, but could prevent the accidental
1147         deletion of the method implementation.
1148
1149 2007-06-20  Mark Rowe  <mrowe@apple.com>
1150
1151         Reviewed by Adam.
1152
1153         Fix http://bugs.webkit.org/show_bug.cgi?id=14255.
1154         Bug 14255: Reproducible crash opening web inspector from debug menu
1155
1156         Reinstate the WebInspector class so WebKit clients that currently depend on it
1157         will build and run correctly.
1158
1159         * WebInspector/WebInspector.h: Added.
1160         * WebInspector/WebInspector.mm: Added.
1161         (+[WebInspector webInspector]):
1162         (-[WebInspector dealloc]):
1163         (-[WebInspector setWebFrame:]):
1164         (-[WebInspector showWindow:]):
1165         * WebKit.exp:
1166         * WebKit.xcodeproj/project.pbxproj:
1167
1168 2007-06-20  Adam Roben  <aroben@apple.com>
1169
1170         Land the new Inspector.
1171
1172         Co-written with Tim Hatcher.
1173
1174         Reviewed by Anders, Adele, Hyatt, and Sam.
1175
1176         Implement the InspectorClient interface.
1177
1178         * WebCoreSupport/WebInspectorClient.h: Added.
1179         * WebCoreSupport/WebInspectorClient.mm: Added.
1180         (WebInspectorClient::WebInspectorClient):
1181         (WebInspectorClient::inspectorDestroyed):
1182         (WebInspectorClient::createPage):
1183         (WebInspectorClient::showWindow):
1184         (WebInspectorClient::closeWindow):
1185         (WebInspectorClient::attachWindow):
1186         (WebInspectorClient::detachWindow):
1187         (WebInspectorClient::highlight):
1188         (WebInspectorClient::hideHighlight):
1189         (WebInspectorClient::inspectedURLChanged):
1190         (WebInspectorClient::updateWindowTitle):
1191         (-[WebInspectorWindowController init]):
1192         (-[WebInspectorWindowController initWithInspectedWebView:]):
1193         (-[WebInspectorWindowController dealloc]):
1194         (-[WebInspectorWindowController inspectorVisible]):
1195         (-[WebInspectorWindowController webView]):
1196         (-[WebInspectorWindowController window]):
1197         (-[WebInspectorWindowController windowShouldClose:]):
1198         (-[WebInspectorWindowController close]):
1199         (-[WebInspectorWindowController showWindow:]):
1200         (-[WebInspectorWindowController attach]):
1201         (-[WebInspectorWindowController detach]):
1202         (-[WebInspectorWindowController highlightAndScrollToNode:]):
1203         (-[WebInspectorWindowController highlightNode:]):
1204         (-[WebInspectorWindowController hideHighlight]):
1205         (-[WebInspectorWindowController animationDidEnd:]):
1206
1207         Add an easier-to-see highlight.
1208
1209         * Misc/WebNSViewExtras.h:
1210         * Misc/WebNSViewExtras.m:
1211         (-[NSView _web_convertRect:toView:]):
1212         * WebInspector/WebNodeHighlight.h:
1213         * WebInspector/WebNodeHighlight.m:
1214         (-[WebNodeHighlightFadeInAnimation setCurrentProgress:]):
1215         (-[WebNodeHighlight initWithTargetView:]):
1216         (-[WebNodeHighlight setHighlightedNode:]):
1217         (-[WebNodeHighlight highlightedNode]):
1218         (-[WebNodeHighlight dealloc]):
1219         (-[WebNodeHighlight attachHighlight]):
1220         (-[WebNodeHighlight delegate]):
1221         (-[WebNodeHighlight detachHighlight]):
1222         (-[WebNodeHighlight show]):
1223         (-[WebNodeHighlight hide]):
1224         (-[WebNodeHighlight animationDidEnd:]):
1225         (-[WebNodeHighlight ignoresMouseEvents]):
1226         (-[WebNodeHighlight highlightView]):
1227         (-[WebNodeHighlight setDelegate:]):
1228         (-[WebNodeHighlight setHolesNeedUpdateInTargetViewRect:]):
1229         (-[WebNodeHighlight setIgnoresMouseEvents:]):
1230         (-[WebNodeHighlight targetView]):
1231         (-[WebNodeHighlight _computeHighlightWindowFrame]):
1232         (-[WebNodeHighlight _repositionHighlightWindow]):
1233         * WebInspector/WebNodeHighlightView.h:
1234         * WebInspector/WebNodeHighlightView.m:
1235         (-[WebNodeHighlightView initWithWebNodeHighlight:]):
1236         (-[WebNodeHighlightView dealloc]):
1237         (-[WebNodeHighlightView detachFromWebNodeHighlight]):
1238         (-[WebNodeHighlightView drawRect:]):
1239         (-[WebNodeHighlightView webNodeHighlight]):
1240         (-[WebNodeHighlightView fractionFadedIn]):
1241         (-[WebNodeHighlightView setFractionFadedIn:]):
1242         (-[WebNodeHighlightView setHolesNeedUpdateInRect:]):
1243         (-[WebNodeHighlightView _holes]):
1244
1245         WebView changes needed for the new Inspector.
1246
1247         * WebView/WebView.mm: Remove the old _inspectElement method now that
1248         this is handled by WebCore.
1249         (-[WebView _isClosed]): Added.
1250         (-[WebView initWithFrame]): Give each Page an InspectorClient to
1251         enable the Inspector.
1252         * WebView/WebViewPrivate.h:
1253
1254         Updates needed for WebCore changes.
1255
1256         * WebCoreSupport/WebContextMenuClient.h:
1257         * WebCoreSupport/WebContextMenuClient.mm:
1258         * WebCoreSupport/WebViewFactory.mm:
1259         (-[WebViewFactory contextMenuItemTagInspectElement]):
1260         * WebView/WebUIDelegatePrivate.h:
1261
1262         Remove old Inspector code.
1263
1264         * WebCoreSupport/WebFrameLoaderClient.mm:
1265         (WebFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
1266         (WebFrameLoaderClient::assignIdentifierToInitialRequest):
1267         (WebFrameLoaderClient::dispatchDidFinishLoading):
1268         * WebInspector/WebInspector.m: Removed.
1269         * WebInspector/WebInspectorPanel.h: Removed.
1270         * WebInspector/WebInspectorPanel.m: Removed.
1271         * WebInspector/webInspector/Images/button.png: Removed.
1272         * WebInspector/webInspector/Images/buttonDivider.png: Removed.
1273         * WebInspector/webInspector/Images/buttonPressed.png: Removed.
1274         * WebInspector/webInspector/Images/close.png: Removed.
1275         * WebInspector/webInspector/Images/closePressed.png: Removed.
1276         * WebInspector/webInspector/Images/downTriangle.png: Removed.
1277         * WebInspector/webInspector/Images/menu.png: Removed.
1278         * WebInspector/webInspector/Images/menuPressed.png: Removed.
1279         * WebInspector/webInspector/Images/popup.png: Removed.
1280         * WebInspector/webInspector/Images/popupPressed.png: Removed.
1281         * WebInspector/webInspector/Images/resize.png: Removed.
1282         * WebInspector/webInspector/Images/rightTriangle.png: Removed.
1283         * WebInspector/webInspector/Images/scrollThumbBottom.png: Removed.
1284         * WebInspector/webInspector/Images/scrollThumbMiddle.png: Removed.
1285         * WebInspector/webInspector/Images/scrollTrackBottom.png: Removed.
1286         * WebInspector/webInspector/Images/upTriangle.png: Removed.
1287         * WebInspector/webInspector/inspector.css: Removed.
1288         * WebInspector/webInspector/inspector.html: Removed.
1289         * WebInspector/webInspector/inspector.js: Removed.
1290         * WebInspector/webInspector/scrollarea.js: Removed.
1291         * WebInspector/webInspector/scrollbar.js: Removed.
1292         * WebInspector/webInspector/utilities.js: Removed.
1293         * WebView/WebFrame.mm:
1294         (-[WebFramePrivate dealloc]):
1295         * WebView/WebFrameInternal.h:
1296         * WebView/WebHTMLView.mm:
1297         (-[WebHTMLView menuForEvent:]):
1298
1299         Build-fu:
1300
1301         * WebKit.exp:
1302         * WebKit.xcodeproj/project.pbxproj:
1303
1304 2007-06-20  Justin Garcia  <justin.garcia@apple.com>
1305
1306         Reviewed by Darin.
1307         
1308         <rdar://problem/5263541> REGRESSION (Safari 3 Beta 1): Pressing Delete doesn't delete an HTML message in Mail
1309         
1310         Mail wasn't receiving the keyDown event because WebFrameView was blocking it.
1311         It blocks the event and moves back/forward on Delete/Shift+Delete if the
1312         back/forward list is enabled.
1313
1314         * WebView/WebFrameView.mm:
1315         (-[WebFrameView keyDown:]): Check to see if the BackForwardList is
1316         enabled.  It always exists.
1317
1318 2007-06-19  Anders Carlsson  <andersca@apple.com>
1319
1320         Reviewed by Kevin Decker.
1321
1322         <rdar://problem/5266289> REGRESSION (Safari 3 Beta 1): Incoming iChat messages are delayed
1323
1324         * WebView/WebDocumentLoaderMac.mm:
1325         (needsAppKitWorkaround):
1326         New function which checks if the frame load delegate belongs to AppKit.
1327         
1328         (WebDocumentLoaderMac::setDataSource):
1329         If the frame load delegate belongs to AppKit, set m_deferMainResourceDataLoad to false.
1330
1331 2007-06-19  John Sullivan  <sullivan@apple.com>
1332
1333         Reviewed by Tim Hatcher
1334
1335         - fixed <rdar://problem/5272011> Hole for find-on-page match in subframe isn't clipped by frame bounds
1336
1337         * WebView/WebView.mm:
1338         (-[WebView rectsForTextMatches]):
1339         intersect the HTMLView's computed rect with the visible rect for that view
1340
1341 2007-06-19  Jim Correia  <jim.correia@pobox.com>
1342
1343         Reviewed by Kevin Decker
1344         
1345         * Carbon/HIWebView.m:
1346         (WindowHandler): HIObjectIsOfClass requires non-NULL input on Tiger. Reworked Kevin Decker's patch to remove the conditional compilation for Tiger, yet still avoid crashing BBEdit.
1347
1348 2007-06-18  Sam Weinig  <sam@webkit.org>
1349
1350         Reviewed by Beth.
1351
1352         Build fix.
1353
1354         * WebCoreSupport/WebChromeClient.mm:
1355
1356 2007-06-18  Kevin Decker <kdecker@apple.com>
1357
1358         * Carbon/HIWebView.m:
1359         (WindowHandler): Fixed the Tiger build; ControlKind wasn't defined.
1360
1361 2007-06-18  Kevin Decker  <kdecker@apple.com>
1362
1363         Reviewed by Tim Hatcher.
1364
1365         Fixed: <rdar://problem/5276135> With Safari 3 Tiger Beta installed, a crash occurs in BBEdit while mousing down and dragging outside of HTML preview window
1366
1367         * Carbon/HIWebView.m:
1368         (WindowHandler): Because the fix for 5051616 causes Tiger to crash in HIToolbox (but not on Leopard), I reverted back to using GetControlKind
1369         on Tiger only, instead of HIObjectIsOfClass.
1370
1371 2007-06-16  David Hyatt  <hyatt@apple.com>
1372
1373         Back out fix for 13972.  Quicktime will no longer clip correctly. :(
1374         Too many regressions in Mail caused by inserting an extra view into the
1375         hierarchy.  Can revisit later.
1376
1377         Reviewed by olliej
1378
1379         * Plugins/WebPluginController.mm:
1380         (-[WebPluginController destroyPlugin:]):
1381         (-[WebPluginController destroyAllPlugins]):
1382         * WebCoreSupport/WebFrameBridge.mm:
1383         (-[WebFrameBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:DOMElement:loadManually:]):
1384         * WebView/WebHTMLView.mm:
1385         (-[WebHTMLView addSubview:]):
1386         (-[WebHTMLView willRemoveSubview:]):
1387
1388 2007-06-15  Sam Weinig  <sam@webkit.org>
1389
1390         Reviewed by Darin.
1391
1392         Patch for http://bugs.webkit.org/show_bug.cgi?id=14053
1393         Autogenerate JS binding for Rect
1394
1395         - Fix conflicts by using ::Rect instead of Rect.
1396
1397         * Plugins/WebBaseNetscapePluginView.mm:
1398         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
1399         (-[WebBaseNetscapePluginView sendEvent:]):
1400         (-[WebBaseNetscapePluginView tellQuickTimeToChill]):
1401         (-[WebBaseNetscapePluginView invalidateRegion:]):
1402         (-[WebBaseNetscapePluginView _printedPluginBitmap]):
1403
1404 2007-06-15  Anders Carlsson  <andersca@apple.com>
1405
1406         Reviewed by Kevin.
1407
1408         A better fix for <rdar://problem/5271774>. Only try to access the element if the
1409         view has an associated window. This also works with GC. (Fix suggested by Kevin.)
1410
1411         * Plugins/WebKitPluginContainerView.mm:
1412         (-[WebKitPluginContainerView dealloc]):
1413         (-[WebKitPluginContainerView visibleRect]):
1414
1415 2007-06-15  Anders Carlsson  <andersca@apple.com>
1416
1417         Reviewed by Kevin.
1418
1419         <rdar://problem/5271774> REGRESSION: A crash occurs when closing a window that contains a QT movie
1420         
1421         In some cases, calling [super dealloc] might end up calling visibleRect, so make sure to
1422         set _element to 0 so we won't send a message to a freed object and crash.
1423         
1424         * Plugins/WebKitPluginContainerView.mm:
1425         (-[WebKitPluginContainerView dealloc]):
1426         (-[WebKitPluginContainerView visibleRect]):
1427
1428 2007-06-14  Anders Carlsson  <andersca@apple.com>
1429
1430         Reviewed by Geoff.
1431
1432         Call cleanupScriptObjectsForPlugin on the frame after destroying the plug-in.
1433         
1434         * Plugins/WebBaseNetscapePluginView.mm:
1435         (-[WebBaseNetscapePluginView _destroyPlugin]):
1436         * Plugins/WebPluginController.mm:
1437         (-[WebPluginController destroyPlugin:]):
1438         (-[WebPluginController destroyAllPlugins]):
1439
1440 2007-06-13  John Sullivan  <sullivan@apple.com>
1441
1442         Reviewed by Adele Peterson
1443         
1444         - fixed <rdar://problem/5267607> Clicking the "Save to Downloads" button in 
1445           PDF overlay too soon results in corrupt file
1446
1447         * WebView/WebPDFView.mm:
1448         (-[WebPDFView PDFViewSavePDFToDownloadFolder:]):
1449         Just beep if the document isn't available yet, since trying to save it as a file
1450         really isn't a good idea.
1451
1452 2007-06-12  Oliver Hunt  <oliver@apple.com>
1453
1454         Reviewed by Darin.
1455
1456         Use correct size for BITMAPINFOHEADER -- whoops.
1457
1458         * win/WebIconDatabase.cpp:
1459         (createDIB):
1460         (WebIconDatabase::getOrCreateDefaultIconBitmap):
1461
1462 2007-06-10  David Hyatt  <hyatt@apple.com>
1463
1464         Fix for bug 14037, make sure respondsToSelector does the write thing
1465         when invoked on a WebKit plugin's container view.
1466
1467         Reviewed by Mark Rowe
1468
1469         * Plugins/WebKitPluginContainerView.mm:
1470         (-[WebKitPluginContainerView respondsToSelector:]):
1471
1472 2007-06-08  John Sullivan  <sullivan@apple.com>
1473
1474         * WebView/WebViewPrivate.h:
1475         Added a FIXME
1476
1477 2007-06-07  Justin Garcia  <justin.garcia@apple.com>
1478
1479         Reviewed by Tristan.
1480         
1481         <rdar://problem/5250997> A crash occurs when selecting Undo Typing for a page that has been closed in tab
1482
1483         * WebView/WebView.mm:
1484         (-[WebView _clearUndoRedoOperations]): Added.
1485         * WebView/WebViewPrivate.h:
1486
1487 2007-06-07  Oliver Hunt  <oliver@apple.com>
1488
1489         Reviewed by Sam "The Intern" Weinig.
1490         
1491         Don't be overzealous with the input checks, firstRectForCharacterRange
1492         can be determined even when there is not an active editable region.
1493         
1494         This unbreaks editing/input/range-for-empty-document which was broken
1495         by aforementioned overzealousness. 
1496
1497         * WebView/WebHTMLView.mm:
1498         (-[WebHTMLView firstRectForCharacterRange:]):
1499
1500 2007-06-07  Oliver Hunt  <oliver@apple.com>
1501
1502         Reviewed by Justin.
1503         
1504         Add checks to make sure we don't try to create, use
1505         or return invalid ranges to TSM when it calls us despite
1506         not currently being in an editable region.
1507
1508         * WebView/WebHTMLView.mm:
1509         (isTextInput):
1510         (-[WebHTMLView textStorage]):
1511         (-[WebHTMLView firstRectForCharacterRange:]):
1512         (-[WebHTMLView selectedRange]):
1513         (-[WebHTMLView attributedSubstringFromRange:]):
1514
1515 2007-06-06  David Hyatt  <hyatt@apple.com>
1516
1517         Make sure to hand back a script object for webkit plugins (the container
1518         view forwards to its plugin child).
1519
1520         Reviewed by sullivan
1521
1522         * Plugins/WebKitPluginContainerView.h:
1523         * Plugins/WebKitPluginContainerView.mm:
1524         (-[WebKitPluginContainerView objectForWebScript]):
1525
1526 2007-06-06  David Hyatt  <hyatt@apple.com>
1527
1528         Fix for bug 13972, quicktime doesn't respect CSS clip and overflow properties.
1529         Make sure that calls to [NSView visibleRect] will do the right thing for both
1530         Netscape plugins and WebKit plugins.
1531
1532         Reviewed by olliej
1533
1534         * Plugins/WebBaseNetscapePluginView.mm:
1535         (-[WebBaseNetscapePluginView visibleRect]):
1536         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
1537         (-[WebBaseNetscapePluginView isOpaque]):
1538         * Plugins/WebKitPluginContainerView.h: Added.
1539         * Plugins/WebKitPluginContainerView.mm: Added.
1540         (-[WebKitPluginContainerView initWithFrame:DOMElement:]):
1541         (-[WebKitPluginContainerView dealloc]):
1542         (-[WebKitPluginContainerView visibleRect]):
1543         * Plugins/WebPluginController.mm:
1544         (-[WebPluginController destroyAllPlugins]):
1545         * WebCoreSupport/WebFrameBridge.mm:
1546         (-[WebFrameBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:DOMElement:loadManually:]):
1547         * WebKit.xcodeproj/project.pbxproj:
1548         * WebView/WebHTMLView.mm:
1549         (-[WebHTMLView addSubview:]):
1550         (-[WebHTMLView willRemoveSubview:]):
1551
1552 2007-06-04  Oliver Hunt  <oliver@apple.com>
1553
1554         Reviewed by Geoff and Justin.
1555
1556         Fix for <rdar://problem/5246941> Clicking URL field on 
1557         Safari causes halt for a minute when using input methods.
1558         and <rdar://problem/5245964> Safari hangs for several 
1559         seconds when trying to select text using mouse
1560         
1561         This is a by product of the textStorage hack used to fix 
1562         rdar://problem/5000470 -- TSM calls textStorage repeatedly
1563         when changing focus, on certain mouse events, etc.  If there
1564         is no selection/editable region we repeatedly create an     
1565         NSAttributedString from the full document.  If the document is
1566         sufficiently long this starts consuming an inordinate amount of 
1567         time.
1568         
1569         This check should really have been present in the original 
1570         patch.
1571
1572         * WebKit.xcodeproj/project.pbxproj:
1573         * WebView/WebHTMLView.mm:
1574         (-[WebHTMLView textStorage]):
1575
1576 2007-05-31  David Hyatt  <hyatt@apple.com>
1577
1578         Fix for 11768, Flash plugin does not respect clips set by CSS.
1579
1580         Reviewed by olliej
1581
1582         * Plugins/WebBaseNetscapePluginView.mm:
1583         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
1584
1585 2007-05-30  Mark Rowe  <mrowe@apple.com>
1586
1587         Build fixes after r21889.
1588
1589         * ForwardingHeaders/kjs/function.h: Added.
1590
1591 2007-05-29  Mark Rowe  <mrowe@apple.com>
1592
1593         Reviewed by Geoff.
1594
1595         64-bit build fix.  Ensure that use of WebNSUInteger in headers is matched by WebNSUInteger in implementations.
1596
1597         * DefaultDelegates/WebScriptDebugServer.h:
1598         * DefaultDelegates/WebScriptDebugServer.m:
1599         (-[WebScriptDebugServer webView:didParseSource:baseLineNumber:fromURL:sourceId:forWebFrame:]):
1600         (-[WebScriptDebugServer webView:failedToParseSource:baseLineNumber:fromURL:withError:forWebFrame:]):
1601         * DefaultDelegates/WebScriptDebugServerPrivate.h:
1602         * History/WebBackForwardList.mm:
1603         (-[WebBackForwardList setPageCacheSize:]):
1604         (-[WebBackForwardList pageCacheSize]):
1605         * WebView/WebView.mm:
1606         (-[WebView markAllMatchesForText:caseSensitive:highlight:limit:]):
1607
1608 2007-05-26  Darin Adler  <darin@apple.com>
1609
1610         Reviewed by Tim Hatcher.
1611
1612         * MigrateHeaders.make: Added dependency on this makefile itself, which is
1613         useful when you change the sed command or other aspect of this file. My build
1614         failed until I made this fix.
1615
1616 2007-05-25  Geoffrey Garen  <ggaren@apple.com>
1617
1618         Reviewed by Darin Adler.
1619
1620         Fixed <rdar://problem/5055182> The page cache has no global cap.
1621         
1622         The main WebKit changes are:
1623             1. Changed -[WebBackForwardList setPageCacheSize] and -[WebBackForwardList 
1624             pageCacheSize] to accomodate the new global page cache model, updating
1625             their documentation. 
1626             
1627             2. Added -[WebPreferences setShouldUsePageCache] and -[WebPreferences 
1628             shouldUsePageCache] as pending public API.
1629             
1630             3. Centralized calculation of object cache and page cache sizes inside
1631             WebPreferences. 
1632             
1633             Cchanged our old behavior of reading a preference and applying a fudge 
1634             factor with a new behavior of just using the preference directly. The 
1635             old behavior was confusing and often inappropriate. (For example, if 
1636             you set a page cache size of 100, a 256MB machine would somewhat 
1637             arbitrarily reduce that number to 98. ???)
1638
1639         * WebView/WebView.mm: Added support for two flags to determine whether
1640         to use the page cache. If either -[WebBackForwardList setPageCacheSize:0]
1641         or -[WebPreferences setShouldUsePageCache:NO] is called, we don't use
1642         the page cache.
1643
1644 2007-05-25  Timothy Hatcher  <timothy@apple.com>
1645
1646         Reviewed by Kevin Decker.
1647
1648         <rdar://problem/5219089> Changes for migration of DictionaryServices
1649
1650         * WebView/WebHTMLView.mm:
1651         (-[WebHTMLView _lookUpInDictionaryFromMenu:]): look for the HIDictionaryWindowShow symbol in HIToolbox
1652
1653 2007-05-25  Geoffrey Garen  <ggaren@apple.com>
1654
1655         Reviewed by Oliver Hunt.
1656         
1657         Fixed global initializer (like you fix a dog).
1658         
1659         I'm not sure how our script missed this. I tested, and it generally doesn't 
1660         seem to work very well.
1661
1662         * WebView/WebHTMLView.mm: Allocate lazily to avoid the performance hit of
1663         a global initializer.
1664         (promisedDataClient):
1665         (-[WebHTMLViewPrivate dealloc]):
1666         (-[WebHTMLViewPrivate clear]):
1667         (-[WebHTMLView setPromisedDragTIFFDataSource:WebCore::]):
1668
1669 2007-05-25  Brady Eidson  <beidson@apple.com>
1670
1671         Reviewed by Darin
1672
1673         <rdar://problem/5228371> - REGRESSION - Certain mail message bodies display as empty
1674
1675         This is due to http://trac.webkit.org/projects/webkit/changeset/21480 which unintentionally
1676         made applewebdata urls result in check.call(false) instead of check.call(true)
1677
1678         Best place for a fix is to have the FrameLoaderClient::canHandleRequest() call return true, which
1679         really is rooted in WebView
1680
1681         <rdar://problem/5229587> tracks adding a layout test
1682
1683         * WebView/WebView.mm:
1684         (+[WebView _canHandleRequest:]): Return true for applewebdata URLs
1685
1686 2007-05-25  Geoffrey Garen  <ggaren@apple.com>
1687
1688         Reviewed by Darin Adler, Tim Hatcher.
1689         
1690         "unsigned" => "WebNSUInteger" in public API.
1691
1692         * History/WebBackForwardList.h:
1693         * WebView/WebScriptDebugDelegate.h:
1694         * WebView/WebUIDelegate.h:
1695         * WebView/WebViewPrivate.h:
1696
1697 2007-05-25  Geoffrey Garen  <ggaren@apple.com>
1698
1699         Reviewed by Darin Adler.
1700         
1701         Moved JavaScriptCore-related pending public API to public API.
1702
1703         * MigrateHeaders.make: Hack to prevent <JavaScriptCore/JSBase.h> from 
1704         automatically converting to <WebKit/JSBase.h>
1705         
1706         Moved -windowObject and -globalContext
1707
1708         * WebView/WebFramePrivate.h: from here
1709         * WebView/WebFrame.h: to here
1710         * WebView/WebFrame.mm: and out of its temporary category
1711
1712         Moved -didClearWindowObject:forFrame:
1713
1714         * WebView/WebViewPrivate.h: from here
1715         * WebView/WebFrameLoadDelegate.h: to here
1716
1717 2007-05-25  John Sullivan  <sullivan@apple.com>
1718
1719         Reviewed by Anders and Tim
1720         
1721         - fixed <rdar://problem/5226000> REGRESSION: In Gmail and Mail, a hang occurs when attempting 
1722           to grammar/spellcheck a word in a reply
1723
1724         * WebCoreSupport/WebEditorClient.mm:
1725         (WebEditorClient::checkGrammarOfString):
1726         Fixed recently-introduced false assumption that NSNotFound == -1
1727
1728 2007-05-24  dethbakin  <bdakin@apple.com>
1729
1730         Reviewed by Geoff.
1731
1732         Fix for <rdar://problem/5023545> QuickBooks Pro 2007:hang/crash 
1733         after closing QuickBooks Tutorial Center with Leopard9A377
1734
1735         We can hit a race condition where drawRect will be called after the 
1736         WebView has closed. Quickbooks does not properly close the WebView 
1737         and set the UIDelegate to nil, so the UIDelegate is stale and we 
1738         crash. This is a regression because the code that uses the 
1739         UIDelegate in the drawRect code path was only added recently. The 
1740         method that the UIDelegate calls into is new -- it does not exist 
1741         on Tiger -- so there is no harm in not running this code for 
1742         applications linked against older WebKits. Other applications may 
1743         run into this same bug so I am not doing a bundle 
1744         check...particularly because, as I mentioned, the new UIDelegate 
1745         call would not be implemented by older clients anyway.  
1746
1747         * Misc/WebKitVersionChecks.h:
1748         * WebView/WebHTMLView.mm:
1749         (-[WebHTMLView drawSingleRect:]):
1750
1751 2007-05-24  Darin Adler  <darin@apple.com>
1752
1753         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
1754
1755 2007-05-24  Oliver Hunt  <oliver@apple.com>
1756
1757         Reviewed by Adam, Darin, and Geoff.
1758
1759         Fix for <rdar://problem/5000470> REGRESSION: The IM reconvert
1760         function returns incorrect symbol due to inconsistent range
1761         domains in TSM
1762
1763         Text Services Management uses ranges provided by the
1764         NSTextInput API to index into the string return by
1765         -[WebHTMLView string]. As a result some input methods
1766         incorrectly get their candidate text from the beginning
1767         of the document instead of from the input element.
1768
1769         TSM prefers to query -textStorage over -string so as a
1770         workaround we provide an implementation of -textStorage that
1771         returns the content of the current text input.  TSM only ever
1772         queries the result of textStorage as an NSAttributedString so
1773         we do not need to implement a fake NSTextStorage class
1774
1775         This should not cause harm to anything else as textStorage is
1776         actually a method on NSTextView, which we clearly are not. TSM
1777         only queries the method because it uses respondsToSelector to
1778         control behaviour.
1779
1780         * WebView/WebHTMLView.mm:
1781         (-[WebHTMLView textStorage]):
1782
1783
1784 2007-05-24  David Harrison  <harrison@apple.com>
1785
1786         Reviewed by Tim Hatcher.
1787
1788         <rdar://problem/5225343> REGRESSION: With View Source window opened, navigating to a different URL in the browser window results in a crash at WebCore::FrameLoader::frameHasLoaded()
1789         
1790         _private->loader->frameLoader() was not being nil checked.
1791         * WebView/WebDataSource.mm:
1792         (-[WebDataSource request]):
1793         Add nil check for _private->loader->frameLoader() 
1794
1795 2007-05-23  Anders Carlsson  <andersca@apple.com>
1796
1797         Reviewed by Geoff.
1798
1799         <rdar://problem/3663808> Resize large images to fit in the browser window
1800         
1801         Add new WebPreferences SPI.
1802         
1803         * WebView/WebPreferenceKeysPrivate.h:
1804         * WebView/WebPreferences.m:
1805         (+[WebPreferences initialize]):
1806         (-[WebPreferences enableAutomaticImageResizing]):
1807         (-[WebPreferences setEnableAutomaticImageResizing:]):
1808         * WebView/WebPreferencesPrivate.h:
1809         * WebView/WebView.mm:
1810         (-[WebView _updateWebCoreSettingsFromPreferences:]):
1811
1812 2007-05-23  Sam Weinig  <sam@webkit.org>
1813
1814         Reviewed by Darin.
1815
1816         Patch for http://bugs.webkit.org/show_bug.cgi?id=13830
1817         Auto-generate JS DOM bindings for HTMLDocument and most of the rest
1818         of HTMLElement
1819
1820         * MigrateHeaders.make: add DOMHTMLDocumentPrivate.h
1821         * WebKit.xcodeproj/project.pbxproj:
1822
1823 2007-05-23  Oliver Hunt  <oliver@apple.com>
1824
1825         Reviewed by Geoff.
1826
1827         Fix for <rdar://problem/5223782> REGRESSION: Can't drag and drop a standalone image
1828
1829         The main resource for a standalone image webarchive has the same mimetype as the
1830         underlying image.
1831
1832         * Misc/WebNSPasteboardExtras.mm:
1833         (-[NSPasteboard _web_writePromisedRTFDFromArchive:containsImage:]):
1834
1835 2007-05-22  Sam Weinig  <sam@webkit.org>
1836
1837         Reviewed by Adam.
1838
1839         Patch for http://bugs.webkit.org/show_bug.cgi?id=13833
1840         Add ObjC DOM binding for HTMLMarqeeElement
1841
1842         - Also adds missing DOMHTMLFramePrivate.
1843
1844         * MigrateHeaders.make:
1845
1846 2007-05-22  Darin Adler  <darin@apple.com>
1847
1848         Reviewed by Geoff.
1849
1850         * WebInspector/webInspector/treeoutline.js: Use ownerDocument instead of non-standard
1851         document property.
1852
1853 2007-05-22  Adele Peterson  <adele@apple.com>
1854
1855         Reviewed by Darin.
1856
1857         Adding some asserts to help detect other cases of <rdar://problem/5171145>
1858
1859         * WebCoreSupport/WebFrameBridge.mm: (-[WebFrameBridge makeFirstResponder:]):
1860
1861 2007-05-22  Brady Eidson  <beidson@apple.com>
1862
1863         Reviewed by Kevin (Sarge)
1864
1865         <rdar://problem/5219885> - Crash after closing a inline popup ad at http://news.yahoo.com/
1866
1867         This regressed in http://trac.webkit.org/projects/webkit/changeset/21618
1868
1869         * WebView/WebFrame.mm:
1870         (-[WebFrame dataSource]): Null check the frameloader
1871
1872 2007-05-21  Adele Peterson  <adele@apple.com>
1873
1874         Fix by Darin, reviewed by me.
1875
1876         Fix for <rdar://problem/5171145> Safari crashed closing tab in NSInputContext updateInputContexts
1877
1878         * WebView/WebFrameView.mm: (-[WebFrameView _setDocumentView:]): If the old view is the first responder,
1879         then set the window's first responder to nil so we don't leave the window pointing to a view that's no longer in it.
1880
1881 2007-05-21  Brady Eidson  <beidson@apple.com>
1882
1883         Making the importance of my last change more clear
1884
1885         * WebView/WebViewPrivate.h: "Leave for Dashboard, people!"
1886
1887 2007-05-21  Brady Eidson  <beidson@apple.com>
1888
1889         Reviewed by Kevin (Sarge)
1890
1891         <rdar://problem/5217124> - Re-add mistakenly removed SPI
1892
1893         * WebView/WebView.mm:
1894         (-[WebView handleAuthenticationForResource:challenge:fromDataSource:]):
1895         * WebView/WebViewPrivate.h:
1896
1897 2007-05-21  Anders Carlsson  <andersca@apple.com>
1898
1899         Reviewed by Ada.
1900
1901         <rdar://problem/5200816> REGRESSION: With Shiira 1.2.2 , I can't open embedded link in flash object by clicking (http:/www.adobe.com )
1902         
1903         Null check the request.
1904         
1905         * WebView/WebView.mm:
1906         (+[WebView _canHandleRequest:]):
1907
1908 2007-05-19  Maciej Stachowiak  <mjs@apple.com>
1909
1910         Reviewed by Geoff.
1911         
1912         <rdar://problem/5205358> REGRESSION (r21367): All messages appear entirely blank when running Mail off of tip of tree WebKit
1913         
1914         The fix is to return nil from [WebFrame dataSource] when it has not loaded anything but the fake
1915         empty initial document. However, WebKit still needs the real data source internally, so I also
1916         added a [WebFrame _dataSource] method that skips this check, and made WebKit use it throughout.
1917
1918         * Misc/WebNSAttributedStringExtras.mm:
1919         (fileWrapperForElement):
1920         * Plugins/WebBaseNetscapePluginView.mm:
1921         (-[WebBaseNetscapePluginView dataSource]):
1922         * Plugins/WebNullPluginView.mm:
1923         (-[WebNullPluginView viewDidMoveToWindow]):
1924         * Plugins/WebPluginController.mm:
1925         (-[WebPluginController URLPolicyCheckReferrer]):
1926         * WebCoreSupport/WebFrameBridge.mm:
1927         (-[WebFrameBridge dataSource]):
1928         (-[WebFrameBridge redirectDataToPlugin:]):
1929         * WebCoreSupport/WebFrameLoaderClient.mm:
1930         (WebFrameLoaderClient::makeDocumentView):
1931         (WebFrameLoaderClient::forceLayoutForNonHTML):
1932         (WebFrameLoaderClient::prepareForDataSourceReplacement):
1933         (WebFrameLoaderClient::canCachePage):
1934         * WebCoreSupport/WebViewFactory.mm:
1935         (-[WebViewFactory bridgeForView:]):
1936         * WebKit.xcodeproj/project.pbxproj:
1937         * WebView/WebArchiver.mm:
1938         (+[WebArchiver archiveFrame:]):
1939         (+[WebArchiver archiveMainResourceForFrame:]):
1940         (+[WebArchiver _archiveWithMarkupString:fromFrame:nodes:]):
1941         (+[WebArchiver archiveSelectionInFrame:]):
1942         * WebView/WebFrame.mm:
1943         (-[WebFrame _loadURL:referrer:intoChild:]):
1944         (-[WebFrame _addChild:]):
1945         (-[WebFrame _dataSource]):
1946         (-[WebFrame DOMDocument]):
1947         (-[WebFrame dataSource]):
1948         * WebView/WebFrameInternal.h:
1949         * WebView/WebHTMLView.mm:
1950         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
1951         * WebView/WebRenderNode.mm:
1952         (-[WebRenderNode initWithWebFrameView:]):
1953         * WebView/WebView.mm:
1954         (-[WebView _mainFrameOverrideEncoding]):
1955         (-[WebView mainFrameURL]):
1956         (-[WebView mainFrameTitle]):
1957         (-[WebView mainFrameIcon]):
1958         (-[WebView validateUserInterfaceItemWithoutDelegate:]):
1959         (-[WebView replaceSelectionWithArchive:]):
1960         (-[WebView _isLoading]):
1961         (-[WebView _performTextSizingSelector:withObject:onTrackingDocs:selForNonTrackingDocs:newScaleFactor:]):
1962         (-[WebView _notifyTextSizeMultiplierChanged]):
1963
1964 2007-05-18  Oliver Hunt  <oliver@apple.com>
1965
1966         Reviewed by Sam.
1967
1968         Fix for http://bugs.webkit.org/show_bug.cgi?id=13782 
1969         REGRESSION (r21528-r21533): Failing editing/selection/drag-in-iframe in pixel mode
1970         
1971         r21533 made used a DOMElement as the source for promise data, this meant it had to 
1972         clear the dragging pasteboard following the drag.  In DRT a drag is non-blocking
1973         so this resulted in us prematurely clearing the pasteboard.  
1974         
1975         This patch avoids this problem by referencing the source CachedImage rather than the
1976         DOMElement, so we don't need to worry about retaining an entire document forever, so
1977         we don't need to clear the dragging pasteboard following the drag.
1978         
1979         * Misc/WebNSPasteboardExtras.mm:
1980         (imageFromElement):
1981           Extract the underlying CachedImage from a DOMElement
1982         (-[NSPasteboard _web_writeImage:element:URL:title:archive:types:source:]):
1983           Use a CachedImage instead of a DOMElement
1984           
1985         * WebCoreSupport/WebDragClient.mm:
1986         (WebDragClient::startDrag):
1987         
1988         * WebKit.xcodeproj/project.pbxproj:
1989         
1990         * WebView/WebHTMLView.mm:
1991         (-[WebHTMLViewPrivate dealloc]):
1992         (-[WebHTMLViewPrivate clear]):
1993         (-[WebHTMLView pasteboardChangedOwner:]):
1994         (-[WebHTMLView pasteboard:provideDataForType:]):
1995         (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):
1996         (-[WebHTMLView WebCore::]):
1997         (-[WebHTMLView setPromisedDragTIFFDataSource:WebCore::]):
1998           Use CachedImage rather than DOMElement as promised data source
1999           
2000         * WebView/WebHTMLViewInternal.h:
2001         * WebView/WebHTMLViewPrivate.h:
2002
2003 2007-05-18  Tristan O'Tierney  <tristan@apple.com>
2004
2005         Reviewed by Brady E.
2006
2007         * WebCoreSupport/WebFrameLoaderClient.mm:
2008         (WebFrameLoaderClient::download):
2009         asked the webframeloaderclient for its webview's history and 
2010         injected the originated url into the created WebDownload
2011
2012 2007-05-18  John Sullivan  <sullivan@apple.com>
2013
2014         Reviewed by Kevin Decker
2015         
2016         Improvement to WebKit part of fix for 5201499 based on more modern understanding. (That is,
2017         a couple of hours more modern.)
2018
2019         * WebView/WebUIDelegatePrivate.h:
2020         add showPanel: parameter to just-introduced delegate method webView:saveFrameView:
2021
2022         * WebView/WebPDFView.mm:
2023         (-[WebPDFView PDFViewSavePDFToDownloadFolder:]):
2024         pass NO for new showPanel: parameter, and update comment
2025
2026 2007-05-18  Maciej Stachowiak  <mjs@apple.com>
2027
2028         Reviewed by John.
2029         
2030         <rdar://problem/5204792> REGRESSION (r21367): System widgets are drawn with vertical/horizontal scroll bars
2031         
2032         No test because the bug requires calling setAllowsScrolling: to reproduce.
2033
2034         * WebView/WebFrameView.mm:
2035         (-[WebFrameView setAllowsScrolling:]): Update the FrameView's scroll state as well as the one
2036         on WebDynamicScrollBarsView, otherwise this setting won't stick if the frame has already loaded
2037         a document.
2038
2039 2007-05-18  Geoffrey Garen  <ggaren@apple.com>
2040
2041         Fixed spelling error.
2042         
2043         * WebView/WebViewPrivate.h:
2044
2045 2007-05-18  John Sullivan  <sullivan@apple.com>
2046
2047         Reviewed by Kevin Decker
2048         
2049         WebKit part of fix for 5201499 (support for PDFKit UI for saving PDFs to disk)
2050         
2051         Also, the PDFKit mechanism for notifying clients about "Open File Externally" was
2052         changed from a notification to a delegate method. The notification was new to 
2053         Leopard, so removing it doesn't affect clients in the field.
2054
2055         * WebView/WebUIDelegatePrivate.h:
2056         Declared new UI delegate method webView:saveFrameView:, analogous to the existing
2057         webView:printFrameView:
2058
2059         * WebView/WebPDFView.mm:
2060         removed declaration of _webkit_PDFKitLaunchNotification
2061         (-[WebPDFView viewDidMoveToWindow]):
2062         don't observe _webkit_PDFKitLaunchNotification
2063         (-[WebPDFView viewWillMoveToWindow:]):
2064         ditto
2065         (-[WebPDFView PDFViewOpenPDFInNativeApplication:]):
2066         new PDFKit delegate method, replaces our use of _webkit_PDFKitLaunchNotification
2067         (-[WebPDFView PDFViewSavePDFToDownloadFolder:]):
2068         new PDFKit delegate method, calls through to new WebKit UI delegate method
2069         
2070 2007-05-17  Oliver Hunt  <oliver@apple.com>
2071
2072         Reviewed by Justin.
2073
2074         Fix for <rdar://problem/4244861> Safari fails to create image file
2075         after releasing dragged image that has changed on source page
2076
2077         This patch fixes this bug by manually creating an NSFileWrapper from
2078         the TIFF promise data for a drag if it is available.  This bypasses
2079         the problem of the required resource no longer being held due to page
2080         loads or other constraints.
2081         
2082         We need to leave the old path in place to allow for the case where
2083         the promised data is not available.
2084
2085         * WebCoreSupport/WebDragClient.mm:
2086         (WebDragClient::declareAndWriteDragImage):
2087           Always use the top WebHTMLView as the pasteboard owner, this is
2088           safe as we only use the owner for resolving promised types.
2089         * WebView/WebHTMLView.mm:
2090         (-[WebHTMLView _writeSelectionToPasteboard:]):
2091         (-[WebHTMLView writeSelectionToPasteboard:types:]):
2092           Always use the top WebHTMLView as the pasteboard owner.
2093         (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):
2094           Add path to create NSFileWrapper from promise data.
2095
2096 2007-05-17  Oliver Hunt  <oliver@apple.com>
2097
2098         Reviewed by Adam.
2099         
2100         Fix for <rdar://problem/4343832> Trying to drag a large 6.2MB jpeg image
2101          out of Safari is unexpectedly slow (4 copies of image plus RTF document on pasteboard)
2102          
2103         This patch causes the construction of the RTF and TIFF data to be delayed until requested.
2104         
2105         We delay TIFF construction from a DOMElement as this may require generating TIFF data
2106         from the CachedImage, which is slow.  To allow the TIFF data to be created later the 
2107         it's necessary to add a reference to the source DOMElement to the view.
2108
2109         * Misc/WebNSPasteboardExtras.h:
2110         * Misc/WebNSPasteboardExtras.mm:
2111         (-[NSPasteboard _web_writePromisedRTFDFromArchive:containsImage:]):
2112           Implements the delayed write of RTF data
2113         (-[NSPasteboard _web_writeImage:element:URL:title:archive:types:source:]):
2114           Set up the pasteboard to allow the data writing to be delayed
2115         (-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
2116           Now we need to pass the WebHTMLView on to _web_writeImage:element:URL:title:archive:types:source:
2117         * WebCoreSupport/WebDragClient.mm:
2118         (WebDragClient::startDrag):
2119           Clear the dragging pasteboard once the drag has ended to ensure we don't hold references
2120           to anything longer than we need to.
2121         (WebDragClient::declareAndWriteDragImage):
2122           
2123         * WebView/WebHTMLView.mm:
2124         (-[WebHTMLViewPrivate dealloc]):
2125         (-[WebHTMLViewPrivate clear]):
2126         (-[WebHTMLView pasteboardChangedOwner:]):
2127           Make sure we clear out the DOMElement reference once it is no longer needed
2128         (-[WebHTMLView pasteboard:provideDataForType:]):
2129           Provide delayed data
2130         (-[WebHTMLView _writeSelectionToPasteboard:]):
2131           Make sure we set pasteboard ownership correctly
2132         (-[WebHTMLView promisedDragTIFFDataSource]):
2133         (-[WebHTMLView setPromisedDragTIFFDataSource:]):
2134         (-[WebHTMLView writeSelectionToPasteboard:types:]):
2135         * WebView/WebHTMLViewInternal.h:
2136         * WebView/WebHTMLViewPrivate.h:
2137         
2138         * WebView/WebView.mm:
2139         (-[WebView _writeImageForElement:withPasteboardTypes:toPasteboard:]):
2140
2141 2007-05-16  Anders Carlsson  <andersca@apple.com>
2142
2143         Reviewed by Darin.
2144
2145         <rdar://problem/5207156> Hamachi test tool causes assertion in FormCompletionController in Safari
2146
2147         Update for WebCore changes.
2148         
2149         * WebView/WebFrame.mm:
2150         (-[WebFrame _loadURL:referrer:intoChild:]):
2151
2152 2007-05-15  Oliver Hunt  <oliver@apple.com>
2153
2154         Reviewed by Sam and Geoff.
2155         
2156         Removing dead code left behind from drag and drop refactoring.
2157
2158         * WebCoreSupport/WebFrameBridge.mm:
2159         * WebView/WebHTMLView.mm:
2160         * WebView/WebHTMLViewPrivate.h:
2161
2162 2007-05-15  Bruce Q Hammond  <bruceq@apple.com>
2163
2164         Reviewed by Darin.
2165
2166         Correction of previous patch for http://bugs.webkit.org/show_bug.cgi?id=13578
2167         This corrects the sign of the Y-Axis origin adjustment.
2168
2169         * Plugins/WebBaseNetscapePluginView.mm:
2170         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
2171
2172 2007-05-15  Geoffrey Garen  <ggaren@apple.com>
2173
2174         Reviewed by Maciej Stachowiak.
2175         
2176         Patch: fixed <rdar://problem/5198890> .5% performance regression caused 
2177         by r21307
2178         
2179         The only code r21307 added that runs during the PLT is a frame load delegate
2180         -respondsToSelector: call inside windowObjectCleared(), so it seems like 
2181         our message dispatch overhead for the frame load delegate is significant.
2182         
2183         This patch is a straight port of Maciej's fix for the same problem in the
2184         resource load delegate. The solution is simple enough: don't use Objective-C. 
2185         Instead, use a special structure that caches which methods the delegate 
2186         implements, along with pointers to those methods.
2187         
2188         I verified each frame load delegate callback in the debugger, except for
2189         -webView:didFailLoadWithError:forFrame:, which is not implemented by Safari
2190         or DumpRenderTree.
2191
2192         * WebKit/DefaultDelegates/WebDefaultFrameLoadDelegate.h: Removed.
2193         * WebKit/DefaultDelegates/WebDefaultFrameLoadDelegate.m: Removed.
2194
2195         * WebCoreSupport/WebFrameBridge.mm:
2196         (-[WebFrameBridge windowObjectCleared]): I also removed a misleading 
2197         comment here. The JS debugger caches the windowScriptObject, so you do
2198         need to re-create the debugger every time you invalidate the old 
2199         WebScriptObject wrapper for the window object and create a new one, or
2200         the debugger will stop working. We could fix this in a number of ways, 
2201         but <rdar://problem/4608404> is not the key issue.
2202
2203 2007-05-15  Maciej Stachowiak  <mjs@apple.com>
2204
2205         Reviewed by Hyatt and Lars.
2206         
2207         - fixed <rdar://problem/5201758> REGRESSION: Stop button enabled and other problems caused by [WebView currentURL] returning non-nil for empty window
2208         
2209         * WebView/WebDataSource.mm:
2210         (-[WebDataSource request]): Return nil when we are still showing the initial empty doc
2211
2212 2007-05-14  Geoffrey Garen  <ggaren@apple.com>
2213
2214         Reviewed by Darin Adler.
2215         
2216         Updated for WebCore move to PageCache singleton. Also removed some WebCore::
2217         prefixes and replaced them with 'using namespace WebCore'.
2218
2219         * History/WebHistoryItem.mm:
2220         (+[WebHistoryItem _releaseAllPendingPageCaches]):
2221         (-[WebWindowWatcher windowWillClose:]):
2222
2223 2007-05-13  Darin Adler  <darin@apple.com>
2224
2225         - one more retain/release for a tiny bit more robustness
2226
2227         * WebView/WebPDFView.mm:
2228         (-[WebPDFView _updatePreferences:]): [prefs release]
2229         (-[WebPDFView _updatePreferencesSoon]): [prefs retain]
2230
2231 2007-05-13  Darin Adler  <darin@apple.com>
2232
2233         Reviewed by Geoff.
2234
2235         - fix <rdar://problem/5188400> Webkit crashes going back from PDF at perl.org site
2236
2237         * WebView/WebPDFView.h: Replace _updatePreferencesTimer with _willUpdatePreferencesSoon BOOL.
2238         Also remove unneeded @public that gives other classes access to our dataSource member.
2239
2240         * WebView/WebPDFView.mm: Rearrange top of file a bit, remove forward declaration of the
2241         _cancelUpdatePreferencesTimer method.
2242         (-[WebPDFView dealloc]): Removed call to _cancelUpdatePreferencesTimer.
2243         (-[WebPDFView _updatePreferencesNow:]): Added WebPreferences parameter. This sidesteps problems
2244         where the dataSource is no longer present by not looking at the dataSource field at all.
2245         Also removed the call to _cancelUpdatePreferencesTimer, added code to set _willUpdatePreferencesSoon
2246         to NO and added a release to balance a retain I did in _updatePreferencesSoon.
2247         (-[WebPDFView _updatePreferencesSoon]): Changed to use performSelectorAfterDelay instead of
2248         an NSTimer. Pass in the preferences object as a parameter, since we might not be able to get to
2249         the dataSource when the timer fires.
2250
2251 2007-05-10  Geoffrey Garen  <ggaren@apple.com>
2252
2253         Reviewed by Darin Adler.
2254         
2255         "IconDatabase::sharedIconDatabase()" => "iconDatabase()" for terseness.
2256
2257 2007-05-10  Adele Peterson  <adele@apple.com>
2258
2259         Reviewed by Hyatt.
2260
2261         WebKit part of fix for <rdar://problem/4100616> Doing a "find" in RSS doesn't scroll to result
2262
2263         Updated to use selectionRect instead of visibleSelectionRect.  selectionRect() now returns the visible rect by default.
2264
2265         * WebView/WebHTMLView.mm:
2266         (-[WebHTMLView _lookUpInDictionaryFromMenu:]):
2267         (-[WebHTMLView selectionImageRect]):
2268
2269 2007-05-10  dethbakin  <bdakin@apple.com>
2270
2271         Reviewed by Darin.
2272
2273         Fix for <rdar://problem/5191941> Leopard: Adobe Acrobat 8: 
2274         Distiller 8 needs same check fix as 4992521
2275
2276         * WebView/WebView.mm:
2277         (-[WebView _updateWebCoreSettingsFromPreferences:]): Adobe 
2278         Distiller needs the same quirk.
2279
2280 2007-05-10  Maciej Stachowiak  <mjs@apple.com>
2281
2282         Reviewed by Oliver.
2283
2284         - WebKit part of fix for:
2285         <rdar://problem/5063277> blank screen after login to Citibank Online (accessing document before frame starts loading cancels load)
2286         <rdar://problem/5159541> REGRESSION (r20972): Wall Street Journal pages replaced by advertisements (13465)
2287
2288         The basic approach is to have Frames start out containing an empty document instead of absolutely nothing,
2289         so there is no need to initialize them on demand. Various side effects of that cause both of these bugs.
2290         
2291         However, this caused many regressions so I had to fix the fallout.
2292
2293         * WebCoreSupport/WebChromeClient.mm:
2294         (WebChromeClient::takeFocus): Avoid focus cycle problems (can happen in DumpRenderTree
2295         with initial empty document now).
2296         * WebCoreSupport/WebFrameBridge.mm:
2297         (-[WebFrameBridge finishInitializingWithPage:frameName:frameView:ownerElement:]): init the frame.
2298         (-[WebFrameBridge determineObjectFromMIMEType:URL:]): return image type when appropriate
2299         * WebView/WebFrame.mm:
2300         (-[WebFrame stopLoading]): use stopForUserCancel().
2301         * WebView/WebFrameView.mm:
2302         (-[WebFrameView _makeDocumentViewForDataSource:]): assume html when no mime type available.
2303         * WebView/WebView.mm:
2304         (-[WebView becomeFirstResponder]): Track whether we are becoming first responder from
2305         outside the view.
2306         (-[WebView _becomingFirstResponderFromOutside]): Return this value.
2307         * WebView/WebViewInternal.h:
2308
2309 2007-05-09  Oliver Hunt  <oliver@apple.com>
2310
2311         rs=Adele.
2312
2313         The previous patch (r21346) broke editing, rolling out
2314
2315         * WebView/WebHTMLView.mm:
2316         (-[WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]):
2317         (-[WebHTMLView doCommandBySelector:]):
2318
2319 2007-05-09  Adele Peterson  <adele@apple.com>
2320
2321         Reviewed by Oliver.
2322         
2323         Re-applying fix for <rdar://problem/5107538> REGRESSION: Page scroll when selecting characters from inline input candidate window by arrow buttons
2324         http://bugs.webkit.org/show_bug.cgi?id=13263
2325         
2326         We don't need to call interpretKeyEvents for cmd-key events as
2327         they events will be interpreted by performKeyEquivalent.
2328
2329         * WebView/WebHTMLView.mm:
2330         (-[WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]):
2331         (-[WebHTMLView doCommandBySelector:]):
2332
2333 2007-05-09  Mark Rowe  <mrowe@apple.com>
2334
2335         Build fix to keep the buildbot happy.
2336
2337         * Plugins/WebBaseNetscapePluginView.mm:
2338         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
2339
2340 2007-05-08  Bruce Q Hammond  <bruceq@apple.com>
2341
2342         Reviewed by Darin.
2343
2344         http://bugs.webkit.org/show_bug.cgi?id=13578
2345         Bug 13578: When QD plugins draw to an offscreen bitmap the origin is not correct
2346
2347         Now we have correct handling of the origin when QD plugins draw to
2348         offscreen bitmaps.
2349         Also the clipping code for this path was doing unnecessary work which
2350         caused incorrect results; it has been removed.
2351         
2352         This change should not affect Safari and in general will only affect
2353         plugins (e.g. Flash) drawing to a CGBitmapContext.
2354
2355         * Plugins/WebBaseNetscapePluginView.mm:
2356         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
2357
2358 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
2359
2360         Reviewed by Darin.
2361
2362         Implemented spelling/grammar related WebEditorClient methods.
2363
2364         * WebCoreSupport/WebEditorClient.h:
2365         * WebCoreSupport/WebEditorClient.mm:
2366         (WebEditorClient::ignoreWordInSpellDocument): Added. Call through to NSSpellChecker.
2367         (WebEditorClient::learnWord): Added. Call through to NSSpellChecker.
2368         (WebEditorClient::checkSpellingOfString): Added. Call through to NSSpellChecker.
2369         (WebEditorClient::checkGrammarOfString): Added. Call through to NSSpellChecker.
2370         (WebEditorClient::updateSpellingUIWithGrammarString): Added. Call through to NSSpellChecker.
2371         (WebEditorClient::updateSpellingUIWithMisspelledWord): Added. Call through to NSSpellChecker.
2372         (WebEditorClient::showSpellingUI): Added. Call through to NSSpellChecker.
2373         (WebEditorClient::spellingUIIsShowing): Added. Call through to NSSpellChecker.
2374         (WebEditorClient::getGuessesForWord): Added. Call through to NSSpellChecker.
2375
2376 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
2377
2378         Reviewed by Ada.
2379
2380         Slight modification to last editor method fix.
2381
2382         * WebCoreSupport/WebEditorClient.h:
2383         (WebEditorClient::updateSpellingUIWithGrammarString):
2384
2385 2007-05-07  Geoffrey Garen  <ggaren@apple.com>
2386
2387         Reviewed by Maciej Stachowiak.
2388         
2389         Fixed <rdar://problem/5140447> API for fetching JSGlobalContextRef from 
2390         WebView or WebFrame
2391         
2392         Added -[WebFrame windowObject] and -[WebFrame globalContext], along with
2393         a new frame load delegate method, - (void)webView:(WebView *)webView 
2394         didClearWindowObject:(WebScriptObject *)windowObject forFrame:(WebFrame *)frame.
2395         This is all to support briding between the WebScriptObject and JavaScriptCore
2396         APIs.
2397
2398         Also fixed more of <rdar://problem/4395622> API: WebScriptObject.h incorrectly 
2399         reports that -isSelectorExcludedFromWebScript returns NO by default, and
2400         generally cleaned up the WebScriptObject headerdoc.
2401
2402         * WebCoreSupport/WebFrameBridge.mm:
2403         (-[WebFrameBridge windowObjectCleared]):
2404         * WebView/WebFrame.mm:
2405         (-[WebFrame windowObject]):
2406         (-[WebFrame globalContext]):
2407         * WebView/WebFramePrivate.h:
2408         * WebView/WebViewPrivate.h:
2409
2410 2007-05-07  Timothy Hatcher  <timothy@apple.com>
2411
2412         Reviewed by Darin.
2413
2414         <rdar://problem/5180384> webView:validateUserInterfaceItem:defaultValidation: does not get called on WebUIDelegates
2415
2416         Call the delegate when the one of our views gets a validateUserInterfaceItem: call.
2417
2418         * WebView/WebHTMLView.mm:
2419         (-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]): Validate without the delegate.
2420         (-[WebHTMLView validateUserInterfaceItem:]): Call the delegate with the result of validateUserInterfaceItemWithoutDelegate:.
2421         * WebView/WebPDFView.mm:
2422         (-[WebPDFView validateUserInterfaceItemWithoutDelegate:]): Validate without the delegate.
2423         (-[WebPDFView validateUserInterfaceItem:]): Call the delegate with the result of validateUserInterfaceItemWithoutDelegate:.
2424         * WebView/WebView.mm:
2425         (-[WebView _responderValidateUserInterfaceItem:]): Call validateUserInterfaceItemWithoutDelegate: to prevent asking the delegate twice.
2426         (-[WebView validateUserInterfaceItemWithoutDelegate:]): Validate without the delegate.
2427         (-[WebView validateUserInterfaceItem:]): Call the delegate with the result of validateUserInterfaceItemWithoutDelegate:.
2428
2429 2007-05-07  Brady Eidson  <beidson@apple.com>
2430
2431         Actually finish the code move from my last checkin
2432
2433         * History/WebHistoryItem.mm:
2434         (-[WebHistoryItem _transientPropertyForKey:]):
2435         (-[WebHistoryItem _setTransientProperty:forKey:]):
2436
2437 2007-05-07  Brady Eidson  <beidson@apple.com>
2438
2439         Rubberstamped by Kevin (Sarge)
2440
2441         Make _transientPropertyForKey: and _setTransientProperty:forKey: SPI
2442
2443         * History/WebHistoryItemInternal.h:
2444         * History/WebHistoryItemPrivate.h:
2445
2446 2007-05-04  Geoffrey Garen  <ggaren@apple.com>
2447
2448         Reviewed by Tim Hatcher.
2449
2450         First step in fixing <rdar://problem/5055182> The back cache has no global cap
2451
2452         Stop giving SnapBack infinite cache-ability. Instead, make SnapBack rely
2453         on the underlying back cache.
2454         
2455         I left -setAlwaysAttemptToUsePageCache: as an empty stub because we don't 
2456         want to break Safari 2.0, but I removed its header declaration so nobody 
2457         else starts using it.
2458
2459         * History/WebHistoryItem.mm:
2460         (-[WebHistoryItem setAlwaysAttemptToUsePageCache:]):
2461         * History/WebHistoryItemPrivate.h:
2462
2463 2007-05-04  Geoffrey Garen  <ggaren@apple.com>
2464
2465         Reviewed by Brady Eidson.
2466         
2467         Some cleanup in preparation for fixing <rdar://problem/5055182> The 
2468         back/forward cache has no global cap
2469         
2470         Unified naming of WebKit/WebCore b/f lists -- instead of the potpourri 
2471         of webBackForwardList, backForwardList, list, kitList, coreList, listWrapper, 
2472         and webCoreBackForwardList, we use webBackForwardList for WebKit and 
2473         backForwardList for WebCore, matching their respective class names.
2474         
2475         Removed "private" versions of kit() and core() -- kit() and core() are
2476         canonically used for converting between WebKit API objects and WebCore
2477         API objects. I think it's clearer to have only one way to do this.
2478
2479         Removed COMPUTE_DEFAULT_PAGE_CACHE_SIZE, since it was unused.
2480         
2481         Removed _clearPageCache, since it was unused and it duplicated -setPageCacheSize:0.
2482
2483         Removed _usesPageCache, since it was unused and it duplicated -pageCacheSize.
2484
2485 2007-05-04  Brady Eidson  <beidson@apple.com>
2486
2487         Reviewed by Mark Rowe
2488
2489         Added main thread assertion to WebHTMLView to help make sure 3rd party clients aren't trying
2490         to draw on secondary threads
2491
2492         * WebView/WebHTMLView.mm:
2493         (-[WebHTMLView drawRect:]): Added ASSERT_MAIN_THREAD()
2494
2495 2007-05-04  Anders Carlsson  <andersca@apple.com>
2496
2497         Reviewed by Antti.
2498
2499         <rdar://problem/5179977> Use the correct URLs when dispatching delegate methods for data loads.
2500
2501         * WebView/WebFrame.mm:
2502         (-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
2503         If the base URL is nil, set it to "about:blank", and set the response URL to a generated applewebdata URL.
2504         
2505         * WebView/WebView.mm:
2506         (+[WebView _canHandleRequest:]):
2507         No need to special-case applewebdata URLs here anymore, they're only used in responses.
2508
2509 2007-05-03  Steve Falkenburg  <sfalken@apple.com>
2510
2511         Reviewed by Oliver.
2512
2513         Add missing user description parameter to spelling-related editor client method.
2514
2515         * WebCoreSupport/WebEditorClient.h:
2516         (WebEditorClient::updateSpellingUIWithGrammarString):
2517
2518 2007-05-03  TImothy Hatcher  <timothy@apple.com>
2519
2520         Reviewed by Kevin.
2521
2522         <rdar://problem/4975212> REGRESSION: With NetNewsWire 2.1.1, the contextual menu shows extra menu items when focus
2523         is placed in input or textarea field
2524
2525         The NetNewsWire UI delegate isn't expecting calls for form controls, so we need to do a linked-on-or-after check.
2526         If the application was linked against Tiger or earlier and the element is a text form control, just return the
2527         default menu items and bypass the delegate call completely.
2528
2529         * WebCoreSupport/WebContextMenuClient.mm:
2530         (isPreVersion3Client): Cache the result of the WebKitLinkedOnOrAfter call
2531         (fixMenusToSendToOldClients): Call the new isPreVersion3Client()
2532         (fixMenusReceivedFromOldClients): Ditto.
2533         (WebContextMenuClient::getCustomMenuFromDefaultItems): Return the default menu items if the element is a text form control.
2534
2535 2007-05-03  Mark Rowe  <mrowe@apple.com>
2536
2537         Reviewed by Geoff and Kevin.
2538
2539         <rdar://problem/5141290> WebAssertions.h is still needed by some internal clients
2540
2541         Second shot at fixing this error.  Stub out the macros rather than forwarding to JavaScriptCore, which would
2542         leave clients using this header trying to resolve JavaScriptCore symbols against WebKit when linking.  This
2543         should only happen in production builds when assertions should be disabled anyway as anyone building a
2544         development configuration should be in a position to move away from using this header.
2545
2546         * Misc/WebAssertions.h: 
2547
2548 2007-05-03  Timothy Hatcher  <timothy@apple.com>
2549
2550         Reviewed by Kevin.
2551
2552         <rdar://problem/5067707> REGRESSION: "Open Link" contextual menu item appears twice in Mail
2553
2554         Remove the check for Mail in fixMenusToSendToOldClients and fixMenusReceivedFromOldClients
2555         when linked on or after Leopard. The isAppleMail() function is still used for Tiger Mail fixups.
2556
2557         * WebCoreSupport/WebContextMenuClient.mm:
2558         (fixMenusToSendToOldClients):
2559         (fixMenusReceivedFromOldClients):
2560
2561 2007-05-02  Anders Carlsson  <andersca@apple.com>
2562
2563         Reviewed by Brady.
2564
2565         <rdar://problem/5151113> Assertion firing in [FrameProgressEntry addChild:forDataSource:] when navigating cnn.com
2566         
2567         The assertion fired because a plug-in was trying to load a subresource when a new load had started but not yet
2568         committed. The check that would have prevented this was removed in order to fix <rdar://problem/5085897>.
2569         
2570         This puts back the check but changes it to allow loads where the target is the same frame as the plugin's parent frame.
2571         
2572         * Plugins/WebBaseNetscapePluginView.mm:
2573         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]):
2574
2575 2007-04-27  Timothy Hatcher  <timothy@apple.com>
2576
2577         Reviewed by Darin.
2578
2579         There were only a couple calls to ResourceLoadDelegate forwarder left,
2580         this removes the calls and adds a new cached method for didFailLoad.
2581
2582         * WebKit/DefaultDelegates/WebDefaultResourceLoadDelegate.h: Removed.
2583         * WebKit/DefaultDelegates/WebDefaultResourceLoadDelegate.m: Removed.
2584         * WebKit/Plugins/WebNullPluginView.mm: Call the resource load delegate directly.
2585         * WebKit/WebCoreSupport/WebFrameLoaderClient.mm: Call the cached didFailLoad delegate function.
2586         * WebKit/WebKit.xcodeproj/project.pbxproj: Remove WebDefaultResourceLoadDelegate.
2587         * WebKit/WebView/WebDataSource.mm: Remove the #import for WebDefaultResourceLoadDelegate.h
2588         * WebKit/WebView/WebView.mm: Remove the ResourceLoadDelegate forwarder, and remove a method that isn't used.
2589         * WebKit/WebView/WebViewInternal.h: Ditto.
2590         * WebKit/WebView/WebViewPrivate.h: Remove a method that is no longer used.
2591
2592 2007-04-27  David Harrison  <harrison@apple.com>
2593
2594         Reviewed by Darin.
2595
2596         <rdar://problem/5160627> Export JS list creation support as ObjC SPI for Mail
2597
2598         * WebKit.xcodeproj/project.pbxproj:
2599         * WebView/WebHTMLView.mm:
2600         (-[WebHTMLView _selectedRange]):
2601         (-[WebHTMLView _shouldDeleteRange:]):
2602         (-[WebHTMLView _canEdit]):
2603         (-[WebHTMLView _canEditRichly]):
2604         (-[WebHTMLView _hasSelection]):
2605         (-[WebHTMLView _hasSelectionOrInsertionPoint]):
2606         (-[WebHTMLView _hasInsertionPoint]):
2607         (-[WebHTMLView _isEditable]):
2608         Condense the check for nil [self frame].
2609         Remove canEditRichly checks and rely on the editor to do the check instead.
2610         
2611         (-[WebHTMLView _insertOrderedList]):
2612         (-[WebHTMLView _insertUnorderedList]):
2613         New.
2614         
2615         (-[WebHTMLView _canIncreaseSelectionListLevel]):
2616         (-[WebHTMLView _canDecreaseSelectionListLevel]):
2617         (-[WebHTMLView _increaseSelectionListLevel]):
2618         (-[WebHTMLView _increaseSelectionListLevelOrdered]):
2619         (-[WebHTMLView _increaseSelectionListLevelUnordered]):
2620         (-[WebHTMLView _decreaseSelectionListLevel]):
2621         Moved from bridge to frame editor.
2622
2623         * WebView/WebHTMLViewPrivate.h:
2624         Add _insertOrderedList and _insertUnorderedList to WebHTMLView(WebPrivate)
2625
2626 2007-04-27  Brady Eidson  <beidson@apple.com>
2627
2628         Rubberstamped by Mark
2629
2630         Remove default implementation of UIDelegate method that was removed
2631
2632         I have also been instructed to give Tim a hard time about this one - apparently
2633         it was his job to clean it out and he failed...  failed miserably.
2634
2635         :)
2636
2637         * DefaultDelegates/WebDefaultUIDelegate.m: Removed webViewPrint:
2638
2639 2007-04-27  Maciej Stachowiak  <mjs@apple.com>
2640
2641         Reviewed by Mark.
2642         
2643         <rdar://problem/5154113> Repro ASSERT (would be crash) in KJS::GCLock::GCLock (13462)
2644         http://bugs.webkit.org/show_bug.cgi?id=13462
2645
2646         * WebInspector/WebInspector.m:
2647         (-[WebInspectorPrivate dealloc]): Delay release of WebView to avoid GC re-entrancy.
2648
2649 2007-04-27  Anders Carlsson  <andersca@apple.com>
2650
2651         Reviewed by Mitz.
2652
2653         <rdar://problem/5165755>
2654         View Source is broken; empty window is shown
2655         
2656         Return YES for applewebdata URLs.
2657         
2658         * WebView/WebView.mm:
2659         (+[WebView _canHandleRequest:]):
2660
2661 2007-04-26  Oliver Hunt  <oliver@apple.com>
2662
2663         Reviewed by Adam.
2664
2665         Fix <rdar://problem/5061252> REGRESSION: In Gmail, image fails 
2666         to be inserted into message field after dragging
2667
2668         Don't try to create <img> tags for local image files as it results
2669         in the potential to submit forms that look like they have an image,
2670         when in reality they don't.
2671
2672         * WebView/WebHTMLView.mm:
2673         (-[WebHTMLView _documentFragmentWithPaths:]):
2674
2675 2007-04-26  Anders Carlsson  <andersca@apple.com>
2676
2677         Reviewed by Maciej.
2678
2679         <rdar://problem/5049099> documents no longer have a default base URL
2680         
2681         If the base URL is nil, then create a unique applewebdata URL to match what Tiger WebKit does.
2682         
2683         * WebView/WebFrame.mm:
2684         (createUniqueWebDataURL):
2685         (-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
2686
2687 2007-04-25  Oliver Hunt  <oliver@apple.com>
2688
2689         Rubber stamped by Adele.
2690
2691         Roll out WebKit changes from from r21052 to fix regression noted in
2692         <rdar://problem/5159556> REGRESSION: In Mail, pressing option-command- ' doesn't decrease block quote in selection
2693
2694         * WebView/WebHTMLView.mm:
2695         (-[WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]):
2696         (-[WebHTMLView doCommandBySelector:]):
2697
2698 2007-04-25  Steve Falkenburg  <sfalken@apple.com>
2699
2700         Reviewed by Adam.
2701
2702         Mac callbacks for new spelling methods in WebEditorClient.
2703         Not used yet.
2704
2705         * WebCoreSupport/WebEditorClient.h:
2706         (WebEditorClient::ignoreWordInSpellDocument):
2707         (WebEditorClient::learnWord):
2708         (WebEditorClient::checkSpellingOfString):
2709         (WebEditorClient::checkGrammarOfString):
2710         (WebEditorClient::updateSpellingUIWithGrammarString):
2711         (WebEditorClient::updateSpellingUIWithMisspelledWord):
2712         (WebEditorClient::showSpellingUI):
2713         (WebEditorClient::spellingUIIsShowing):
2714         (WebEditorClient::getGuessesForWord):
2715
2716 2007-04-24  Geoffrey Garen  <ggaren@apple.com>
2717
2718         Reviewed by Darin Adler, Tim Hatcher.
2719
2720         Fixed a few NSAutoreleasePool issues I noticed while reviewing Brady's patch.
2721
2722         * Carbon/CarbonUtils.m:
2723         (PoolCleaner): Call -drain instead of -release, since -release is a 
2724         no-op in a GC world.
2725
2726         * Misc/WebKitErrors.m:
2727         (registerErrors): Condensed onto one line.
2728
2729         * Plugins/WebPluginDatabase.m:
2730         (-[WebPluginDatabase refresh]): Call -drain instead of -release, since
2731         -release is a no-op in a GC world.
2732
2733         * WebCoreSupport/WebChromeClient.mm:
2734         (WebChromeClient::setStatusbarText):
2735
2736         * WebInspector/WebNodeHighlightView.m:
2737         (-[WebNodeHighlightView initWithHighlight:andRects:forView:]): Don't drain
2738         and then release because drain deallocates the receiver, so the release
2739         is an over-release.
2740
2741         * WebView/WebView.mm:
2742         (-[WebView rectsForTextMatches]): Re-allocate the pool after draining it,
2743         because drain deallocates the receiver, so the drain would leave you without
2744         any autorelease pool, causing a leak and then an over-release at the bottom
2745         of the loop.
2746
2747 2007-04-24  Brady Eidson  <beidson@apple.com>
2748
2749         Reviewed by Beth, Hyatt, Ada, and Darin
2750
2751         <rdar://problem/5011477> and <rdar://problem/5011514>
2752         Provide support for the icon.db to be moved to a different directory from the old WebKit-style
2753         icons, and remove the old directory if that is the case
2754
2755         * Misc/WebIconDatabase.mm:
2756         (-[WebIconDatabase init]):
2757         (-[WebIconDatabase _importToWebCoreFormat]): Check "imported()" to determine if a conversion is needed
2758           - Look for WebIconDatabaseImportDirectoryDefaultsKey for the source location for the conversion
2759           - Set "imported" to true in the Icons.db
2760           - If the new Icons.db isn't in the same patch as the old icons, delete the entire directory when finished
2761           - Move old icon.db to Icons.db to reflect rename
2762         * Misc/WebIconDatabasePrivate.h: Add WebIconDatabaseImportDirectoryDefaultsKey so a WebKit client can tell WebKit
2763           where to look for the old icons if their location is different from the icon.db
2764         * WebKit.exp:
2765
2766 2007-04-24  Mitz Pettel  <mitz@webkit.org>
2767
2768         Reviewed by Oliver Hunt.
2769
2770         Changed an apostrophe (') into a right single quotation mark (U+2019).
2771
2772         * WebInspector/webInspector/inspector.js:
2773
2774 2007-04-24  Mitz Pettel  <mitz@webkit.org>
2775
2776         Reviewed by Timothy Hatcher.
2777
2778         - fix http://bugs.webkit.org/show_bug.cgi?id=13459
2779           The "mapped style" link next to an attribute doesn't work
2780
2781         * WebInspector/webInspector/inspector.js: Added a check that the rule is
2782         mapped from an attribute.
2783
2784 2007-04-23  Adele Peterson  <adele@apple.com>
2785
2786         Fixed and reviewed by Darin, Adele, and Oliver.
2787
2788         WebKit part of fix for <rdar://problem/5107538> REGRESSION: Page scroll when selecting characters from inline input candidate window by arrow buttons
2789         http://bugs.webkit.org/show_bug.cgi?id=13263
2790
2791         * WebView/WebHTMLView.mm:
2792         (-[WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]):  If we have no command after calling interpretKeyEvents, we assume the input method handled the key.
2793         (-[WebHTMLView doCommandBySelector:]): Add noop: to the command vector, but then when actually performing actions, ignore it.
2794
2795 2007-04-23  Timothy Hatcher  <timothy@apple.com>
2796
2797         Reviewed by Darin.
2798
2799         <rdar://problem/5124364> IB3 crashes when loading a nib containing a WebView that has a WebHTMLView encoded inside
2800
2801         Since WebView's initWithCoder throws away all the decoded subviews, the WebHTMLView gets dealoced while it has a nil _private pointer.
2802         Checking for a nil _private in WehHTMLView's close fixes this crash. No need to implement a full initWithCoder for WebHTMLView since
2803         it will be thrown away by the WebView anyway.
2804
2805         * WebView/WebHTMLView.mm:
2806         (-[WebHTMLView close]): Return earily if _priviate is nil.
2807         (-[WebHTMLView initWithFrame:]): Unrelated change that removes an AppKit version check that predates Tiger.
2808
2809 2007-04-23  Timothy Hatcher  <timothy@apple.com>
2810
2811         Reviewed by Mark Rowe.
2812
2813         Remove the "No Selection" message after leaving search mode.
2814         This was a regression caused by the inspector refresh.
2815
2816         * WebInspector/webInspector/inspector.js:
2817
2818 2007-04-23  Timothy Hatcher  <timothy@apple.com>
2819
2820         Reviewed by Darin.
2821
2822         Bug 6658: World leak when closing inspected window
2823         http://bugs.webkit.org/show_bug.cgi?id=6658 and <rdar://problem/4411863>
2824
2825         Removes over-retains of the inspector WebView, WebInspector and WebInspectorPanel.
2826
2827         * WebInspector/WebInspector.m:
2828         (+[WebInspector sharedWebInspector]): Return the global sharedWebInspector variable.
2829         (-[WebInspector window]): Release the window after calling setWindow:.
2830         (-[WebInspector windowWillClose:]): Set the JavaScript Inspector variable to null and expire the current highlight.
2831           Also clear the global sharedWebInspector variable and release it if self equals sharedWebInspector.
2832         (-[WebInspector showWindow:]): Set the JavaScript Inspector variable back to self.
2833         * WebInspector/WebInspectorInternal.h: Remove the isSharedInspector member variable.
2834         * WebView/WebView.mm:
2835         (-[WebView windowScriptObject]): Return nil if core([self mainFrame]) is NULL.
2836
2837 2007-04-23  Darin Adler  <darin@apple.com>
2838
2839         Reviewed by Hyatt.
2840
2841         - rename box-sizing to -webkit-box-sizing
2842
2843         * WebInspector/webInspector/inspector.css: Here.
2844         * WebInspector/webInspector/inspector.js: And here, in the expected default CSS values list.
2845
2846 2007-04-22  Timothy Hatcher  <timothy@apple.com>
2847
2848         Reviewed by Darin.
2849
2850         The fix for <rdar://problem/4976681> ASSERTION failure on quit @ talkcrunch.com in _NPN_ReleaseObject
2851         was #ifdefed out in Production builds.
2852
2853         * WebView/WebView.mm:
2854         (+[WebView initialize]): Move the #ifdef REMOVE_SAFARI_DOM_TREE_DEBUG_ITEM inside initialize around the specific code
2855         (+[WebView _applicationWillTerminate]): Moved outside the #ifdef REMOVE_SAFARI_DOM_TREE_DEBUG_ITEM block
2856
2857 2007-04-22  Timothy Hatcher  <timothy@apple.com>
2858
2859         Reviewed by Mitz.
2860
2861         Bug 13436: Make Option-clicking a disclosure triangle expand the entire subtree
2862         http://bugs.webkit.org/show_bug.cgi?id=13436
2863
2864         Makes option-click recursively expand and collapse the sub-tree. Pressing option-left
2865         and -right also recursively expands and collapses the sub-tree.
2866
2867         * WebInspector/webInspector/treeoutline.js:
2868
2869 2007-04-22  Timothy Hatcher  <timothy@apple.com>
2870
2871         Reviewed by Mitz.
2872
2873         Bug 13437: Inspector does not update when navigating to a different page
2874         http://bugs.webkit.org/show_bug.cgi?id=13437
2875
2876         * WebInspector/webInspector/inspector.js: Correctly update to a new root node
2877           if the new focus node and the old focus node don't have a common ancestor.
2878
2879 2007-04-22  Darin Adler  <darin@apple.com>
2880
2881         Reviewed by Adele.
2882
2883         - fix for <rdar://problem/5100240> REGRESSION: Control-O broken
2884
2885         * WebView/WebHTMLView.mm:
2886         (-[WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]): Update to handle a vector of
2887         command names instead of a single command.
2888         (-[WebHTMLView doCommandBySelector:]): Change logic so that we add the command to a vector
2889         and also so that the interpretKeyEvents parameters are still intact for a second call to
2890         doCommandBySelector:, since the key bindings mechanism can do more than one.
2891         (-[WebHTMLView insertText:]): Added comment.
2892
2893 2007-04-21  Darin Adler  <darin@apple.com>
2894
2895         Reviewed by Oliver.
2896
2897         - fix some problems I ran into using the inspector
2898
2899         * WebInspector/webInspector/inspector.js: Add some null checks.
2900
2901 2007-04-20  Timothy Hatcher  <timothy@apple.com>
2902
2903         Reviewed by Darin.
2904
2905         Merge over the WebInspectorRefresh branch. This change removes the NSOutlineView and
2906         is replaced with a HTML/JavaScript tree. Most of the inspector logic is now in the JavaScript.
2907
2908         A few bugs are fixed by these changes:
2909
2910         Bug 6615: Parent node drop-down list is upside-down
2911         http://bugs.webkit.org/show_bug.cgi?id=6615
2912
2913         Bug 6643: REGRESSION: Tree view repaints lines without erasing them first
2914         http://bugs.webkit.org/show_bug.cgi?id=6643
2915
2916         Bug 6650: Web Inspector HTML Hierarchy can't be scrolled with scrollwheel
2917         http://bugs.webkit.org/show_bug.cgi?id=6650
2918
2919         Bug 6677: Can't drag inspector when tree view has focus
2920         http://bugs.webkit.org/show_bug.cgi?id=6677
2921
2922         Bug 7326: Web Inspector tree scrollbar always shows up when resizing the top pane down
2923         http://bugs.webkit.org/show_bug.cgi?id=7326
2924
2925         * WebInspector/WebInspector.h: Removed the searchQuery methods.
2926         * WebInspector/WebInspector.m: Removed the DOMNode category and code for the old outline view.
2927         * WebInspector/WebInspectorOutlineView.h: Removed.
2928         * WebInspector/WebInspectorOutlineView.m: Removed.
2929         * WebInspector/WebInspectorInternal.h: Remove some methods and instance variables.
2930         * WebInspector/webInspector/Images/resize.png: Added.
2931         * WebInspector/webInspector/inspector.css: 
2932         * WebInspector/webInspector/inspector.html: Include the new classes and remove the plugin.
2933         * WebInspector/webInspector/inspector.js: Changes to use the new tree outline and other fixes.
2934         * WebInspector/webInspector/scrollarea.js: Copied from the Dashboard widget resources.
2935         * WebInspector/webInspector/scrollbar.js: Ditto.
2936         * WebInspector/webInspector/treeoutline.js: New tree outline class.
2937         * WebInspector/webInspector/utilities.js: DOM and String prototype additions.
2938         * WebKit.xcodeproj/project.pbxproj: Remove WebInspectorOutlineView.
2939
2940 2007-04-20  Brady Eidson  <beidson@apple.com>
2941
2942         Reviewed by Oliver (Black Sheep)
2943
2944         <rdar://problem/3559794>
2945         [WebView setMaintainsBackForwardList:] doesn't actually flush out the current page caches
2946
2947         * WebView/WebView.mm: Remove _private->useBackForwardList
2948         (-[WebView _setInitiatedDrag:]): Use _private->page instead of [self page]
2949         (-[WebView initWithCoder:]): Manipulate the flag that is now in WebCore::BackForwardList
2950         (-[WebView encodeWithCoder:]): Ditto
2951         (-[WebView backForwardList]): Use _private->page instead of [self page]
2952         (-[WebView setMaintainsBackForwardList:]): Manipulate the flag that is now in WebCore::BackForwardList
2953
2954 2007-04-20  Anders Carlsson  <andersca@apple.com>
2955
2956         Reviewed by Maciej.
2957
2958         <rdar://problem/5085897> REGRESSION: Some Flash links at www.jumpskyhigh.com just reload the page
2959         
2960         Get rid of the check that would prevent plugin requests from being loaded if a new page load was underway.
2961         www.jumpskyhigh.com had a flash movie that was embedded inside an <a> tag and clicking on the plug-in would cause the
2962         URL pointed to by the <a> tag to start loading and thus preventing the plug-in from loading the real URL.
2963         
2964         This check was added by Maciej and we should be able to remove it with the loader changes that have happened now,
2965         (mainly the fact that resource loaders are handled by the document loader instead of the frame loader).
2966         
2967         * Plugins/WebBaseNetscapePluginView.mm:
2968         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]):
2969
2970 2007-04-19  Oliver Hunt  <oliver@apple.com>
2971
2972         Reviewed by Adam.
2973
2974         Fix for <rdar://problem/4960912> -- REGRESSION: Content-Disposition:
2975         filename is ignored for drag-and-drop.
2976
2977         * WebView/WebResource.mm:
2978         (-[WebResource _fileWrapperRepresentation]):
2979           When creating the NSFileWrapper check the response for a preferred 
2980           filename, rather than just blindly hoping for the best.
2981
2982 2007-04-19  Anders Carlsson  <andersca@apple.com>
2983
2984         Reviewed by John.
2985
2986         <rdar://problem/5137002>
2987         REGRESSION (r20812): [WebFrame DOMDocument] is returning non-nil value in bookmarks view, causing trouble in Safari
2988
2989         Put back the MIME type check as a workaround.
2990         * WebView/WebFrame.mm:
2991         (-[WebFrame DOMDocument]):
2992
2993 2007-04-19  Mark Rowe  <mrowe@apple.com>
2994
2995         Reviewed by Oliver and Adam.
2996
2997         <rdar://problem/5141290> WebAssertions.h is still needed by some internal clients.
2998
2999         * Misc/WebAssertions.h: Added.
3000         * WebKit.xcodeproj/project.pbxproj:
3001
3002 2007-04-17  Brady Eidson  <beidson@apple.com>
3003
3004         Reviewed by Tim
3005
3006         <rdar://problem/5008925>
3007         Expose the NSURLConnection delegate willCacheResponse API to WebResourceLoadDelegate
3008
3009         * WebCoreSupport/WebFrameLoaderClient.h:
3010         * WebCoreSupport/WebFrameLoaderClient.mm:
3011         (WebFrameLoaderClient::willCacheResponse): Call 
3012           [WebResourceLoadDelegate webView:resource:willCacheResponse:fromDataSource:];
3013
3014         * WebView/WebView.mm:
3015         (-[WebView _cacheResourceLoadDelegateImplementations]): Pull out the willCacheResponse impl
3016
3017         * WebView/WebViewPrivate.h: Add WebResourceLoadDelegatePrivate category for this new SPI
3018
3019 2007-04-18  John Sullivan  <sullivan@apple.com>
3020
3021         Reviewed by Adam
3022
3023         - fixed <rdar://problem/5103009> REGRESSION: Activity window shows blank name for untitled pages
3024
3025         * WebView/WebHTMLRepresentation.mm:
3026         (-[WebHTMLRepresentation title]):
3027         return nil for empty string, to match old behavior
3028
3029 2007-04-17  John Sullivan  <sullivan@apple.com>
3030
3031         Reviewed by Tim Hatcher
3032
3033         - fixed <rdar://problem/5138492> Safari doesn't remember some changes to the PDF scale and display mode 
3034
3035         Some of the user interactions that could change the PDF scale and display mode were not going through
3036         the proxy mechanism in WebPDFView that updates preferences. Now we also listen to PDFKit notifications
3037         in order to catch the other cases.
3038
3039         * WebView/WebPDFView.h:
3040         new _ignoreScaleAndDisplayModeNotifications and _updatePreferencesTimer ivars
3041
3042         * WebView/WebPDFView.mm:
3043         (-[WebPDFView setPDFDocument:]):
3044         ignore scale and display mode notifications while we're setting up a fresh document
3045         (-[WebPDFView dealloc]):
3046         cancel the new timer (which releases it)
3047         (-[WebPDFView viewDidMoveToWindow]):
3048         listen for two PDFKit notifications
3049         (-[WebPDFView viewWillMoveToWindow:]):
3050         stop listening to the two PDFKit notifications
3051         (-[WebPDFView _applyPDFDefaults]):
3052         white space change
3053         (-[WebPDFView _cancelUpdatePreferencesTimer]):
3054         invalidate, release, and nil out the timer
3055         (-[WebPDFView _scaleOrDisplayModeChanged:]):
3056         update preferences soon, unless deliberately ignoring these notifications
3057         (-[WebPDFView _updatePreferencesNow]):
3058         cancel timer, then save data to preferences (code for saving the data was extracted from
3059         -[PDFPrefUpdatingProxy forwardInvocation:])
3060         (-[WebPDFView _updatePreferencesSoon]):
3061         use timer to consolidate multiple calls into one action; formerly we were setting preferences
3062         multiple times for some atomic user actions
3063         (-[PDFPrefUpdatingProxy forwardInvocation:]):
3064         call _updatePreferencesSoon where we used to immediately set preferences
3065
3066 2007-04-17  John Sullivan  <sullivan@apple.com>
3067
3068         Reviewed by Kevin Decker
3069
3070         - fixed <rdar://problem/4184640> "Look Up in Dictionary" item is always disabled for PDF pages
3071
3072         * WebView/WebPDFView.mm:
3073         (-[WebPDFView validateUserInterfaceItem:]):
3074         enable "Look Up in Dictionary" only if we're using a version of PDFKit that knows how to do so
3075         (-[WebPDFView _canLookUpInDictionary]):
3076         use respondsToSelector to test whether the current version of PDFKit supports this non-API feature
3077         (-[WebPDFView _lookUpInDictionaryFromMenu:]):
3078         implement this method, which WebKit includes in the context menu when there's selected text
3079         (-[WebPDFView _menuItemsFromPDFKitForEvent:]):
3080         updated comment for this change
3081
3082 2007-04-16  Darin Adler  <darin@apple.com>
3083
3084         Rubber stamped by Tim Hatcher.
3085
3086         * WebKit.xcodeproj/project.pbxproj: Added Radar bug number to the error message
3087         for the "version number ending in 4" check so folks from Apple can find the
3088         original bug that motivated for this. To summarize what's in that bug, it says that
3089         <http://my.fedex.com> was failing, that it was because of the OpenCube DHTML Menu,
3090         and that some other affected sites were not using OpenCube (so the error is presumably
3091         more widespread).
3092
3093 2007-04-16  Darin Adler  <darin@apple.com>
3094
3095         Reviewed by John Sullivan.
3096
3097         - fix http://bugs.webkit.org/show_bug.cgi?id=13303
3098           <rdar://problem/5126341> REGRESSION: controls in a background Safari window
3099           maintain active appearance if the address bar has focus (13303)
3100
3101         * WebView/WebHTMLView.mm: (-[WebHTMLView _windowChangedKeyState]):
3102         Added. Calls FrameView::updateControlTints.
3103
3104 2007-04-13  Oliver Hunt  <oliver@apple.com>
3105
3106         Reviewed by Adam.
3107
3108         Due to rdar://problem/5133910 -- WebArchives should not be constructed 
3109         using resource from the cache -- We may try to create a potentially 
3110         incorrect WebArchive when dragging an image multiple times.
3111
3112         This patch retains the assertion for invalid behaviour, but adds a
3113         branch to make sure we don't try to do anything with the WebArchive
3114         in release builds.
3115
3116         * Misc/WebNSPasteboardExtras.mm:
3117         (-[NSPasteboard _web_writeImage:element:URL:title:archive:types:]):
3118
3119 2007-04-13  Timothy Hatcher  <timothy@apple.com>
3120
3121         Reviewed by Dave Harrison.
3122
3123         <rdar://problem/5132727> Soho Mail build fails because of renamed SPI
3124
3125         * WebView/WebUIDelegatePrivate.h: define WebMenuItemTagSearchInGoogle as OldWebMenuItemTagSearchWeb
3126
3127 2007-04-13  Mark Rowe  <mrowe@apple.com>
3128
3129         Reviewed by Oliver.
3130
3131         <rdar://problem/5130686> Using WebPreferencesPrivate.h requires modifying framework search path
3132
3133         * WebView/WebPreferencesPrivate.h: Remove unneeded #ifdef.
3134
3135 2007-04-12  Deneb Meketa  <dmeketa@adobe.com>
3136
3137         Reviewed by Darin Adler.
3138
3139         http://bugs.webkit.org/show_bug.cgi?id=13029
3140         rdar://problem/4994849
3141         Bug 13029: Permit NPAPI plug-ins to see HTTP response headers.
3142
3143         * Plugins/WebBaseNetscapePluginStream.h: declarations.
3144         * Plugins/WebBaseNetscapePluginStream.mm: main implementation.
3145         (-[WebBaseNetscapePluginStream dealloc]): cleanup.
3146         (-[WebBaseNetscapePluginStream finalize]): cleanup.
3147         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:headers:]):
3148         Pass headers along.
3149         (-[WebBaseNetscapePluginStream startStreamWithResponse:]):
3150         Main work is here.  Extract headers from NSHTTPURLResponse object into a byte sequence.
3151         See comments here about how it would be nice to have low-level access to the HTTP response.
3152         (-[WebBaseNetscapePluginStream _destroyStream]): cleanup.
3153         * Plugins/WebBaseNetscapePluginView.mm:
3154         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]):
3155         Conform to new startStream params.  Not applicable here, pass nil.
3156
3157 2007-04-12  Brady Eidson  <beidson@apple.com>
3158
3159         Build fix for case sensitive file systems
3160
3161         * Misc/WebNSPasteboardExtras.mm:
3162         * WebCoreSupport/WebPasteboardHelper.mm:
3163
3164 2007-04-11  John Sullivan  <sullivan@apple.com>
3165
3166         Reviewed by Anders
3167
3168         - WebKit part of fix for:
3169         <rdar://problem/5128697> REGRESSION: At least one PDF context menu item isn't appearing on Leopard
3170
3171         * Misc/WebNSArrayExtras.h: Added.
3172         * Misc/WebNSArrayExtras.m: Added.
3173         (-[NSMutableArray _webkit_removeUselessMenuItemSeparators]):
3174         New file, includes this method to strip leading, trailing, and duplicate separators from arrays
3175         of NSMenuItems (copied from Safari)
3176
3177         * WebView/WebUIDelegatePrivate.h:
3178         new MenuItemTag enum values for new PDFKit context menu items
3179
3180         * WebKit.xcodeproj/project.pbxproj:
3181         updated for new files
3182
3183         * WebView/WebPDFView.mm:
3184         (-[WebPDFView _anyPDFTagsFoundInMenu:]):
3185         check for new PDFKit context menu items
3186         (-[WebPDFView _menuItemsFromPDFKitForEvent:]):
3187         associate new PDFKit context menu item selectors with the new tags; skip certain selectors that
3188         correspond to menu items that WebKit already includes; remove useless menu item separators when
3189         we're done, since we might have removed arbitrarily-placed menu items
3190
3191 2007-04-11  Oliver Hunt  <oliver@apple.com>
3192
3193         Reviewed by Maciej.
3194
3195         Adding RetainPtr to the many global obj-c pointers we use in
3196         C/C++ methods.  This is necessary to prevent GC from collecting
3197         globals we want to keep around.
3198
3199         We use RetainPtr in obj-c++ and c++ files, and CFRetain/Release in pure
3200         obj-c.
3201
3202         This fixes <rdar://problem/5058731> -- Crash in 
3203         WebCore::DragData::containsCompatibleContent due to early release 
3204         of types array
3205
3206         * Misc/WebLocalizableStrings.m:
3207         (WebLocalizedString):
3208         * Misc/WebNSPasteboardExtras.mm:
3209         (+[NSPasteboard _web_writableTypesForURL]):
3210         (_writableTypesForImageWithoutArchive):
3211         (_writableTypesForImageWithArchive):
3212         * Misc/WebNSURLExtras.m:
3213         (applyHostNameFunctionToMailToURLString):
3214         (applyHostNameFunctionToURLString):
3215         * Misc/WebStringTruncator.m:
3216         (defaultMenuFont):
3217         (fontFromNSFont):
3218         * WebCoreSupport/WebPasteboardHelper.mm:
3219         (WebPasteboardHelper::insertablePasteboardTypes):
3220
3221 2007-04-11  MorganL  <morganl.webkit@yahoo.com>
3222
3223         Reviewed by Maciej.
3224
3225         Add a Frame pointer to ChromeClient methods:
3226         http://bugs.webkit.org/show_bug.cgi?id=13127
3227
3228         * COM/ChromeClientWin.cpp:
3229         (ChromeClientWin::createWindow):
3230         (ChromeClientWin::createModalDialog):
3231         * COM/ChromeClientWin.h:
3232         * WebCoreSupport/WebChromeClient.h:
3233         * WebCoreSupport/WebChromeClient.mm:
3234         (WebChromeClient::createWindow):
3235         (WebChromeClient::createModalDialog):
3236
3237 2007-04-10  Brady Eidson  <beidson@apple.com>
3238
3239         Reviewed by Darin
3240
3241         <rdar://problem/4887095> - PageCache and PageState should be combined
3242
3243         WebKit side of the change to reflect the new object name of CachedPage and new Client method names
3244
3245         * History/WebHistoryItem.mm:
3246         (-[WebHistoryItem setAlwaysAttemptToUsePageCache:]):
3247         (+[WebHistoryItem _releaseAllPendingPageCaches]):
3248         (-[WebWindowWatcher windowWillClose:]):
3249
3250         * WebCoreSupport/WebFrameLoaderClient.h:
3251         * WebCoreSupport/WebFrameLoaderClient.mm:
3252         (WebFrameLoaderClient::setDocumentViewFromCachedPage):
3253         (WebFrameLoaderClient::loadedFromCachedPage):
3254         (WebFrameLoaderClient::saveDocumentViewToCachedPage):
3255
3256 2007-04-09  Geoffrey Garen  <ggaren@apple.com>
3257
3258         Reviewed by Maciej Stachowiak.
3259         
3260         Support for fixing fast/forms/textarea-paste-newline.html.
3261         
3262         Added SPI for specifying whether a WebView should allow pasting through the 
3263         DOM API.
3264
3265         * ChangeLog:
3266         * WebKit.xcodeproj/project.pbxproj:
3267         * WebView/WebPreferenceKeysPrivate.h:
3268         * WebView/WebPreferences.m:
3269         (+[WebPreferences standardPreferences]):
3270         (-[WebPreferences isDOMPasteAllowed]):
3271         (-[WebPreferences setDOMPasteAllowed:]):
3272         * WebView/WebPreferencesPrivate.h:
3273         * WebView/WebView.mm:
3274         (-[WebView _updateWebCoreSettingsFromPreferences:]):
3275
3276 2007-04-09  Anders Carlsson  <andersca@apple.com>
3277
3278         Reviewed by John.
3279
3280         <rdar://problem/5081860>
3281         REGRESSION: Select All for standalone image has no visible effect but does change state
3282         
3283         <rdar://problem/5081840>
3284         REGRESSION: context menu in white space beyond standalone image is different after Select All
3285         
3286         Have validateUserInterface emulate the old behavior for full-frame images and plugins, which is:
3287         
3288         - For full-frame plugins, always return false.
3289         - For images, only return true if the selector is copy: and the image has finished loading.
3290         
3291         * WebView/WebHTMLView.mm:
3292         (-[WebHTMLView validateUserInterfaceItem:]):
3293
3294 2007-04-09  Anders Carlsson  <andersca@apple.com>
3295
3296         Reviewed by Darin.
3297
3298         <rdar://problem/5026893>
3299         REGRESSION: "Mail Contents of this Page" for standalone image in Safari results in a broken image in Mail
3300         
3301         * WebView/WebFrame.mm:
3302         (-[WebFrame DOMDocument]):
3303         We can't check for _isHTMLDocument here since image and plugin documents inherit from HTMLDocument. Instead,
3304         check for those two document types explicitly.
3305         
3306 2007-04-09  Anders Carlsson  <andersca@apple.com>
3307
3308         Reviewed by Geoff, Ada and John.
3309
3310         <rdar://problem/4600978> Would like a way to test whether a WebView is displaying a standalone image
3311
3312         * WebView/WebFrame.mm:
3313         (-[WebFrame _isDisplayingStandaloneImage]):
3314         * WebView/WebFramePrivate.h:
3315         Add _isDisplayingStandaloneImage SPI.
3316
3317 2007-04-06  Timothy Hatcher  <timothy@apple.com>
3318
3319         Reviewed by Mark Rowe.
3320
3321         Adds a build phase script that ensures WebKit's version dosen't end in a 4.
3322         If our version ends in 4, some sites might think we are Netscape 4 in their
3323         user agent checks.
3324
3325         * Configurations/Version.xcconfig:
3326         * WebKit.xcodeproj/project.pbxproj:
3327
3328 2007-04-05  Anders Carlsson  <andersca@apple.com>
3329
3330         Reviewed by Adam.
3331
3332         <rdar://problem/5083023>
3333         REGRESSION: In Real Player (10.1.0), video continues to play after closing window
3334         
3335         This broke in revision 18422 because now the plugin isn't stopped when the window is closed. Since the window is retained
3336         by the plugin view for as long as it is running (so that removeTrackingRect works even though the window has been closed),
3337         we would end up with a reference cycle (NSWindow -> WebView -> PluginView -> NSWindow) and stopping the plug-in when the window
3338         was closed would break that cycle.
3339         
3340         Applications that call -[WebView close] when closing aren't affected, but RealPlayer doesn't do this.
3341         
3342         The bug that 18422 was supposed to fix was fixed by 19275, which is why it's safe to add back the check.
3343         
3344         * Plugins/WebBaseNetscapePluginView.mm:
3345         (-[WebBaseNetscapePluginView addWindowObservers]):
3346         (-[WebBaseNetscapePluginView removeWindowObservers]):
3347         (-[WebBaseNetscapePluginView windowWillClose:]):
3348
3349 2007-04-05  Kevin McCullough  <kmccullough@apple.com>
3350
3351         Reviewed by Darin.
3352
3353         - Moved registerURLSchemeAsLocal to the public API.
3354
3355         * WebView/WebView.h:
3356         * WebView/WebView.mm:
3357         (+[WebView registerURLSchemeAsLocal:]):
3358         * WebView/WebViewPrivate.h:
3359
3360 === Safari-5522.6 ===
3361
3362 2007-04-04  Anders Carlsson  <andersca@apple.com>
3363
3364         Reviewed by John.
3365
3366         <rdar://problem/5107536> 
3367         http://bugs.webkit.org/show_bug.cgi?id=13264
3368         REGRESSION: Crash when canceling about:blank in Activity viewer
3369         
3370         * WebView/WebFrame.mm:
3371         (-[WebFrame stopLoading]):
3372         Add a null check for the frame loader - it can be null when the frame has been disconnected
3373         from the web page.
3374
3375 2007-04-03  Anders Carlsson  <andersca@apple.com>
3376
3377         Reviewed by Darin.
3378
3379         <rdar://problem/5028178>
3380         Crash occurs at WebCore::FrameLoader::activeDocumentLoader() after loading Froggster widget
3381         
3382         * Plugins/WebNetscapePluginStream.mm:
3383         (-[WebNetscapePluginStream start]):
3384         If load returns no the plugin loader has already been removed by the didFail callback.
3385
3386 2007-04-02  Anders Carlsson  <andersca@apple.com>
3387
3388         Reviewed by Geoff.
3389
3390         Fix crash when running plugins/destroy-stream-twice.html under GuardMalloc
3391
3392         * Plugins/WebBaseNetscapePluginStream.h:
3393         * Plugins/WebBaseNetscapePluginStream.mm:
3394         (+[WebBaseNetscapePluginStream ownerForStream:]):
3395         (-[WebBaseNetscapePluginStream initWithRequestURL:plugin:notifyData:sendNotification:]):
3396         (-[WebBaseNetscapePluginStream dealloc]):
3397         (-[WebBaseNetscapePluginStream finalize]):
3398         Change the streams hash map to contain an NPStream*, and change ownerForStream to take an NPStream*.
3399         
3400         * Plugins/WebBaseNetscapePluginView.mm:
3401         (-[WebBaseNetscapePluginView destroyStream:reason:]):
3402         Check that the NPStream pointer is valid before accessing stream->ndata.
3403
3404 2007-04-02  Darin Adler  <darin@apple.com>
3405
3406         Reviewed by Geoff.
3407
3408         - fix http://bugs.webkit.org/show_bug.cgi?id=13026
3409           <rdar://problem/5061026> incomplete render of menu
3410           (assertion failing in -[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:])
3411
3412         - fix http://bugs.webkit.org/show_bug.cgi?id=13120
3413           <rdar://problem/5080339> Plug-ins that draw through the QuickDraw interface may crash
3414           by hanging onto old GWorlds.
3415
3416         - set clip path for CoreGraphics plug-ins in the same way we do for QuickDraw plug-ins
3417           this is a better fix for <rdar://problem/4939511> WebKit should set the the CG clip
3418           path for plug-ins that draw using Core Graphics
3419
3420         Incorporates changes from a patch by Mark Ambachtsheer.
3421
3422         Here are the changes:
3423
3424             1) Don't try to use the offscreen code path if GGBitmapContextGetData returns 0.
3425             2) Handle kCGBitmapByteOrderDefault when computing the QD pixel format, even though
3426                we don't have any evidence that this happens in practice.
3427             3) Keep the GWorld around until we create a new one or the plug-in is destroyed.
3428             4) Use the GWorld pointer itself as a flag to indicate whether we are using an
3429                offscreen GWorld.
3430             5) Set up clipping for CoreGraphics in the same way we do for QuickDraw; remove an
3431                earlier attempt that handled CoreGraphics differently.
3432
3433         * Plugins/WebBaseNetscapePluginView.h: Added a field named offscreenGWorld to hold
3434         the GWorld until it's needed.
3435         * Plugins/WebBaseNetscapePluginView.mm:
3436         (getQDPixelFormatForBitmapContext): Replaced QDPixelFormatFromCGBitmapInfo. Used the
3437         "get" prefix so we don't intrude on the QD namespace. Added code to handle the
3438         kCGBitmapByteOrderDefault case, although I'm not sure it will really come up in
3439         practice -- it wasn't really coming up in the buggy case.
3440         (getNPRect): Added helper functions. Used to make the code below clearer.
3441         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]): Use getNPRect to
3442         streamline code. Use GetGWorld to save the port since we use SetGWorld to restore
3443         it later. Store the GWorld we create in the offscreenGWorld field and dispose the
3444         existing one. Don't treat the CGBitmapContext as an offscreen bitmap if it
3445         has a data pointer of 0. Set up the clip based on the result of
3446         -[NSView getRectsBeingDrawn:count] when setting up the port for CoreGraphics
3447         (after saving the port state).
3448         (-[WebBaseNetscapePluginView restorePortState:]): Remove now-unneeded code to
3449         destroy the offscreen GWorld, and simplified the code that restores the port so we
3450         don't need a separate case for offscreen.
3451         (-[WebBaseNetscapePluginView fini]): Renamed from freeAttributeKeysAndValues, since
3452         this method now does more than just the attributes. This is the shared method that
3453         does things needed in both dealloc and finalize. Added a call to DisposeGWorld here.
3454         (-[WebBaseNetscapePluginView dealloc]): Updated for name change.
3455         (-[WebBaseNetscapePluginView finalize]): Ditto.
3456         (-[WebBaseNetscapePluginView drawRect:]): Removed code to set clip. This is done in
3457         the saveAndSetNewPortStateForUpdate: method instead.
3458
3459 2007-03-30  Adele Peterson  <adele@apple.com>
3460
3461         Reviewed by Darin.
3462
3463         Call execCommand for deleteWordForward and deleteWordBackward instead of calling
3464         deleteWithDirection directly.
3465
3466         * WebView/WebHTMLView.mm:
3467         (-[WebHTMLView deleteWordForward:]):
3468         (-[WebHTMLView deleteWordBackward:]):
3469
3470 2007-03-30  Anders Carlsson  <andersca@apple.com>
3471
3472         Reviewed by Geoff.
3473
3474         * Plugins/WebNetscapePluginPackage.m:
3475         (-[WebNetscapePluginPackage load]):
3476         Initialize pushpopupsenabledstate, poppopupsenabledstate and enumerate.
3477         
3478         * Plugins/npapi.m:
3479         (NPN_PushPopupsEnabledState):
3480         (NPN_PopPopupsEnabledState):
3481         Add stubs for these functions.
3482         
3483         * Plugins/npfunctions.h:
3484         Add new methods to NPNetscapeFuncs.
3485
3486 2007-03-29  Geoffrey Garen  <ggaren@apple.com>
3487
3488         Reviewed by Beth Dakin, reviewed by Maciej Stachowiak.
3489         
3490         Layout test for <rdar://problem/5091330> REGRESSION: Repro crash in 
3491         -[WebBaseNetscapePluginView(WebNPPCallbacks) destroyStream:reason:] 
3492         navigating away from page with DivX movie plug-in (13203)
3493         
3494         Changed LOG_ERROR to LOG so the layout test doesn't produce console spew
3495         every time you run it.
3496
3497         * Plugins/WebBaseNetscapePluginView.mm:
3498         (-[WebBaseNetscapePluginView destroyStream:reason:]):
3499
3500 2007-03-29  Beth Dakin  <bdakin@apple.com>
3501
3502         Reviewed by Brady.
3503
3504         Fix for <rdar://problem/4674537> REGRESSION: Adobe Acrobat 8 - Text 
3505         blinks when mouse is moved, and is invisible otherwise
3506
3507         -and-
3508
3509         <rdar://problem/4992521> Please adjust WebKit's Acrobat-workaround 
3510         methodology
3511
3512         The fix for the first bug is to compare against the bundle 
3513         identifiers for Adobe Reader and the non-Pro Adobe Acrobat in 
3514         addition to Adobe Acrobat Pro. The fix for the second bug is to 
3515         check the version number of Acrobat/Reader through 
3516         WebKitSystemInterface instead of checking which version of WebKit 
3517         it has been linked against.
3518
3519         * English.lproj/StringsNotToBeLocalized.txt: Two new bundle 
3520         identifiers.
3521         * Misc/WebKitVersionChecks.h: Remove Acrobat quirk constant.
3522         * WebView/WebView.mm:
3523         (-[WebView _updateWebCoreSettingsFromPreferences:]):
3524
3525 2007-03-29  Geoffrey Garen  <ggaren@apple.com>
3526
3527         Rubber stamped by Beth Dakin.
3528         
3529         WebBaseNetscapePluginStream.m => WebBaseNetscapePluginStream.mm, since
3530         it's ObjC++ now.
3531
3532         * Plugins/WebBaseNetscapePluginStream.m: Removed.
3533         * WebKit.xcodeproj/project.pbxproj:
3534
3535 2007-03-27  Geoffrey Garen  <ggaren@apple.com>
3536
3537         Reluctantly tolerated by Darin Adler.
3538         
3539         Fixed <rdar://problem/5091330> REGRESSION: Repro crash in 
3540         -[WebBaseNetscapePluginView(WebNPPCallbacks) destroyStream:reason:] 
3541         navigating away from page with DivX movie plug-in (13203)
3542         
3543         The problem was that the DivX plug-in would ask us to destroy an NPStream
3544         that had already been destroyed, causing us to wander off into freed
3545         memory. (I believe the reason this was a regression was that we never used 
3546         to destroy plug-in streams, period.)
3547         
3548         The solution here is to track the NPStreams belonging to a plug-in, and 
3549         guard against plug-ins making calls with NPStreams that don't belong to 
3550         them. (It turns out that NPN_DestroyStream is the only stream-based 
3551         plug-in call we support.)
3552
3553         (CarbonPathFromPOSIXPath): Fixed up a cast to be C++ compatible.
3554         * Plugins/WebBaseNetscapePluginView.mm:
3555         (-[WebBaseNetscapePluginView destroyStream:reason:]): The actual fix.
3556         Use helper method to guard against a plug-in using an NPStream that doesn't
3557         belong to it.
3558         * WebKit.xcodeproj/project.pbxproj: Made WebBaseNetscapePluginView ObjC++
3559         so I could use HashMap.
3560
3561 2007-03-28  Adele Peterson  <adele@apple.com>
3562
3563         Reviewed by Brady.
3564
3565         Update to last fix.
3566
3567         * Misc/WebKitVersionChecks.h: Added WEBKIT_FIRST_VERSION_WITHOUT_VITALSOURCE_QUIRK.
3568         * WebView/WebView.mm: (-[WebView stringByEvaluatingJavaScriptFromString:]):
3569         Added check to only use the VitalSource workaround if the app is not linked on or after
3570         the defined WEBKIT_FIRST_VERSION_WITHOUT_VITALSOURCE_QUIRK version number.
3571
3572 2007-03-28  Adele Peterson  <adele@apple.com>
3573
3574         Reviewed by Kevin M.
3575
3576         WebKit part of fix for <rdar://problem/5095515> VitalSource Bookshelf should not pass return statements into stringByEvaluatingJavaScriptFromString
3577
3578         Added an app specific workaround for VitalSource Bookshelf that strips "return" from the beginning of their script strings.  We used to allow this
3579         but now we throw a JavaScript exception for return statements that aren't in functions.
3580
3581         Filed this evangelism bug so we can notify VitalSource of the problem:
3582         <rdar://problem/5095515> VitalSource Bookshelf should not pass return statements into stringByEvaluatingJavaScriptFromString
3583
3584         * WebView/WebView.mm: (-[WebView stringByEvaluatingJavaScriptFromString:]):
3585
3586 2007-03-27  John Sullivan  <sullivan@apple.com>
3587
3588         Reviewed by Tim
3589         
3590         - fixed <rdar://problem/5092556> Default UA spoofing is always off until explicitly toggled
3591
3592         * WebView/WebView.mm:
3593         (-[WebView _commonInitializationWithFrameName:groupName:]):
3594         initialize the cached value of _private->useSiteSpecificSpoofing here; formerly it would not
3595         be initialized correctly in the common case of WebViews that use [WebPreferences standardPreferences]
3596
3597 2007-03-27  Mark Rowe  <mrowe@apple.com>
3598
3599         Reviewed by Dave Harrison.
3600
3601         * Configurations/WebKit.xcconfig: Include UMBRELLA_FRAMEWORKS_DIR in framework search path.
3602
3603 2007-03-26  Antti Koivisto  <antti@apple.com>
3604
3605         Reviewed by Darin.
3606         
3607         On Mac, support fine grained wheel events generated by trackpad and Mighty Mouse.
3608         http://bugs.webkit.org/show_bug.cgi?id=13134
3609         <rdar://problem/5076249>
3610
3611         * WebCoreSupport/WebSystemInterface.m:
3612         (InitWebCoreSystemInterface): Expose GetWheelEventDeltas()
3613
3614 2007-03-26  John Sullivan  <sullivan@apple.com>
3615
3616         Reviewed by Dave Harrison
3617         
3618         - fixed <rdar://problem/4769772> Problem with Find on certain PDF page
3619
3620         * WebView/WebPDFView.mm:
3621         (-[WebPDFView _scaledAttributedString:]):
3622         We were hitting an exception trying to set the font attribute to nil, which was happening because
3623         the result of -[PDFSelection attributedString] had no attributes. That PDFSelection bug is now
3624         filed separately, but this works around the exception.
3625
3626 2007-03-24  David Hyatt  <hyatt@apple.com>
3627
3628         Amend the statistics reporting for the WebCore cache to include XSL and to report live/decoded sizes.
3629
3630         * Misc/WebCache.mm:
3631         (+[WebCache statistics]):
3632
3633 2007-03-24  Brady Eidson  <beidson@apple.com>
3634
3635         Reviewed by Adam
3636
3637         RetainPtr is no longer in the WebCore namespace
3638
3639         * History/WebBackForwardList.mm:
3640         * WebCoreSupport/WebEditorClient.h:
3641         * WebCoreSupport/WebFrameLoaderClient.h:
3642         * WebView/WebDocumentLoaderMac.h:
3643
3644 2007-03-24  Brady Eidson  <beidson@apple.com>
3645
3646         Reviewed by Adam
3647
3648         <rdar://problem/5086210> - Move RetainPtr to WTF
3649         
3650         * ForwardingHeaders/wtf/RetainPtr.h: Added.
3651         * History/WebBackForwardList.mm: Changed #import to <wtf/RetainPtr.h>
3652         * WebCoreSupport/WebEditorClient.h: Ditto
3653         * WebCoreSupport/WebFrameLoaderClient.h: Ditto
3654         * WebView/WebDocumentLoaderMac.h: Ditto
3655
3656 2007-03-24  John Sullivan  <sullivan@apple.com>
3657
3658         Reviewed by Adele
3659
3660         - fixed <rdar://problem/5084872> Need to add flickr to spoof list in WebKit
3661         - only do site-specific spoofing if a preference is set
3662
3663         * WebView/WebPreferenceKeysPrivate.h:
3664         added WebKitUseSiteSpecificSpoofingPreferenceKey 
3665         
3666         * WebView/WebPreferences.m:
3667         (+[WebPreferences initialize]):
3668         initialize WebKitUseSiteSpecificSpoofingPreferenceKey to false
3669         (-[WebPreferences _useSiteSpecificSpoofing]):
3670         get value of WebKitUseSiteSpecificSpoofingPreferenceKey
3671         (-[WebPreferences _setUseSiteSpecificSpoofing:]):
3672         set value of WebKitUseSiteSpecificSpoofingPreferenceKey
3673         
3674         * WebView/WebPreferencesPrivate.h:
3675         declare _useSiteSpecificSpoofing and _setUseSiteSpecificSpoofing
3676         
3677         * WebView/WebView.mm:
3678         cache the value of WebKitUseSiteSpecificSpoofingPreferenceKey in a bool in _private
3679         (-[WebView _preferencesChangedNotification:]):
3680         update the cached value
3681         (-[WebView setPreferences:]):
3682         ditto
3683         (-[WebView WebCore::_userAgentForURL:WebCore::]):
3684         Only spoof here if the new site-specific spoofing preference is enabled. If it is, pass
3685         Safari 2.0.4's user agent string for flickr.com. We can remove this case when 5081617 is addressed.
3686
3687 2007-03-24  Mark Rowe  <mrowe@apple.com>
3688
3689         Rubber-stamped by Darin.
3690
3691         * Configurations/WebKit.xcconfig: Remove unnecessary INFOPLIST_PREPROCESS.
3692
3693 2007-03-23  Mark Rowe  <mrowe@apple.com>
3694
3695         Build fix for when BUILDING_ON_TIGER is not defined.
3696
3697         * Misc/WebTypesInternal.h:
3698         * WebView/WebHTMLView.mm:
3699
3700 2007-03-22  David Kilzer  <ddkilzer@apple.com>
3701
3702         Reviewed by Darin.
3703
3704         Use BUILDING_ON_TIGER from WebKitPrefix.h instead of local
3705         MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4 tests.
3706
3707         * Misc/WebTypesInternal.h:
3708         * WebView/WebHTMLView.mm:
3709
3710 2007-03-22  Darin Adler  <darin@apple.com>
3711
3712         Reviewed by Adele.
3713
3714         - fix <rdar://problem/5074630> detachChildren call should move from WebKit to WebCore
3715
3716         * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::prepareForDataSourceReplacement):
3717         Remove call to detachChildren. This should be a WebCore responsibility.
3718
3719 2007-03-19  Anders Carlsson  <acarlsson@apple.com>
3720
3721         Reviewed by Dave Hyatt.
3722
3723         <rdar://problem/5067983>
3724         iSale: Crash occurs at WebFrameLoaderClient::dispatchDecidePolicyForMIMEType() when attempting to load a HTML template
3725         
3726         Restore old behavior (broke in r14533) where the resource load and download delegates are retained for as long as the 
3727         data source is loading.
3728         
3729         * WebCoreSupport/WebFrameLoaderClient.mm:
3730         (WebFrameLoaderClient::createDocumentLoader):
3731         * WebView/WebDocumentLoaderMac.h:
3732         * WebView/WebDocumentLoaderMac.mm:
3733         (WebDocumentLoaderMac::setDataSource):
3734         (WebDocumentLoaderMac::decreaseLoadCount):
3735
3736 2007-03-19  Geoffrey Garen  <ggaren@apple.com>
3737
3738         Speculative fix for why ASSERT_MAIN_THREAD didn't work for me. (The
3739         documentation says "non-zero," not "1."
3740
3741         * Misc/WebKitLogging.m:
3742         (WebKitRunningOnMainThread):
3743
3744 2007-03-19  Andrew Wellington  <proton@wiretapped.net>
3745
3746         Reviewed by Maciej.
3747
3748         Really set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)
3749
3750         * WebKit.xcodeproj/project.pbxproj:
3751
3752 2007-03-19  Darin Adler  <darin@apple.com>
3753
3754         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
3755
3756 2007-03-19  John Sullivan  <sullivan@apple.com>
3757
3758         Reviewed by Justin
3759         
3760         - fixed <rdar://problem/5071238> REGRESSION: opt-cmd-B to show Bookmarks view does 
3761         nothing when form field has focus
3762
3763         * WebView/WebHTMLView.mm:
3764         (-[WebHTMLView _handleStyleKeyEquivalent:]):
3765         we were counting any set of modifiers plus 'b' as the standard key equivalent for
3766         toggling Bold; now we only accept command+'b'
3767
3768 2007-03-19  Adam Roben  <aroben@apple.com>
3769
3770         Reviewed by Hyatt and Maciej.
3771
3772         Updated WebCoreStatistics for the conversion of WebCoreJavaScript to
3773         C++.
3774
3775         * Misc/WebCoreStatistics.mm:
3776         (+[WebCoreStatistics javaScriptObjectsCount]):
3777         (+[WebCoreStatistics javaScriptInterpretersCount]):
3778         (+[WebCoreStatistics javaScriptProtectedObjectsCount]):
3779         (+[WebCoreStatistics javaScriptRootObjectTypeCounts]): Moved
3780         conversion to NSCountedSet here from WebCore.
3781         (+[WebCoreStatistics garbageCollectJavaScriptObjects]):
3782         (+[WebCoreStatistics garbageCollectJavaScriptObjectsOnAlternateThread:]):
3783         (+[WebCoreStatistics shouldPrintExceptions]):
3784         (+[WebCoreStatistics setShouldPrintExceptions:]):
3785         (+[WebCoreStatistics javaScriptReferencedObjectsCount]):
3786         (+[WebCoreStatistics javaScriptRootObjectClasses]):
3787
3788 2007-03-18  Andrew Wellington  <proton@wiretapped.net>
3789
3790         Reviewed by Mark Rowe
3791         
3792         Set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)
3793
3794         * WebKit.xcodeproj/project.pbxproj:
3795
3796 2007-03-19  Mark Rowe  <mrowe@apple.com>
3797
3798         Rubber-stamped by Brady.
3799
3800         Update references to bugzilla.opendarwin.org with bugs.webkit.org.
3801
3802         * WebInspector/webInspector/inspector.css:
3803         * WebView/WebHTMLView.mm:
3804         (-[WebHTMLView firstRectForCharacterRange:]):
3805         * WebView/WebView.mm:
3806         (-[WebView initWithFrame:frameName:groupName:]):
3807
3808 2007-03-18  David Hyatt  <hyatt@apple.com>
3809
3810         Move frame borders out of WebKit and into WebCore.
3811
3812         Reviewed by aroben, olliej
3813
3814         * WebCoreSupport/WebFrameBridge.mm:
3815         * WebKit.xcodeproj/project.pbxproj:
3816         * WebView/WebFrameView.mm:
3817         (-[WebFrameView drawRect:]):
3818         (-[WebFrameView setFrameSize:]):
3819         * WebView/WebFrameViewInternal.h:
3820
3821 2007-03-17  John Sullivan  <sullivan@apple.com>
3822
3823         Reviewed by Tim Hatcher
3824         
3825         Discovered while working on <rdar://problem/5070334> that many WebView calls will crash if called
3826         after -[WebView close] has executed because _private->page is deferenced after it's been set to 0. 
3827         It might be silly/wrong to call these methods after -close, but obviously it shouldn't crash. Made
3828         each use of _private->page robust against nil-dereferencing.
3829
3830         * WebView/WebView.mm:
3831         (-[WebView _loadBackForwardListFromOtherView:]):
3832         (-[WebView _updateWebCoreSettingsFromPreferences:]):
3833         (-[WebView _setDashboardBehavior:to:]):
3834         (-[WebView _dashboardBehavior:]):
3835         (-[WebView goBack]):
3836         (-[WebView goForward]):
3837         (-[WebView goToBackForwardItem:]):
3838         (-[WebView canGoBack]):
3839         (-[WebView canGoForward]):
3840         (-[WebView setTabKeyCyclesThroughElements:]):
3841         (-[WebView tabKeyCyclesThroughElements]):
3842         (-[WebView setEditable:]):
3843
3844 2007-03-17  Timothy Hatcher  <timothy@apple.com>
3845
3846         Reviewed by Mark Rowe.
3847
3848         Made Version.xcconfig smarter when building for different configurations.
3849         Now uses the 522+ OpenSource version for Debug and Release, while using the
3850         full 522.4 version for Production builds. The system prefix is also computed
3851         based on the current system, so 4522.4 on Tiger and 5522.4 on Leopard.
3852
3853         * Configurations/Version.xcconfig:
3854         * Configurations/WebKit.xcconfig:
3855
3856 2007-03-16  Oliver Hunt  <oliver@apple.com>
3857
3858         Reviewed by Hyatt.
3859
3860         The old canSaveAsWebArchive call was necessary as stand alone
3861         images used to be rendered by ImageDocument.
3862
3863         Fixes rdar://problem/5061252
3864
3865         * WebCoreSupport/WebDragClient.h:
3866         * WebCoreSupport/WebDragClient.mm:
3867         (WebDragClient::declareAndWriteDragImage):
3868         * WebKit.xcodeproj/project.pbxproj:
3869
3870 2007-03-15  Brady Eidson  <beidson@apple.com>
3871
3872         Reviewed by Maciej
3873
3874         <rdar://problem/4429701>
3875         Implements a port blocking black list that matches Firefox's
3876
3877         * English.lproj/Localizable.strings: Added localizable string for port blocked error code
3878
3879         * Misc/WebKitErrors.h:
3880         * Misc/WebKitErrors.m:
3881         (registerErrors): Add new port blocked error code to WebKitErrorDomain
3882
3883         * WebCoreSupport/WebFrameLoaderClient.h:
3884         * WebCoreSupport/WebFrameLoaderClient.mm:
3885         (WebFrameLoaderClient::cancelledError): Fixed coding style
3886         (WebFrameLoaderClient::blockedError): Return a ResourceError with the new custom error code
3887
3888 2007-03-15  Timothy Hatcher  <timothy@apple.com>
3889
3890         Reviewed by John.
3891
3892         * Fixes: <rdar://problem/4927747> WebKit's Current Library Version number should match the Info.plist Version
3893         * Factored out most of our common build settings into .xcconfig files. Anything that was common in
3894           each build configuration was factored out into the shared .xcconfig file.
3895         * Adds a Version.xcconfig file to define the current framework version, to be used in other places.
3896         * Use the new $(BUNDLE_VERSION) (defined in Version.xcconfig) in the preprocessed Info.plist.
3897         * Use the versions defined in Version.xcconfig to set $(DYLIB_CURRENT_VERSION).
3898         * Make WebKit use the same warning flags as the other projects. This required two casts to be added to fix new warnings.
3899
3900         * Configurations/Base.xcconfig: Added.
3901         * Configurations/DebugRelease.xcconfig: Added.
3902         * Configurations/Version.xcconfig: Added.
3903         * Configurations/WebKit.xcconfig: Added.
3904         * Info.plist:
3905         * Misc/WebKitVersionChecks.h:
3906         * Plugins/WebBaseNetscapePluginStream.m:
3907         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]):
3908         * WebKit.xcodeproj/project.pbxproj:
3909
3910 2007-03-15  Kevin Decker  <kdecker@apple.com>
3911
3912         Reviewed by Anders.
3913
3914         Fixed: <rdar://problem/5001428> stationery background images do not display
3915        
3916         Change 19244 fixed the method -[WebResource _shouldIgnoreWhenUnarchiving], but also broke Mail stationery.
3917         
3918         The problem was that with archivedResourceForURL now fixed, the engine will try to decode the images.  These images wouldn't decode because
3919         Mail re-encodes and directly manipulates the image data in such a way that prevented WebKit from decoding the image.  Because Mail was giving
3920         us bad data, the images wouldn't render.  This was never an issue before because archivedResourceForURL (broken) always returned nil, thus the
3921         engine would never attempt to decode the resource, therefore the responsibility was delegated to Mail's protocol handler, which would do the 
3922         right thing and load the image.
3923         
3924         Since Mail is relying on the fact it can store arbitrary data in WebArchives, I've introduced SPI that acts as a hint for us to ignore certain 
3925         subresources while unarchiving. This SPI is -[WebResource _shouldIgnoreWhenUnarchiving].
3926         
3927         * WebView/WebResource.mm: Addd private ivar shouldIgnoreWhenUnarchiving.
3928         (-[WebResource _ignoreWhenUnarchiving]): Added.
3929         (-[WebResource _shouldIgnoreWhenUnarchiving]): Added.
3930         * WebView/WebResourcePrivate.h: Added two methods to private header.
3931         * WebView/WebUnarchivingState.m:
3932         (-[WebUnarchivingState archivedResourceForURL:]): Check if we should ignore the resource.
3933
3934 2007-03-15  Mark Rowe  <mrowe@apple.com>
3935
3936         Reviewed by Antti.
3937
3938         Fix for <rdar://problem/5065060> ASSERTION FAILURE: newUsername && newPassword
3939         when submitting an authentication form without password.
3940
3941         * WebCoreSupport/WebFrameLoaderClient.mm:
3942         (WebFrameLoaderClient::dispatchWillSubmitForm): Don't omit form fields with empty values from the dictionary
3943         passed to the delegate.
3944
3945 2007-03-14  Anders Carlsson  <acarlsson@apple.com>
3946
3947         Reviewed by Dave Hyatt.
3948
3949         Don't add the data twice, it's also done by didReceiveData.
3950         
3951         * WebCoreSupport/WebFrameLoaderClient.mm:
3952         (WebFrameLoaderClient::deliverArchivedResources):
3953
3954 2007-03-14  Anders Carlsson  <acarlsson@apple.com>
3955
3956         Fix segmentation fault when running layout tests.
3957
3958         Remove bogus check that that I added on purpose to see how good Geoff is at spotting mistakes when reviewing code.
3959         (Turns out he's not that good!)
3960         
3961         * WebView/WebDocumentLoaderMac.mm:
3962         (WebDocumentLoaderMac::increaseLoadCount):
3963
3964 2007-03-14  Anders Carlsson  <acarlsson@apple.com>
3965
3966         Reviewed by Geoff.
3967
3968         http://bugs.webkit.org/show_bug.cgi?id=13076
3969         REGRESSION: Multiple loading tabs cause assertion in WebDocumentLoaderMac::decreaseLoadCount(unsigned long)
3970
3971         Store the identifier set in the document loader since identifiers are per-webview and not global.
3972         
3973         * WebView/WebDocumentLoaderMac.h:
3974         * WebView/WebDocumentLoaderMac.mm:
3975         (WebDocumentLoaderMac::WebDocumentLoaderMac):
3976         (WebDocumentLoaderMac::attachToFrame):
3977         (WebDocumentLoaderMac::increaseLoadCount):
3978         (WebDocumentLoaderMac::decreaseLoadCount):
3979
3980 2007-03-14  David Harrison  <harrison@apple.com>
3981
3982         Reviewed by Maciej.
3983
3984         <rdar://problem/5009625> REGRESSION: Aperture 1.5: Can't select entire line of text after correcting a misspelled word
3985
3986         * WebCoreSupport/WebEditorClient.mm:
3987         (WebEditorClient::respondToChangedSelection):
3988         * WebCoreSupport/WebFrameBridge.mm:
3989         Provide compatibility by not sending WebViewDidChangeSelectionNotification if
3990         the app is Aperture and is linked against WebKit 2.0.
3991
3992 === Safari-5522.4 ===
3993
3994 2007-03-14  Anders Carlsson  <acarlsson@apple.com>
3995
3996         Reviewed by Geoff.
3997
3998         <rdar://problem/5058714>
3999         http://bugs.webkit.org/show_bug.cgi?id=13050
4000         
4001         World leaks seen on Leopard after opening then closing tab (13050)
4002
4003         Add a hash set to prevent the load count to be increased twice for the same resource.
4004         
4005         * WebCoreSupport/WebFrameLoaderClient.mm:
4006         (WebFrameLoaderClient::dispatchWillSendRequest):
4007         (WebFrameLoaderClient::dispatchDidFinishLoading):
4008         (WebFrameLoaderClient::dispatchDidFailLoading):
4009         * WebView/WebDocumentLoaderMac.h:
4010         * WebView/WebDocumentLoaderMac.mm:
4011         (loadingResources):
4012         (WebDocumentLoaderMac::increaseLoadCount):
4013         (WebDocumentLoaderMac::decreaseLoadCount):
4014
4015 2007-03-14 Adele Peterson  <adele@apple.com>
4016
4017         Reviewed by Darin.
4018
4019         Removed _insertTextWithEvent, _insertNewlineWithEvent, and _insertTextWithEvent.
4020         Instead, use execCommand and insertText methods on the Editor.
4021
4022         * WebView/WebHTMLView.mm:
4023         (-[WebHTMLView insertTab:]):
4024         (-[WebHTMLView insertBacktab:]):
4025         (-[WebHTMLView insertNewline:]):
4026         (-[WebHTMLView insertLineBreak:]):
4027         (-[WebHTMLView insertParagraphSeparator:]):
4028         (-[WebHTMLView insertNewlineIgnoringFieldEditor:]):
4029         (-[WebHTMLView insertTabIgnoringFieldEditor:]):
4030         (-[WebHTMLView yank:]):
4031         (-[WebHTMLView yankAndSelect:]):
4032         (-[WebHTMLView doCommandBySelector:]):
4033         (-[WebHTMLView insertText:]):
4034
4035 2007-03-14  David Hyatt  <hyatt@apple.com>
4036
4037         Fixes to ensure that the resource loader's shared buffer can always be used.
4038
4039         Reviewed by olliej, mjs
4040
4041         * Misc/WebIconDatabase.mm:
4042         (-[WebIconDatabase _convertToWebCoreFormat]):
4043         * WebCoreSupport/WebFrameLoaderClient.mm:
4044         (WebFrameLoaderClient::deliverArchivedResources):
4045
4046 2007-03-13  Oliver Hunt  <oliver@apple.com>
4047
4048         Reviewed by Brady.
4049
4050         Modify subresourceForURL to take NSString argument 
4051         so we can avoid [NSURL absoluteString]
4052
4053         * WebView/WebDataSource.mm:
4054         (-[WebDataSource subresourceForURL:]):
4055
4056 2007-03-13  Brady Eidson  <beidson@apple.com>
4057
4058         Rubberstamped by Alice
4059
4060         Meant to be part of my previous checkin... pruning unused code from WebKit
4061
4062         * WebView/WebFrame.mm: Removed _canCachePage
4063         * WebView/WebFrameInternal.h: Ditto
4064
4065 2007-03-13  Beth Dakin  <bdakin@apple.com>
4066
4067         Reviewed by Maciej.
4068
4069         Fix for <rdar://problem/4277074> 8F32: Help Viewer crashed on 
4070         clicking link - KHTMLView::viewportMouseReleaseEvent (12647)
4071
4072         Re-set the DocumentLoader's frame when loading it from the page 
4073         cache before setting the document view.
4074
4075         * WebCoreSupport/WebFrameLoaderClient.mm:
4076         (WebFrameLoaderClient::setDocumentViewFromPageCache):
4077
4078 2007-03-13  Timothy Hatcher  <timothy@apple.com>
4079
4080         Reviewed by Geoff.
4081
4082         <rdar://problem/5057117> Spoof user agent on Yahoo.com with Safari and WebKit as version 4xx
4083
4084         * Plugins/WebBaseNetscapePluginView.mm:
4085         (-[WebBaseNetscapePluginView userAgent]): Stop using the deprecated lossyCString method.
4086         * WebCoreSupport/WebFrameBridge.mm: Removed dead code, userAgentForURL: wasn't used.
4087         * WebCoreSupport/WebFrameLoaderClient.mm:
4088         (WebFrameLoaderClient::userAgent): Call WebView's _userAgentForURL:.
4089         * WebView/WebView.mm:
4090         (-[WebView _cachedResponseForURL:]): Call userAgentForURL: instead of _userAgent.
4091         (-[WebView userAgentForURL:]): Call _userAgentForURL:.
4092         (-[WebView _userAgentWithApplicationName:andWebKitVersion:]): New method to construct a UA.
4093         (-[WebView _computeUserAgent]): Ractored out into _userAgentWithApplicationName:andWebKitVersion:
4094         (-[WebView _userAgentForURL:]): Tail compare for Yahoo.com, and return a UA with an older WebKit version.
4095         * WebView/WebViewInternal.h: Declare _userAgentForURL:.
4096
4097 2007-03-12  David Harrison  <harrison@apple.com>
4098
4099         Reviewed by Darin.
4100
4101         <rdar://problem/4743256> ctrl-y key binding (yank) should do nothing when kill ring is empty
4102
4103         Test updated:
4104         * editing/pasteboard/emacs-cntl-y-001.html:
4105         
4106         * WebView/WebHTMLView.mm:
4107         (-[WebHTMLView yank:]):
4108         (-[WebHTMLView yankAndSelect:]):
4109         Do nothing if the killring is empty.
4110
4111 2007-03-12  Darin Adler  <darin@apple.com>
4112
4113         Reviewed by Tim Hatcher.
4114
4115         - update for the new naming scheme for the Objective-C wrapper-creation
4116           functions: _wrapElement: instead of _elementWith:, etc.
4117
4118         * WebCoreSupport/WebEditorClient.mm:
4119         (WebEditorClient::textFieldDidBeginEditing):
4120         (WebEditorClient::textFieldDidEndEditing):
4121         (WebEditorClient::textDidChangeInTextField):
4122         (WebEditorClient::doTextFieldCommandFromEvent):
4123         (WebEditorClient::textWillBeDeletedInTextField):
4124         (WebEditorClient::textDidChangeInTextArea):
4125         * WebCoreSupport/WebFrameLoaderClient.mm:
4126         (WebFrameLoaderClient::createPlugin):
4127         (WebFrameLoaderClient::createJavaAppletWidget):
4128         * WebView/WebFrame.mm: (kit):
4129         Use the _wrapElement-style functions.
4130
4131 2007-03-12  Anders Carlsson  <acarlsson@apple.com>
4132
4133         Reviewed by Maciej.
4134
4135         <rdar://problem/5057575> 
4136         REGRESSION: Repro Crash in FrameLoader::frame loading about:blank in PLT
4137         
4138         Always get the web view from the current web frame, since the document loader's frame can have been zeroed out
4139         (for example when detaching the document loader).
4140         
4141         * WebCoreSupport/WebFrameLoaderClient.mm:
4142         (WebFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
4143         (WebFrameLoaderClient::assignIdentifierToInitialRequest):
4144         (WebFrameLoaderClient::dispatchWillSendRequest):
4145         (WebFrameLoaderClient::dispatchDidReceiveResponse):
4146         (WebFrameLoaderClient::dispatchDidReceiveContentLength):
4147         (WebFrameLoaderClient::dispatchDidFinishLoading):
4148
4149 2007-03-11  Oliver Hunt  <oliver@apple.com>
4150
4151         Reviewed by Adele.
4152         
4153         Moved respondToChangedSelection from FrameBridge to EditorClient
4154         
4155         * WebCoreSupport/WebEditorClient.h:
4156         * WebCoreSupport/WebEditorClient.mm:
4157         (WebEditorClient::respondToChangedSelection):
4158         * WebCoreSupport/WebFrameBridge.mm:
4159           Removed respondToChangedSelection from bridge
4160
4161 2007-03-11  Darin Adler  <darin@apple.com>
4162
4163         Reviewed by Adele.
4164
4165         - fix http://bugs.webkit.org/show_bug.cgi?id=12964
4166           <rdar://problem/5045717> REGRESSION: crash in -[WebBaseNetscapePluginStream _deliverData]
4167           at simpsonsmovie.com (12964)
4168
4169         * Plugins/WebBaseNetscapePluginStream.m:
4170         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]):
4171         At every place we call the plug-in, since it could destroy the stream, get pluginView into a local