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