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