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