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