Roll over ChangeLogs for JavaScriptCore, LayoutTests, WebCore and WebKit.
[WebKit-https.git] / WebKit / ChangeLog-2007-10-14
1 === Start merge of feature-branch 2007-10-12 ===
2
3 2007-10-03  Andrew Wellington  <proton@wiretapped.net>
4
5         Reviewed by Mark Rowe.
6         
7         Mac build fix for issue introduced in r26027
8
9         * WebCoreSupport/WebSystemInterface.m:
10         (InitWebCoreSystemInterface):
11
12 2007-10-01  Eric Seidel  <eric@webkit.org>
13
14         Reviewed by Oliver Hunt.
15         
16         SVG Subresources will not be saved when creating WebArchives
17         http://bugs.webkit.org/show_bug.cgi?id=15280
18         
19         Implement _subresourceURLs methods for more SVGElement types
20         more such methods will be needed as we add support for other
21         external references (such as use, mpath, tref, etc.)
22
23         * DOM/WebDOMOperations.mm:
24         (-[DOMSVGScriptElement _subresourceURLs]): added.
25         (-[DOMSVGCursorElement _subresourceURLs]): added.
26         (-[DOMSVGFEImageElement _subresourceURLs]): added.
27
28 2007-10-01  Eric Seidel  <eric@webkit.org>
29
30         Reviewed by Oliver Hunt.
31         
32         WebArchives do not embed stylesheets referenced by xml-stylesheeet
33         http://bugs.webkit.org/show_bug.cgi?id=15320
34
35         * DOM/WebDOMOperations.mm:
36         (-[DOMProcessingInstruction _stylesheetURL]): needed to access [[self sheet] href]
37         (-[DOMProcessingInstruction _subresourceURLs]): call and return _stylesheetURL
38
39 2007-10-01  Eric Seidel  <eric@webkit.org>
40
41         Reviewed by Oliver Hunt.
42
43         * DOM/WebDOMOperations.mm: added DOMSVGElementImage _subresources implementation
44         (-[DOMNode _URLsFromSelectors:]): now handles DOMSVGAnimatedString return values
45         (-[DOMSVGImageElement _subresourceURLs]): added.
46         * MigrateHeaders.make: copies DOMSVG* headers into WebKit/PrivateHeaders
47
48 2007-10-01  Oliver Hunt  <oliver@apple.com>
49
50         Reviewed by Mark.
51
52         Enable Experimental SVG features by default when building from Xcode
53
54         * Configurations/WebKit.xcconfig:
55
56 === End merge of feature-branch 2007-10-12 ===
57
58 2007-10-11  Mark Rowe  <mrowe@apple.com>
59
60         Reviewed by Tim Hatcher.
61
62         Fix for <rdar://problem/5488678>.  Disable debugging symbols in production builds for 10.4
63         PowerPC to prevent a huge STABS section from being generated.
64
65         * Configurations/Base.xcconfig:
66
67 2007-10-10  Alice Liu  <alice.liu@apple.com>
68
69         Reviewed by Geoff Garen.
70
71         Fixed <rdar://5464402> Crash when running fast/frames/onload-remove-iframe-crash.html in DRT
72         createFrame() now returns a RefPtr instead of a raw Frame pointer. 
73         Making this change improves the way we handle frames on Windows WebKit. 
74
75         * WebCoreSupport/WebFrameLoaderClient.h:
76         * WebCoreSupport/WebFrameLoaderClient.mm:
77         (WebFrameLoaderClient::createFrame):
78
79 2007-10-04  Beth Dakin  <bdakin@apple.com>
80
81         Reviewed by John Sullivan.
82
83         Fix for <rdar://problem/5441823> REGRESSION (r25142, Tiger only): 
84         Vertical scroll bar not redrawn properly when going back in history 
85         (15033)
86
87         This fix if-defs r25142 to be Leopard-only since it causes 
88         correctness issues on Tiger and does not seem to have any 
89         performance impact on Tiger either.
90
91         * WebView/WebDynamicScrollBarsView.m:
92         (-[WebDynamicScrollBarsView setScrollBarsSuppressed:repaintOnUnsuppress:]):
93         (-[WebDynamicScrollBarsView reflectScrolledClipView:]):
94
95 2007-10-04  Mark Rowe  <mrowe@apple.com>
96
97         Reviewed by Oliver.
98
99         Switch to default level of debugging symbols to resolve <rdar://problem/5488678>.
100         The "full" level appears to offer no observable benefits even though the documentation
101         suggests it be used for dead code stripping.  This should also decrease link times.
102
103         * Configurations/Base.xcconfig:
104
105 2007-10-04  Adele Peterson  <adele@apple.com>
106
107         Reviewed by Darin.
108
109         WebKit part of fix for <rdar://problem/5369017> REGRESSION: Can't tab to webview that doesn't have editable content
110
111         * WebView/WebHTMLView.mm: (-[WebHTMLView becomeFirstResponder]): Pass in the FocusDirection.
112
113 2007-10-04  Darin Adler  <darin@apple.com>
114
115         * WebView/WebHTMLView.mm: (-[WebHTMLView _updateActiveState]):
116         Removed a bogus comment.
117
118 2007-10-02  Kevin Decker  <kdecker@apple.com>
119
120         Reviewed by Mark Rowe.
121
122         Re-added _minimumRequiredSafariBuildNumber. It turns out older version of Safari still rely
123         on this method, so we need to keep it around at least until the next major Safari release.
124
125         * StringsNotToBeLocalized.txt:
126         * WebView/WebView.mm:
127         (+[WebView _minimumRequiredSafariBuildNumber]):
128         * WebView/WebViewPrivate.h:
129
130 2007-10-02  Kevin Decker  <kdecker@apple.com>
131
132         Reviewed by John Sullivan.
133
134         <rdar://problem/5517710> 
135
136         * WebView/WebView.mm: Removed -[WebView _minimumRequiredSafariBuildNumber] because newer
137          versions of Safari no longer use this method. This won't break existing Safaris because
138          they always use a respondsToSelector check before calling this.
139          
140         * WebView/WebViewPrivate.h: Ditto. 
141
142 2007-09-27  John Sullivan  <sullivan@apple.com>
143
144         Reviewed by Ollie
145         
146         - fixed <rdar://problem/5408186> REGRESSION (5522-5523.9): Safari leaks every browser window
147         
148         The leak started occurring when we removed the code to clear the delegates and the host window
149         from Safari as part of the fix for 5479443. But it turns out that Safari code was masking a
150         bug here in WebView: setHostWindow:nil needs to be called before setting _private->closed to
151         YES, or it will do nothing at all, causing a world leak due to a circular reference between
152         the window and the WebView.
153         
154         I toyed with a more complex fix, but this is the simplest one that retains the fix for 5479443
155         while otherwise restoring the code order to be as close as possible to what it was before
156         5479443 was fixed.
157
158         * WebView/WebView.mm:
159         (-[WebView _close]):
160         Moved the call that sets _private->closed to YES to be after the code that clears the delegates
161         and the host window. Added a comment about this order.
162
163 2007-09-27  Kevin Decker  <kdecker@apple.com>
164
165         Rubber stamped by Darin.
166
167         <rdar://problem/5493093>
168
169         * WebKit.order: Added.
170         * WebKit.xcodeproj/project.pbxproj:  We're changing from using an order file built by
171          another team to using one we actually check into our project repository. Linker settings for
172          Symbol Ordering Flags have been updated accordingly.
173
174 2007-09-26  Geoffrey Garen  <ggaren@apple.com>
175
176         Reviewed by Adele Peterson.
177         
178         Fixed <rdar://problem/5507476> Promote cache model SPI to API
179         
180         Promoted cache model SPI to API. This was just a move, with some small 
181         edits to the documentation (changing 'application' to 'WebView' in 
182         some cases, since the interface is now per-WebView).
183
184         * WebView/WebPreferences.h:
185         * WebView/WebPreferences.m:
186         (-[WebPreferences setCacheModel:]):
187         (-[WebPreferences cacheModel]):
188         * WebView/WebPreferencesPrivate.h:
189
190 2007-09-24  Timothy Hatcher  <timothy@apple.com>
191
192         Reviewed by Darin.
193
194         <rdar://problem/5498016> Photoshop CS3: Adobe Help Viewer 1.1 crashes in 9A553
195
196         WebKit started calling the mouseDidMoveOverElement delegate method with a nil dictionary in r14982.
197         We originally intended to call this delegate method sometimes with a nil dictionary, but due to
198         a bug dating back to WebKit 1.0 this delegate was never called with nil! Unfortunately we can't
199         start calling this with nil since it will break Adobe Help Viewer, and possibly other clients.
200
201         * WebView/WebView.mm:
202         (-[WebView _mouseDidMoveOverElement:modifierFlags:]):
203
204 2007-09-21  Kevin Decker  <kdecker@apple.com>
205
206         * Plugins/WebBaseNetscapePluginView.mm: Build fix. 
207         The first argument of aglChoosePixelFormat() has changed from const AGLDevice *gdevs on Tiger to
208         const void *gdevs on Leopard.
209
210 2007-09-20  Kevin Decker  <kdecker@apple.com>
211
212         Reviewed by Darin Adler.
213
214         <rdar://problem/5493093>
215
216         Reduced launch time by lazily linking both the AGL and OpenGL frameworks until they are really needed.
217
218         * Plugins/WebBaseNetscapePluginView.mm: Soft link all AGL and OpenGL functions used by
219         WebBaseNetscapePluginView.
220
221         * WebKit.xcodeproj/project.pbxproj: Removed AGL and OpenGL from the project.
222
223 2007-09-20  John Sullivan  <sullivan@apple.com>
224
225         Build fix for stoooopid old PPC gcc compiler
226
227         * WebCoreSupport/WebEditorClient.mm:
228         (WebEditorClient::checkSpellingOfString):
229         replace perfectly valid ?: syntax with if/else
230
231 2007-09-19  John Sullivan  <sullivan@apple.com>
232
233         Reviewed by Darin Adler.
234
235         - WebKit part of speculative fix for <rdar://problem/5490627>, about crashes constructing a
236           String using the values filled in by checkSpellingOfString()
237
238         * WebCoreSupport/WebEditorClient.mm:
239         (WebEditorClient::checkSpellingOfString):
240         convert NSNotFound to -1, since WebCore code expects -1 for this purpose. We already do this
241         in checkGrammarOfString.
242
243 2007-09-19  Kevin Decker  <kdecker@apple.com>
244
245         Reviewed by Darin Adler.
246
247         <rdar://problem/5491066> soft link Accelerate.framework
248         
249         * Misc/WebGraphicsExtras.c:
250         (WebConvertBGRAToARGB): Improve launch time performance and reduce vsize
251         footprint by soft linking the Accelerate.framework.
252         * WebKit.xcodeproj/project.pbxproj: Remove no longer needed frameworks.
253
254 2007-09-18  Geoffrey Garen  <ggaren@apple.com>
255
256         Reviewed by Darin Adler.
257         
258         Fixed <rdar://problem/5490204> In some cases, WebKit can make the 
259         Foundation disk cache way too big or way too small
260         
261         Use the actual location of the foundation disk cache, rather than 
262         the user's home directory, when determining how big to make it.
263
264         * WebView/WebView.mm:
265         (+[WebView _setCacheModel:]):
266
267 2007-09-17  Geoffrey Garen  <ggaren@apple.com>
268
269         Reviewed by Darin Adler.
270
271         Fixed a hang due to an infinite script running in the window's unload 
272         event handler, which may be the cause of <rdar://problem/5479443> 
273         REGRESSION: Hang due to infinite JS recursion on close @ engadget.com 
274         (onunload-based ad)
275
276         * WebView/WebUIDelegatePrivate.h: Added FIXME.
277         
278         * WebView/WebView.h: Clarified headerdoc ambiguity about when delegate 
279         methods stop firing.
280
281         * WebView/WebView.mm:
282         (-[WebView _close]): The fix: don't nil out our delegates until after
283         detaching the FrameLoader, because the act of detaching the FrameLoader
284         might fire important delegate methods, like webViewShouldInterruptJavaScript:.
285         Don't do other tear-down either, because the unload event handler needs 
286         to run in a fully constructed page.
287         
288         This change is fairly low risk because niling out our delegates is a 
289         very recent, never-shipped feature in WebKit, so it's unlikely that any 
290         apps rely on it in a crazy way.
291
292 2007-09-15  Darin Adler  <darin@apple.com>
293
294         Reviewed by John Sullivan.
295
296         - fix <rdar://problem/5391540> REGRESSION: Can't drag images from Safari to applications
297           in the dock (Tiger Preview, others in Leopard)
298
299         * Misc/WebNSPasteboardExtras.mm:
300         (-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
301         Re-implement code here that has been missing for the last couple of years since we
302         did some image refactoring. Was pretty easy now that we can freely call C++ code
303         in WebKit.
304
305 2007-09-14  Mark Rowe  <mrowe@apple.com>
306
307         Build fix for Tiger.
308
309         * WebView/WebArchive.m:
310         (-[WebArchive initWithCoder:]): Use @catch(id) rather than @catch(...).
311         * WebView/WebPreferences.m:
312         (-[WebPreferences initWithCoder:]): Ditto.
313         * WebView/WebResource.mm:
314         (-[WebResource initWithCoder:]): Ditto.
315         (-[WebResource _initWithPropertyList:]): Ditto.
316
317 2007-09-14  Darin Adler  <darin@apple.com>
318
319         Reviewed by Geoff Garen and Tim Hatcher.
320
321         - fixed <rdar://problem/5482745> initFromCoder: and initWithPropertyList: functions
322           should guard against incorrect types
323
324         * WebView/WebArchive.m:
325         (isArrayOfClass): Added helper function.
326         (-[WebArchive _initWithPropertyList:]): Tweaked function to remove the need for a
327         type cast.
328         (-[WebArchive initWithCoder:]): Added type checking for the main resource,
329         subresources array, and subframe archives array. Also replaced NS_DURING with @try.
330         * WebView/WebPreferences.m: (-[WebPreferences initWithCoder:]): Added type checking
331         for the identifier and the values dictionary, including ensuring that it's a mutable
332         dictionary.
333         * WebView/WebResource.mm:
334         (-[WebResource initWithCoder:]): Added type checking for all the fields.
335         (-[WebResource _initWithPropertyList:]): Added type checking for the NSURLResponse.
336
337         * WebKit.exp: Removed accidentally exported internal symbol; I checked and it's not
338         used anywhere.
339
340 2007-09-13  Darin Adler  <darin@apple.com>
341
342         Reviewed by Oliver.
343
344         - fix <rdar://problem/5470457> REGRESSION: Input method inline hole is mishandled in text
345           <input> elements with maxlength limit
346
347         * WebView/WebHTMLView.mm:
348         (-[WebHTMLView _selectionChanged]): Tweaked code a bit.
349         (-[WebHTMLView markedRange]): Simplified logic, since markedTextNSRange works when there's
350         no composition range.
351         (-[WebHTMLView hasMarkedText]): Call directly to Editor instead of bridge.
352         (-[WebHTMLView unmarkText]): Call new confirmComposition to make it clear that this is
353         confirming text, not just unmarking it to discard it.
354         (extractUnderlines): Added. Converts directly from an NSAttributedString to the
355         CompositionUnderline vector that's used by WebCore.
356         (-[WebHTMLView setMarkedText:selectedRange:]): Changed to use the new setComposition.
357         (-[WebHTMLView insertText:]): Changed to use confirmComposition when appropriate, instead
358         of relying on special behavior of Editor::insertText.
359         (-[WebHTMLView _updateSelectionForInputManager]): Rewrote to use getCompositionSelection
360         and confirmCompositionWithoutDisturbingSelection.
361
362         * WebCoreSupport/WebEditorClient.h:
363         * WebCoreSupport/WebEditorClient.mm:
364         Removed obsolete markedTextAbandoned function.
365  
366 2007-09-12  David Kilzer  <ddkilzer@apple.com>
367
368         Rubber-stamped by Darin and reviewed by Adam.
369
370         Removed import of unused icon database headers.
371
372         * WebCoreSupport/WebFrameBridge.mm:
373
374 2007-09-11  Timothy Hatcher  <timothy@apple.com>
375
376         Reviewed by Darin.
377
378         Remove the unused class_getMethodImplementation function.
379
380         * Misc/WebNSObjectExtras.h:
381
382 2007-09-11  Geoffrey Garen  <ggaren@apple.com>
383
384         Reviewed by Oliver Hunt.
385         
386         Fixed CFNetwork version check so it actually works.
387
388         * Misc/WebKitVersionChecks.h:
389         * WebView/WebView.mm:
390         (+[WebView _setCacheModel:]): Don't use NSVersionOfLinkTimeLibrary because
391         we don't link against CFNetwork directly, so it returns -1. Also, use
392         the proper hex encoding instead of decimal numbers.
393
394 2007-09-11  Darin Adler  <darin@apple.com>
395
396         - redo fix for <rdar://problem/5472899> REGRESSION (TOT): Crash in FrameLoadDelegate loading stationery
397
398         * WebView/WebView.mm:
399         (getMethod): Added.
400         (-[WebView _cacheResourceLoadDelegateImplementations]): Use getMethod.
401         (-[WebView _cacheFrameLoadDelegateImplementations]): Ditto.
402
403 2007-09-11  Darin Adler  <darin@apple.com>
404
405         Rubber-stamped by Dave Harrison.
406
407         * WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface):
408         Removed wkCreateURLPasteboardFlavorTypeName and wkCreateURLNPasteboardFlavorTypeName.
409
410 2007-09-11  Darin Adler  <darin@apple.com>
411
412         Reviewed by Mark Rowe.
413
414         - fix <rdar://problem/5472899> REGRESSION (TOT): Crash in FrameLoadDelegate loading stationery
415
416         * Misc/WebNSObjectExtras.h:
417         (class_getMethodImplementation): Added.
418         (method_setImplementation): Added.
419
420         * WebView/WebHTMLView.mm: (+[WebHTMLViewPrivate initialize]):
421         * Carbon/HIViewAdapter.m: (+[HIViewAdapter bindHIViewToNSView:nsView:]):
422         Remove old-ObjC code path, since WebNSObjectExtras.h now implements everything we need.
423
424         * WebView/WebView.mm:
425         (-[WebView _cacheResourceLoadDelegateImplementations]): Don't bother doing a separate
426         respondsToSelector call, since class_getMethodImplementation will return 0 for selectors
427         that we don't respond to. The bug fix is to actually set the cached pointer to 0.
428         Also get rid of the unnecessary use of a macro; instead use the functions from
429         WebNSObjectExtras.h on Tiger and the appropriate function directly on Leopard.
430         (-[WebView _cacheFrameLoadDelegateImplementations]): Ditto.
431
432 2007-09-11  Darin Adler  <darin@apple.com>
433
434         Reviewed by Sam, Ollie.
435
436         * WebView/WebView.mm: (+[WebView _setCacheModel:]): A slightly cleaner 64-bit
437         fix for the NSURLCache capacity code in this file.
438
439 2007-09-11  Darin Adler  <darin@apple.com>
440
441         Rubber-stamped by Mark Rowe.
442
443         * Misc/WebNSPasteboardExtras.mm: Fix incorrect strings in my last check-in.
444         The strings I checked in were wrong and were breaking layout tests too.
445         These new ones match what WebKitSystemInterface was returning.
446
447 2007-09-10  Geoffrey Garen  <ggaren@apple.com>
448
449         Fixed 64-bit build (I think).
450
451         * WebView/WebView.mm:
452         (max): Added. In 64-bit land, -diskCapacity magically starts returning
453         unsigned long instead of unsigned, so we define a custom max() that's
454         willing to compare unsigned to unsigned long.
455
456 2007-09-10  Darin Adler  <darin@apple.com>
457
458         Reviewed by Tim Hatcher.
459
460         - <rdar://problem/5471082> Removing WebURLPboardType from headers broke SPI-using applications
461
462         Rolled out my fix for bug 4582212 and fixed it in a much simpler way.
463
464         * Misc/WebNSPasteboardExtras.h:
465         * Misc/WebNSPasteboardExtras.mm:
466         * WebCoreSupport/WebPasteboardHelper.mm:
467         * WebKit.exp:
468         * WebView/WebHTMLView.mm:
469         * WebView/WebView.mm:
470         Rolled out the new PasteboardType functions and changed the PboardType globals to be initialized
471         with constant values.
472
473 2007-09-10  Timothy Hatcher  <timothy@apple.com>
474
475         Reviewed by Darin.
476
477         Always animate when calling _scrollTo.
478
479         * WebView/WebFrameView.mm:
480         (-[WebFrameView _scrollVerticallyBy:]):
481         (-[WebFrameView _scrollHorizontallyBy:]):
482
483 2007-09-08  Brady Eidson  <beidson@apple.com>
484
485         Reviewed by Darin
486
487         <rdar://problem/5434431> - Asynchronous Icon Database
488
489         WebKit side of things
490         Mainly, there are Notifications WebKit has to listen for now that tell it when to either call back into WebCore
491         for some purpose or to send the webView:didReceiveIcon: delegate call
492
493         Many smaller tweaks as well.
494
495         * Misc/WebIconDatabase.h:
496         * Misc/WebIconDatabase.mm:
497         (defaultClient):
498         (-[WebIconDatabase init]):
499         (+[WebIconDatabase delayDatabaseCleanup]): Accessor so clients can prevent the thread from cleaning up the database
500           before they've done all their necessary retaining of icons.
501         (+[WebIconDatabase allowDatabaseCleanup]):
502         (-[WebIconDatabase removeAllIcons]):
503         (-[WebIconDatabase _isEnabled]):
504         (-[WebIconDatabase _sendNotificationForURL:]):
505         (-[WebIconDatabase _sendDidRemoveAllIconsNotification]):
506         (-[WebIconDatabase _databaseDirectory]):
507
508         (-[ThreadEnabler threadEnablingSelector:]): Quick and dirty class to enabled Cocoa multithreading
509         (+[ThreadEnabler enableThreading]):
510         (importToWebCoreFormat):
511         * Misc/WebIconDatabaseInternal.h: Expose the internal methods of WebIconDatabase that are required by WebIconDatabaseClient
512
513         * Misc/WebNSNotificationCenterExtras.h: Added. - Great utility class whose design was borrowed from Colloquy
514           that allows the posting of a Cocoa notification on the main thread from *any* thread
515         * Misc/WebNSNotificationCenterExtras.m: Added.
516         (-[NSNotificationCenter postNotificationOnMainThreadWithName:object:]):
517         (-[NSNotificationCenter postNotificationOnMainThreadWithName:object:userInfo:]):
518         (-[NSNotificationCenter postNotificationOnMainThreadWithName:object:userInfo:waitUntilDone:]):
519         (+[NSNotificationCenter _postNotificationName:]):
520
521         * WebCoreSupport/WebFrameLoaderClient.h:
522         * WebCoreSupport/WebFrameLoaderClient.mm:
523         (WebFrameLoaderClient::dispatchDidReceiveIcon): Send the webView:didReceiveIcon: delegate call
524         (WebFrameLoaderClient::registerForIconNotification):
525
526         * WebCoreSupport/WebIconDatabaseClient.h: Added.
527         * WebCoreSupport/WebIconDatabaseClient.mm: Added.
528         (WebIconDatabaseClient::performImport):  Perform the Safari 2 icon import
529         (WebIconDatabaseClient::dispatchDidRemoveAllIcons): Send the NSNotification
530         (WebIconDatabaseClient::dispatchDidAddIconForPageURL): Ditto
531
532         * WebView/WebView.mm:
533         (-[WebView _receivedIconChangedNotification:]): Check and see if this notification is for this WebView's current URL by
534           calling back into the IconDatabase
535         (-[WebView _registerForIconNotification:]): Support for WebIconDatabaseClient
536         (-[WebView _dispatchDidReceiveIconFromWebFrame:]): Dispatch this delegate call as well as unregister for the notification
537         * WebView/WebViewInternal.h:
538
539         * WebKit.xcodeproj/project.pbxproj:
540
541 2007-09-07  Geoffrey Garen  <ggaren@apple.com>
542
543         Suggested by Maciej Stachowiak.
544         
545         Added wKiosk Browser to the browser list. Pretty sweet app.
546
547         * WebView/WebPreferences.m:
548         (cacheModelForMainBundle):
549
550 2007-09-07  Geoffrey Garen  <ggaren@apple.com>
551
552         Build fix.
553
554         * WebView/WebView.mm:
555         (+[WebView _setCacheModel:]):
556
557 2007-09-05  Geoffrey Garen  <ggaren@apple.com>
558
559         Reviewed by Darin Adler, Maciej Stachowiak, Mark Rowe, Tim Hatcher.
560         
561         Fixed <rdar://problem/5326009> Make non-browser WebKit clients have no 
562         memory cache, or a very tiny one
563         
564         High level explanation:
565             - Added SPI for specifying a cache model on a per-WebView basis. 
566             (Hopefully, this will become API soon.) We balance competing
567             cache models simply by using the largest one that pertains at a
568             given time.
569
570             - Added heuristic for guessing a default cache model in WebViews
571             that don't specify one:
572                 1) Default to DocumentViewer for apps linked on or after this
573                 WebKit. Default to DocumentBrowser otherwise.
574
575                 2) Assign specific defaults to well-known clients based on 
576                 bundle ID.
577
578                 3) Grow the default to DocumentBrowser if a navigation takes 
579                 place.
580
581             - As a part of the DocumentBrowser & PrimaryWebBrowser settings:
582                 1) Make the Foundation disk cache much much bigger than the 
583                 default 20MB, if space allows. (This is a hedge against a small 
584                 WebCore cache in DocumentBrowser mode, but also an all-around 
585                 win for page load speed.)
586
587                 2) Scaled the Foundation memory cache's capacity with physical
588                 RAM, just like we do with other caches. This is a small win on
589                 low memory systems.
590
591         * Misc/WebKitSystemBits.h:
592         * Misc/WebKitSystemBits.m:
593         (WebMemorySize): Renamed from "WebSystemMainMemory."
594         (WebHomeDirectoryFreeSize): Added function to measure the free space
595         on the user's home directory. We use this as a factor in determining 
596         the disk cache's cacpacity.
597
598         * Misc/WebKitVersionChecks.h: Support for linked on or after check.
599         
600         * WebCoreSupport/WebFrameLoaderClient.h:
601         * WebCoreSupport/WebFrameLoaderClient.mm:
602         (WebFrameLoaderClient::didPerformFirstNavigation): Implementation of
603         heuristic rule #3.
604
605         * WebView/WebPreferenceKeysPrivate.h:
606         * WebView/WebPreferences.m:
607         (cacheModelForMainBundle): Implementation of heuristic rule #2.
608         (-[NSMutableDictionary _web_checkLastReferenceForIdentifier:]): Added
609         notification for when a WebPreferences instance becomes inert. We use
610         this to shrink the cache model back down if possible. Moved this code
611         into a WebPreferences method, since it's not really a feature of 
612         NSDictionary.
613
614         * WebView/WebPreferencesPrivate.h: SPI declarations.
615         
616         * WebView/WebView.mm: Replaced manual notification posts with calls to
617         the _postPreferencesChangesNotification convenience method.
618
619         (-[WebView _preferencesChangedNotification:]): Merged dispersed code
620         for updating preferences-related settings into this one function. This
621         was needed for an earlier version of the patch, even though the 
622         current version could probably do without it.
623
624         (+[WebView _preferencesChangedNotification:]): Added a class-level 
625         listener for WebPreferences changes. This listener takes care of 
626         modifying the class-level global cache model setting if necessary.
627
628         (+[WebPreferences standardPreferences]): Removed call to 
629         _postPreferencesChangesNotification because the notification already 
630         posts when you create the WebPreferences object. (I noticed this 
631         inefficiency because my new _preferencesChangedNotification: method was
632         called excessively at startup.)
633
634         Also Added explicit tracking of WebPreferences clients, so we know when
635         a WebPreferences instance becomes inert:
636         
637         (-[WebPreferences didRemoveFromWebView]):
638         (-[WebPreferences willAddToWebView]):
639
640         (+[WebView _setCacheModel:]): Translates a cache model into actual 
641         settings in various APIs. Caches that have unbounded value grow 
642         linearly relative to available space. Caches that have bounded value 
643         grow inverse-squaredly relative to available space.
644
645 >>>>>>> .r25438
646 2007-09-05  Timothy Hatcher  <timothy@apple.com>
647
648         Reviewed by Darin.
649
650         <rdar://problem/5443883> Uncaught Objective-C exceptions in WebKit clients lead to hard-to-diagnose crashes
651
652         Changed all the direct delegate calls to use helper functions that have direct access to
653         WebView's delegate objects. These helper methods will catch any ObjC exceptions and call
654         ReportDiscardedDelegateException to log the discarded exception. WebView's that have
655         catchesDelegateExceptions set to NO will not pay the cost of a @try/@catch. The delegate
656         forwarders also have the same behavior.
657
658         * Misc/WebKitLogging.h:
659         * Misc/WebKitLogging.m:
660         (ReportDiscardedDelegateException):
661         * Plugins/WebBaseNetscapePluginView.mm:
662         (-[WebBaseNetscapePluginView loadPluginRequest:]):
663         * Plugins/WebNullPluginView.mm:
664         (-[WebNullPluginView viewDidMoveToWindow]):
665         * WebCoreSupport/WebChromeClient.mm:
666         (WebChromeClient::createWindow):
667         (WebChromeClient::createModalDialog):
668         (WebChromeClient::runModal):
669         (WebChromeClient::toolbarsVisible):
670         (WebChromeClient::statusbarVisible):
671         (WebChromeClient::addMessageToConsole):
672         (WebChromeClient::canRunBeforeUnloadConfirmPanel):
673         (WebChromeClient::runBeforeUnloadConfirmPanel):
674         (WebChromeClient::runJavaScriptAlert):
675         (WebChromeClient::runJavaScriptConfirm):
676         (WebChromeClient::runJavaScriptPrompt):
677         (WebChromeClient::shouldInterruptJavaScript):
678         (WebChromeClient::setStatusbarText):
679         (WebChromeClient::print):
680         * WebCoreSupport/WebContextMenuClient.mm:
681         (WebContextMenuClient::getCustomMenuFromDefaultItems):
682         (WebContextMenuClient::contextMenuItemSelected):
683         * WebCoreSupport/WebDragClient.mm:
684         (WebDragClient::startDrag):
685         * WebCoreSupport/WebEditorClient.mm:
686         (WebEditorClient::textFieldDidBeginEditing):
687         (WebEditorClient::textFieldDidEndEditing):
688         (WebEditorClient::textDidChangeInTextField):
689         (WebEditorClient::doTextFieldCommandFromEvent):
690         (WebEditorClient::textWillBeDeletedInTextField):
691         (WebEditorClient::textDidChangeInTextArea):
692         * WebCoreSupport/WebFrameBridge.mm:
693         (-[WebFrameBridge viewForPluginWithFrame:URL:attributeNames:attributeValues:MIMEType:DOMElement:loadManually:]):
694         * WebCoreSupport/WebFrameLoaderClient.mm:
695         (WebFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
696         (WebFrameLoaderClient::assignIdentifierToInitialRequest):
697         (WebFrameLoaderClient::dispatchWillSendRequest):
698         (WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
699         (WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
700         (WebFrameLoaderClient::dispatchDidReceiveResponse):
701         (WebFrameLoaderClient::willCacheResponse):
702         (WebFrameLoaderClient::dispatchDidReceiveContentLength):
703         (WebFrameLoaderClient::dispatchDidFinishLoading):
704         (WebFrameLoaderClient::dispatchDidFailLoading):
705         (WebFrameLoaderClient::dispatchDidHandleOnloadEvents):
706         (WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
707         (WebFrameLoaderClient::dispatchDidCancelClientRedirect):
708         (WebFrameLoaderClient::dispatchWillPerformClientRedirect):
709         (WebFrameLoaderClient::dispatchDidChangeLocationWithinPage):
710         (WebFrameLoaderClient::dispatchWillClose):
711         (WebFrameLoaderClient::dispatchDidReceiveIcon):
712         (WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
713         (WebFrameLoaderClient::dispatchDidReceiveTitle):
714         (WebFrameLoaderClient::dispatchDidCommitLoad):
715         (WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
716         (WebFrameLoaderClient::dispatchDidFailLoad):
717         (WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
718         (WebFrameLoaderClient::dispatchDidFinishLoad):
719         (WebFrameLoaderClient::dispatchDidFirstLayout):
720         (WebFrameLoaderClient::dispatchCreatePage):
721         (WebFrameLoaderClient::dispatchUnableToImplementPolicy):
722         (WebFrameLoaderClient::dispatchWillSubmitForm):
723         (WebFrameLoaderClient::dispatchDidLoadMainResource):
724         * WebView/WebHTMLView.mm:
725         (-[WebHTMLView callDelegateDoCommandBySelectorIfNeeded:]):
726         (-[WebHTMLView validateUserInterfaceItem:]):
727         * WebView/WebPDFView.mm:
728         (-[WebPDFView validateUserInterfaceItem:]):
729         (-[WebPDFView PDFViewSavePDFToDownloadFolder:]):
730         * WebView/WebView.mm:
731         (-[WebView _openNewWindowWithRequest:]):
732         (-[WebView _menuForElement:defaultItems:]):
733         (-[WebView _mouseDidMoveOverElement:modifierFlags:]):
734         (-[WebView _cacheResourceLoadDelegateImplementations]):
735         (-[WebView _cacheFrameLoadDelegateImplementations]):
736         (-[WebView _policyDelegateForwarder]):
737         (-[WebView _UIDelegateForwarder]):
738         (-[WebView _editingDelegateForwarder]):
739         (-[WebView _scriptDebugDelegateForwarder]):
740         (-[WebView _setCatchesDelegateExceptions:]):
741         (-[WebView _catchesDelegateExceptions]):
742         (-[_WebSafeForwarder initWithTarget:defaultTarget:]):
743         (-[_WebSafeForwarder forwardInvocation:]):
744         (-[_WebSafeForwarder methodSignatureForSelector:]):
745         (-[WebView _commonInitializationWithFrameName:groupName:]):
746         (-[WebView validateUserInterfaceItem:]):
747         (-[WebView _headerHeight]):
748         (-[WebView _footerHeight]):
749         (-[WebView _drawHeaderInRect:]):
750         (-[WebView _drawFooterInRect:]):
751         (-[WebView _shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
752         (CallDelegate):
753         (CallDelegateReturningFloat):
754         (CallDelegateReturningBoolean):
755         (CallUIDelegate):
756         (CallUIDelegateReturningFloat):
757         (CallUIDelegateReturningBoolean):
758         (CallFrameLoadDelegate):
759         (CallResourceLoadDelegate):
760         (CallFormDelegate):
761         (CallFormDelegateReturningBoolean):
762         * WebView/WebViewInternal.h:
763         * WebView/WebViewPrivate.h:
764
765 >>>>>>> .r25411
766 2007-09-04  Timothy Hatcher  <timothy@apple.com>
767
768         Reviewed by Darin.
769
770         <rdar://problem/5452908> NIBs saved in the Pre-10.2 format while Safari 3 installed do not work without Safari 3
771
772         This happened because we encoded a new field that the old WebKit does not know how to read.
773         And NSCoder throws an exception if initWithCoder finishes while there is still unread data in the archive.
774
775         The WebViewVersion is now 4 to distinguish that we do not encode/decode allowsUndo.
776
777         * WebView/WebView.mm:
778         (-[WebView initWithCoder:]): Only try to read allowsUndo if the version is 3.
779         (-[WebView encodeWithCoder:]): No longer encode allowsUndo.
780
781 2007-09-04  David Hyatt  <hyatt@apple.com>
782
783         Fix for <rdar://problem/5271213>, resizing iChat window is slower than in
784         Tiger.  This patch implements a fast scaling mode that can be used by
785         WebViews, e.g., during window resizing.
786
787         Reviewed by John Sullivan
788
789         * WebView/WebView.mm:
790         (-[WebView _setUseFastImageScalingMode:]):
791         (-[WebView _inFastImageScalingMode]):
792         * WebView/WebViewPrivate.h:
793
794 2007-09-04  Darin Adler  <darin@apple.com>
795
796         Reviewed by Hyatt.
797
798         * WebView/WebView.mm:
799         (-[WebView _loadBackForwardListFromOtherView:]): Added missing null check.
800         (-[WebView _setInitiatedDrag:]): Ditto.
801         (-[WebView _clearUndoRedoOperations]): Ditto.
802         (-[WebView encodeWithCoder:]): Ditto.
803         (-[WebView backForwardList]): Ditto.
804         (-[WebView setMaintainsBackForwardList:]): Ditto.
805
806 2007-09-04  Tristan O'Tierney  <tristan@apple.com>
807
808         Reviewed by John Sullivan.
809         
810         <rdar://problem/5454935> Can't reply to this message in Mail -- -[DOMRange webArchive] is throwing an exception
811
812         * WebView/WebArchiver.mm:
813         (+[WebArchiver _archiveWithMarkupString:fromFrame:nodes:]):
814         Guard the creation of WebResource by ensuring that the passed in
815         responseURL is never nil.
816
817 2007-09-03  Mark Rowe  <mrowe@apple.com>
818
819         Reviewed by Tim Hatcher.
820
821         <rdar://problem/5452164> Production build with in symbols directory has no debug info
822
823         Enable debug symbol generation on all build configurations.  Production builds are stripped
824         of symbols by Xcode during deployment post-processing.
825
826         * Configurations/Base.xcconfig:
827         * WebKit.xcodeproj/project.pbxproj:
828
829 2007-09-02  Brady Eidson  <beidson@apple.com>
830
831         Reviewed by John Sullivan and Mark Rowe
832
833         Groundwork for support for monitoring IconDatabase in-memory statistics
834  
835         * Misc/WebCoreStatistics.h:
836         * Misc/WebCoreStatistics.mm:
837         (+[WebCoreStatistics iconPageURLMappingCount]):
838         (+[WebCoreStatistics iconRetainedPageURLCount]):
839         (+[WebCoreStatistics iconRecordCount]):
840         (+[WebCoreStatistics iconsWithDataCount]):
841
842 2007-09-01  Oliver Hunt  <oliver@apple.com>
843
844         Reviewed by Sam.
845
846         <rdar://problem/5344848> IME is incorrectly used for key events when on non-editable regions
847
848         EditorClient::setInputMethodState stub
849
850         * WebCoreSupport/WebEditorClient.h:
851         * WebCoreSupport/WebEditorClient.mm:
852         (WebEditorClient::setInputMethodState):
853
854 2007-08-30  Maciej Stachowiak  <mjs@apple.com>
855
856         Reviewed by Tim.
857         
858         <rdar://problem/5439953> REGRESSION: Cannot load feeds in widgets in Dashcode due to change in WebKit delegate methods
859
860         * WebView/WebFrame.mm:
861         (-[WebFrame _attachScriptDebugger]): Don't create the debugger object if the frame has not yet
862         created its script interpreter, to avoid premature dispatch of windowScriptObjectAvailable/Cleared
863         delegate methods. The script debugger will be created in any case when the window object does appear.
864
865 2007-08-29  Darin Adler  <darin@apple.com>
866
867         Reviewed by Tim Hatcher.
868
869         - fix <rdar://problem/4582212> WebKit inappropriately adds +initialize to
870           NSPasteboard via a category, prevents AppKit initialize
871           http://bugs.webkit.org/show_bug.cgi?id=9417
872
873         * Misc/WebNSPasteboardExtras.h: Got rid of the global data objects and replaced
874         them with global functions.
875
876         * Misc/WebNSPasteboardExtras.mm:
877         (initializePasteboardTypes): Changed the initialize method to be this function.
878         (WebURLPasteboardType): Added, calls the initialize function and then returns
879         the value of the global.
880         (WebURLNamePasteboardType): Ditto.
881         (+[NSPasteboard _web_writableTypesForURL]): Changed to call the new function instead
882         of getting at the global directly.
883         (+[NSPasteboard _web_dragTypesForURL]): Ditto.
884         (-[NSPasteboard _web_writeURL:andTitle:types:]): Ditto.
885         * WebCoreSupport/WebPasteboardHelper.mm:
886         (WebPasteboardHelper::urlFromPasteboard): Ditto.
887         * WebView/WebHTMLView.mm:
888         (-[WebHTMLView _documentFragmentFromPasteboard:forType:inContext:subresources:]): Ditto.
889
890         * WebView/WebView.mm:
891         (+[WebView initialize]): Added a call to one of the functions to take advantage
892         of the side effect that initializes the globals; this is to help out old versions
893         of Safari.
894         (+[WebView URLTitleFromPasteboard:]): Changed to call the new function instead
895         of getting at the global directly.
896
897         * WebKit.exp: Add exports of the new functions.
898
899 2007-08-29  Adele Peterson  <adele@apple.com>
900
901         Reviewed by Darin.
902
903         Fix for http://bugs.webkit.org/show_bug.cgi?id=15098
904         <rdar://problem/5440319> REGRESSION (9A530-9A534): Double scroll bar on pdfs
905
906         * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::makeDocumentView):
907          Don't suppress scrollbars before the view creation if we're making the view for a non-html view
908
909         * WebView/WebFrameViewInternal.h: Make _scrollView return a WebDynamicScrollBarsView since so many clients were relying on it being that type anyway.
910         * WebView/WebFrameView.mm:
911         (-[WebFrameView _setDocumentView:]):
912         (-[WebFrameView _scrollView]):
913         (-[WebFrameView setAllowsScrolling:]):
914         (-[WebFrameView allowsScrolling]):
915         * WebView/WebView.mm:
916         (-[WebView setAlwaysShowVerticalScroller:]):
917         (-[WebView alwaysShowVerticalScroller]):
918         (-[WebView setAlwaysShowHorizontalScroller:]):
919         (-[WebView alwaysShowHorizontalScroller]):
920
921 2007-08-29  David Hyatt  <hyatt@apple.com>
922
923         The method that was swizzled to fix 5441281 does not exist on Tiger.
924         Tiger has to do a double swizzle instead (of resetCursorRects and NSCursor's
925         set method) in order to roughly achieve the same effect.
926
927         Reviewed by darin
928
929         * WebView/WebHTMLView.mm:
930         (resetCursorRects):
931         (setCursor):
932         (+[WebHTMLViewPrivate initialize]):
933
934 2007-08-29  Anders Carlsson  <andersca@apple.com>
935
936         Fix 64-bit build.
937         
938         * WebCoreSupport/WebFrameBridge.mm:
939
940 2007-08-29  David Hyatt  <hyatt@apple.com>
941
942         Fix for 5441281, remove our dependency on cursor rects and drag margins
943         in AppKit for a large performance boost on the PLT and iBench.
944
945         Reviewed by darin
946
947         * Plugins/WebBaseNetscapePluginView.h:
948         * Plugins/WebBaseNetscapePluginView.mm:
949         (-[WebBaseNetscapePluginView sendNullEvent]):
950         (-[WebBaseNetscapePluginView mouseEntered:]):
951         (-[WebBaseNetscapePluginView mouseExited:]):
952         (-[WebBaseNetscapePluginView stop]):
953         Clean up cursor setting from Netscape plugins.  Don't unconditionally mutate
954         the cursor when a plugin stops.
955
956         * WebView/WebFrameView.mm:
957         (-[WebFrameView _setDocumentView:]):
958         Suppress the resetting of drag margins while the new document view is being
959         added to the view hierarchy.
960
961         * WebView/WebHTMLView.mm:
962         (-[NSWindow _web_borderView]):
963         Expose the border view of the NSWindow so that it can be hit tested.
964
965         (setCursorForMouseLocation):
966         Apply a method swizzle to override the private AppKit method, _setCursorForMouseLocation.
967         We have to do this to suppress the cursor rect invalidation handling from resetting
968         the cursor for no reason.
969
970         The swizzle will do a hit test and allow the cursor set to occur if the mouse ends up
971         being over a plugin or over a view other than a WebHTMLView.
972
973         (+[WebHTMLViewPrivate initialize]):
974         The swizzle for setCursorForMouseLocation is set up here.
975
976         (-[WebHTMLView _frameOrBoundsChanged]):
977         Add a 100ms delay to the fake mouse moved event that fires when the view moves
978         under the mouse (without the mouse moving).  This happens on iBench when the
979         pages get scrolled.  By adding a delay we ensure that even with the mouse inside
980         the window, we don't experience cursor thrashing when pages are updating and
981         scrolling rapidly.
982
983 2007-08-28  Anders Carlsson  <andersca@apple.com>
984
985         Reviewed by Darin.
986
987         <rdar://problem/5424866> Bottom portion of any Web Clip widget appears transparent
988         
989         * WebCoreSupport/WebFrameBridge.mm:
990         Use the enum from FrameLoaderTypes.h.
991         
992         * WebCoreSupport/WebFrameLoaderClient.mm:
993         (WebFrameLoaderClient::objectContentType):
994         Return ObjectContentNetscapePlugin and ObjectContentOtherPlugin depending on the plug-in type.
995
996 2007-08-28  Mark Rowe  <mrowe@apple.com>
997
998         Reviewed by Maciej Stachowiak.
999
1000         Fix fallout from the fix for <rdar://problem/5437983> (Loading history containing 100,000 entries adds 20s to Safari's startup)
1001         in r25275.  The array of entries for each day was being maintained in the reverse of the order that was expected.
1002
1003         * History/WebHistory.mm:
1004         (-[WebHistoryPrivate insertItem:forDateKey:]): Maintain the array of entries in descending order.
1005
1006 2007-08-28  Mark Rowe  <mrowe@apple.com>
1007
1008         Fix the buildbot build.
1009
1010         * History/WebHistory.mm:
1011         (timeIntervalForBeginningOfDay):  Explicitly cast to silence compiler warning.
1012
1013 2007-08-28  Mark Rowe  <mrowe@apple.com>
1014
1015         Reviewed by Darin Adler.
1016
1017         <rdar://problem/5437983> Loading history containing 100,000 entries adds 20s to Safari's startup
1018
1019         Move WebHistoryItemPrivate from using a sorted array of NSCalendarDate's that map to a sorted array of arrays
1020         of WebHistoryItem's over to using a HashMap of NSTimeIntervals and arrays of WebHistoryItems.  NSTimeInterval
1021         uses less memory and is substantially cheaper during comparisons than NSCalendarDate.  The use of the HashMap
1022         avoids the needs to repeatedly search within an array to locate the array that corresponds to the given days
1023         history items.
1024
1025         The result of these changes is that loading 100,000 history items drops from around 25s to 1.6s.  Loading
1026         100 items drops from 0.003s to 0.002s.
1027
1028         * History/WebHistory.mm:
1029         (-[WebHistoryPrivate init]):
1030         (-[WebHistoryPrivate dealloc]):
1031         (timeIntervalForBeginningOfDay): Return the NSTimeInterval representing the beginning of the specified day.
1032         (-[WebHistoryPrivate findKey:forDay:]):
1033         (-[WebHistoryPrivate insertItem:forDateKey:]): Perform a binary search within the day's history items rather than a linear search.
1034         (-[WebHistoryPrivate _removeItemFromDateCaches:]):
1035         (-[WebHistoryPrivate _addItemToDateCaches:]):
1036         (-[WebHistoryPrivate removeAllItems]):
1037         (-[WebHistoryPrivate orderedLastVisitedDays]): Generate and cache the sorted NSArray of NSCalendarDate's exposed in the API.
1038         This cache is invalidated by _removeItemFromDateCaches: and _addItemToDateCaches: when needed.
1039         (-[WebHistoryPrivate orderedItemsLastVisitedOnDay:]):
1040         (-[WebHistoryPrivate arrayRepresentation]):
1041         (-[WebHistoryPrivate _loadHistoryGutsFromURL:savedItemsCount:collectDiscardedItemsInto:error:]): Use an autorelease pool to keep the
1042         number of live autoreleased objects generated to a reasonable level.
1043         * History/WebHistoryItem.mm:
1044         (-[WebHistoryItem initWithURLString:title:displayTitle:lastVisitedTimeInterval:]):
1045         (-[WebHistoryItem initFromDictionaryRepresentation:]): Use the new HistoryItem constructor that accepts the alternate title
1046         rather than setting it after construction.  This prevents a modification notification from being sent for each WebHistoryItem that is loaded.
1047         * History/WebHistoryItemInternal.h:
1048         * History/WebHistoryPrivate.h:
1049         * Misc/WebNSCalendarDateExtras.h: Removed as _webkit_compareDay: is no longer used.
1050         * Misc/WebNSCalendarDateExtras.m: Removed.
1051         * WebKit.xcodeproj/project.pbxproj:
1052
1053 2007-08-28  Anders Carlsson  <andersca@apple.com>
1054
1055         Reviewed by Darin.
1056
1057         <rdar://problem/5298296> XMLHttpRequest readyState 3 & responseText buffer issues
1058         
1059         Expose WKSetNSURLRequestShouldContentSniff to WebCore.
1060         
1061         * WebCoreSupport/WebSystemInterface.m:
1062         (InitWebCoreSystemInterface):
1063
1064 2007-08-24  Kevin McCullough  <kmccullough@apple.com>
1065
1066         Reviewed by Darin.
1067
1068         <rdar://problem/5437038> 1 credential object leaked for each call to credentialWithUser:password:persistence
1069         - Use initWithUser instead of credentialWithUser because credentialWithUser leaks.
1070
1071         * Panels/WebAuthenticationPanel.m:
1072         (-[WebAuthenticationPanel runAsModalDialogWithChallenge:]):
1073         (-[WebAuthenticationPanel sheetDidEnd:returnCode:contextInfo:]):
1074
1075 2007-08-24  Adele Peterson  <adele@apple.com>
1076
1077         Fix by Darin, reviewed by Adele.
1078
1079         Fix for <rdar://problem/5433422> Upon quitting, WebKit loads the WebPlugin shared database and immediately closes it
1080
1081         * Plugins/WebPluginDatabase.h: Added closeSharedDatabase, which won't create a new database if we're just trying to close it.
1082         * Plugins/WebPluginDatabase.m: (+[WebPluginDatabase closeSharedDatabase]): Added.
1083         * WebView/WebView.mm:
1084         (-[WebView _close]): Call closeSharedDatabase.
1085         (+[WebView _applicationWillTerminate]): Call closeSharedDatabase.
1086
1087 2007-08-24  Timothy Hatcher  <timothy@apple.com>
1088
1089         Reviewed by John Sullivan.
1090
1091         <rdar://problem/5410937> HIWebView in SimpleCarbonWeb doesn't seem to be getting adequate invalidation when window is resized
1092
1093         This is a more localized fix for yesterday's change. Now explicitly call _web_layoutIfNeededRecursive inside the
1094         HIWebView Draw() function. Adds a FIXME to explain that we need to do layout before Carbon has decided what regions to draw.
1095         Doing layout in Draw() will potentially cause drawing to happen in two passes, but this has always been a problem in Carbon.
1096
1097         * Carbon/HIWebView.m:
1098         (Draw): Call _web_layoutIfNeededRecursive on the main WebHTMLView.
1099         (SetFocusPart): Fix to work in ObjC++ (now that HIWebView.m is treated as a ObjC++ file.)
1100         * WebView/WebView.mm: Removes the 4 displayIfNeeded methods from yesterday's change.
1101         * WebKit.xcodeproj/project.pbxproj: Force the file type of HIWebView.m to ObjC++ so WebHTMLViewInternal.h can be included.
1102
1103 2007-08-23  Timothy Hatcher  <timothy@apple.com>
1104
1105         Reviewed by Dave Hyatt.
1106
1107         <rdar://problem/5410937> HIWebView in SimpleCarbonWeb doesn't seem to be getting adequate invalidation when window is resized
1108
1109         The Carbon HIWebView was relying on layout happening when displayIfNeededInRect: was called on the WebView.
1110         This would happen on Tiger because _recursiveDisplayRectIfNeededIgnoringOpacity: would always do a layout if needed.
1111         Doing a layout in _recursiveDisplayRectIfNeededIgnoringOpacity was removed in Leopard in favor of viewWillDraw, and
1112         the fact that adding new dirty rects inside _recursiveDisplayRectIfNeededIgnoringOpacity on Leopard will not
1113         cause a drawRect in the same display loop.
1114
1115         So any client on Leopard calling displayIfNeeded* on the WebView would get a layout and any new dirty rects. So
1116         _web_layoutIfNeededRecursive needs to be called on the main frame's WebHTMLView to make sure we layout and
1117         display anything that is really needed.
1118
1119         * WebView/WebHTMLView.mm:
1120         (-[WebHTMLView _layoutIfNeeded]):
1121         (-[WebHTMLView _web_layoutIfNeededRecursive]):
1122         * WebView/WebHTMLViewInternal.h:
1123         * WebView/WebView.mm:
1124         (-[WebView displayIfNeeded]): Call _web_layoutIfNeededRecursive on the main WebHTMLView.
1125         (-[WebView displayIfNeededIgnoringOpacity]): Ditto.
1126         (-[WebView displayIfNeededInRect:]): Ditto. 
1127         (-[WebView displayIfNeededInRectIgnoringOpacity:]): Ditto.
1128
1129 2007-08-22  Timothy Hatcher  <timothy@apple.com>
1130
1131         Rolling out r25102 for <rdar://problem/5410937> until
1132         <rdar://problem/5429920> is resolved.
1133
1134         * Carbon/CarbonUtils.m:
1135         (WebInitForCarbon):
1136         (PoolCleaner):
1137         * Carbon/CarbonWindowAdapter.h:
1138         * Carbon/CarbonWindowAdapter.m:
1139         * Carbon/CarbonWindowContentView.h:
1140         * Carbon/CarbonWindowContentView.m:
1141         * Carbon/CarbonWindowFrame.h:
1142         * Carbon/CarbonWindowFrame.m:
1143         * Carbon/HIViewAdapter.h:
1144         * Carbon/HIViewAdapter.m:
1145         * Carbon/HIWebView.h:
1146         * Carbon/HIWebView.m:
1147
1148 2007-08-20  John Sullivan  <sullivan@apple.com>
1149
1150         Reviewed by Adam Roben
1151         
1152         WebKit part of fix for: 
1153         <rdar://problem/5417777> WebKit focus ring color no longer matches system focus rings
1154
1155         * Misc/WebNSAttributedStringExtras.mm:
1156         now includes <WebCore/ColorMac.h> to account for moved declaration
1157         * WebView/WebFrame.mm:
1158         ditto
1159         
1160         * WebView/WebViewPrivate.h:
1161         * WebView/WebView.mm:
1162         (+[WebView _setUsesTestModeFocusRingColor:]):
1163         new SPI, calls through to new WebCore function. This is used by DumpRenderTree to make sure the
1164         focus ring color is always the same when performing layout tests, regardless of OS X version.
1165         (+[WebView _usesTestModeFocusRingColor]):
1166         new SPI, calls through to new WebCore function
1167
1168 2007-08-20  Antti Koivisto  <antti@apple.com>
1169
1170         Reviewed by John.
1171         
1172         Fix <rdar://problem/5378390>
1173         Crash at Range::startContainer() when creating multiple ToDos on the same line
1174         
1175         Null check range.
1176         
1177         No layout test, this only happens with ObjC API.
1178
1179         * WebView/WebHTMLView.mm:
1180         (-[WebHTMLView _expandSelectionToGranularity:]):
1181
1182 2007-08-20  Maciej Stachowiak  <mjs@apple.com>
1183
1184         Not reviewed, fix for crash on launch bug in last patch.
1185
1186         * WebView/WebHTMLView.mm:
1187         (-[WebHTMLView setDataSource:]): Remove an assertion, fix code to work right in the
1188         face of that condition.
1189
1190 2007-08-18  Maciej Stachowiak  <mjs@apple.com>
1191
1192         Reviewed by Darin.
1193         
1194         - fixed <rdar://problem/5198272> REGRESSION: PLT 1.5% slower due to r21367 (change to start frames with empty documents)
1195
1196         There were three main cuases of extra time due to creating the initial empty document:
1197         
1198         1) Creating an extra WebHTMLView and swapping it for a new one for each frame created.
1199         2) Parsing the minimal markup for the initial document's contents.
1200         3) Clearing the Window object an extra time and dispatching the corresponding delegate method.
1201         
1202         The WebKit part of the fixes addresses 1.
1203
1204         * WebCoreSupport/WebFrameLoaderClient.mm:
1205         (WebFrameLoaderClient::makeDocumentView): When switching from the initial
1206         empty document to the first real document, reuse the WebHTMLView.
1207         
1208         It might actually be a significant performance improvement to always
1209         reuse the WebHTMLView, but that is a much riskier change and not
1210         needed to fix the regression right now.
1211
1212 2007-08-17  Maciej Stachowiak  <mjs@apple.com>
1213
1214         Reviewed by Darin.
1215
1216         - WebKit part of fix to scrollbar suppression hack for Leopard
1217
1218         * WebView/WebDynamicScrollBarsView.m:
1219         (-[WebDynamicScrollBarsView reflectScrolledClipView:]): Don't call the superclass method
1220         when scrollbars are suppressed.
1221         (-[WebDynamicScrollBarsView setScrollBarsSuppressed:repaintOnUnsuppress:]): Instead call it
1222         here, when unsuppressing.
1223
1224 2007-08-17  Darin Adler  <darin@apple.com>
1225
1226         Reviewed by Maciej.
1227
1228         - fix <rdar://problem/5414518> Use root URL as origin URL when quarantining downloads
1229
1230         * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::setOriginalURLForDownload):
1231         Extract only the scheme and host name and make the originating URL from that.
1232
1233         * WebKit/StringsNotToBeLocalized.txt: Updated for recent changes.
1234
1235 2007-08-17  Timothy Hatcher  <timothy@apple.com>
1236
1237         Reviewed by Darin.
1238
1239         <rdar://problem/5398301> Xcode threw mutation exception while enumerating subviews (GC only)
1240
1241         I was never able to reproduce this exception. But there can be cases where layout will
1242         trigger JavaScript or plugin code that can modify the WebView view hierarchy during a
1243         recursive enumeration of all the subviews.
1244
1245         This patch does two things:
1246         1) Adds a check in debug builds that will LOG when any view is added or removed during layout.
1247         Noting that added views will not recieve layout this round and might paint without first recieving layout.
1248
1249         2) Recursivly builds up an array of descendant WebHTMLViews before calling layout on them.
1250         This matches the behavior of makeObjectsPerformSelector: in the non-GC case (making a copy
1251         before enumerating.)
1252
1253         * WebView/WebHTMLView.mm:
1254         (-[WebHTMLView _web_setPrintingModeRecursive]): Use _web_addDescendantWebHTMLViewsToArray to build up an array
1255         of WebHTMLViews to enumerate.
1256         (-[WebHTMLView _web_clearPrintingModeRecursive]): Ditto.
1257         (-[WebHTMLView _web_setPrintingModeRecursiveAndAdjustViewSize]): Ditto.
1258         (-[WebHTMLView _web_layoutIfNeededRecursive]): Ditto.
1259         (-[WebHTMLView _layoutIfNeeded]): Moved to WebHTMLViewFileInternal category.
1260         (-[WebHTMLView didAddSubview:]): LOG in debug builds.
1261         (-[WebHTMLView willRemoveSubview:]): Ditto.
1262         (-[NSView _web_addDescendantWebHTMLViewsToArray:]): Recursivly build an array of descendant WebHTMLViews.
1263         * WebView/WebHTMLViewInternal.h: Added a BOOL in WebHTMLViewPrivate to track subview changes (debug only.)
1264
1265 2007-08-17  Anders Carlsson  <andersca@apple.com>
1266
1267         Reviewed by Dave Hyatt.
1268
1269         <rdar://problem/5379040> 
1270         REGRESSION (Tiger-Leopard): ADOBE: Safari calls NPP_SetWindow with bad values sometimes
1271         
1272         Pass the right size when creating the views.
1273         
1274         * WebCoreSupport/WebFrameBridge.mm:
1275         (-[WebFrameBridge viewForPluginWithFrame:URL:attributeNames:attributeValues:MIMEType:DOMElement:loadManually:]):
1276         * WebCoreSupport/WebFrameLoaderClient.h:
1277         * WebCoreSupport/WebFrameLoaderClient.mm:
1278         (WebFrameLoaderClient::createPlugin):
1279
1280 2007-08-13  Geoffrey Garen  <ggaren@apple.com>
1281
1282         Reviewed by Dave Hyatt.
1283         
1284         WebKit changes to support new cache eviction model in WebCore.
1285
1286         * WebView/WebPreferences.m:
1287         (+[WebPreferences initialize]): Modified to reflect new API in WebCore.
1288         * WebView/WebView.mm:
1289         (+[WebView _initializeCacheSizesIfNecessary]): Slightly increased cache
1290         size on low memory systems to avoid affecting the PLT for now.
1291
1292 2007-08-15  Timothy Hatcher  <timothy@apple.com>
1293
1294         Reviewed by Darin.
1295
1296         <rdar://problem/5410937> HIWebView in SimpleCarbonWeb doesn't seem to be getting adequate invalidation when window is resized
1297
1298         HIWebViewCreate now just returns a HIViewRef created with HICocoaViewCreate. This eliminates lots of old code and
1299         makes HIWebView a better citizen starting with Leopard. The old code paths are still needed for Tiger, so now
1300         most of the files in the WebKit/Carbon directory are #ifdef BUILDING_ON_TIGER.
1301
1302         The Tiger code is unchanged and dosen't exhibit the invalidation problem when the window resizes.
1303
1304         * Carbon/CarbonUtils.m:
1305         (WebInitForCarbon): #ifdef BUILDING_ON_TIGER portions of this code that is not needed on Leopard.
1306         * Carbon/CarbonWindowAdapter.h: #ifdef BUILDING_ON_TIGER
1307         * Carbon/CarbonWindowAdapter.m: Ditto.
1308         * Carbon/CarbonWindowContentView.h: Ditto.
1309         * Carbon/CarbonWindowContentView.m: Ditto.
1310         * Carbon/CarbonWindowFrame.h: Ditto.
1311         * Carbon/CarbonWindowFrame.m: Ditto.
1312         * Carbon/HIViewAdapter.h: Ditto.
1313         * Carbon/HIViewAdapter.m: Ditto.
1314         * Carbon/HIWebView.h: Consolidate two #ifdef __OBJC__ blocks into one.
1315         * Carbon/HIWebView.m: Implement Leopard specific HIWebViewCreate, HIWebViewCreateWithClass and HIWebViewGetWebView.
1316         (HIWebViewCreate): Call HIWebViewCreateWithClass passing [WebView class].
1317         (HIWebViewCreateWithClass): Call HICocoaViewCreate with an instance of the class passed in.
1318         (HIWebViewGetWebView): Call HICocoaViewGetView.
1319
1320 2007-08-14  Brady Eidson  <beidson@apple.com>
1321
1322         Reviewed by Darin, John, Maciej, Oliver, and Tim
1323
1324         <rdar://problem/5394708> - Crash on launch with corrupt icon database
1325
1326         Expose some new SPI to help recover from this case should it happen again
1327
1328         * Misc/WebIconDatabase.mm:
1329         (-[WebIconDatabase init]): Use the new _databaseDirectory to determine where to open the database on disk
1330         (+[WebIconDatabase _checkIntegrityBeforeOpening]): Tell the icon database to check integrity when it opens
1331         (-[WebIconDatabase _databaseDirectory]): Moved the database-directory-determining logic here as it's now used in two places
1332         * Misc/WebIconDatabasePrivate.h: Added _checkIntegrityBeforeOpening SPI for clients to give hints about when the
1333           integrity check should run
1334
1335 2007-08-12  Alexey Proskuryakov  <ap@webkit.org>
1336
1337         Reviewed by Darin.
1338
1339         http://bugs.webkit.org/show_bug.cgi?id=4648
1340         Shockwave unable to load GZip'd text resources when server sends Content-Length header
1341
1342         * Plugins/WebBaseNetscapePluginStream.mm:
1343         (-[WebBaseNetscapePluginStream startStreamWithResponse:]): Don't trust 
1344         -[NSURLResponse expectedContentLength] if Content-Encoding is not identity.
1345
1346 2007-08-10  Timothy Hatcher  <timothy@apple.com>
1347
1348         Reviewed by Mark Rowe.
1349
1350         <rdar://problem/5403302> HIWebView.h should be #ifdefed out for 64-bit
1351
1352         * Carbon/HIWebView.h: #ifdef out the header in 64-bit. Adds a comment about 32-bit only.
1353         * Carbon/CarbonUtils.h: Ditto.
1354
1355 2007-08-10  Timothy Hatcher  <timothy@apple.com>
1356
1357         Reviewed by Adam.
1358
1359         <rdar://problem/5394449> Stop using some Carbon UI APIs for 64 bit
1360
1361         Disable NPObject use in 64-bit on Mac OS X. Also generate the 64-bit export file.
1362
1363         * Configurations/WebKit.xcconfig: Point to the generated 64-bit export file.
1364         * Plugins/WebBasePluginPackage.h:
1365         * Plugins/npfunctions.h: #ifdef out this header in 64-bit on Mac OS X.
1366         * WebKit.LP64.exp: Removed.
1367         * WebKit.xcodeproj/project.pbxproj: Generate the the 64-bit export file.
1368         * WebKitPrefix.h: Define WTF_USE_NPOBJECT.
1369
1370 2007-08-10  Anders Carlsson  <andersca@apple.com>
1371
1372         Reviewed by Geoff.
1373
1374         <rdar://problem/5390568>
1375         REGRESSION: -[WebFrame loadHTMLString:baseURL:] leaks the data source
1376         
1377         If the identifier is not in the map, just bail out instead of asserting. This is a better fix for
1378         <rdar://problem/5133420> because WebCore shouldn't have to worry about the lifetime of WebKit objects.
1379         
1380         * WebView/WebDocumentLoaderMac.mm:
1381         (WebDocumentLoaderMac::decreaseLoadCount):
1382
1383 2007-08-10  Oliver Hunt  <oliver@apple.com>
1384
1385         Reviewed by Darin.
1386
1387         Fixed <rdar://problem/5000470> REGRESSION: ATOK IM: reconvert returns incorrect symbol due to inconsistent range domains in TSM by working around <rdar://problem/5400551> [NSAttributedString(WebKitExtras) _web_attributedStringFromRange:] adds whitespace to the requested range
1388
1389         We truncate the returned string to the expected length.
1390
1391         * WebView/WebHTMLView.mm:
1392         (-[WebHTMLView attributedSubstringFromRange:]):
1393
1394 2007-08-09  Mark Rowe  <mrowe@apple.com>
1395
1396         Reviewed by Antti.
1397
1398         <rdar://problem/5400709> Versioning in debug and release builds should include minor and tiny version before +
1399
1400         * Configurations/Version.xcconfig:
1401         * WebKit.xcodeproj/project.pbxproj: Add a shell script phase to make to dependency between
1402         Version.xcconfig and Info.plist explicit to Xcode.
1403
1404 2007-08-08  Kevin Decker <kdecker@apple.com>
1405
1406         Reviewed by Anders Carlsson.
1407
1408         Fixed: <rdar://problem/5394449> Stop using some Carbon UI APIs for 64 bit
1409         
1410         #ifdef'd out Netscape style plug-ins on 64-bit because Mac OS X doesn't support 64-bit Carbon UI.
1411         
1412         * Plugins/WebBaseNetscapePluginStream.h:
1413         * Plugins/WebBaseNetscapePluginStream.mm:
1414         * Plugins/WebBaseNetscapePluginView.h:
1415         * Plugins/WebBaseNetscapePluginView.mm:
1416         (+[WebBaseNetscapePluginView getCarbonEvent:]):
1417         (TSMEventHandler):
1418         * Plugins/WebBaseNetscapePluginViewInternal.h:
1419         * Plugins/WebBaseNetscapePluginViewPrivate.h:
1420         * Plugins/WebBasePluginPackage.m:
1421         (+[WebBasePluginPackage pluginWithPath:]):
1422         * Plugins/WebNetscapePluginEmbeddedView.h:
1423         * Plugins/WebNetscapePluginEmbeddedView.mm:
1424         * Plugins/WebNetscapePluginPackage.h:
1425         * Plugins/WebNetscapePluginPackage.m:
1426         * Plugins/WebNetscapePluginStream.h:
1427         * Plugins/WebNetscapePluginStream.mm:
1428         * Plugins/WebPluginDatabase.m:
1429         (-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]):
1430         * Plugins/npapi.m:
1431         * WebCoreSupport/WebFrameBridge.mm:
1432         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:DOMElement:loadManually:]):
1433         * WebView/WebFrame.mm:
1434         * WebView/WebFramePrivate.h:
1435         * WebView/WebHTMLView.mm:
1436         (-[NSArray _web_makePluginViewsPerformSelector:withObject:]):
1437         * WebView/WebHTMLViewInternal.h:
1438
1439 2007-08-07  David Hyatt  <hyatt@apple.com>
1440
1441         Fix a botched backout of the Quicktime plugin clipping fix that broke Java.  The plugin view should not
1442         be set to autosize with the parent view.  Also, cleanup of script objects was removed accidentally as
1443         well.
1444
1445         Reviewed by olliej
1446
1447         * Plugins/WebPluginController.mm:
1448         (-[WebPluginController destroyPlugin:]):
1449         (-[WebPluginController destroyAllPlugins]):
1450         * WebCoreSupport/WebFrameBridge.mm:
1451         (-[WebFrameBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:DOMElement:loadManually:]):
1452
1453 2007-08-03  Brady Eidson  <beidson@apple.com>
1454
1455         Reviewed by Oliver
1456
1457         Fix for http://bugs.webkit.org/show_bug.cgi?id=14824 and <rdar://problem/5372989>
1458
1459         When unregistering a MIMEType, remove it from the WebCore registry unconditionally
1460         When registrying a MIMEType whose view class is WebHTMLView, add it to the WebCore registry
1461
1462         * WebView/WebView.mm:
1463         (+[WebView _unregisterViewClassAndRepresentationClassForMIMEType:]): 
1464         (+[WebView _registerViewClass:representationClass:forURLScheme:]):
1465         (+[WebView registerViewClass:representationClass:forMIMEType:]):
1466
1467 2007-08-03  Timothy Hatcher  <timothy@apple.com>
1468
1469         Reviewed by Mark Rowe.
1470
1471         Correct the bundle version check to work in Debug and Release builds too.
1472
1473         * WebKit.xcodeproj/project.pbxproj:
1474
1475 2007-08-02  Brady Eidson  <beidson@apple.com>
1476
1477         Reviewed by Tim
1478
1479         <rdar://problem/5381463> - setMIMETypesShownAsHTML mutates while enumerating
1480
1481         * WebView/WebView.mm:
1482         (+[WebView setMIMETypesShownAsHTML:]): Copy the dictionary before we work with it.
1483
1484 2007-08-02  Alice Liu  <alice.liu@apple.com>
1485
1486         Reviewed by Kevin McCullough.
1487
1488         fixed <rdar://problem/5310312> REGRESSION: javascript is mis-escaped at http://labs.zarate.org/passwd causing bookmarklet to break
1489
1490         * Misc/WebNSURLExtras.mm:
1491         (+[NSURL _web_URLWithUserTypedString:relativeToURL:]):
1492         (-[NSURL _web_userVisibleString]):
1493         (-[NSURL _web_URLWithLowercasedScheme]):
1494         (-[NSURL _web_dataForURLComponentType:]):
1495         These 4 changes are just casting changes.
1496
1497         (-[NSString _webkit_stringByReplacingValidPercentEscapes]):
1498         This change replaces the call to an NSURL method with a webcore one that doesn't abort the escaping effort once an illegal character is encountered. 
1499
1500 2007-08-01  Anders Carlsson  <andersca@apple.com>
1501
1502         Fix build.
1503         
1504         * Misc/WebNSURLExtras.mm:
1505         (+[NSURL _web_URLWithUserTypedString:relativeToURL:]):
1506         (-[NSURL _web_userVisibleString]):
1507         (-[NSURL _web_URLWithLowercasedScheme]):
1508         (-[NSURL _web_dataForURLComponentType:]):
1509
1510 2007-08-01  Alice Liu  <alice.liu@apple.com>
1511
1512         Reviewed by .
1513
1514         Making WebNSURLExtras objc++
1515
1516         * Misc/WebNSURLExtras.m: Removed.
1517         * Misc/WebNSURLExtras.mm: Copied from WebKit/Misc/WebNSURLExtras.m.
1518         * WebKit.xcodeproj/project.pbxproj:
1519
1520 2007-08-01  Darin Adler  <darin@apple.com>
1521
1522         Reviewed by Anders Carlsson and Kevin Decker.
1523
1524         - fix <rdar://problem/5377432> Removal of MakeDataExecutable from 64-bit breaks WebKit build
1525
1526         The trick was to ifdef out more of the code that's only needed to support CFM, which exists
1527         only for 32-bit PowerPC.
1528
1529         * Plugins/WebNetscapePluginPackage.h: Define a SUPPORT_CFM symbol in this internal header when
1530         we support CFM. We support it only on 32-bit PowerPC. Only define the isBundle, isCFM, and
1531         connID fields when SUPPORT_CFM is on. Also use ResFileRefNum instead of SInt16.
1532         * Plugins/WebNetscapePluginPackage.m: Only compile the function pointer and transition vector
1533         functions when SUPPORT_CFM is on.
1534         (-[WebNetscapePluginPackage openResourceFile]): Put the non-bundle case inside a SUPPORT_CFM
1535         ifdef, since all non-CFM plug-ins are bundles.
1536         (-[WebNetscapePluginPackage closeResourceFile:]): Ditto.
1537         (-[WebNetscapePluginPackage _initWithPath:]): Use SUPPORT_CFM to compile out the code for
1538         non-bundle and bundle-based CFM plug-ins, and code that sets isBundle and isCFM.
1539         (-[WebNetscapePluginPackage executableType]): Put the CFM case inside SUPPORT_CFM.
1540         (-[WebNetscapePluginPackage load]): Put the non-bundle and CFM cases inside SUPPORT_CFM.
1541         There was a bit of dead code here.
1542         (-[WebNetscapePluginPackage _unloadWithShutdown:]): Put the non-bundle case inside
1543         SUPPORT_CFM.
1544
1545 2007-07-31  Timothy Hatcher  <timothy@apple.com>
1546
1547         Reviewed by Oliver and Beth.
1548
1549         <rdar://problem/5211271> ADOBE Leopard 9A410: At the first Launching InDesign after deactivate, EULA page gets blanked.
1550
1551         Check for more Adobe applications that need the frame reload quirk. Also cache the answer
1552         so the version check dosen't happen more than once.
1553
1554         * WebView/WebView.mm:
1555         (-[WebView _needsAdobeFrameReloadingQuirk]):
1556         (-[WebView _updateWebCoreSettingsFromPreferences:]):
1557
1558 2007-07-30  Adele Peterson  <adele@apple.com>
1559
1560         Reviewed by Oliver.
1561
1562         Fix for <rdar://problem/5308020> REGRESSION: Command-N with Dvorak-Qwerty keyboard layout stopped working inside web page text fields
1563
1564         * WebView/WebHTMLView.mm: (-[WebHTMLView _handleStyleKeyEquivalent:]):
1565         The input method may have modified the character we get, so don't use charactersIgnoringModifiers to interpret the character we get.
1566
1567 2007-07-30  John Sullivan  <sullivan@apple.com>
1568
1569         Reviewed by Darin
1570         
1571         - fixed <rdar://problem/5216176> Need WebKit SPI to allow clients using embedded WebViews to avoid 
1572           clipping ends of some printed pages
1573           
1574         This provides Mail, and other clients that print views that embed WebViews, a way to ensure that
1575         the HTML is laid out for printing before pagination occurs.
1576
1577         * WebView/WebHTMLViewPrivate.h:
1578         new SPI method -_layoutForPrinting
1579         
1580         * WebView/WebHTMLView.mm:
1581         (-[WebHTMLView _web_setPrintingModeRecursiveAndAdjustViewSize]):
1582         new method, just like existing _web_setPrintingModeRecursive except passes YES for adjustViewSize
1583         (-[WebHTMLView _layoutForPrinting]):
1584         new SPI method, sets printing mode temporarily to adjust the view size for printing 
1585         (-[NSView _web_setPrintingModeRecursiveAndAdjustViewSize]):
1586         new helper method to do the recursion
1587
1588 2007-07-30  Adele Peterson  <adele@apple.com>
1589
1590         Reviewed by Darin.
1591
1592         Fix for <rdar://problem/5367919> A crash occurs at WebCore::Frame::isFrameSet() when attempting to print a iframe before it loads at http://www.monster.com/
1593
1594         * WebView/WebHTMLView.mm: (-[WebHTMLView knowsPageRange:]): Nil check for frame.
1595
1596 2007-07-30  Anders Carlsson  <andersca@apple.com>
1597
1598         Reviewed by Darin.
1599
1600         <rdar://problem/5370710> 
1601         REGRESSION: After switching from Bookmark view, the Find Banner won't appear while displaying a PDF file
1602
1603         Implement hasHTMLView.
1604         
1605         * WebCoreSupport/WebFrameLoaderClient.h:
1606         * WebCoreSupport/WebFrameLoaderClient.mm:
1607         (WebFrameLoaderClient::hasHTMLView):
1608
1609 2007-07-30  Justin Garcia  <justin.garcia@apple.com>
1610
1611         Reviewed by Tristan.
1612         
1613         <rdar://problem/5098931> Attachments are lost when they are moved into a ToDo after a delete
1614         
1615         Mail needs to be asked if it is OK to do the content movement that happens 
1616         after a deleting in a situation like this one: 
1617         <div contenteditable="plaintext-only">foo</div><div>^bar</div> 
1618         so that they can prevent the move or so that they can save content that 
1619         will be stripped by the move. This could have been done with shouldInsertNode 
1620         and a new WebViewInsertAction for "moves", but WebKit clients like Mail and 
1621         DashCode think that a shouldInsert* means that the user pasted something and
1622         perform actions only appropriate for pastes.  This change is less risky because
1623         it won't require those clients to change their code.
1624
1625         * DefaultDelegates/WebDefaultEditingDelegate.m:
1626         (-[WebDefaultEditingDelegate webView:shouldMoveRangeAfterDelete:replacingRange:]):
1627         * WebCoreSupport/WebEditorClient.h:
1628         * WebCoreSupport/WebEditorClient.mm:
1629         (WebEditorClient::shouldMoveRangeAfterDelete):
1630         * WebView/WebEditingDelegatePrivate.h:
1631
1632 2007-07-29  Adele Peterson  <adele@apple.com>
1633
1634         Reviewed by John.
1635
1636         WebKit part of fix for <rdar://problem/5102522> REGRESSION: Can't tab to webview that doesn't have editable content
1637
1638         * WebView/WebHTMLView.mm: (-[WebHTMLView becomeFirstResponder]): Call new setInitialFocus method instead of advanceFocus.
1639
1640 2007-07-27  Darin Adler  <darin@apple.com>
1641
1642         - fix build
1643
1644         * WebKitPrefix.h: Removed the USING_WEBCORE_XXX definitions.
1645         * WebView/WebHTMLView.mm:
1646         (-[WebHTMLView delete:]): Fixed this to use WebCore again; I accidentally revived a dead
1647         code path that didn't work in the last patch!
1648         (-[WebHTMLView deleteToMark:]): Ditto.
1649         (-[WebHTMLView copy:]): Removed the unused side of the ifdef.
1650         (-[WebHTMLView cut:]): Ditto.
1651         (-[WebHTMLView paste:]): Ditto.
1652
1653 2007-07-27  Darin Adler  <darin@apple.com>
1654
1655         Reviewed by Tim Hatcher and Oliver Hunt.
1656
1657         - fix <rdar://problem/5355815> webView:doCommandBySelector: isn't getting called for copy:
1658
1659         Added code so that webView:doCommandBySelector: is called for every command.
1660
1661         * WebView/WebHTMLView.mm: Made 44 of the commands use the WEBCORE_COMMAND macro instead
1662         of being handwritten. For all the others, added invocation of COMMAND_PROLOGUE macro at
1663         the start of the command.
1664         (-[WebHTMLView callDelegateDoCommandBySelectorIfNeeded:]): Added.
1665         (-[WebHTMLView callWebCoreCommand:]): Added.
1666         (-[WebHTMLView delete:]): Removed unused code path -- easy to bring back some day, but
1667         we don't need it compiled in.
1668         (-[WebHTMLView deleteBackwardByDecomposingPreviousCharacter:]): Changed so this doesn't
1669         call deleteBackward: any more so we don't call the delegate two times.
1670         (-[WebHTMLView deleteToMark:]): Changed so this doesn't call delete: any more so we don't
1671         call the delegate two times.
1672         (-[WebHTMLView selectToMark:]): Changed so this doesn't call setMark: any more so we don't
1673         call the delegate two times.
1674         (-[WebHTMLView doCommandBySelector:]): Added code to set the private variable
1675         selectorForDoCommandBySelector. This allows callDelegateDoCommandBySelectorIfNeeded to
1676         detect that we've already called the delegate and avoids calling it twice.
1677
1678         * WebView/WebHTMLViewInternal.h: Added the selectorForDoCommandBySelector field.
1679
1680 2007-07-26  Alexey Proskuryakov  <ap@webkit.org>
1681
1682         Reviewed by Oliver.
1683
1684         http://bugs.webkit.org/show_bug.cgi?id=14733
1685         Add a logging channel for text input
1686         <rdar://problem/5364667>
1687
1688         * Misc/WebKitLogging.h:
1689         * Misc/WebKitLogging.m:
1690         (WebKitInitializeLoggingChannelsIfNecessary):
1691         * WebView/WebHTMLView.mm:
1692         (-[WebHTMLView validAttributesForMarkedText]):
1693         (-[WebHTMLView textStorage]):
1694         (-[WebHTMLView characterIndexForPoint:]):
1695         (-[WebHTMLView firstRectForCharacterRange:]):
1696         (-[WebHTMLView selectedRange]):
1697         (-[WebHTMLView markedRange]):
1698         (-[WebHTMLView attributedSubstringFromRange:]):
1699         (-[WebHTMLView hasMarkedText]):
1700         (-[WebHTMLView unmarkText]):
1701         (-[WebHTMLView setMarkedText:selectedRange:]):
1702         (-[WebHTMLView doCommandBySelector:]):
1703         (-[WebHTMLView insertText:]):
1704
1705 2007-07-26  Darin Adler  <darin@apple.com>
1706
1707         - fix Tiger build
1708
1709         * Misc/WebTypesInternal.h: For use inside the library, use NSInteger and
1710         NSUInteger, just like on Leopard. WebNSInteger and WebNSUInteger are still
1711         present, but they are used in public and private headers only.
1712
1713         * Carbon/CarbonWindowAdapter.m:
1714         * Carbon/CarbonWindowFrame.m:
1715         * DefaultDelegates/WebScriptDebugServer.m:
1716         * History/WebBackForwardList.mm:
1717         * Misc/WebDownload.m:
1718         * Misc/WebSearchableTextView.m:
1719         * Plugins/WebBaseNetscapePluginView.mm:
1720         * WebCoreSupport/WebFrameLoaderClient.mm:
1721         * WebView/WebHTMLView.mm:
1722         * WebView/WebPDFView.mm:
1723         * WebView/WebView.mm:
1724         * WebView/WebViewInternal.h:
1725         Update all implementation files and internal headers to use NSInteger and
1726         NSUInteger rather than WebNSInteger and WebNSUInteger.
1727
1728 2007-07-26  John Sullivan  <sullivan@apple.com>
1729
1730         Reviewed by Kevin Decker
1731         
1732         - fixed <rdar://problem/5362989> Searching a pdf in some modes shows hilights for all instances 
1733           of the word, even those not on the current page
1734           
1735         It turns out that there were three different issues here, all contributing to incorrect display
1736         of multiple matches for PDF pages in certain display modes. (1) in non-continuous display modes,
1737         we weren't updating the match rects when the displayed page is changed with page up/down (e.g.);
1738         (2) the mechanism to update the match rects on scrolling was busted except for the first scroll
1739         away from 0,0; (3) the PDFKit API returns selection bounds for non-displayed pages in non-continuous
1740         modes just as if they were the displayed pages. This patch fixes all three issues.
1741
1742         * WebView/WebPDFView.h:
1743         made ivar name even longer
1744         
1745         * WebView/WebPDFView.mm:
1746         (-[WebPDFView setPDFDocument:]):
1747         updated for ivar name change
1748         (-[WebPDFView viewDidMoveToWindow]):
1749         observe page-change notifications as well as the others; this is necessary because in the
1750         non-continuous modes the view can be completely updated without any scrolling involved (problem 1)
1751         (-[WebPDFView viewWillMoveToWindow:]):
1752         stop observing page-change notifications
1753         (-[WebPDFView rectsForTextMatches]):
1754         skip any pages that aren't visible; this avoids treating matches on non-displayed non-continous
1755         modes as if they were on the displayed page (problem 3)
1756         (-[WebPDFView _PDFDocumentViewMightHaveScrolled:]):
1757         after checking whether scroll position has changed since we last checked it, remember the new
1758         one (d'oh!) (problem 2)
1759
1760         (-[WebPDFView _scaleOrDisplayModeOrPageChanged:]):
1761         renamed to include page changes
1762         
1763         (-[WebPDFView _visiblePDFPages]):
1764         new method, returns the set of pages that are at least partly visible
1765
1766 2007-07-24  Oliver Hunt  <oliver@apple.com>
1767
1768         Reviewed by Adam and Justin.
1769
1770         <rdar://problem/5141779> WebView editableDOMRangeForPoint: & moveDragCaretToPoint: returns last position in DOMText range
1771
1772         editableDOMRangeForPoint:, moveDragCaretToPoint:, and removeDragCaret now call directly into
1773         WebCore without relying on bridge look up through the now removed _bridgeAtPoint:.
1774
1775         * WebKit.xcodeproj/project.pbxproj:
1776         * WebView/WebView.mm:
1777         (-[WebView moveDragCaretToPoint:]):
1778         (-[WebView removeDragCaret]):
1779         (-[WebView editableDOMRangeForPoint:]):
1780
1781 2007-07-24  Kevin Decker  <kdecker@apple.com>
1782
1783         Reviewed by Anders.
1784
1785         <rdar://problem/4699455> REGRESSION (Safari 2->Safari 3): Adobe Reader 7.0.8 plug-in doesn't work
1786         
1787         * Plugins/WebNetscapePluginEmbeddedView.h: Added a #define that renames this class to "WebNetscapePluginDocumentView"
1788         This is necessary because the Adobe 7.x Acrobat plug-in has a hard coded check for a view named "WebNetscapePluginDocumentView"
1789         and will not function correctly if it doesn't find a view in the hierarchy without the old class name.
1790
1791 2007-07-24  Mark Rowe  <mrowe@apple.com>
1792
1793         Reviewed by Antti.
1794
1795         <rdar://problem/5356666> NSMenuItem's seen leaking on buildbot
1796
1797         * WebCoreSupport/WebContextMenuClient.mm:
1798         (WebContextMenuClient::contextMenuItemSelected): Release platformItem as we were transferred its ownership by releasePlatformDescription.
1799
1800 2007-07-23  Oliver Hunt  <oliver@apple.com>
1801
1802         Reviewed by Darin.
1803
1804         We have to be able to support insertText: followed by doCommandBySelector: in 
1805         order to support the 2- and 3-Set Korean and RuSwitcher IMs at least.
1806
1807         * WebView/WebHTMLView.mm:
1808         (-[WebHTMLView insertText:]):
1809
1810 2007-07-23  Alice Liu  <alice.liu@apple.com>
1811
1812         Reverting change 24535 now that a solution has been found that doesn't 
1813         involve exposing an interface unnecessarily.
1814
1815         * WebView/WebHTMLView.mm:
1816         * WebView/WebHTMLViewPrivate.h:
1817
1818 2007-07-23  Alice Liu  <alice.liu@apple.com>
1819
1820         Reviewed by Oliver Hunt.
1821
1822         Expose [WebHTMLView hasMarkedText] to 
1823         fix <rdar://problem/4830074> autocomplete breaks Japanese typing
1824
1825         * WebView/WebHTMLView.mm:
1826         * WebView/WebHTMLViewPrivate.h:
1827
1828 2007-07-22  Darin Adler  <darin@apple.com>
1829
1830         * StringsNotToBeLocalized.txt: Updated for recent changes.
1831
1832 2007-07-21  Adam Roben  <aroben@apple.com>
1833
1834         Fix REGRESSION: Right-click/control-click broken
1835
1836         http://bugs.webkit.org/show_bug.cgi?id=14658
1837         <rdar://problem/5346830>
1838
1839         Reviewed by Mitz.
1840
1841         * WebCoreSupport/WebContextMenuClient.mm:
1842         (fixMenusToSendToOldClients): Update defaultItemsCount after removing
1843         items from the defaultItems array.
1844
1845 2007-07-20  Oliver Hunt  <oliver@apple.com>
1846
1847         Reviewed by Adele.
1848
1849         <rdar://problem/5319438> REGRESSION: Cannot paste into an active inline input area (14522)
1850         http://bugs.webkit.org/show_bug.cgi?id=14522
1851
1852         AppKit sends noop: to -[WebHTMLView doCommandBySelector:] when an IM does not handle event,
1853         we now check this as it is necessary to work around some IMs that do send messages 
1854         (such as insertText: rather than unmarkText: to confirm a composition)
1855
1856         * WebView/WebHTMLView.mm:
1857         (-[WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]):
1858         (-[WebHTMLView doCommandBySelector:]):
1859         * WebView/WebHTMLViewInternal.h:
1860
1861 2007-07-20  Brady Eidson  <beidson@apple.com>
1862
1863         Reviewed by Adele and Andersca
1864
1865         <rdar://problem/5336105> - WebBackForwardList created from scratch is unusable (always leads to crash)
1866
1867         * History/WebBackForwardList.mm:
1868         (-[WebBackForwardList init]): Have a default initializer that uses an empty BackFowardList not associated with a page.
1869
1870         * WebView/WebFrame.mm:
1871         (kit): For clarity's sake, this should return nil, not 0
1872
1873 2007-07-20  Justin Garcia  <justin.garcia@apple.com>
1874
1875         Reviewed by Darin.
1876         
1877         <rdar://problem/5109817> Ctrl-click on word in non-editable text doesn't select it
1878
1879         * WebCoreSupport/WebEditorClient.h:
1880         * WebCoreSupport/WebEditorClient.mm: Removed the method
1881         for enabling/disabling word selection on right click.
1882         * WebView/WebView.mm: Ditto.
1883         * WebView/WebViewPrivate.h: Removed the getter/setter entirely, 
1884         it was in a private Category for Mail, but wasn't used by Mail
1885         on Tiger or Leopard, they apparently implement word selection on 
1886         their own.
1887
1888 2007-07-20  Timothy Hatcher  <timothy@apple.com>
1889
1890         Reviewed by Darin.
1891
1892         <rdar://problem/5199812> WebView needs to adopt viewWillDraw (moving off of _propagateDirtyRectsToOpaqueAncestors)
1893         <rdar://problem/5017301> REGRESSION: Scroller in Widget Manager splits down the middle while scrolling
1894
1895         On Leopard _propagateDirtyRectsToOpaqueAncestors is no longer called by AppKit. Also marking new dirty rects
1896         underneath _recursiveDisplayRectIfNeededIgnoringOpacity will wait until the next runloop to draw them,
1897         causing rendering to happen in two steps instead of one as WebCore expected.
1898
1899         * WebView/WebHTMLView.mm:
1900         (-[WebHTMLView _topHTMLView]): Move to the file internal category so we can use it in viewWillDraw.
1901         (-[WebHTMLView _isTopHTMLView]): Ditto.
1902         (-[WebHTMLView _propagateDirtyRectsToOpaqueAncestors]): #ifdef for Tiger only.
1903         (-[WebHTMLView viewWillDraw]): Do a recursive layout if this is the top WebHTMLView.
1904         (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
1905           Don't do layout here on Leopard since viewWillDraw handled it.
1906         (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]): Ditto.
1907
1908 2007-07-20  Beth Dakin  <bdakin@apple.com>
1909
1910         Reviewed by Tim and Geoff.
1911
1912         Fix for <rdar://problem/5346855> Mail crashes at 
1913         WebCore::RenderTableSection:paint + 846 when attempting to display 
1914         a HTML based message
1915
1916         After reapplying styles, the RenderView needs layout. However, 
1917         layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize used to 
1918         return early if the WebHTMLView itself does not need layout. 
1919         Because the WebHTMLView is not necessarily in synch with the 
1920         RenderTree, returning early here can get us into a bad situation 
1921         where we paint before laying out the Render Tree. This patch checks 
1922         both the WebHTMLView and the bridge (which checks the RenderView, 
1923         etc), so that we do not return early without laying out the Render 
1924         Tree. 
1925
1926         Some day, we should phase out WebHTMLView keeping track of 
1927         needsLayout at all. But that is a bit beyond the scope of this fix.  
1928
1929         * WebView/WebHTMLView.mm:
1930         (-[WebHTMLView layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
1931
1932 2007-07-20  John Sullivan  <sullivan@apple.com>
1933
1934         Reviewed by Darin Adler and David Harrison
1935         
1936         - fixed <rdar://problem/5307075> REGRESSION: Bottom of some printed pages are truncated
1937         
1938         The "avoid orphan" code I added a year ago was causing the page to be imaged to a larger 
1939         height (good), but not shrinking everything to compensate (bad). Bad one-year-ago me!
1940
1941         * WebView/WebHTMLViewInternal.h:
1942         added avoidingPrintOrphan boolean
1943
1944         * WebView/WebHTMLView.mm:
1945         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
1946         clear _private->avoidingPrintOrphan when clearing _private->printing
1947         (-[WebHTMLView _scaleFactorForPrintOperation:]):
1948         take _private->avoidingPrintOrphan into account when computing the scale factor
1949         (-[WebHTMLView knowsPageRange:]):
1950         set _private->avoidingPrintOrphan when we're shrinking to avoid an orphan
1951
1952 2007-07-19  Adam Roben  <aroben@apple.com>
1953
1954         Fix <rdar://problem/5344972> REGRESSION: A error dialog occurs when
1955         attempting to ctrl-click in a iChat message window (webview)
1956
1957         Reviewed by Oliver.
1958
1959         * WebCoreSupport/WebContextMenuClient.mm:
1960         (fixMenusToSendToOldClients): Don't check for the Inspect Element item
1961         if we have fewer than 2 items.
1962
1963 2007-07-18  Geoffrey Garen  <ggaren@apple.com>
1964
1965         Reviewed by Dave Hyatt.
1966         
1967         <rdar://problem/5345099>
1968         
1969         Reduced default WebCore cache size from 32 MB to 23 MB on systems below 
1970         512 MB RAM. This improves RPRVT usage in the Safari pageout test by 
1971         ~10% on a system with 384 MB RAM.
1972         
1973         At 23 MB, no extra resources are evicted from the cache during a PLT 
1974         run, so this is a safe change PLT-wise. 23 MB is also seems to be a
1975         generous number in real world usage.
1976
1977         * WebView/WebPreferences.m:
1978         (+[WebPreferences initialize]):
1979
1980 2007-07-18  Anders Carlsson  <andersca@apple.com>
1981
1982         Reviewed by Geoff.
1983
1984         <rdar://problem/5341133> REGRESSION (Safari 2->Safari 3): DjVu plug-in doesn't load in Safari 3
1985         
1986         The DjVu plug-in uses the size of the passed in NPNetscapeFuncs struct to copy it over to a NPNetscapeFuncs struct
1987         whose size was determined when DjVu was compiled. This means that when we add extra functions to the vtable, 
1988         DjVu will segfault copying it into the (too small) destination struct.
1989         
1990         Fix this by special-casing the DjVu plug-in and setting the NPNetscapeFuncs size to be the same size as what DjVu expects.
1991         
1992         * Plugins/WebNetscapePluginPackage.m:
1993         (-[WebNetscapePluginPackage _applyDjVuWorkaround]):
1994         (-[WebNetscapePluginPackage load]):
1995
1996 2007-07-18  Timothy Hatcher  <timothy@apple.com>
1997
1998         Reviewed by Adam.
1999
2000         <rdar://problem/5343767> Should have a way to disable the Web Inspector
2001
2002         Adds a new DisableWebKitDeveloperExtras default that will force the Web Inspector to be disabled.
2003         This overrides the WebKitDeveloperExtras and IncludeDebugMenu default. It also disables
2004         the Web Inspector in Debug builds.
2005
2006         * WebView/WebView.mm:
2007         (+[WebView _developerExtrasEnabled]): Check for the DisableWebKitDeveloperExtras default.
2008         (-[WebView _commonInitializationWithFrameName:groupName:]): Make a new WebInspectorClient when making the Page.
2009
2010 2007-07-18  Anders Carlsson  <andersca@apple.com>
2011
2012         Build fix.
2013         
2014         * Misc/WebNSAttributedStringExtras.mm:
2015
2016 2007-07-18  Sam Weinig  <sam@webkit.org>
2017
2018         Rubber-stamped by Adam Roben.
2019
2020         Update after renaming MimeTypeRegistry to MIMETypeRegistry.
2021
2022         * Misc/WebNSPasteboardExtras.mm:
2023         (-[NSPasteboard _web_writePromisedRTFDFromArchive:containsImage:]):
2024         * WebCoreSupport/WebFrameBridge.mm:
2025         (-[WebFrameBridge determineObjectFromMIMEType:URL:]):
2026         * WebView/WebDataSource.mm:
2027         (-[WebDataSource _documentFragmentWithArchive:]):
2028         * WebView/WebHTMLRepresentation.mm:
2029         (+[WebHTMLRepresentation supportedNonImageMIMETypes]):
2030         (+[WebHTMLRepresentation supportedImageMIMETypes]):
2031         * WebView/WebHTMLView.mm:
2032         (-[WebHTMLView _imageExistsAtPaths:]):
2033
2034 2007-07-18  Tristan O'Tierney  <tristan@apple.com>
2035
2036         Reviewed by Maciej Stachowiak.
2037         
2038         <rdar://problem/5341334> Alt-clicking a link in Safari does not register original URL info with gatekeeper
2039         <rdar://problem/5342570> REGRESSION: A hang occurs when attempting to open a attached file from a .Mac web mail message
2040
2041         * WebCoreSupport/WebFrameLoaderClient.h:
2042         Added a new method, setOriginalURLForDownload, for both download() 
2043         and startDownload() to share.
2044         
2045         * WebCoreSupport/WebFrameLoaderClient.mm:
2046         (WebFrameLoaderClient::download):
2047         Moved all the gatekeeper code into setOriginalURLForDownload.
2048         
2049         (WebFrameLoaderClient::setOriginalURLForDownload):
2050         Same code that was in download() but moved into a single place for both
2051         startDownload and download to use.  Also returned the boolean logic
2052         for detecting _wasUserGesture back to it's previous state, since my prior change
2053         was incorrect.  Additionally I found a loop index bug with backListCount and fixed it.
2054         
2055         (WebFrameLoaderClient::startDownload):
2056         Calls out to setOriginalURLForDownload after a download is created.
2057         
2058         * WebView/WebView.mm:
2059         (-[WebView _downloadURL:]):
2060         Changed to return the WebDownload object created inside _downloadURL
2061         
2062         * WebView/WebViewInternal.h:
2063         Changed _downloadURL to return the WebDownload it creates.
2064
2065 2007-07-17  Timothy Hatcher  <timothy@apple.com>
2066
2067         Reviewed by Geoff.
2068
2069         <rdar://problem/5336267> loadData:MIMEType:textEncodingName:baseURL: doesn't like relative URLs
2070
2071         Get the absoluteURL from any user supplied NSURL before we pass it down to WebCore.
2072
2073         * WebView/WebFrame.mm:
2074         (-[WebFrame _loadURL:referrer:intoChild:]):
2075         (-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
2076         * WebView/WebView.mm:
2077         (-[WebView userAgentForURL:]):
2078
2079 2007-07-17  Adam Roben  <aroben@apple.com>
2080
2081         Fix Bug 14324: Cannot remove/customize the "Inspect Element" contextual menu item
2082         http://bugs.webkit.org/show_bug.cgi?id=14324
2083
2084         Only clients linking against new versions of WebKit will see the item.
2085         I've maintained our behavior for old clients of not including the
2086         Inspect Element item in the menu items passed to the UI delegate.
2087
2088         Reviewed by Tim.
2089
2090         * Misc/WebKitVersionChecks.h: Added a new constant.
2091         * WebCoreSupport/WebContextMenuClient.mm:
2092         (isPreInspectElementTagClient): Added.
2093         (fixMenusToSendToOldClients): Return an array of items that should be
2094         appended to the menu received from the delegate.
2095         (fixMenusReceivedFromOldClients): Append the saved items to the array.
2096         (WebContextMenuClient::getCustomMenuFromDefaultItems): Retain/release
2097         the saved items.
2098
2099 2007-07-17  Adam Roben  <aroben@apple.com>
2100
2101         Remove WebContextMenuClient::shouldIncludeInspectElementItem
2102
2103         Reviewed by Tim.
2104
2105         * WebCoreSupport/WebContextMenuClient.h:
2106         * WebCoreSupport/WebContextMenuClient.mm:
2107
2108 2007-07-17  Adam Roben  <aroben@apple.com>
2109
2110         Initialize Settings::developerExtrasEnabled
2111
2112         Reviewed by Tim.
2113
2114         * WebView/WebView.mm:
2115         (-[WebView _updateWebCoreSettingsFromPreferences:]):
2116
2117 2007-07-17  Geoffrey Garen  <ggaren@apple.com>
2118
2119         Build fix.
2120
2121         * WebView/WebFrame.mm:
2122         (-[WebFrame _loadURL:referrer:intoChild:]):
2123         * WebView/WebFramePrivate.h:
2124
2125 2007-07-17  Tristan O'Tierney  <tristan@apple.com>
2126
2127         Reviewed by Maciej Stachowiak.
2128
2129         <rdar://problem/5294691> Source of file is misrepresented if downloaded by typing in URL in Safari address bar
2130
2131         * WebCoreSupport/WebFrameLoaderClient.h:
2132         * WebCoreSupport/WebFrameLoaderClient.mm:
2133         (WebFrameLoaderClient::download):
2134         Revised code to check the initial request's referrer before assuming it has a history to check.
2135
2136 2007-07-16  Brady Eidson  <beidson@apple.com>
2137
2138         Reviewed by Adam
2139
2140         Begin the arduous task of localizing FTP directory listings while removing a global initializer!
2141
2142         * English.lproj/Localizable.strings:
2143         * WebCoreSupport/WebViewFactory.mm:
2144         (-[WebViewFactory unknownFileSizeText]):
2145
2146 2007-07-16  Adam Roben  <aroben@apple.com>
2147
2148         Move printing from WebFrameBridge to WebChromeClient
2149
2150         Reviewed by Darin.
2151
2152         * WebCoreSupport/WebChromeClient.h: Updated for ChromeClient changes.
2153         * WebCoreSupport/WebChromeClient.mm:
2154         (WebChromeClient::print): Moved code from WebFrameBridge.
2155         * WebCoreSupport/WebFrameBridge.mm: Removed -print.
2156
2157 2007-07-16  Darin Adler  <darin@apple.com>
2158
2159         * StringsNotToBeLocalized.txt: Update for recent changes.
2160
2161 2007-07-16  John Sullivan  <sullivan@apple.com>
2162
2163         Reviewed by Kevin Decker and Darin Adler
2164         
2165         - fixed <rdar://problem/5337529> Holes in Find banner overlay on PDF pages are left in wrong place after changing scale
2166
2167         * WebView/WebPDFView.mm:
2168         (-[WebPDFView _scaleOrDisplayModeChanged:]):
2169         tell UI delegate that the entire PDF view has been redrawn
2170
2171 2007-07-14  Brady Eidson  <beidson@apple.com>
2172
2173         Reviewed by Sam Weinig
2174
2175         Initial check-in for <rdar://problem/3154486> - Supporting FTP directory listings in the browser
2176
2177         * WebView/WebPreferenceKeysPrivate.h: Added preference keys for the FTP template location, as well as to force 
2178           FTP directory listings, bypassing the policy delegate.  This is necessary to test the new feature until browser
2179           policy delegate support is added.
2180
2181         * WebView/WebPreferences.m:
2182         (-[WebPreferences _setFTPDirectoryTemplatePath:]):
2183         (-[WebPreferences _ftpDirectoryTemplatePath]):
2184         (-[WebPreferences _setForceFTPDirectoryListings:]):
2185         (-[WebPreferences _forceFTPDirectoryListings]):
2186         * WebView/WebPreferencesPrivate.h:
2187         * WebView/WebView.mm:
2188         (-[WebView _updateWebCoreSettingsFromPreferences:]):
2189
2190 2007-07-13  Anders Carlsson  <andersca@apple.com>
2191
2192         Reviewed by Maciej.
2193
2194         <rdar://problem/5290103> Assert failure when loading page with multipart resource
2195         
2196         Don't try to call the delegate method if the resource object doesn't exist in the 
2197         identifier map. When a multipart resource has finished loading one part, it is removed from the
2198         web view identifier map. 
2199         
2200         This is not an ideal fix, a better fix would be to special-case multipart resources and not remove
2201         them when the first part has finished loading. I've filed <rdar://problem/5335034> to track doing that.
2202         
2203         * WebCoreSupport/WebFrameLoaderClient.mm:
2204         (WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
2205         (WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
2206         (WebFrameLoaderClient::dispatchDidReceiveResponse):
2207         (WebFrameLoaderClient::willCacheResponse):
2208         (WebFrameLoaderClient::dispatchDidReceiveContentLength):
2209         (WebFrameLoaderClient::dispatchDidFinishLoading):
2210         (WebFrameLoaderClient::dispatchDidFailLoading):
2211
2212 2007-07-13  Timothy Hatcher  <timothy@apple.com>
2213
2214         Reviewed by Oliver Hunt.
2215
2216         <rdar://problem/5333766> Can't include WebEditingDelegatePrivate.h
2217
2218         * WebView/WebEditingDelegatePrivate.h: Changed the include to be a framework include,
2219         so other projects can use this header.
2220
2221 2007-07-12  Anders Carlsson  <andersca@apple.com>
2222
2223         Reviewed by Darin and Maciej.
2224
2225         <rdar://problem/5271096> panic after Safari stress test, caused by port leak
2226
2227         Replace uses of -[NSObject performSelector:withObject:afterDelay:] with CFRunLoopTimer. performSelector
2228         causes the target (the WebHTMLView in this case) to be retained until the timer fires. Furthermore, when
2229         running the PLT or iBench, the timers will not fire until the main loop is entered (usually after running all tests).
2230         
2231         This means that the timers and ports will not be released until after the test has finished running.
2232         
2233         * WebView/WebHTMLView.mm:
2234         (-[WebHTMLViewPrivate dealloc]):
2235         (-[WebHTMLView _cancelUpdateMouseoverTimer]):
2236         (-[WebHTMLView _updateMouseoverWithFakeEvent]):
2237         (-[WebHTMLView _updateMouseoverTimerCallback:]):
2238         (-[WebHTMLView _frameOrBoundsChanged]):
2239         (-[WebHTMLView _updateActiveState]):
2240         (-[WebHTMLView _updateActiveStateTimerCallback:]):
2241         (-[WebHTMLView viewWillMoveToWindow:]):
2242         (-[WebHTMLView viewDidMoveToWindow]):
2243         (-[WebHTMLView mouseDown:]):
2244         (-[WebTextCompleteController dealloc]):
2245         * WebView/WebHTMLViewInternal.h:
2246
2247 2007-07-13  Mark Rowe  <mrowe@apple.com>
2248
2249         Reviewed by Mitz.
2250
2251         Build fix.  Stub out WebChromeClient::print.
2252
2253         * WebCoreSupport/WebChromeClient.h:
2254         * WebCoreSupport/WebChromeClient.mm:
2255         (WebChromeClient::print):
2256
2257 2007-07-11  Timothy Hatcher  <timothy@apple.com>
2258
2259         Reviewed by Oliver.
2260
2261         <rdar://problem/5108789> WEBVIEW: Drawing artifacts when dragging in IB
2262
2263         Interface Builder 3 is relying on KVO notifications for frameOrigin and frameSize,
2264         among other standard NSView keys. Change automaticallyNotifiesObserversForKey to 
2265         return NO only for keys WebView manually fires notifications for.
2266
2267         * WebView/WebView.mm:
2268         (+[WebView automaticallyNotifiesObserversForKey:]): Selectivly return NO for keys we manually fire.
2269         (-[WebView _declaredKeys]): Code clean up.
2270
2271 2007-07-10  Antti Koivisto  <antti@apple.com>
2272
2273         Reviewed by John.
2274         
2275         Fix <rdar://problem/4570550>
2276         Hang in layout/layoutBlock/layoutBlockChildren preparing to print certain Mail messages
2277         
2278         When printing from Mail, WebHTMLView is a subview of the view that is actually printed and does not 
2279         receive calls that would set it to printing mode. Method adjustPageHeightNew is called repeatedly (for each page) during
2280         printing and it enables printing mode temporarily for each call. This triggers two full style recalcs and layouts
2281         each time making printing at least O(n^2). 
2282
2283         Instead of enabling printing mode and resetting it back immediatly do the resetting asynchronously, after
2284         all adjustPageHeightNew calls are done. Normal Safari printing is not affected as adjustPageHeightNew is only
2285         called in case WebHTMLView is embedded in the view that is being printed.
2286         
2287         No automatic test possible, requires printing and non-Safari client.
2288         
2289         * WebView/WebHTMLView.mm:
2290         (-[WebHTMLView adjustPageHeightNew:top:bottom:limit:]):
2291
2292 2007-07-10  Geoffrey Garen  <ggaren@apple.com>
2293
2294         Reviewed by Maciej Stachowiak.
2295
2296         - Fixed <rdar://problem/5049509> REGRESSION(10.4.9-9A377a): REAP Suite 
2297         installer shows empty modal alert window (hangs) if user cancels during
2298         "installing shared components" phase
2299         
2300         Added Adobe installers to the family of apps that need a data load
2301         loading quirk.
2302         
2303         Added a linked-on-or-after check because this code is no longer 
2304         Tiger-only.
2305         
2306         I tested this code on Tiger and Leopard.
2307
2308         * Misc/WebKitVersionChecks.h:
2309         * WebKit.xcodeproj/project.pbxproj:
2310         * WebView/WebDocumentLoaderMac.mm:
2311         (needsDataLoadWorkaround):
2312         (WebDocumentLoaderMac::setDataSource):
2313
2314 2007-07-10  Darin Adler  <darin@apple.com>
2315
2316         - fix build
2317
2318         * WebView/WebHTMLView.mm: Add include of ContextMenu.h.
2319
2320 2007-07-10  Darin Adler  <darin@apple.com>
2321
2322         Reviewed by John Sullivan.
2323
2324         - <rdar://problem/5321953> remove workaround for fixed AppKit mouse moved bug
2325
2326         * WebView/WebHTMLView.mm: Put the workaround for bug 3429631 inside an
2327         ifdef BUILDING_ON_TIGER.
2328
2329 2007-07-09  Anders Carlsson  <andersca@apple.com>
2330
2331         Reviewed by Oliver.
2332
2333         <rdar://problem/4954319> 
2334         Acrobat 7 / Safari crash: CrashTracer: 99 crashes in Safari at 
2335         com.apple.WebCore: WebCore::NetscapePlugInStreamLoader::isDone const + 0
2336
2337         Add a new initWithFrameLoader: method to WebNetscapePluginStream which is to be used when
2338         the stream is a "fake" stream for full frame plug-ins.
2339         
2340         * Plugins/WebBaseNetscapePluginView.mm:
2341         (-[WebBaseNetscapePluginView pluginView:receivedResponse:]):
2342         * Plugins/WebNetscapePluginStream.h:
2343         * Plugins/WebNetscapePluginStream.mm:
2344         (-[WebNetscapePluginStream initWithFrameLoader:]):
2345         (-[WebNetscapePluginStream initWithRequest:plugin:notifyData:sendNotification:]):
2346         (-[WebNetscapePluginStream start]):
2347         (-[WebNetscapePluginStream cancelLoadWithError:]):
2348         (-[WebNetscapePluginStream stop]):
2349         * WebCoreSupport/WebFrameLoaderClient.mm:
2350         (WebFrameLoaderClient::createFrame):
2351
2352 2007-07-09  John Sullivan  <sullivan@apple.com>
2353
2354         Reviewed by Darin
2355         
2356         - fixed <rdar://problem/5320208> WebKit should prevent Time Machine from backing up WebKit clients' icon databases
2357
2358         * Misc/WebIconDatabase.mm:
2359         (-[WebIconDatabase init]):
2360         Re-added the code to exclude the icon database from backups. We now do this at the same time we (try to) import
2361         the old icon database format, which happens only once per icon database's lifetime.
2362         (-[WebIconDatabase _importToWebCoreFormat]):
2363         Assert that we haven't imported yet rather than bailing out. It's now the caller's responsibility to check
2364         whether we've imported yet.
2365
2366 2007-07-08  John Sullivan  <sullivan@apple.com>
2367
2368         * Misc/WebIconDatabase.mm:
2369         (-[WebIconDatabase init]):
2370         Removed the code to exclude the icon database from backups. We still want to do this, but in a way
2371         that only runs once ever, instead of once per launch, due to performance concerns.
2372
2373 2007-07-07  Darin Adler  <darin@apple.com>
2374
2375         Reviewed by Maciej.
2376
2377         - fix <rdar://problem/5124665> WebCore secondary-thread assertion should use linked-on-or-after check instead of building on Tiger check
2378
2379         * Misc/WebKitVersionChecks.h: Added WEBKIT_FIRST_VERSION_WITH_MAIN_THREAD_EXCEPTIONS.
2380
2381         * WebView/WebFrameView.mm: (-[WebFrameView initWithFrame:]): In first-time initialization block,
2382         check for binaries linked against older versions of WebKit, and set the default thread violation
2383         behavior to LogOnFirstThreadViolation.
2384
2385         * WebView/WebView.mm: (+[WebView initialize]): Improved comments.
2386
2387 2007-07-06  Oliver Hunt  <oliver@apple.com>
2388
2389         Reviewed by Maciej.
2390
2391         <rdar://problem/5318756> Need to refactor IM/Marked text code to share logic with windows.
2392
2393         Moved a number of methods from WebHTMLView into WebCore.
2394         Replaced bridge methods with calls directly into WebCore objects.
2395
2396         * WebKit.xcodeproj/project.pbxproj:
2397         * WebView/WebHTMLView.mm:
2398         (-[WebHTMLView setMarkedText:selectedRange:]):
2399           Now calls WebCore object methods directly, rather than calling 
2400           via the bridge.
2401
2402 2007-07-06  John Sullivan  <sullivan@apple.com>
2403
2404         Reviewed by Brady
2405
2406         - WebKit part of fix for: 
2407           <rdar://problem/5310739> Time Machine shouldn't back up WebKit's icon database files
2408
2409         * Misc/WebIconDatabase.mm:
2410         (-[WebIconDatabase init]):
2411         Use CSBackupSetItemExcluded to tell Time Machine not to back up the icon database file
2412
2413 2007-07-07  Mark Rowe  <mrowe@apple.com>
2414
2415         Build fix.  Update WebDynamicScrollBarsView.h to include methods added and used in r24060.
2416
2417         * WebView/WebDynamicScrollBarsView.h:
2418
2419 2007-07-05  Timothy Hatcher  <timothy@apple.com>
2420
2421         Reviewed by John.
2422
2423         <rdar://problem/5236277> REGRESSION-9A458: SPI for setting scroll bar behavior doesn't work
2424
2425         Calling setHorizontalScrollingMode: calls updateScrollers before returning, this will cause
2426         WebCore to reset the scrolling mode based on the CSS overflow rules. So the setAlwaysShowHorizontalScroller:
2427         and setAlwaysShowVerticalScroller: methods needed a way to lock the scrolling mode before
2428         calling updateScrollers.
2429
2430         * WebView/WebDynamicScrollBarsView.m:
2431         (-[WebDynamicScrollBarsView updateScrollers]):
2432         (-[WebDynamicScrollBarsView setHorizontalScrollingMode:]):
2433         (-[WebDynamicScrollBarsView setHorizontalScrollingMode:andLock:]):
2434         (-[WebDynamicScrollBarsView setVerticalScrollingMode:]):
2435         (-[WebDynamicScrollBarsView setVerticalScrollingMode:andLock:]):
2436         (-[WebDynamicScrollBarsView setScrollingMode:]):
2437         (-[WebDynamicScrollBarsView setScrollingMode:andLock:]):
2438         * WebView/WebView.mm:
2439         (-[WebView setAlwaysShowVerticalScroller:]):
2440         (-[WebView setAlwaysShowHorizontalScroller:]):
2441
2442 2007-07-06  Mitz Pettel  <mitz@webkit.org>
2443
2444         Reviewed by Maciej.
2445
2446         - fix http://bugs.webkit.org/show_bug.cgi?id=10267
2447           Can't scroll page downwards with scroll wheel, when pointer is on top of non-scrolling iframe
2448
2449         * WebView/WebDynamicScrollBarsView.m:
2450         (-[WebDynamicScrollBarsView scrollWheel:]): Override the superclass
2451         implementation to forward the wheel event to the next responder if this view
2452         does not allow scrolling in the event's direction.
2453
2454 2007-07-05  John Sullivan  <sullivan@apple.com>
2455
2456         Reviewed by Adam
2457         
2458         - WebKit part of fix for <rdar://problem/5315033>
2459
2460         * WebView/WebDocumentPrivate.h:
2461         new selectionImageForcingBlackText: method. selectionImageForcingWhiteText: is no longer used and was never
2462         in an official release of WebKit, so it could be removed, except that doing so would cause trouble for people
2463         using nightly WebKit with Safari 3.0 beta. So I left it in, but made it just force black text instead of
2464         white text, which will look different for those nightly WebKit/Safari 3.0 beta people but not break anything.
2465         
2466         * Misc/WebSearchableTextView.m:
2467         (-[WebSearchableTextView selectionImageForcingBlackText:]):
2468         new unimplemented protocol method for this obsolete class
2469         
2470         * WebView/WebHTMLView.mm:
2471         (-[WebHTMLView selectionImageForcingBlackText:]):
2472         calls through to WebCore the way selectionImageForcingWhiteText: used to
2473         (-[WebHTMLView selectionImageForcingWhiteText:]):
2474         now just calls selectionImageForcingBlackText:, thus not working as you would expect from the name
2475         
2476         * WebView/WebPDFView.mm:
2477         (-[WebPDFView selectionImageForcingBlackText:]):
2478         guts of old selectionImageForcingWhiteText:, but with black substituted for white
2479         (-[WebPDFView selectionImageForcingWhiteText:]):
2480         now just calls selectionImageForcingBlackText:, thus not working as you would expect from the name
2481
2482 2007-07-05  Timothy Hatcher  <timothy@apple.com>
2483
2484         Reviewed by John.
2485
2486         <rdar://problem/5314993> Shiira 2.1 throws an exception open a new window: -[WebInspector window]: unrecognized selector
2487
2488         Add an empty implementation of this method to prevent Shiira from throwing an exception.
2489         Also log that this method is obsolete and the class will be removed.
2490
2491         * WebInspector/WebInspector.mm:
2492         (-[WebInspector window]):
2493
2494 2007-07-04  Adam Roben  <aroben@apple.com>
2495
2496         Move tooltip logic down into WebCore so that it can be shared cross-platform
2497
2498         Reviewed by Sam.
2499
2500         * WebCoreSupport/WebChromeClient.h:
2501         * WebCoreSupport/WebChromeClient.mm:
2502         (WebChromeClient::setToolTip): Added.
2503         * WebView/WebHTMLView.mm: Removed _resetCachedWebPreferences.
2504         (-[WebHTMLView _updateMouseoverWithEvent:]): Removed tooltip code.
2505         (-[WebHTMLView initWithFrame:]): Removed call to
2506         _resetCachedWebPreferences.
2507         (-[WebHTMLView setDataSource:]): Ditto.
2508         * WebView/WebHTMLViewInternal.h: Removed showsURLsInToolTips ivar.
2509         * WebView/WebHTMLViewPrivate.h: Added declaration for _setTooltip so
2510         that WebChromeClient can call it.
2511
2512 2007-07-04  Adam Roben  <aroben@apple.com>
2513
2514         Initialize Settings::showsURLsInToolTips
2515
2516         Reviewed by Sam.
2517
2518         * WebView/WebView.mm:
2519         (-[WebView _updateWebCoreSettingsFromPreferences:]):
2520
2521 2007-07-04  Adam Roben  <aroben@apple.com>
2522
2523         Removed call to mouseDidMoveOverElement now that WebCore handles it
2524
2525         Reviewed by Sam.
2526
2527         * WebView/WebHTMLView.mm:
2528         (-[WebHTMLView _updateMouseoverWithEvent:]):
2529
2530 2007-07-04  Adam Roben  <aroben@apple.com>
2531
2532         Add WebChromeClient::mouseDidMoveOverElement
2533
2534         This is not called yet.
2535
2536         Reviewed by Sam.
2537
2538         * WebCoreSupport/WebChromeClient.h:
2539         * WebCoreSupport/WebChromeClient.mm:
2540
2541 2007-07-03  Darin Adler  <darin@apple.com>
2542
2543         * StringsNotToBeLocalized.txt: Updated for recent changes.
2544
2545 2007-07-03  Timothy Hatcher  <timothy@apple.com>
2546
2547         Reviewed by Darin.
2548
2549         Remove HIWebView in 64-bit.
2550
2551         Also disable a few calls that are now gone in 64-bit and filed these bugs:
2552
2553         <rdar://problem/5311653> WebKit needs to adopt HIGetMousePosition where we used GetGlobalMouse before
2554         <rdar://problem/5311648> WebKit needs to move off of CopyEvent in WebBaseNetscapePluginView
2555         <rdar://problem/5311640> WebKit needs a new solution for HISearchWindowShow on 64-bit
2556
2557         * Carbon/CarbonUtils.m:
2558         * Carbon/CarbonWindowAdapter.m:
2559         * Carbon/CarbonWindowContentView.m:
2560         * Carbon/CarbonWindowFrame.m:
2561         * Carbon/HIViewAdapter.m:
2562         (SetViewNeedsDisplay):
2563         * Carbon/HIWebView.m:
2564         (Draw):
2565         (SyncFrame):
2566         * Configurations/WebKit.xcconfig:
2567         * Plugins/WebBaseNetscapePluginView.mm:
2568         (+[WebBaseNetscapePluginView getCarbonEvent:]):
2569         (TSMEventHandler):
2570         * WebKit.LP64.exp: Added.
2571         * WebView/WebView.mm:
2572         (-[WebView _searchWithSpotlightFromMenu:]):
2573
2574 2007-07-03  Adam Roben  <aroben@apple.com>
2575
2576         Merge the Windows and Mac localized strings and exceptions files
2577
2578         Reviewed by Darin and Anders.
2579
2580         * English.lproj/Localizable.strings: Added Windows strings.
2581         * StringsNotToBeLocalized.txt: Renamed from WebKit/English.lproj/StringsNotToBeLocalized.txt.
2582
2583 2007-07-03  Adele Peterson  <adele@apple.com>
2584
2585         Removed printf I accidently left in.
2586
2587         * Misc/WebNSURLExtras.m: (mapHostNames):
2588
2589 2007-07-03  Adele Peterson  <adele@apple.com>
2590
2591         Reviewed by Darin.
2592
2593         Fix for: <rdar://problem/5292988> domain names shouldn't contain ignorable characters
2594
2595         * Misc/WebNSURLExtras.m:
2596         (isLookalikeCharacter): Renamed.  Also excludes any non-printable character, 
2597          any character considered as whitespace that isn't already converted to a space by ICU, any ignorable character,
2598          and any character excluded in Mozilla's blacklist: http://kb.mozillazine.org/Network.IDN.blacklist_chars
2599         (allCharactersInIDNScriptWhiteList):
2600
2601 2007-07-03  Darin Adler  <darin@apple.com>
2602
2603         Reviewed by Maciej.
2604
2605         - fix <rdar://problem/5310848> WebDataSource lifetime problem -- may be cause of the leaks seen on the buildbot
2606
2607         * WebView/WebDataSource.mm:
2608         (-[WebDataSourcePrivate dealloc]): Added a call to the new detachDataSource function.
2609         (-[WebDataSourcePrivate finalize]): Ditto.
2610
2611         * WebView/WebDocumentLoaderMac.h: Added detachDataSource function to be used when the
2612         WebDataSource is deallocated. Added retain/releaseDataSource helper functions to be
2613         used to retain and release the data source object. Replaced the m_hasEverBeenDetached
2614         boolean with a more primitive and hence easier to understand m_isDataSourceRetained boolean.
2615
2616         * WebView/WebDocumentLoaderMac.mm:
2617         (WebDocumentLoaderMac::WebDocumentLoaderMac): Initialize m_isDataSourceRetained to false.
2618         (WebDocumentLoaderMac::setDataSource): Call retainDataSource instead of calling HardRetain
2619         on the dataSource parameter. Also updated a comment.
2620         (WebDocumentLoaderMac::attachToFrame): Call retainDataSource unconditionally rather than
2621         trying to use m_hasEverBeenDetached to decide if a retain is needed. Also got rid of an
2622         assertion that m_loadingResources is empty -- not important any more.
2623         (WebDocumentLoaderMac::detachFromFrame): Call releaseDataSource instead of using
2624         HardRelease, but only if m_loadingResources is empty. If it's non-empty, then we'll
2625         do the releaseDataSource later in decreaseLoadCount.
2626         (WebDocumentLoaderMac::increaseLoadCount): Call retainDataSource unconditionally
2627         rather than calling HardRetain only if the old set of resources was empty.
2628         (WebDocumentLoaderMac::decreaseLoadCount): Call releaseDataSource if m_loadingResources
2629         is empty and we're not attached to a frame. If we are attached to a frame, then
2630         we'll do the releaseDataSource later in detachFromFrame.
2631         (WebDocumentLoaderMac::retainDataSource): Added. Calls CFRetain, but only if the data
2632         source is not already retained (according to the boolean).
2633         (WebDocumentLoaderMac::releaseDataSource): Added. Calls CFRelease, but only if the data
2634         source is currently retained (according to the boolean).
2635         (WebDocumentLoaderMac::detachDataSource): Added. Sets m_dataSource to nil. Since this
2636         is only called from WebDataSource's dealloc and finalize methods, it won't ever be called
2637         when the m_isDataSourceRetained boolean is true.
2638
2639 2007-07-03  Darin Adler  <darin@apple.com>
2640
2641         - forgot to check in one file in the fix for <rdar://problem/5307880>
2642           some classes need finalize methods because of non-trivial work done in dealloc methods
2643
2644         * WebView/WebView.mm: (-[WebViewPrivate finalize]): Delete identifierMap so it doesn't leak.
2645
2646 2007-07-03  Anders Carlsson  <andersca@apple.com>
2647
2648         Reviewed by Darin.
2649
2650         * WebView/WebView.mm:
2651         (-[WebView stringByEvaluatingJavaScriptFromString:]):
2652         ASSERT that the value returned isn't nil. It can't be nil when invoked on the main frame.
2653
2654 2007-07-04  Mark Rowe  <mrowe@apple.com>
2655
2656         Unreviewed 64-bit build fixes.
2657
2658         * WebCoreSupport/WebInspectorClient.mm: Let the compiler know that WebFrameView is a subclass of NSView.
2659         * WebView/WebDocumentInternal.h: Remove our preprocessor macro once we're done with it.
2660         * WebView/WebHTMLView.mm:
2661         (-[WebHTMLView markAllMatchesForText:caseSensitive:limit:]): Fix argument types.
2662
2663 2007-07-02  Darin Adler  <darin@apple.com>
2664
2665         Reviewed by Kevin Decker and Tim Hatcher.
2666
2667         - fix <rdar://problem/5307880> some classes need finalize methods
2668           because of non-trivial work done in dealloc methods
2669
2670         * DefaultDelegates/WebScriptDebugServer.m:
2671         (-[WebScriptDebugServer dealloc]): Added a comment about how this probably won't
2672         work under GC.
2673         * WebInspector/WebNodeHighlight.m:
2674         (-[WebNodeHighlight dealloc]): Ditto.
2675
2676         * WebView/WebDataSource.mm:
2677         (+[WebDataSourcePrivate initialize]): Added. Makes finalize run on main thread.
2678         (-[WebDataSourcePrivate finalize]): Added. Calls deref on the document loader.
2679         * WebView/WebHTMLView.mm:
2680         (+[WebHTMLViewPrivate initialize]): Added. Makes finalize run on main thread.
2681         (-[WebHTMLViewPrivate finalize]): Added. Calls deref on promisedDragTIFFDataSource.
2682
2683         * WebKit.xcodeproj/project.pbxproj: Let Xcode be Xcode.
2684
2685 2007-07-02  Oliver Hunt  <oliver@apple.com>
2686
2687         Reviewed by Justin.
2688
2689         Fix for 
2690           <rdar://problem/5290113> WebKit does not correctly handle replacement ranges from the IM in -[WebHTMLView insertText:]
2691           http://bugs.webkit.org/show_bug.cgi?id=13664
2692
2693         We replicate the logic of -[WebHTMLView setMarkedText:selectedRange:] to handle the Input Method 
2694         feeding us a replacement string through insertText: so we can handle IMs that use insertText to
2695         replace text.
2696
2697         * WebView/WebHTMLView.mm:
2698         (-[WebHTMLView insertText:]):
2699
2700 2007-07-01  Oliver Hunt  <oliver@apple.com>
2701
2702         Reviewed by Alexey.
2703
2704         Fix for <rdar://problem/5306210> Some events are still passed to WebCore despite being handled by the IM
2705         http://bugs.webkit.org/show_bug.cgi?id=14457
2706
2707         We have to assume that the IM will consume all events, so we remove the dependency
2708         on -[WebHTMLView hasMarkedText].
2709
2710         * WebView/WebHTMLView.mm:
2711         (-[WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]):
2712
2713 2007-06-29  John Sullivan  <sullivan@apple.com>
2714
2715         Reviewed by Oliver Hunt.
2716
2717         - WebKit support for accessing the set of rectangles that encompass the selected text
2718
2719         * WebView/WebDocumentPrivate.h:
2720         added -selectionTextRects to WebDocumentSelection protocol; tweaked comments
2721
2722         * WebView/WebHTMLView.mm:
2723         (-[WebHTMLView _selectionDraggingRect]):
2724         use selectionRect instead of selectionImageRect since they're the same and maybe we can get
2725         rid of selectionImageRect someday
2726         (-[WebHTMLView selectionTextRects]):
2727         added implementation of new protocol method, which calls through to WebCore
2728         
2729         * WebView/WebPDFView.mm:
2730         (-[WebPDFView selectionTextRects]):
2731         added simple implementation of new protocol method, which just returns the single selection rect.
2732         PDFKit doesn't support obtaining multiple rects to describe a multi-line selection.
2733         (-[WebPDFView selectionImageForcingWhiteText:]):
2734         use selectionRect instead of selectionImageRect since they're the same and maybe we can get
2735         rid of selectionImageRect someday
2736         
2737         * Misc/WebSearchableTextView.m:
2738         (-[WebSearchableTextView selectionTextRects]):
2739         added no-op implementation of new protocol method to this obsolete class
2740
2741 2007-06-28  Timothy Hatcher  <timothy@apple.com>
2742
2743         Reviewed by Darin.
2744
2745         <rdar://problem/5287569> WEBVIEW: Creating a webview in IB 3.0 (v2.0) NIB later crashes Interface Builder 2.5.4 on Tiger
2746
2747         Prevent encoding any of the WebView subviews. The subviews are ignored by -[WebView initWithCoder:] and will be recreated.
2748         The Tiger 2.0 code crashed when the WebView released the subviews in initWithCoder:, so now there are no subviews to release.
2749         This never happened before because the Tiger 2.0 code and IB wouldn't encode a WebView that has a WebHTMLView.
2750
2751         * WebView/WebView.mm:
2752         (-[WebView encodeWithCoder:]):
2753
2754 2007-06-26  John Sullivan  <sullivan@apple.com>
2755
2756         Reviewed by Darin
2757         
2758         - WebKit support for displaying multiple text matches in PDF views (<rdar://problem/4601967>)
2759
2760         * WebView/WebPDFView.h:
2761         new ivars textMatches and lastScrollPosition; now conforms to WebMultipleTextMatches protocol
2762         
2763         * WebView/WebPDFView.mm:
2764         (-[WebPDFView dealloc]):
2765         release textMatches
2766         (-[WebPDFView viewDidMoveToWindow]):
2767         start observing bounds changes in the PDF document's enclosing clip view, so we can notice when
2768         scrolling takes place
2769         (-[WebPDFView viewWillMoveToWindow:]):
2770         stop observing bounds changes in the PDF document's enclosing clip view
2771         (-[WebPDFView searchFor:direction:caseSensitive:wrap:startInSelection:]):
2772         most of the code here has been moved into the new method _nextMatchFor::::, which this now calls
2773         (-[WebPDFView setMarkedTextMatchesAreHighlighted:]):
2774         implementation of WebMultipleTextMatches protocol method, does nothing useful here because we don't
2775         support inline highlighting of matches in PDF documents
2776         (-[WebPDFView markedTextMatchesAreHighlighted]):
2777         implementation of WebMultipleTextMatches protocol method
2778         (-[WebPDFView markAllMatchesForText:caseSensitive:limit:]):
2779         implementation of WebMultipleTextMatches protocol method; calls _nextMatchFor:::: in a loop until
2780         entire document is searched or limit is hit; records results by saving PDFSelections in textMatches ivar
2781         (-[WebPDFView unmarkAllTextMatches]):
2782         implementation of WebMultipleTextMatches protocol method; clears saved textMatches
2783         (-[WebPDFView rectsForTextMatches]):
2784         implementation of WebMultipleTextMatches protocol method; converts saved PDFSelections into NSValue 
2785         objects that represent NSRects
2786         (-[WebPDFView _clipViewForPDFDocumentView]):
2787         new helper method to find the clip view whose bounds determine the current scroll position
2788         (-[WebPDFView _nextMatchFor:direction:caseSensitive:wrap:fromSelection:startInSelection:]):
2789         new helper method, extracted from searchFor:::::
2790         (-[WebPDFView _PDFDocumentViewMightHaveScrolled:]):
2791         new notification callback; tells webView's delegate when document has scrolled
2792         (-[WebPDFView _setTextMatches:]):
2793         new helper method, stores value in ivar
2794
2795 2007-06-26  Oliver Hunt  <oliver@apple.com>
2796
2797         Reviewed by Maciej.
2798
2799         Hopefully fix remainder of the IME issues on Mac.  
2800         We now assume that the IME silently consumes any event given
2801         to it during text composition, and only override this assumption
2802         if the NSTextInput or NSResponder callbacks are made.
2803
2804         This prevents us from treating those events that the IME has 
2805         consumed internally (eg. candidate window navigation) as unhandled
2806         events that should be bubbled.
2807
2808         This fixes:
2809           <rdar://problem/5107538> Major problems handling key press event with non-english Input Methods
2810           <rdar://problem/4196249> REGRESSION: Mail: Inputting space (U+0020) with IM deletes subsequent line breaks on Mail.app
2811           <rdar://problem/5015544> REGRESSION: Reverse conversion keyboard command does not work in Safari.
2812           <rdar://problem/5045121> REGRESSION: Inline is confirmed after press left/right arrow keys, happens in Mail but not in TextEdit.
2813           <rdar://problem/5076807> REGRESSION: Can't undo conversion of inline text (by hitting ESC)
2814           <rdar://problem/5085781> REGRESSION: Active input area lost "selected" highlight
2815           <rdar://problem/5094200> space key pressed to close the associated words candidate window gets inserted as text
2816           <rdar://problem/5228294> Candidate item for character matrix is sometimes skipped
2817
2818         * WebKit.xcodeproj/project.pbxproj:
2819         * WebView/WebHTMLView.mm:
2820         (-[WebHTMLView launchKeyEvent:]):
2821         (-[WebHTMLView keyDown:]):
2822         (-[WebHTMLView keyUp:]):
2823         (-[WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]):
2824         (-[WebHTMLView unmarkText]):
2825         (-[WebHTMLView setMarkedText:selectedRange:]):
2826         (-[WebHTMLView doCommandBySelector:]):
2827         (-[WebHTMLView insertText:]):
2828
2829 2007-06-26  Jim Correia  <jim.correia@pobox.com>
2830
2831         Reviewed by Darin.
2832
2833         Fix http://bugs.webkit.org/show_bug.cgi?id=14411
2834         Bug 14411: WebNetscapePluginPackage overagressively sets CurApRefNum, which affects shipping versions of BBEdit.
2835         <rdar://problem/5297268>
2836
2837         * Plugins/WebNetscapePluginPackage.m:
2838         (+[WebNetscapePluginPackage initialize]): Force the Resource Manager to
2839         lazy initialize, and only set CurApRefNum to the system file if
2840         CurApRefNum is still -1 after that forced lazy initialization.
2841
2842 2007-06-25  Kevin Decker  <kdecker@apple.com>
2843
2844         Reviewed by Darin.
2845
2846         <rdar://problem/5294036> -[WebView customTextEncodingName] API may return empty string instead of nil
2847
2848         * WebView/WebView.mm:
2849         (-[WebView _mainFrameOverrideEncoding]): Addded the nsStringNilIfEmpty() inline to the data being returned because 
2850         our API says "The custom text encoding name or nil if no custom text encoding name has been set." I also verified
2851         the standing Tiger WebKit behavior for this method and it does indeed return nil if a custom encoding wasn't set.
2852
2853 2007-06-25  John Sullivan  <sullivan@apple.com>
2854
2855         Reviewed by Darin
2856         
2857         - WebKit part of <rdar://problem/5293820>, needed to support multiple matches in PDFs
2858
2859         * WebView/WebDocumentInternal.h:
2860         Added WebMultipleTextMatches protocol, containing five methods that were formerly implemented in WebHTMLView
2861         * WebView/WebHTMLViewPrivate.h:
2862         Removed declarations for the methods that are now in WebMultipleTextMatches protocol
2863         
2864         * WebView/WebHTMLView.mm:
2865         (-[WebHTMLView markAllMatchesForText:caseSensitive:limit:]):
2866         moved this method into the WebDocumentInternalProtocols portion of the file
2867         (-[WebHTMLView setMarkedTextMatchesAreHighlighted:]):
2868         ditto
2869         (-[WebHTMLView markedTextMatchesAreHighlighted]):
2870         ditto
2871         (-[WebHTMLView unmarkAllTextMatches]):
2872         ditto
2873         (-[WebHTMLView rectsForTextMatches]):
2874         ditto
2875
2876         * WebView/WebView.mm:
2877         (-[WebView canMarkAllTextMatches]):
2878         new method, returns YES only if the documentView of every frame implements WebMultipleTextMatches
2879         (-[WebView markAllMatchesForText:caseSensitive:highlight:limit:]):
2880         check for WebMultipleTextMatches protocol instead of checking for WebHTMLView class
2881         (-[WebView unmarkAllTextMatches]):
2882         ditto
2883         (-[WebView rectsForTextMatches]):
2884         ditto
2885
2886         * WebView/WebViewPrivate.h:
2887         declared new method canMarkAllTextMatches
2888
2889 2007-06-25  John Sullivan  <sullivan@apple.com>
2890
2891         Reviewed by Darin
2892         
2893         Fixed <rdar://problem/5292259> Find on Page doesn't work (throws exception) on page that includes PDF in a subframe
2894
2895         * WebView/WebView.mm:
2896         (-[WebView markAllMatchesForText:caseSensitive:highlight:limit:]):
2897         We were testing whether the view was an HTMLView, but then running code that assumed it was an HTMLView outside of
2898         that test. That's a bad idea.
2899
2900 2007-06-22  Adele Peterson  <adele@apple.com>
2901
2902         Reviewed by Geoff and Darin.
2903
2904         Fix for: <rdar://problem/5239236> Other slash characters should not be permitted as part of a domain name
2905
2906         * Misc/WebNSURLExtras.m:
2907         (isSlashOrPeriodLookalike):
2908         (allCharactersInIDNScriptWhiteList):
2909
2910 2007-06-21  Sam Weinig  <sam@webkit.org>
2911
2912         Reviewed by Antti.
2913
2914         Remove empty directories
2915
2916         * WebInspector/webInspector: directory removed.
2917         * WebInspector/webInspector/Images: directory removed
2918
2919 2007-06-21  Justin Garcia  <justin.garcia@apple.com>
2920
2921         Reviewed by Tim.
2922         
2923         <rdar://problem/5237524> 
2924         REGRESSION: Keyboard commands don't work in a message window until you click inside the message
2925         
2926         When you open a message in its own window, Mail creates an empty 
2927         WebView, makes that WebView firstResponder and then sets off a 
2928         load inside that WebView.
2929         
2930         When we're asked to create the empty WebView, we put an empty 
2931         WebHTMLView inside it (in r21367 we began creating a document 
2932         for empty frames).  When Mail makes the WebView first responder 
2933         we make that empty WebHTMLView firstResponder.  Then when the 
2934         load finishes we create a new WebHTMLView and set it as the 
2935         document view.  
2936         
2937         Inside _setDocumentView, if the old document view or one of its
2938         descendants was the first responder, we'd makeFirstResponder:nil 
2939         so that the window wouldn't be left with a firstResponder that 
2940         was no longer inside of it.  This change fixes the bug by instead 
2941         transferring firstResponder status to the new document view.
2942         
2943         We could also fix this by not allowing the WebHTMLView to become
2944         firstResponder when it's in the provisional state mentioned above.
2945
2946         * WebView/WebFrameView.mm:
2947         (-[WebFrameView _setDocumentView:]):
2948
2949 2007-06-21  John Sullivan  <sullivan@apple.com>
2950
2951         Reviewed by Adele
2952         
2953         - fixed <rdar://problem/5268673> REGRESSION: Context menu missing for PDF in frame when there's no selection
2954         
2955         This was surprisingly interesting. It turns out that at least for Safari, the method [WebDefaultUIDelegate
2956         webView:contextMenuItemsForElement:defaultMenuItems:] is only exercised from WebPDFView these days. It mimics
2957         some of the code that was moved to WebCore as part of the Great Context Menu Refactoring of 2006, but is
2958         independent of that code. And it was partly broken/incomplete, probably as a result of said refactoring.
2959
2960         * DefaultDelegates/WebDefaultContextMenuDelegate.mm:
2961         (localizedMenuTitleFromAppKit()):
2962         deleted this function since I removed all callers
2963         (-[WebDefaultUIDelegate menuItemWithTag:target:representedObject:]):
2964         Handle WebMenuItemTagOpenFrameInNewWindow tag, since code later in this file was relying on it. Added
2965         ASSERT_NOT_REACHED to the default case, since returning nil from this method is bad.
2966         Also, use WebKit versions of menu title strings rather than AppKit versions. We added these strings to WebKit 
2967         a while back so we don't need to sneakily find them in AppKit anymore.
2968         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]):
2969         make the WebView be the target of the Open Frame in New Window item; previously it was self, but that was
2970         just silly (probably a leftover from some code shuffling when context menus were reimplemented)
2971
2972         * WebView/WebView.mm:
2973         (-[WebView _openFrameInNewWindowFromMenu:]):
2974         new method, used by Open Frame in New Window menu item.
2975
2976         * WebView/WebViewInternal.h:
2977         Declare new method used by menu item. This isn't necessary for compilation, but could prevent the accidental
2978         deletion of the method implementation.
2979
2980 2007-06-20  Mark Rowe  <mrowe@apple.com>
2981
2982         Reviewed by Adam.
2983
2984         Fix http://bugs.webkit.org/show_bug.cgi?id=14255.
2985         Bug 14255: Reproducible crash opening web inspector from debug menu
2986
2987         Reinstate the WebInspector class so WebKit clients that currently depend on it
2988         will build and run correctly.
2989
2990         * WebInspector/WebInspector.h: Added.
2991         * WebInspector/WebInspector.mm: Added.
2992         (+[WebInspector webInspector]):
2993         (-[WebInspector dealloc]):
2994         (-[WebInspector setWebFrame:]):
2995         (-[WebInspector showWindow:]):
2996         * WebKit.exp:
2997         * WebKit.xcodeproj/project.pbxproj:
2998
2999 2007-06-20  Adam Roben  <aroben@apple.com>
3000
3001         Land the new Inspector.
3002
3003         Co-written with Tim Hatcher.
3004
3005         Reviewed by Anders, Adele, Hyatt, and Sam.
3006
3007         Implement the InspectorClient interface.
3008
3009         * WebCoreSupport/WebInspectorClient.h: Added.
3010         * WebCoreSupport/WebInspectorClient.mm: Added.
3011         (WebInspectorClient::WebInspectorClient):
3012         (WebInspectorClient::inspectorDestroyed):
3013         (WebInspectorClient::createPage):
3014         (WebInspectorClient::showWindow):
3015         (WebInspectorClient::closeWindow):
3016         (WebInspectorClient::attachWindow):
3017         (WebInspectorClient::detachWindow):
3018         (WebInspectorClient::highlight):
3019         (WebInspectorClient::hideHighlight):
3020         (WebInspectorClient::inspectedURLChanged):
3021         (WebInspectorClient::updateWindowTitle):
3022         (-[WebInspectorWindowController init]):
3023         (-[WebInspectorWindowController initWithInspectedWebView:]):
3024         (-[WebInspectorWindowController dealloc]):
3025         (-[WebInspectorWindowController inspectorVisible]):
3026         (-[WebInspectorWindowController webView]):
3027         (-[WebInspectorWindowController window]):
3028         (-[WebInspectorWindowController windowShouldClose:]):
3029         (-[WebInspectorWindowController close]):
3030         (-[WebInspectorWindowController showWindow:]):
3031         (-[WebInspectorWindowController attach]):
3032         (-[WebInspectorWindowController detach]):
3033         (-[WebInspectorWindowController highlightAndScrollToNode:]):
3034         (-[WebInspectorWindowController highlightNode:]):
3035         (-[WebInspectorWindowController hideHighlight]):
3036         (-[WebInspectorWindowController animationDidEnd:]):
3037
3038         Add an easier-to-see highlight.
3039
3040         * Misc/WebNSViewExtras.h:
3041         * Misc/WebNSViewExtras.m:
3042         (-[NSView _web_convertRect:toView:]):
3043         * WebInspector/WebNodeHighlight.h:
3044         * WebInspector/WebNodeHighlight.m:
3045         (-[WebNodeHighlightFadeInAnimation setCurrentProgress:]):
3046         (-[WebNodeHighlight initWithTargetView:]):
3047         (-[WebNodeHighlight setHighlightedNode:]):
3048         (-[WebNodeHighlight highlightedNode]):
3049         (-[WebNodeHighlight dealloc]):
3050         (-[WebNodeHighlight attachHighlight]):
3051         (-[WebNodeHighlight delegate]):
3052         (-[WebNodeHighlight detachHighlight]):
3053         (-[WebNodeHighlight show]):
3054         (-[WebNodeHighlight hide]):
3055         (-[WebNodeHighlight animationDidEnd:]):
3056         (-[WebNodeHighlight ignoresMouseEvents]):
3057         (-[WebNodeHighlight highlightView]):
3058         (-[WebNodeHighlight setDelegate:]):
3059         (-[WebNodeHighlight setHolesNeedUpdateInTargetViewRect:]):
3060         (-[WebNodeHighlight setIgnoresMouseEvents:]):
3061         (-[WebNodeHighlight targetView]):
3062         (-[WebNodeHighlight _computeHighlightWindowFrame]):
3063         (-[WebNodeHighlight _repositionHighlightWindow]):
3064         * WebInspector/WebNodeHighlightView.h:
3065         * WebInspector/WebNodeHighlightView.m:
3066         (-[WebNodeHighlightView initWithWebNodeHighlight:]):
3067         (-[WebNodeHighlightView dealloc]):
3068         (-[WebNodeHighlightView detachFromWebNodeHighlight]):
3069         (-[WebNodeHighlightView drawRect:]):
3070         (-[WebNodeHighlightView webNodeHighlight]):
3071         (-[WebNodeHighlightView fractionFadedIn]):
3072         (-[WebNodeHighlightView setFractionFadedIn:]):
3073         (-[WebNodeHighlightView setHolesNeedUpdateInRect:]):
3074         (-[WebNodeHighlightView _holes]):
3075
3076         WebView changes needed for the new Inspector.
3077
3078         * WebView/WebView.mm: Remove the old _inspectElement method now that
3079         this is handled by WebCore.
3080         (-[WebView _isClosed]): Added.
3081         (-[WebView initWithFrame]): Give each Page an InspectorClient to
3082         enable the Inspector.
3083         * WebView/WebViewPrivate.h:
3084
3085         Updates needed for WebCore changes.
3086
3087         * WebCoreSupport/WebContextMenuClient.h:
3088         * WebCoreSupport/WebContextMenuClient.mm:
3089         * WebCoreSupport/WebViewFactory.mm:
3090         (-[WebViewFactory contextMenuItemTagInspectElement]):
3091         * WebView/WebUIDelegatePrivate.h:
3092
3093         Remove old Inspector code.
3094
3095         * WebCoreSupport/WebFrameLoaderClient.mm:
3096         (WebFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
3097         (WebFrameLoaderClient::assignIdentifierToInitialRequest):
3098         (WebFrameLoaderClient::dispatchDidFinishLoading):
3099         * WebInspector/WebInspector.m: Removed.
3100         * WebInspector/WebInspectorPanel.h: Removed.
3101         * WebInspector/WebInspectorPanel.m: Removed.
3102         * WebInspector/webInspector/Images/button.png: Removed.
3103         * WebInspector/webInspector/Images/buttonDivider.png: Removed.
3104         * WebInspector/webInspector/Images/buttonPressed.png: Removed.
3105         * WebInspector/webInspector/Images/close.png: Removed.
3106         * WebInspector/webInspector/Images/closePressed.png: Removed.
3107         * WebInspector/webInspector/Images/downTriangle.png: Removed.
3108         * WebInspector/webInspector/Images/menu.png: Removed.
3109         * WebInspector/webInspector/Images/menuPressed.png: Removed.
3110         * WebInspector/webInspector/Images/popup.png: Removed.
3111         * WebInspector/webInspector/Images/popupPressed.png: Removed.
3112         * WebInspector/webInspector/Images/resize.png: Removed.
3113         * WebInspector/webInspector/Images/rightTriangle.png: Removed.
3114         * WebInspector/webInspector/Images/scrollThumbBottom.png: Removed.
3115         * WebInspector/webInspector/Images/scrollThumbMiddle.png: Removed.
3116         * WebInspector/webInspector/Images/scrollTrackBottom.png: Removed.
3117         * WebInspector/webInspector/Images/upTriangle.png: Removed.
3118         * WebInspector/webInspector/inspector.css: Removed.
3119         * WebInspector/webInspector/inspector.html: Removed.
3120         * WebInspector/webInspector/inspector.js: Removed.
3121         * WebInspector/webInspector/scrollarea.js: Removed.
3122         * WebInspector/webInspector/scrollbar.js: Removed.
3123         * WebInspector/webInspector/utilities.js: Removed.
3124         * WebView/WebFrame.mm:
3125         (-[WebFramePrivate dealloc]):
3126         * WebView/WebFrameInternal.h:
3127         * WebView/WebHTMLView.mm:
3128         (-[WebHTMLView menuForEvent:]):
3129
3130         Build-fu:
3131
3132         * WebKit.exp:
3133         * WebKit.xcodeproj/project.pbxproj:
3134
3135 2007-06-20  Justin Garcia  <justin.garcia@apple.com>
3136
3137         Reviewed by Darin.
3138         
3139         <rdar://problem/5263541> REGRESSION (Safari 3 Beta 1): Pressing Delete doesn't delete an HTML message in Mail
3140         
3141         Mail wasn't receiving the keyDown event because WebFrameView was blocking it.
3142         It blocks the event and moves back/forward on Delete/Shift+Delete if the
3143         back/forward list is enabled.
3144
3145         * WebView/WebFrameView.mm:
3146         (-[WebFrameView keyDown:]): Check to see if the BackForwardList is
3147         enabled.  It always exists.
3148
3149 2007-06-19  Anders Carlsson  <andersca@apple.com>
3150
3151         Reviewed by Kevin Decker.
3152
3153         <rdar://problem/5266289> REGRESSION (Safari 3 Beta 1): Incoming iChat messages are delayed
3154
3155         * WebView/WebDocumentLoaderMac.mm:
3156         (needsAppKitWorkaround):
3157         New function which checks if the frame load delegate belongs to AppKit.
3158         
3159         (WebDocumentLoaderMac::setDataSource):
3160         If the frame load delegate belongs to AppKit, set m_deferMainResourceDataLoad to false.
3161
3162 2007-06-19  John Sullivan  <sullivan@apple.com>
3163
3164         Reviewed by Tim Hatcher
3165
3166         - fixed <rdar://problem/5272011> Hole for find-on-page match in subframe isn't clipped by frame bounds
3167
3168         * WebView/WebView.mm:
3169         (-[WebView rectsForTextMatches]):
3170         intersect the HTMLView's computed rect with the visible rect for that view
3171
3172 2007-06-19  Jim Correia  <jim.correia@pobox.com>
3173
3174         Reviewed by Kevin Decker
3175         
3176         * Carbon/HIWebView.m:
3177         (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.
3178
3179 2007-06-18  Sam Weinig  <sam@webkit.org>
3180
3181         Reviewed by Beth.
3182
3183         Build fix.
3184
3185         * WebCoreSupport/WebChromeClient.mm:
3186
3187 2007-06-18  Kevin Decker <kdecker@apple.com>
3188
3189         * Carbon/HIWebView.m:
3190         (WindowHandler): Fixed the Tiger build; ControlKind wasn't defined.
3191
3192 2007-06-18  Kevin Decker  <kdecker@apple.com>
3193
3194         Reviewed by Tim Hatcher.
3195
3196         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
3197
3198         * Carbon/HIWebView.m:
3199         (WindowHandler): Because the fix for 5051616 causes Tiger to crash in HIToolbox (but not on Leopard), I reverted back to using GetControlKind
3200         on Tiger only, instead of HIObjectIsOfClass.
3201
3202 2007-06-16  David Hyatt  <hyatt@apple.com>
3203
3204         Back out fix for 13972.  Quicktime will no longer clip correctly. :(
3205         Too many regressions in Mail caused by inserting an extra view into the
3206         hierarchy.  Can revisit later.
3207
3208         Reviewed by olliej
3209
3210         * Plugins/WebPluginController.mm:
3211         (-[WebPluginController destroyPlugin:]):
3212         (-[WebPluginController destroyAllPlugins]):
3213         * WebCoreSupport/WebFrameBridge.mm:
3214         (-[WebFrameBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:DOMElement:loadManually:]):
3215         * WebView/WebHTMLView.mm:
3216         (-[WebHTMLView addSubview:]):
3217         (-[WebHTMLView willRemoveSubview:]):
3218
3219 2007-06-15  Sam Weinig  <sam@webkit.org>
3220
3221         Reviewed by Darin.
3222
3223         Patch for http://bugs.webkit.org/show_bug.cgi?id=14053
3224         Autogenerate JS binding for Rect
3225
3226         - Fix conflicts by using ::Rect instead of Rect.
3227
3228         * Plugins/WebBaseNetscapePluginView.mm:
3229         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
3230         (-[WebBaseNetscapePluginView sendEvent:]):
3231         (-[WebBaseNetscapePluginView tellQuickTimeToChill]):
3232         (-[WebBaseNetscapePluginView invalidateRegion:]):
3233         (-[WebBaseNetscapePluginView _printedPluginBitmap]):
3234
3235 2007-06-15  Anders Carlsson  <andersca@apple.com>
3236
3237         Reviewed by Kevin.
3238
3239         A better fix for <rdar://problem/5271774>. Only try to access the element if the
3240         view has an associated window. This also works with GC. (Fix suggested by Kevin.)
3241
3242         * Plugins/WebKitPluginContainerView.mm:
3243         (-[WebKitPluginContainerView dealloc]):
3244         (-[WebKitPluginContainerView visibleRect]):
3245
3246 2007-06-15  Anders Carlsson  <andersca@apple.com>
3247
3248         Reviewed by Kevin.
3249
3250         <rdar://problem/5271774> REGRESSION: A crash occurs when closing a window that contains a QT movie
3251         
3252         In some cases, calling [super dealloc] might end up calling visibleRect, so make sure to
3253         set _element to 0 so we won't send a message to a freed object and crash.
3254         
3255         * Plugins/WebKitPluginContainerView.mm:
3256         (-[WebKitPluginContainerView dealloc]):
3257         (-[WebKitPluginContainerView visibleRect]):
3258
3259 2007-06-14  Anders Carlsson  <andersca@apple.com>
3260
3261         Reviewed by Geoff.
3262
3263         Call cleanupScriptObjectsForPlugin on the frame after destroying the plug-in.
3264         
3265         * Plugins/WebBaseNetscapePluginView.mm:
3266         (-[WebBaseNetscapePluginView _destroyPlugin]):
3267         * Plugins/WebPluginController.mm:
3268         (-[WebPluginController destroyPlugin:]):
3269         (-[WebPluginController destroyAllPlugins]):
3270
3271 2007-06-13  John Sullivan  <sullivan@apple.com>
3272
3273         Reviewed by Adele Peterson
3274         
3275         - fixed <rdar://problem/5267607> Clicking the "Save to Downloads" button in 
3276           PDF overlay too soon results in corrupt file
3277
3278         * WebView/WebPDFView.mm:
3279         (-[WebPDFView PDFViewSavePDFToDownloadFolder:]):
3280         Just beep if the document isn't available yet, since trying to save it as a file
3281         really isn't a good idea.
3282
3283 2007-06-12  Oliver Hunt  <oliver@apple.com>
3284
3285         Reviewed by Darin.
3286
3287         Use correct size for BITMAPINFOHEADER -- whoops.
3288
3289         * win/WebIconDatabase.cpp:
3290         (createDIB):
3291         (WebIconDatabase::getOrCreateDefaultIconBitmap):
3292
3293 2007-06-10  David Hyatt  <hyatt@apple.com>
3294
3295         Fix for bug 14037, make sure respondsToSelector does the write thing
3296         when invoked on a WebKit plugin's container view.
3297
3298         Reviewed by Mark Rowe
3299
3300         * Plugins/WebKitPluginContainerView.mm:
3301         (-[WebKitPluginContainerView respondsToSelector:]):
3302
3303 2007-06-08  John Sullivan  <sullivan@apple.com>
3304
3305         * WebView/WebViewPrivate.h:
3306         Added a FIXME
3307
3308 2007-06-07  Justin Garcia  <justin.garcia@apple.com>
3309
3310         Reviewed by Tristan.
3311         
3312         <rdar://problem/5250997> A crash occurs when selecting Undo Typing for a page that has been closed in tab
3313
3314         * WebView/WebView.mm:
3315         (-[WebView _clearUndoRedoOperations]): Added.
3316         * WebView/WebViewPrivate.h:
3317
3318 2007-06-07  Oliver Hunt  <oliver@apple.com>
3319
3320         Reviewed by Sam "The Intern" Weinig.
3321         
3322         Don't be overzealous with the input checks, firstRectForCharacterRange
3323         can be determined even when there is not an active editable region.
3324         
3325         This unbreaks editing/input/range-for-empty-document which was broken
3326         by aforementioned overzealousness. 
3327
3328         * WebView/WebHTMLView.mm:
3329         (-[WebHTMLView firstRectForCharacterRange:]):
3330
3331 2007-06-07  Oliver Hunt  <oliver@apple.com>
3332
3333         Reviewed by Justin.
3334         
3335         Add checks to make sure we don't try to create, use
3336         or return invalid ranges to TSM when it calls us despite
3337         not currently being in an editable region.
3338
3339         * WebView/WebHTMLView.mm:
3340         (isTextInput):
3341         (-[WebHTMLView textStorage]):
3342         (-[WebHTMLView firstRectForCharacterRange:]):
3343         (-[WebHTMLView selectedRange]):
3344         (-[WebHTMLView attributedSubstringFromRange:]):
3345
3346 2007-06-06  David Hyatt  <hyatt@apple.com>
3347
3348         Make sure to hand back a script object for webkit plugins (the container
3349         view forwards to its plugin child).
3350
3351         Reviewed by sullivan
3352
3353         * Plugins/WebKitPluginContainerView.h:
3354         * Plugins/WebKitPluginContainerView.mm:
3355         (-[WebKitPluginContainerView objectForWebScript]):
3356
3357 2007-06-06  David Hyatt  <hyatt@apple.com>
3358
3359         Fix for bug 13972, quicktime doesn't respect CSS clip and overflow properties.
3360         Make sure that calls to [NSView visibleRect] will do the right thing for both
3361         Netscape plugins and WebKit plugins.
3362
3363         Reviewed by olliej
3364
3365         * Plugins/WebBaseNetscapePluginView.mm:
3366         (-[WebBaseNetscapePluginView visibleRect]):
3367         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
3368         (-[WebBaseNetscapePluginView isOpaque]):
3369         * Plugins/WebKitPluginContainerView.h: Added.
3370         * Plugins/WebKitPluginContainerView.mm: Added.
3371         (-[WebKitPluginContainerView initWithFrame:DOMElement:]):
3372         (-[WebKitPluginContainerView dealloc]):
3373         (-[WebKitPluginContainerView visibleRect]):
3374         * Plugins/WebPluginController.mm:
3375         (-[WebPluginController destroyAllPlugins]):
3376         * WebCoreSupport/WebFrameBridge.mm:
3377         (-[WebFrameBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:DOMElement:loadManually:]):
3378         * WebKit.xcodeproj/project.pbxproj:
3379         * WebView/WebHTMLView.mm:
3380         (-[WebHTMLView addSubview:]):
3381         (-[WebHTMLView willRemoveSubview:]):
3382
3383 2007-06-04  Oliver Hunt  <oliver@apple.com>
3384
3385         Reviewed by Geoff and Justin.
3386
3387         Fix for <rdar://problem/5246941> Clicking URL field on 
3388         Safari causes halt for a minute when using input methods.
3389         and <rdar://problem/5245964> Safari hangs for several 
3390         seconds when trying to select text using mouse
3391         
3392         This is a by product of the textStorage hack used to fix 
3393         rdar://problem/5000470 -- TSM calls textStorage repeatedly