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