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