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