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