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