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