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