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