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