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