2009-03-31 Darin Adler <darin@apple.com>
[WebKit-https.git] / WebKit / mac / ChangeLog
1 2009-03-31  Darin Adler  <darin@apple.com>
2
3         Reviewed by Adele Peterson.
4
5         <rdar://problem/6740581> REGRESSION (r41793): Page Down and Page Up don’t work in Leopard Mail
6
7         * WebView/WebHTMLView.mm:
8         (-[WebResponderChainSink tryToPerform:with:]): Added. Without this we would think we had
9         handled an event when we actually hadn't. Specifically, when -[WebFrameView scrollPageDown:]
10         calls tryToPerform on the next responder.
11
12 2009-03-30  Greg Bolsinga  <bolsinga@apple.com>
13
14         Reviewed by Simon Fraser.
15         
16         https://bugs.webkit.org/show_bug.cgi?id=24938
17         
18         Build fixes when building --no-svg
19         
20         DOMHTMLFrameElementPrivate.h and DOMHTMLIFrameElementPrivate.h are only available with ENABLE_SVG.
21
22         * MigrateHeaders.make:
23
24 2009-03-29  Darin Adler  <darin@apple.com>
25
26         Reviewed by Cameron Zwarich.
27
28         * Plugins/WebNullPluginView.mm: Added now-needed includes.
29         * WebView/WebHTMLRepresentation.mm: Ditto.
30         * WebView/WebHTMLView.mm: Ditto.
31
32 2009-03-27  Timothy Hatcher  <timothy@apple.com>
33
34         * MigrateHeaders.make: Remove DOMHTMLBodyElementPrivate.h since it
35         is not generated anymore.
36
37 2009-03-27  Adam Roben  <aroben@apple.com>
38
39         Don't include substitute data URLs in global history redirect chains
40
41         <rdar://6690169>
42
43         Reviewed by Darin Adler.
44
45         * WebCoreSupport/WebFrameLoaderClient.mm:
46         (WebFrameLoaderClient::updateGlobalHistory): Don't call
47         updateGlobalHistoryRedirectLinks. FrameLoader calls this for us now.
48         (WebFrameLoaderClient::updateGlobalHistoryRedirectLinks):
49         Added an assertion to help catch cases where we might be adding a
50         substitute data URL into a redirect chain.
51
52 2009-03-27  Darin Adler  <darin@apple.com>
53
54         Reviewed by Adam Roben.
55
56         <rdar://problem/6541923> REGRESSION (r38629): Tab cycle in empty tab is broken
57
58         * WebView/WebHTMLView.mm:
59         (-[WebHTMLView _wantsKeyDownForEvent:]): Only return YES when we have a Frame.
60
61 2009-03-27  Darin Adler  <darin@apple.com>
62
63         Reviewed by John Sullivan and Anders Carlsson.
64
65         <rdar://problem/5987442> Pasteboard not exposed to WebEditingDelegate for WebViewInsertActionPasted (needed for system services)
66
67         Added SPI to tell which pasteboard is currently being inserted.
68         I chose to put it on WebView to be forward-looking since we're migrating things
69         from WebHTMLView to WebView in the future.
70
71         * WebView/WebHTMLView.mm:
72         (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): Add calls to _setInsertionPasteboard.
73         (-[WebHTMLView _pasteAsPlainTextWithPasteboard:]): Ditto.
74         * WebView/WebView.mm:
75         (-[WebViewPrivate dealloc]): Assert the pasteboard is nil.
76         (-[WebViewPrivate finalize]): Ditto.
77         (-[WebView _insertionPasteboard]): Return the pastebaord.
78         (-[WebView _setInsertionPasteboard:]): Set the pasteboard.
79         * WebView/WebViewInternal.h: Added _setInsertionPasteboard.
80         * WebView/WebViewPrivate.h: Added _insertionPasteboard.
81
82 2009-03-25  Timothy Hatcher  <timothy@apple.com>
83
84         Expose new DOM methods as public Objective-C API.
85
86         <rdar://problem/5837350> Expose new DOM classes and methods
87         as public API (match the additions to the JavaScript DOM)
88
89         Reviewed by Mark Rowe and Darin Adler.
90
91         * MigrateHeaders.make:
92         * Misc/DOMDocumentPrivate.h: Added. Forwarding header for
93         <rdar://problem/6730996>.
94
95 2009-03-26  Jungshik Shin  <jshin@chromium.org>
96
97         Reviewed by Alexey Proskuryakov.
98
99         Add WebPreferences for encoding autodetection on Mac.
100   
101         http://bugs.webkit.org/show_bug.cgi?id=16482
102
103         * WebView/WebPreferenceKeysPrivate.h:
104         * WebView/WebPreferences.mm:
105         (+[WebPreferences initialize]):
106         (-[WebPreferences usesEncodingDetector]):
107         (-[WebPreferences setUsesEncodingDetector:]):
108         * WebView/WebPreferencesPrivate.h:
109         * WebView/WebView.mm:
110         (-[WebView _preferencesChangedNotification:]):
111
112 2009-03-26  Anders Carlsson  <andersca@apple.com>
113
114         Reviewed by Dan Bernstein.
115
116         - Fix <rdar://problem/6687055> and <rdar://problem/6713639>.
117         
118         * Plugins/Hosted/NetscapePluginHostProxy.mm:
119         (WKPCInvalidateRect):
120         Call NetscapePluginInstanceProxy::invalidateRect.
121         
122         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
123         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
124         (WebKit::NetscapePluginInstanceProxy::cleanup):
125         Stop the request timer, set m_pluginView to nil.
126         
127         (WebKit::NetscapePluginInstanceProxy::pluginHostDied):
128         No need to set m_pluginView to nil here anymore, it's now done in cleanup().
129         
130         (WebKit::NetscapePluginInstanceProxy::performRequest):
131         (WebKit::NetscapePluginInstanceProxy::requestTimerFired):
132         Assert that the plug-in view is not nil.
133         
134         (WebKit::NetscapePluginInstanceProxy::invalidateRect):
135         Call setNeedsDisplayInRect here.
136
137 2009-03-25  Anders Carlsson  <andersca@apple.com>
138
139         Reviewed by Darin Adler.
140
141         <rdar://problem/6714964>
142         CrashTracer: [REGRESSION] 51 crashes in Safari at com.apple.WebKit • WebNetscapePluginStream::deliverData + 775
143         
144         Don't release m_deliveryData since it's a RetainPtr. Also, use adoptNS instead of releasing newDeliveryData manually.
145         
146         * Plugins/WebBaseNetscapePluginStream.mm:
147         (WebNetscapePluginStream::deliverData):
148
149 2009-03-25  Mike Thole  <mthole@apple.com>
150
151         Reviewed by Kevin Decker.
152         
153         <rdar://problem/6453738> call SetWindow when user creates a new tab
154         
155         CoreGraphics plug-ins now receive an NPP_SetWindow call when moving to a background tab.
156         Flash is excluded from this change in behavior, as it has historical WebKit-specific code
157         that isn't compatible with this change.
158
159         * Plugins/WebNetscapePluginView.h:
160             Added an _isFlash ivar.
161         * Plugins/WebNetscapePluginView.mm:
162         (-[WebNetscapePluginView _createPlugin]):
163             Set the new _isFlash ivar based on the bundle identifier.
164         (-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]):
165             When using the CG drawing model and in a non-drawable state,  set the portState
166             to NULL and return early.
167         (-[WebNetscapePluginView updateAndSetWindow]):
168             When using the CG drawing model, call -setWindowIfNecessary even if the portState is NULL.
169             Flash is an exception to this, due to its historical behavior.
170         (-[WebNetscapePluginView setWindowIfNecessary]):
171             Removed an assertion that was no longer true.  The [NSView focus] view
172             is no longer guaranteed to be 'self' at this point.
173             Also modified the debug logging for CG plug-ins to include the size of the 
174             window's clipRect, which was useful in verifying the correct behavior of this patch.
175
176 2009-03-24  Dan Bernstein  <mitz@apple.com>
177
178         Reviewed by Oliver Hunt.
179
180         - speculative fix for <rdar://problem/6630134> Crash at
181           Editor::compositionRange()
182
183         * WebView/WebHTMLView.mm:
184         (-[WebHTMLView markedRange]): Null-check the Frame like most other
185         methods in this class.
186
187 2009-03-23  Sam Weinig  <sam@webkit.org>
188
189         Reviewed by Dan Bernstein.
190
191         Fix for <rdar://problem/6140966>
192         Empty Caches does not clear the Cross-site XMLHttpRequest preflight cache
193
194         * Misc/WebCache.mm:
195         (+[WebCache empty]):
196
197 2009-03-23  Adele Peterson  <adele@apple.com>
198
199         Reviewed by Mark Rowe & Dave Hyatt.
200
201         Merge some of the individual Mail quirks into two settings that we can check for future quirks.
202
203         * WebView/WebView.mm:
204         (runningLeopardMail):
205         (runningTigerMail):
206         (-[WebView _preferencesChangedNotification:]):
207
208 2009-03-23  Darin Adler  <darin@apple.com>
209
210         * WebView/WebTextIterator.h: Fixed a spelling error in a comment.
211
212 2009-03-22  Dan Bernstein  <mitz@apple.com>
213
214         Reviewed by John Sullivan.
215
216         - fix <rdar://problem/6640741> Messages not displaying after the
217           Safari 4 beta was installed
218
219         Mail assumes that if -[WebArchive subresources] is not nil, then it
220         contains at least one object.
221
222         * WebView/WebArchive.mm:
223         (-[WebArchive subresources]): Preserve the behavior of returning nil
224         if there are no subresources.
225
226 2009-03-20  Adele Peterson  <adele@apple.com>
227
228         Build fix.
229
230         Reviewed by Darin Adler.
231
232         * WebView/WebFrameView.mm: (-[WebFrameView initWithFrame:]):
233
234 2009-03-20  Timothy Hatcher  <timothy@apple.com>
235
236         Change how threading exceptions are checked so they are reported
237         by what round they were added. That way WebKit can decided the
238         behavior per-round based on linked-on-or-after checks.
239
240         <rdar://problem/6626741&6648478&6635474&6674079>
241
242         Reviewed by Darin Adler.
243
244         * History/WebBackForwardList.mm: Use the new WebCoreThreadViolationCheckRoundOne macro.
245         * History/WebHistoryItem.mm: Ditto.
246         * Misc/WebIconDatabase.mm: Ditto.
247
248         * WebView/WebArchive.mm: Use the new WebCoreThreadViolationCheckRoundTwo macro.
249         * WebView/WebResource.mm: Ditto.
250         (+[WebResource _needMailThreadWorkaroundIfCalledOffMainThread]): Check Mail's bundle version
251         to truly decide if it is an old Mail client.
252         * WebView/WebView.mm: Ditto.
253
254         * Misc/WebKitVersionChecks.h: Add a new linked-on-or-after version define.
255         * WebView/WebFrameView.mm:
256         (-[WebFrameView initWithFrame:]): Set the default thread violation behavior per-round
257         based on difference version checks and the Mail workaround check.
258
259 2009-03-20  Darin Adler  <darin@apple.com>
260
261         Reviewed by Timothy Hatcher.
262
263         * WebView/WebTextIterator.h: Improved comments to point out some of the pitfalls
264         of this SPI.
265
266 2009-03-20  Darin Adler  <darin@apple.com>
267
268         Reviewed by Adele Peterson.
269
270         Use a better technique to handle finding out if something responds to a selector
271         in WebHTMLView's doCommandBySelector method.
272
273         * WebView/WebHTMLView.mm:
274         (-[WebHTMLView doCommandBySelector:]): Removed unneeded check for 0 coreFrame;
275         this is already handled by coreCommandBySelector: so doesn't need to be checked
276         twice. Got rid of initial value for eventWasHandled boolean to make it more clear.
277         Use WebResponderChainSink to find out if a command is handled rather than walking
278         the responder chain explicitly.
279         (-[WebResponderChainSink initWithResponderChain:]): Added.
280         (-[WebResponderChainSink detach]): Added.
281         (-[WebResponderChainSink receivedUnhandledCommand]): Added.
282         (-[WebResponderChainSink noResponderFor:]): Added.
283         (-[WebResponderChainSink doCommandBySelector:]): Added.
284
285 2009-03-19  Timothy Hatcher  <timothy@apple.com>
286
287         Remove #ifndef BUILDING_ON_TIGER around code that schedules runloop modes
288         for Page, so the new RunLoopTimer in WebCore always gets a default mode.
289         Fixes the layout test failures on the Tiger build bots.
290
291         Reviewed by Mark Rowe.
292
293         * WebView/WebView.mm:
294         (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]):
295         (-[WebView scheduleInRunLoop:forMode:]):
296         (-[WebView unscheduleFromRunLoop:forMode:]):
297
298 2009-03-18  Anders Carlsson  <andersca@apple.com>
299
300         Reviewed by Oliver Hunt.
301
302         WebKit side of <rdar://problem/6688244>.
303         
304         Try reinitializing the vendor port if it's invalid.
305         
306         * Plugins/Hosted/NetscapePluginHostManager.mm:
307         (WebKit::NetscapePluginHostManager::spawnPluginHost):
308
309 2009-03-18  Anders Carlsson  <andersca@apple.com>
310
311         Reviewed by Darin Adler.
312
313         <rdar://problem/6504776> 
314         CrashTracer: [USER] 188 crashes in Safari at com.apple.WebCore • WTF::HashTableIterator<WTF::RefPtr<WebCore::ResourceLoader>, ...
315         
316         If the m_pluginView member was zeroed out as a result of making a call into the plug-in, the pluginFunctionCallDepth would be off
317         causing the plug-in never to be stopped. Simplify the code by using a RAII object.
318
319         * Plugins/WebBaseNetscapePluginStream.mm:
320         (PluginStopDeferrer::PluginStopDeferrer):
321         (PluginStopDeferrer::~PluginStopDeferrer):
322         (WebNetscapePluginStream::startStream):
323         (WebNetscapePluginStream::wantsAllStreams):
324         (WebNetscapePluginStream::destroyStream):
325
326 2009-03-17  Darin Adler  <darin@apple.com>
327
328         Reviewed by Adele Peterson.
329
330         <rdar://problem/6687005> Need support for new move-left/right selectors.
331
332         * WebView/WebHTMLView.mm: Added the four new selectors to the command-forwarding list.
333         * WebView/WebView.mm: Ditto.
334
335 2009-03-17  Darin Adler  <darin@apple.com>
336
337         Reviewed by Adele Peterson.
338
339         Bug 24477: REGRESSION (r41467): Page Down key scrolls two pages
340         https://bugs.webkit.org/show_bug.cgi?id=24477
341         rdar://problem/6674184
342
343         * WebView/WebHTMLView.mm:
344         (responderChainRespondsToSelector): Added.
345         (-[WebHTMLView doCommandBySelector:]): Set eventWasHandled based on whether we
346         can find a responder that responds to this selector rather than always assuming
347         the selector will not be handled.
348
349 2009-03-17  Mark Rowe  <mrowe@apple.com>
350
351         Fix the build.
352
353         * Plugins/Hosted/HostedNetscapePluginStream.mm:
354
355 2009-03-17  David Kilzer  <ddkilzer@apple.com>
356
357         Use -[NSURLResponse(WebCoreURLResponse) _webcore_MIMEType] consistently
358
359         Reviewed by Darin Adler.
360
361         WebKit r30323 added -_webcore_MIMEType to fix issues with
362         incorrect MIME types in NS[HTTP]URLResponse objects.  However,
363         uses of -[NSURLResponse MIMEType] still persist in WebKit that
364         should be switched to use -_webcore_MIMEType.  Note that
365         -[WebDataSource _responseMIMEType] calls back into WebCore to
366         get the MIME type from the ResourceResponse object, which has
367         already retrieved it via -_webcore_MIMEType.
368
369         * Plugins/Hosted/HostedNetscapePluginStream.mm:
370         (WebKit::HostedNetscapePluginStream::didReceiveResponse): Use
371         -_webcore_MIMEType.
372         * Plugins/WebBaseNetscapePluginStream.mm:
373         (WebNetscapePluginStream::didReceiveResponse): Ditto.
374         * Plugins/WebNetscapePluginView.mm:
375         (-[WebNetscapePluginView pluginView:receivedData:]): Ditto.
376         * Plugins/WebPluginController.mm:
377         (-[WebPluginController pluginView:receivedResponse:]): Ditto.
378         * WebView/WebHTMLRepresentation.mm:
379         (-[WebHTMLRepresentation _isDisplayingWebArchive]): Use
380         -[WebDataSource _responseMIMEType] instead.
381         * WebView/WebPDFRepresentation.m:
382         (-[WebPDFRepresentation finishedLoadingWithDataSource:]): Ditto.
383         * WebView/WebPDFView.mm:
384         (-[WebPDFView menuForEvent:]): Ditto.
385
386 2009-03-17  Simon Fraser  <simon.fraser@apple.com>
387
388         Reviewed by Darin Adler
389
390         https://bugs.webkit.org/show_bug.cgi?id=24396
391         
392         Add WTF_USE_ACCELERATED_COMPOSITING, defined to 0 for now.
393
394         * WebKitPrefix.h:
395
396 2009-03-17  Kevin Ollivier  <kevino@theolliviers.com>
397
398         Reviewed by Mark Rowe.
399
400         Get BUILDING_ON_* defines from Platform.h.
401         
402         https://bugs.webkit.org/show_bug.cgi?id=24630
403
404         * WebKitPrefix.h:
405
406 2009-03-16  Darin Adler  <darin@apple.com>
407
408         Reviewed by Dan Bernstein.
409
410         <rdar://problem/6577174> Rename the text directionality submenus to “Paragraph Direction” and “Selection Direction”
411
412         * WebCoreSupport/WebViewFactory.mm:
413         (-[WebViewFactory contextMenuItemTagParagraphDirectionMenu]): Changed string here, but only
414         post-Leopard, since we want this to match the Mac OS X menu on Tiger and Leopard.
415         (-[WebViewFactory contextMenuItemTagSelectionDirectionMenu]): Changed string here.
416
417 2009-03-16  Anders Carlsson  <andersca@apple.com>
418
419         Reviewed by Oliver Hunt.
420
421         Don't mig_deallocate random data in case an instance proxy method returns false.
422         
423         * Plugins/Hosted/NetscapePluginHostProxy.mm:
424         (WKPCEvaluate):
425         (WKPCInvoke):
426         (WKPCInvokeDefault):
427         (WKPCGetProperty):
428         (WKPCEnumerate):
429
430 2009-03-16  Anders Carlsson  <andersca@apple.com>
431
432         Reviewed by Oliver Hunt.
433
434         <rdar://problem/6633944> 
435         REGRESSION (Safari 4 PB): Many crashes in Flip4Mac involving loading the plugin
436         
437         Defer loading while calling webPlugInInitialize since it can end up spinning the run loop.
438         
439         * Plugins/WebPluginController.mm:
440         (-[WebPluginController addPlugin:]):
441
442 2009-03-16  Anders Carlsson  <andersca@apple.com>
443
444         Reviewed by Sam Weinig.
445
446         Fix <rdar://problem/6622601>
447         
448         Make sure to update both the window frame and the plug-in frame.
449         
450         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
451         (-[WebHostedNetscapePluginView addWindowObservers]):
452
453 2009-03-15  Dan Bernstein  <mitz@apple.com>
454
455         Reviewed by Adele Peterson.
456
457         - fix <rdar://problem/6607773> WebKit should support the "Default"
458           paragraph writing direction -- or at least validate the menu item
459           appropriately
460
461         Made WebHTMLView validate user interface items with the selector
462         -makeBaseWritingDirectionNatural: by returning NO and, if the item is
463         a menu item, setting its state to "off".
464
465         Strictly speaking, since -makeBaseWritingDirectionNatural: is never
466         valid for WebViews, WebHTMLView should not need to respond to it and
467         validate it, however because other responders respond to all three
468         -makeBaseWritingDirection*: messages and set the menu item state, having
469         WebHTMLView do the same makes application developers' lives easier.
470
471         * WebView/WebHTMLView.mm:
472         (-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]):
473         (-[WebHTMLView makeBaseWritingDirectionNatural:]):
474
475 2009-03-13  Mark Rowe  <mrowe@apple.com>
476
477         Rubber-stamped by Dan Bernstein.
478
479         Take advantage of the ability of recent versions of Xcode to easily switch the active
480         architecture.
481
482         * Configurations/DebugRelease.xcconfig:
483
484 2009-03-13  Anders Carlsson  <andersca@apple.com>
485
486         Reviewed by Kevin Decker and Geoffrey Garen.
487
488         <rdar://problem/6590384>
489         REGRESSION (Safari 3-4): Tiger-only Crash occurs at WebView hostWindow () after reloading a set of tabs then quitting
490         
491         When we're doing fast teardown, plug-in views can be destroyed from -[WebView dealloc]'s [super dealloc] call, 
492         and thus calling -[WebView hostWindow] will crash since _private is nil.
493         
494         * WebView/WebView.mm:
495         (-[WebView hostWindow]):
496
497 2009-03-13  Anders Carlsson  <andersca@apple.com>
498
499         And yet another attempt...
500         
501         * Plugins/WebNetscapePluginEventHandlerCocoa.h:
502         (WebNetscapePluginEventHandlerCocoa::installKeyEventHandler):
503         (WebNetscapePluginEventHandlerCocoa::removeKeyEventHandler):
504         * Plugins/WebNetscapePluginEventHandlerCocoa.mm:
505
506 2009-03-13  Anders Carlsson  <andersca@apple.com>
507
508         Another attempt at fixing the build.
509         
510         * Plugins/WebNetscapePluginEventHandlerCocoa.mm:
511         (WebNetscapePluginEventHandlerCocoa::WebNetscapePluginEventHandlerCocoa):
512
513 2009-03-13  Anders Carlsson  <andersca@apple.com>
514
515         Try to fix the SL build.
516
517         * Plugins/WebNetscapePluginEventHandlerCocoa.h:
518         * Plugins/WebNetscapePluginEventHandlerCocoa.mm:
519         (WebNetscapePluginEventHandlerCocoa::keyDown):
520
521 2009-03-13  Greg Bolsinga  <bolsinga@apple.com>
522
523         Reviewed by Simon Fraser.
524
525         Update Geolocation perimission dialogs to be asynchronous.
526         https://bugs.webkit.org/show_bug.cgi?id=24505
527
528         WebGeolocation is a wrapper around WebCore::Geolocation. It mimics the
529         coding style set by WebSecurityOrigin.
530         
531         WebChromeClient now calls the private UI delegate method 
532         -webView:frame:requestGeolocationPermission:securityOrigin:
533
534         * WebCoreSupport/WebChromeClient.h:
535         * WebCoreSupport/WebChromeClient.mm:
536         (WebChromeClient::requestGeolocationPermissionForFrame):
537         * WebCoreSupport/WebGeolocation.mm: Added.
538         (WebCore::if):
539         (-[WebGeolocation shouldClearCache]):
540         (-[WebGeolocation setIsAllowed:]):
541         (-[WebGeolocation dealloc]):
542         * WebCoreSupport/WebGeolocationInternal.h: Added.
543         * WebCoreSupport/WebGeolocationPrivate.h: Added.
544         * WebView/WebUIDelegatePrivate.h:
545
546 2009-03-13  Anders Carlsson  <andersca@apple.com>
547
548         Reviewed by Dan Bernstein.
549
550         <rdar://problem/6610666> Revise the Cocoa event model text API
551
552         Replace the text input API with a simpler API that uses a separate text input window.
553         
554         * Plugins/WebNetscapePluginEventHandlerCocoa.h:
555         * Plugins/WebNetscapePluginEventHandlerCocoa.mm:
556         (WebNetscapePluginEventHandlerCocoa::WebNetscapePluginEventHandlerCocoa):
557         Initialize m_keyEventHandler to 0.
558         
559         (WebNetscapePluginEventHandlerCocoa::keyDown):
560         If the plug-in returns 0 from NPP_HandleEvent, pass the event to the TSM machinery.
561         
562         (WebNetscapePluginEventHandlerCocoa::focusChanged):
563         Install/remove the key event handler as needed.
564         
565         (WebNetscapePluginEventHandlerCocoa::handleTSMEvent):
566         Get the text and send a TextInput event.
567         
568         * Plugins/WebNetscapePluginView.h:
569         * Plugins/WebNetscapePluginView.mm:
570         Remove the old text input API.
571         
572         (-[WebNetscapePluginView inputContext]):
573         Always return nil here.
574         
575         * Plugins/npapi.mm:
576         * Plugins/nptextinput.h: Removed.
577
578 2009-03-12  Anders Carlsson  <andersca@apple.com>
579
580         Reviewed by Mike Thole and Mark Rowe.
581
582         Fix <rdar://problem/6624105>.
583         
584         Make sure to process incoming messages for the NSEventTrackingRunLoopMode as well.
585         
586         * Plugins/Hosted/NetscapePluginHostProxy.mm:
587         (WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy):
588
589 2009-03-12  Anders Carlsson  <andersca@apple.com>
590
591         Reviewed by Geoffrey Garen.
592
593         WebKit side of <rdar://problem/6607801>
594         
595         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
596         (WebKit::NetscapePluginInstanceProxy::destroy):
597         Pass a requestID to _WKPCDestroyPluginInstance and wait until we get a reply back.
598         
599         * Plugins/Hosted/WebKitPluginHost.defs:
600         Add requestID parameter.
601
602 2009-03-12  Kevin Decker  <kdecker@apple.com>
603
604         Reviewed by Anders Carlsson.
605
606         * Plugins/WebNetscapePluginPackage.mm:
607         (-[WebNetscapePluginPackage _unloadWithShutdown:]): Simply a small SUPPORT_CFM code block.
608
609 2009-03-12  Kevin Decker  <kdecker@apple.com>
610
611         Reviewed by Anders Carlsson.
612
613         Fixed: <rdar://problem/5815862> Opening a subclassed NSWindow from a Safari plugin causes Safari to crash on Quit
614         
615         This fix addresses crashes in both Silverlight and ChemDraw.  This type of crash would occur because AppKit still
616         had a reference to open windows that the plugin created (which no longer exist). 
617         
618         * Plugins/WebNetscapePluginPackage.mm:
619         (-[WebNetscapePluginPackage _unloadWithShutdown:]): Do not unload the plug-in bundle on browser shutdown. 
620         
621 2009-03-11  David Kilzer  <ddkilzer@apple.com>
622
623         Remove duplicate header include
624
625         Rubber-stamped by Mark Rowe.
626
627         * WebView/WebView.mm: Remove duplicate #include <runtime/InitializeThreading.h>.
628         Also realphabetized lowercase #include statements.
629
630 2009-03-11  David Kilzer  <ddkilzer@apple.com>
631
632         Clarify comments regarding order of FEATURE_DEFINES
633
634         Rubber-stamped by Mark Rowe.
635
636         * Configurations/WebKit.xcconfig: Added warning about the
637         consequences when FEATURE_DEFINES are not kept in sync.
638
639 2009-03-11  Anders Carlsson  <andersca@apple.com>
640
641         Reviewed by Sam Weinig.
642
643         WebKit side of <rdar://problem/6656147>.
644         
645         * Plugins/Hosted/NetscapePluginHostManager.mm:
646         (WebKit::NetscapePluginHostManager::instantiatePlugin):
647         Pass the requestID to _WKPHInstantiatePlugin.
648         
649         * Plugins/Hosted/NetscapePluginHostProxy.mm:
650         Pass the requestID to setCurrentReply.
651         
652         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
653         (WebKit::NetscapePluginInstanceProxy::setCurrentReply):
654         Store the reply in a map with the requestID as the key.
655         
656         (WebKit::NetscapePluginInstanceProxy::waitForReply):
657         Wait for a reply that matches the given requestID.
658         
659         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
660         (WebKit::NetscapePluginInstanceProxy::NetscapePluginInstanceProxy):
661         Initialize member variables.
662         
663         (WebKit::NetscapePluginInstanceProxy::~NetscapePluginInstanceProxy):
664         Delete all requests.
665         
666         (WebKit::NetscapePluginInstanceProxy::print):
667         Pass the requestID to _WKPHPluginInstancePrint.
668         
669         (WebKit::NetscapePluginInstanceProxy::loadRequest):
670         Rename m_currentRequestID to m_currentURLRequestID.
671         
672         (WebKit::NetscapePluginInstanceProxy::processRequestsAndWaitForReply):
673         Process requests until we find a reply with the right requestID.
674         
675         (WebKit::NetscapePluginInstanceProxy::createBindingsInstance):
676         Pass a requestID to the _WKPH function.
677         
678         (WebKit::NetscapePluginInstanceProxy::nextRequestID):
679         Ditto.
680         
681         * Plugins/Hosted/ProxyInstance.mm:
682         Pass a requestID to the _WKPH functions.
683         
684         * Plugins/Hosted/WebKitPluginClient.defs:
685         * Plugins/Hosted/WebKitPluginHost.defs:
686         Add requestID parameters.
687
688 2009-03-11  Anders Carlsson  <andersca@apple.com>
689
690         Reviewed by Darin Adler.
691
692         Fix <rdar://problem/6620064>.
693         
694         * Plugins/WebPluginContainerPrivate.h:
695
696 2009-03-10  Xan Lopez  <xlopez@igalia.com>
697
698         Build fix, no review.
699
700         * WebView/WebFrame.mm:
701         (-[WebFrame _smartDeleteRangeForProposedRange:]):
702
703 2009-03-09  Anders Carlsson  <andersca@apple.com>
704
705         Reviewed by Kevin Decker.
706
707         WebKit side of <rdar://problem/6530007>
708         
709         * Plugins/Hosted/NetscapePluginHostProxy.mm:
710         (WKPCEnumerate):
711         Call NetscapePluginInstanceProxy::enumerate.
712         
713         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
714         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
715         (WebKit::NetscapePluginInstanceProxy::enumerate):
716         Enumerate the JS object and serialize its values.
717         
718         * Plugins/Hosted/ProxyInstance.h:
719         * Plugins/Hosted/ProxyInstance.mm:
720         (WebKit::ProxyInstance::getPropertyNames):
721         Ask the plug-in host to get the property names and deserialize them.
722         
723         * Plugins/Hosted/WebKitPluginClient.defs:
724         * Plugins/Hosted/WebKitPluginHost.defs:
725
726 2009-03-09  Simon Fraser  <simon.fraser@apple.com>
727
728         Reviewed by Oliver Hunt and Cameron Zwarich
729
730         https://bugs.webkit.org/show_bug.cgi?id=24440
731         
732         The sublayer added to WebHTMLView to host accelerated compositing layers needs to
733         be a subclass of NSView which allows context menu clicks through.
734
735         * WebView/WebHTMLView.mm:
736         (-[WebLayerHostingView rightMouseDown:]):
737         (-[WebHTMLView attachRootLayer:]):
738
739 2009-03-08  Mark Rowe  <mrowe@apple.com>
740
741         Reviewed by Oliver Hunt.
742
743         Split ScrollAlignment and ScrollBehavior out of RenderLayer.h so that
744         Frame.h no longer needs to include it.  This cuts the size of the symbols
745         for a debug build by around 3%.
746
747         * Plugins/WebNetscapePluginView.mm:
748         * WebView/WebFrame.mm:
749         (-[WebFrame _scrollDOMRangeToVisible:]):
750         (-[WebFrame _insertParagraphSeparatorInQuotedContent]):
751         (-[WebFrame _replaceSelectionWithFragment:selectReplacement:smartReplace:matchStyle:]):
752         * WebView/WebHTMLView.mm:
753         (-[WebHTMLView jumpToSelection:]):
754         (-[WebHTMLView centerSelectionInVisibleArea:]):
755
756 2009-03-07  Dan Bernstein  <mitz@apple.com>
757
758         Reviewed by Alexey Proskuryakov.
759
760         - fix a bug where debug builds were clearing the HTML5 application cache
761           on application termination
762
763         * WebView/WebView.mm:
764         (-[WebView _close]): Call -[WebCache setDisabled:YES] instead of
765         -[WebCache empty].
766
767 2009-03-06  Douglas R. Davidson  <ddavidso@apple.com>
768
769         Reviewed by Justin Garcia.
770
771         https://bugs.webkit.org/show_bug.cgi?id=24108
772
773         Update spelling and grammar checking to use the new combined text 
774         checking (with automatic language identification) on Snow Leopard. 
775
776         * WebCoreSupport/WebEditorClient.h:
777         * WebCoreSupport/WebEditorClient.mm:
778         (WebEditorClient::checkSpellingAndGrammarOfParagraph):
779
780 2009-03-05  Adele Peterson  <adele@apple.com>
781
782         Reviewed by Darin Adler.
783
784         Fix for https://bugs.webkit.org/show_bug.cgi?id=24079
785         <rdar://problem/6611233> REGRESSION (r39549): Page loads cannot be interrupted with Command-. or Escape
786         <rdar://problem/6636563> Ctrl-tab shortcut doesn't switch tabs when focus is in text field
787        
788         * WebView/WebHTMLView.mm: (-[WebHTMLView doCommandBySelector:]):
789         If WebKit does not support the command, we need to pass the selector to super.  In this case,
790         we'll consider the event not to be handled.  This is not perfect because in theory, [super doCommandBySelector:] 
791         can do some action that would cause WebKit to need to consider the event handled.  But in practice, I've found no
792         example of that happening and causing broken behavior.
793
794 2009-03-04  Mark Rowe  <mrowe@apple.com>
795
796         Reviewed by Dan Bernstein.
797
798         <rdar://problem/6206172> Adoption of new Cocoa API for dictionary contextual menu
799
800         * WebView/WebHTMLView.mm:
801         (-[WebHTMLView _lookUpInDictionaryFromMenu:]):
802
803 2009-03-04  Adam Barth  <abath@webkit.org>
804
805         Reviewed by Alexey Proskuryakov.
806
807         https://bugs.webkit.org/show_bug.cgi?id=24356
808
809         Fix WebKit style for allowUniversalAccessFromFileURLs.
810
811         * WebView/WebPreferenceKeysPrivate.h:
812         * WebView/WebPreferences.mm:
813         (+[WebPreferences initialize]):
814         (-[WebPreferences allowUniversalAccessFromFileURLs]):
815         (-[WebPreferences setAllowUniversalAccessFromFileURLs:]):
816         * WebView/WebPreferencesPrivate.h:
817         * WebView/WebView.mm:
818         (-[WebView _preferencesChangedNotification:]):
819
820 2009-03-03  David Kilzer  <ddkilzer@apple.com>
821
822         <rdar://problem/6581203> WebCore and WebKit should install the same set of headers during installhdrs phase as build phase
823
824         Reviewed by Mark Rowe.
825
826         The fix is to add INSTALLHDRS_COPY_PHASE = YES and
827         INSTALLHDRS_SCRIPT_PHASE = YES to WebKit.xcconfig, then to
828         make sure various build phase scripts work with the installhdrs
829         build phase.
830
831         * Configurations/Base.xcconfig: Defined REAL_PLATFORM_NAME
832         based on PLATFORM_NAME to work around the missing definition on
833         Tiger.
834         * Configurations/WebKit.xcconfig: Added
835         WEBCORE_PRIVATE_HEADERS_DIR variable to remove definition of
836         UMBRELLA_FRAMEWORKS_DIR for Debug and Release builds in the
837         Xcode project file.  Added INSTALLHDRS_COPY_PHASE = YES and
838         INSTALLHDRS_SCRIPT_PHASE = YES.
839
840 2009-03-03  David Kilzer  <ddkilzer@apple.com>
841
842         Remove last vestiges of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR from WebKit
843
844         Reviewed by Adam Roben.
845
846         Use of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR was removed in r37465
847         since NPAPI headers had migrated from JavaScriptCore to WebCore
848         before that.
849
850         * Configurations/WebKit.xcconfig: Removed definition of
851         JAVASCRIPTCORE_PRIVATE_HEADERS_DIR used in Production builds.
852
853 2009-03-03  Anders Carlsson  <andersca@apple.com>
854
855         Reviewed by Darin Adler.
856
857         Fix <rdar://problem/6633834>.
858         
859         * Plugins/Hosted/NetscapePluginHostManager.mm:
860         (WebKit::NetscapePluginHostManager::instantiatePlugin):
861         Create a new plug-in instance if the plug-in host has crashed.
862         
863         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
864         (WebKit::NetscapePluginInstanceProxy::invalidate):
865         Add a null check for the plug-in host proxy.
866
867 2009-03-02  Sam Weinig  <sam@webkit.org>
868
869         Reviewed by Mark Rowe.
870
871         Enable Geolocation (except on Tiger and Leopard).
872
873         * Configurations/WebKit.xcconfig:
874
875 2009-03-02  Anders Carlsson  <andersca@apple.com>
876
877         Reviewed by Dan Bernstein.
878
879         WebKit part of <rdar://problem/6638658>.
880         
881         * Plugins/Hosted/NetscapePluginHostManager.h:
882         * Plugins/Hosted/NetscapePluginHostManager.mm:
883         (WebKit::NetscapePluginHostManager::createPropertyListFile):
884         Spawn the plug-in host and wait for it to create the property list.
885         
886         * Plugins/WebBasePluginPackage.mm:
887         (-[WebBasePluginPackage createPropertyListFile]):
888         Factor code out into a new method.
889         
890         (-[WebBasePluginPackage pListForPath:createFile:]):
891         Call the newly added createPropertyListFile method.
892         
893         * Plugins/WebNetscapePluginPackage.mm:
894         (-[WebNetscapePluginPackage createPropertyListFile]):
895         Tell the plug-in host manager to create a property list file for us.
896
897 2009-03-02  Sam Weinig  <sam@webkit.org>
898
899         Reviewed by Geoffrey Garen.
900
901         Fix for <rdar://problem/6507404> Add Geolocation support.
902
903         This is not yet turned on for any Mac platform.
904
905         Add SPI to ask the embedding application whether to allow
906         Geolocation for an origin.
907
908         * WebCoreSupport/WebChromeClient.h:
909         * WebCoreSupport/WebChromeClient.mm:
910         (WebChromeClient::shouldAllowGeolocationForFrame):
911         * WebView/WebUIDelegatePrivate.h:
912
913 2009-03-02  Anders Carlsson  <andersca@apple.com>
914
915         Fix PowerPC build.
916
917         * Plugins/WebNetscapePluginPackage.mm:
918         (-[WebNetscapePluginPackage _tryLoad]):
919
920 2009-03-02  Anders Carlsson  <andersca@apple.com>
921
922         Reviewed by John Sullivan, Ada Chan.
923
924         Factor loading code out into its own method and get rid of a bunch of gotos.
925         
926         * Plugins/WebNetscapePluginPackage.mm:
927         (-[WebNetscapePluginPackage _tryLoad]):
928         (-[WebNetscapePluginPackage load]):
929
930 2009-03-02  Anders Carlsson  <andersca@apple.com>
931
932         Build fix.
933
934         * Plugins/WebNetscapeDeprecatedFunctions.h:
935
936 2009-03-02  Anders Carlsson  <andersca@apple.com>
937
938         Reviewed by John Sullivan.
939
940         Rename WebNetscapePluginPackage.m to WebNetscapePluginPackage.mm
941
942         * Plugins/WebNetscapePluginPackage.m: Removed.
943         * Plugins/WebNetscapePluginPackage.mm: Copied from mac/Plugins/WebNetscapePluginPackage.m.
944
945 2009-03-01  Anders Carlsson  <andersca@apple.com>
946
947         Reviewed by Sam Weinig.
948
949         WebKit side of <rdar://problem/6449689>
950
951         Pass the visible name to the plug-in host.
952         
953         * Plugins/Hosted/NetscapePluginHostManager.mm:
954         (WebKit::NetscapePluginHostManager::spawnPluginHost):
955
956 2009-02-27  Alice Liu  <alice.liu@apple.com>
957
958         Fix <rdar://problem/6531265> REGRESSION (r39185): adding ".jpeg"
959         extension to images that already have .jpg extension
960
961         Reviewed by Oliver Hunt.
962
963         * WebView/WebHTMLView.mm:
964         (-[NSString matchesExtensionEquivalent:]):
965         (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):
966         Relax the check for the proper extension to allow for known
967         equivalents, special-cased in matchesExtensionEquivalent function.
968
969 2009-02-27  Anders Carlsson  <andersca@apple.com>
970
971         Reviewed by Geoffrey Garen.
972
973         <rdar://problem/6631436>
974         CrashTracer: [USER] 1 crash in Safari at com.apple.WebKit • WebKit::NetscapePluginInstanceProxy::addValueToArray + 55
975         
976         Port the NPN_Evaluate code over from WebCore instead of using the frame loader.
977         
978         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
979         (WebKit::NetscapePluginInstanceProxy::evaluate):
980
981 2009-02-27  Anders Carlsson  <andersca@apple.com>
982
983         Reviewed by Geoffrey Garen.
984
985         WebKit side of <rdar://problem/6626814>.
986         
987         * Plugins/Hosted/NetscapePluginHostProxy.mm:
988         (WKPCInvokeDefault):
989         Make InvokeDefault async.
990         
991         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
992         (WebKit::NetscapePluginInstanceProxy::addValueToArray):
993         Handle passing NPObjects back to the plug-in host.
994         
995         * Plugins/Hosted/ProxyInstance.h:
996         (WebKit::ProxyInstance::objectID):
997         Add objectID getter.
998         
999         * Plugins/Hosted/WebKitPluginClient.defs:
1000         Make InvokeDefault a simpleroutine.
1001
1002 2009-02-27  Timothy Hatcher  <timothy@apple.com>
1003
1004         Fixes an exception by null checking the WebResource before adding it to
1005         the subresources array.
1006
1007         <rdar://problem/5950769> Bug in [WebDataSource subresources] can throw an exception
1008
1009         Reviewed by Geoff Garen and Anders Carlsson.
1010
1011         * WebView/WebDataSource.mm:
1012         (-[WebDataSource subresources]): Null check the WebResource before adding it.
1013
1014 2009-02-27  Timothy Hatcher  <timothy@apple.com>
1015
1016         Adds a workaround for Automator creating a WebView from a secondary thread.
1017
1018         <rdar://problem/6631951> REGRESSION (Safari 4 Beta): Automator crash on
1019         secondary thread beneath -[WebView initWithFrame:frameName:groupName:]
1020
1021         Reviewed by Geoff Garen.
1022
1023         * WebView/WebView.mm:
1024         (needsWebViewInitThreadWorkaround): Check for com.apple.Automator.
1025
1026 2009-02-27  Adam Barth  <abarth@webkit.org>
1027
1028         Reviewed by Eric Seidel.
1029
1030         Add a preference to reduce the power of file:// URLs.
1031
1032         * WebView/WebPreferenceKeysPrivate.h:
1033         * WebView/WebPreferences.mm:
1034         (+[WebPreferences initialize]):
1035         (-[WebPreferences allowUniversalAccessFromFileUrls]):
1036         (-[WebPreferences setAllowUniversalAccessFromFileUrls:]):
1037         * WebView/WebPreferencesPrivate.h:
1038         * WebView/WebView.mm:
1039         (-[WebView _preferencesChangedNotification:]):
1040
1041 2009-02-27  Simon Fraser  <simon.fraser@apple.com>
1042
1043         Reviewed by Anders Carlsson
1044
1045         https://bugs.webkit.org/show_bug.cgi?id=24242
1046         
1047         setCursor(), and resetCursorRects() on Tiger, were using global, not local
1048         coordinates for elementAtPoint:
1049         
1050         * WebView/WebHTMLView.mm:
1051         (resetCursorRects):
1052         (setCursor):
1053
1054 2009-02-27  Adam Barth  <abarth@webkit.org>
1055
1056         Reviewed by Eric Seidel.
1057
1058         Add a preference to reduce the power of file:// URLs.
1059
1060         * WebView/WebPreferenceKeysPrivate.h:
1061         * WebView/WebPreferences.mm:
1062         (+[WebPreferences initialize]):
1063         (-[WebPreferences allowUniversalAccessFromFileUrls]):
1064         (-[WebPreferences setAllowUniversalAccessFromFileUrls:]):
1065         * WebView/WebPreferencesPrivate.h:
1066         * WebView/WebView.mm:
1067         (-[WebView _preferencesChangedNotification:]):
1068
1069 2009-02-26  Adele Peterson  <adele@apple.com>
1070
1071         Reviewed by Geoff Garen.
1072
1073         Fix for <rdar://problem/6618166>
1074         https://bugs.webkit.org/show_bug.cgi?id=24216
1075         (REGRESSION r36919) Safari 4 Beta causes MSN Messenger's text entry field to lose focus after entering a message
1076
1077         During a series of firstResponder changes, at some point while the WebHTMLView was losing first responder status,
1078         we incorrectly marked the page as active, and then when the WebHTMLView became first responder again, setActive did nothing.
1079         This change restores behavior from before r36919 to check if the WebHTMLView is in the middle of losing first responder when calling setActive.
1080
1081         In addition to updating editing/selection/designmode-no-caret.html results, I also made sure the test cases that were 
1082         fixed in r36919 and r38570 are still fixed.
1083
1084         * WebView/WebHTMLView.mm:
1085         (-[WebHTMLView resignFirstResponder]): Keep track if we're in the process of resigning first responder.
1086         (-[WebHTMLView _isResigningFirstResponder]): Added.
1087         * WebView/WebHTMLViewInternal.h:
1088         * WebView/WebView.mm: (-[WebView _updateFocusedAndActiveStateForFrame:]): Don't set the page to be active
1089         if the document view is currently resigning first responder.
1090
1091 2009-02-25  Anders Carlsson  <andersca@apple.com>
1092
1093         Reviewed by Kevin Decker.
1094
1095         Fix <rdar://problem/6623697>.
1096         
1097         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
1098         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1099         (WebKit::NetscapePluginInstanceProxy::print):
1100         Ask the plug-in host to print, create a CGImage of the returned bytes and draw
1101         the image into the passed in context.
1102         
1103         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
1104         (-[WebHostedNetscapePluginView drawRect:]):
1105         When printing, call NetscapePluginInstanceProxy::print.
1106         
1107         * Plugins/Hosted/WebKitPluginHost.defs:
1108
1109 2009-02-19  Alexey Proskuryakov  <ap@webkit.org>
1110
1111         Reviewed by Darin Adler.
1112
1113         https://bugs.webkit.org/show_bug.cgi?id=24024
1114         REGRESSION (r39845): Assertion failure in -[WebHistoryItem dictionaryRepresentation] when
1115         archiving a submission to about:blank
1116
1117         I don't know how to make an automated test for this bug.
1118
1119         * History/WebHistory.mm: (-[WebHistory _visitedURL:withTitle:method:wasFailure:]):
1120         Account for the fact that HTTP method may be non-empty for non-HTTP requests.
1121
1122 2009-02-25  Chris Fleizach  <cfleizach@apple.com>
1123
1124         Reviewed by Beth Dakin.
1125
1126         Naming change from
1127         Bug 24143: Crash occurs at WebCore::AccessibilityTable::isTableExposableThroughAccessibility() when applying a link in GMail
1128         https://bugs.webkit.org/show_bug.cgi?id=24143
1129
1130         * WebView/WebFrame.mm:
1131         (-[WebFrame _accessibilityTree]):
1132
1133 2009-02-25  Simon Fraser  <simon.fraser@apple.com>
1134
1135         Build fix with ACCELERATED_COMPOSITING turned on.
1136         
1137         I missed a spot in my last commit in renaming to
1138         _stoppedAcceleratedCompositingForFrame:
1139         
1140         * WebView/WebHTMLView.mm:
1141         (-[WebHTMLView close]):
1142
1143 2009-02-25  Simon Fraser  <simon.fraser@apple.com>
1144
1145         Reviewed by Dan Bernstein
1146
1147         https://bugs.webkit.org/show_bug.cgi?id=23854
1148
1149         Make an observable property, _isUsingAcceleratedCompositing, on
1150         WebView that DumpRenderTree can use to specialize behavior.
1151         
1152         This is implemented via a count of Frames that are using
1153         accelerated compositing.
1154
1155         * WebView/WebHTMLView.mm:
1156         (-[WebHTMLViewPrivate clear]):
1157         (-[WebHTMLView close]):
1158         (-[WebHTMLView attachRootLayer:]):
1159         (-[WebHTMLView detachRootLayer]):
1160         * WebView/WebView.mm:
1161         (+[WebView automaticallyNotifiesObserversForKey:]):
1162         (-[WebView _startedAcceleratedCompositingForFrame:]):
1163         (-[WebView _stoppedAcceleratedCompositingForFrame:]):
1164         (-[WebView _isUsingAcceleratedCompositing]):
1165         * WebView/WebViewInternal.h:
1166         * WebView/WebViewPrivate.h:
1167
1168 2009-02-24  Sam Weinig  <sam@webkit.org>
1169
1170         Reviewed by Geoffrey Garen.
1171
1172         Related to <rdar://problem/6590295>
1173         Allow disabling javascript: urls.
1174
1175         * WebView/WebView.mm:
1176         (-[WebView _setJavaScriptURLsAreAllowed:]):
1177         * WebView/WebViewPrivate.h:
1178
1179 2009-02-24  Mark Rowe  <mrowe@apple.com>
1180
1181         Reviewed by Oliver Hunt.
1182
1183         <rdar://problem/6259220> Rename AVAILABLE_AFTER_WEBKIT_VERSION_3_1 (etc.) to match the other macros
1184
1185         * Carbon/CarbonUtils.h:
1186         * Carbon/HIWebView.h:
1187         * Plugins/WebPlugin.h:
1188         * Plugins/WebPluginViewFactory.h:
1189         * WebView/WebUIDelegate.h:
1190
1191 2009-02-24  Peter Ammon  <pammon@apple.com>
1192
1193         Reviewed by Mark Rowe.
1194
1195         Fix <rdar://problem/6251410> Services can modify non-editable content in Safari
1196
1197         * WebView/WebHTMLView.mm:
1198         (-[WebHTMLView validRequestorForSendType:returnType:]): Return self only if we can handle
1199         both the send and return type.  We should also handle a nil send or return type by ignoring
1200         the argument and returning whether we can handle the other type passed in.
1201
1202 2009-02-23  Anders Carlsson  <andersca@apple.com>
1203
1204         Reviewed by Geoffrey Garen and Darin Adler.
1205
1206         WebKit side of <rdar://problem/6613151>.
1207         
1208         Make sure to vm_deallocate all memory we get from MIG callbacks.
1209         
1210         * Plugins/Hosted/NetscapePluginHostProxy.mm:
1211         (DataDeallocator::DataDeallocator):
1212         (DataDeallocator::~DataDeallocator):
1213         Add a simple deallocator class.
1214         
1215         (WKPCStatusText):
1216         (WKPCLoadURL):
1217         (WKPCBooleanAndDataReply):
1218         (WKPCEvaluate):
1219         (WKPCGetStringIdentifier):
1220         (WKPCInvoke):
1221         (WKPCInvokeDefault):
1222         (WKPCConstruct):
1223         (WKPCSetProperty):
1224         Use the new deallocator class.
1225
1226 2009-02-23  Anders Carlsson  <andersca@apple.com>
1227
1228         Reviewed by Darin Adler.
1229
1230         Fix <rdar://problem/6450656>.
1231         
1232         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
1233         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1234         (WebKit::NetscapePluginInstanceProxy::insertText):
1235         Add insert text which just calls the new WKPH function.
1236         
1237         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
1238         (-[WebHostedNetscapePluginView inputContext]):
1239         Get the input context from the shared input panel.
1240         
1241         (-[WebHostedNetscapePluginView keyDown:]):
1242         Let the shared input panel have a go at the event first.
1243         
1244         * Plugins/Hosted/WebKitPluginHost.defs:
1245         Add new InsertText function.
1246
1247 2009-02-23  Mark Rowe  <mrowe@apple.com>
1248
1249         Fix the build after r41126.
1250
1251         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1252         (WebKit::NetscapePluginInstanceProxy::invoke):
1253         (WebKit::NetscapePluginInstanceProxy::invokeDefault):
1254         (WebKit::NetscapePluginInstanceProxy::construct):
1255
1256 2009-02-22  Dan Bernstein  <mitz@apple.com>
1257
1258         Reviewed by Darin Adler.
1259
1260         - fix <rdar://problem/5966123> REGRESSION (r30741): Generic Sun Applet loading logo appears half off screen
1261
1262         * WebCoreSupport/WebFrameLoaderClient.mm: Correct a copy & paste error
1263         in r30741, and assign the height value, rather than the width, to the
1264         "height" parameter.
1265
1266 2009-02-21  Anders Carlsson  <andersca@apple.com>
1267
1268         Fix build.
1269         
1270         * Plugins/Hosted/WebTextInputWindowController.m:
1271
1272 2009-02-20  Anders Carlsson  <andersca@apple.com>
1273
1274         Reviewed by Dan Bernstein.
1275
1276         Add a shared floating text input window implementation, to be used by the hosted plug-in view.
1277         
1278         * Plugins/Hosted/WebTextInputWindowController.h: Added.
1279         * Plugins/Hosted/WebTextInputWindowController.m: Added.
1280
1281 2009-02-20  Kevin Decker  <kdecker@apple.com>
1282
1283         Reviewed by andersca.
1284     
1285         <rdar://problem/6496140> Safari sometimes hangs in WKSetMetadataURL for several seconds after downloading a file
1286          
1287          Spawn a background thread for WKSetMetadataURL because this function will not return until mds has journaled the data
1288          we are trying to set. Depending on what other I/O is going on, it can take some time. 
1289
1290         * Misc/WebNSFileManagerExtras.m: Import pthread.h and FoundationExtras.h
1291         (setMetaData): Added. Calls WKSetMetadataURL().
1292         (-[NSFileManager _webkit_setMetadataURL:referrer:atPath:]): Call setMetaData on a background thread 
1293  
1294 2009-02-19  Dan Bernstein  <mitz@apple.com>
1295
1296         Reviewed by Sam Weinig.
1297
1298         - WebKit part of fixing https://bugs.webkit.org/show_bug.cgi?id=24027
1299           Do not send loader callbacks during CSS styling
1300
1301         * WebView/WebView.mm:
1302         (-[WebView _preferencesChangedNotification:]): Reverted the
1303         iChat-specific quirk added in <http://trac.webkit.org/changeset/41071>.
1304
1305 2009-02-18  Dan Bernstein  <mitz@apple.com>
1306
1307         Reviewed by Brady Eidson.
1308
1309         - WebKit part of fixing <rdar://problem/6507512> Crash in iChat at CSSStyleSelector::adjustRenderStyle
1310
1311         * WebView/WebView.mm:
1312         (-[WebView _preferencesChangedNotification:]): Activate the WebCore
1313         workaround for this crash in iChat.
1314
1315 2009-02-18  Anders Carlsson  <andersca@apple.com>
1316
1317         Reviewed by Sam Weinig.
1318
1319         Fix for <rdar://problem/6542390>
1320         
1321         There's no need to call setDefersLoading here - we already defer anything a plug-in can do that
1322         would cause a load to begin.
1323         
1324         * Plugins/WebNetscapePluginView.mm:
1325         (-[WebNetscapePluginView sendEvent:isDrawRect:]):
1326
1327 2009-02-18  Adam Roben  <aroben@apple.com>
1328
1329         Add SPI to get WebKit's custom pointing-hand cursor
1330
1331         Reviewed by John Sullivan.
1332
1333         * WebView/WebView.mm:
1334         (+[WebView _pointingHandCursor]): Added. Returns the custom
1335         pointing-hand cursor that WebKit uses.
1336         * WebView/WebViewPrivate.h: Added +_pointingHandCursor.
1337
1338 2009-02-17  Eric Carlson  <eric.carlson@apple.com>
1339
1340         Reviewed by Antti Koivisto.
1341
1342         https://bugs.webkit.org/show_bug.cgi?id=23917
1343         Allow a WebKit plug-in to act as a proxy for the <audio> and <video>
1344         element.
1345
1346         * Plugins/WebPluginContainerPrivate.h:
1347         * Plugins/WebPluginController.mm:
1348         (mediaProxyClient): New, cast to HTMLMediaElement if it is a video or audio element
1349         (-[WebPluginController _setMediaPlayerProxy:forElement:]): New, pass proxy to HTMLMediaElement
1350         (-[WebPluginController _postMediaPlayerNotification:forElement:]): New, deliver event to HTMLMediaElement
1351
1352         * WebCoreSupport/WebFrameLoaderClient.mm:
1353         (WebFrameLoaderClient::createPlugin): Don't allow a media player proxy plug-in to be chosen by
1354         file extension, only want a match for the new MIME type proxy plug-ins should have.
1355
1356 2009-02-13  Anders Carlsson  <andersca@apple.com>
1357
1358         Reviewed by Kevin Decker.
1359
1360         <rdar://problem/6584834> ESPN radio live stream link hangs Safari 
1361
1362         When a plug-in invokes JavaScript code that will destroy the plug-in, we need to
1363         defer destruction until we're done executing the script.
1364         
1365         * Plugins/Hosted/NetscapePluginHostProxy.mm:
1366         (WebKit::PluginDestroyDeferrer::PluginDestroyDeferrer):
1367         (WebKit::PluginDestroyDeferrer::~PluginDestroyDeferrer):
1368         Add a simple RAII object for deferring destruction of the plug-in instance.
1369         
1370         (WKPCEvaluate):
1371         (WKPCInvoke):
1372         (WKPCInvokeDefault):
1373         (WKPCConstruct):
1374         (WKPCGetProperty):
1375         (WKPCSetProperty):
1376         (WKPCRemoveProperty):
1377         (WKPCHasProperty):
1378         (WKPCHasMethod):
1379         Use the PluginDestroyDeferrer.
1380         
1381         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
1382         (WebKit::NetscapePluginInstanceProxy::pluginID):
1383         Assert that the plug-in ID is not 0 here.
1384         
1385         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1386         (WebKit::NetscapePluginInstanceProxy::NetscapePluginInstanceProxy):
1387         Initialize the call depth.
1388         
1389         (WebKit::NetscapePluginInstanceProxy::~NetscapePluginInstanceProxy):
1390         Set the plug-in ID to 0 to aid debugging.
1391         
1392         (WebKit::NetscapePluginInstanceProxy::willCallPluginFunction):
1393         Increment the call depth.
1394         
1395         (WebKit::NetscapePluginInstanceProxy::didCallPluginFunction):
1396         Decrement the call depth, if it's 0 and we should stop the plug-in, do so.
1397         
1398         (WebKit::NetscapePluginInstanceProxy::shouldStop):
1399         If we're called this with a non-zero call depth, set shouldStopSoon to true.
1400         
1401         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
1402         (-[WebHostedNetscapePluginView shouldStop]):
1403         Call the proxy.
1404
1405 2009-02-12  Brady Eidson  <beidson@apple.com>
1406
1407         Reviewed by Kevin Decker
1408
1409         <rdar://problem/6582180> - Wrong HTTP method applied to history item.
1410
1411         * WebCoreSupport/WebFrameLoaderClient.mm:
1412         (WebFrameLoaderClient::updateGlobalHistory): Check the original request, not any
1413           redirected request.
1414
1415 2009-02-12  Anders Carlsson  <andersca@apple.com>
1416
1417         Reviewed by Kevin Decker.
1418
1419         <rdar://problem/6579412> 
1420         REGRESSION (3.2.1-ToT): Crash in Silverlight viewing streaming lecture
1421         
1422         * Plugins/WebNetscapePluginView.h:
1423         * Plugins/WebNetscapePluginView.mm:
1424         (-[WebNetscapePluginView userAgent]):
1425         Apply workaround for Silverlight workaround.
1426         
1427         (-[WebNetscapePluginView _createPlugin]):
1428         Check if the plug-in that we're creating is the silverlight plug-in.
1429
1430 2009-02-12  Brady Eidson  <beidson@apple.com>
1431
1432         Reviewed by Darin Adler
1433
1434         Fix potential ref-count or null-deref problems with C++ objects as Obj-C members.
1435
1436         * History/WebBackForwardList.mm:
1437         (-[WebBackForwardList dealloc]): Null check before deref()'ing.
1438         (-[WebBackForwardList finalize]): Ditto.
1439
1440         * Misc/WebIconFetcher.mm:
1441         (-[WebIconFetcher dealloc]): Null check before deref()'ing.
1442         (-[WebIconFetcher finalize]): Ditto.
1443
1444         * WebCoreSupport/WebEditorClient.mm: Change to use RefPtr<> instead of ref()/deref().
1445         (-[WebEditCommand initWithEditCommand:]):
1446         (-[WebEditCommand dealloc]):
1447         (-[WebEditCommand finalize]):
1448         (-[WebEditCommand command]):
1449
1450         * WebView/WebArchive.mm: Change to use RefPtr<> instead of ref()/deref().
1451         (-[WebArchivePrivate init]):
1452         (-[WebArchivePrivate initWithCoreArchive:]):
1453         (-[WebArchivePrivate coreArchive]):
1454         (-[WebArchivePrivate setCoreArchive:]):
1455         (-[WebArchivePrivate dealloc]):
1456         (-[WebArchivePrivate finalize]):
1457
1458         * WebView/WebDataSource.mm: 
1459         (-[WebDataSourcePrivate dealloc]): Null check before deref()'ing.
1460         (-[WebDataSourcePrivate finalize]): Ditto.
1461
1462 2009-02-12  Brady Eidson  <beidson@apple.com>
1463
1464         Reviewed by Kevin Decker
1465
1466         <rdar://problem/6579750> - Crash in WebArchivePrivate in Tiger TextEdit
1467
1468         NSHTMLReader tries to create a WebArchive from a random chunk of data.  Previously, WebArchive creation would
1469         fail and return nil and NSHTMLReader would try something else.  When we changed the behavior to return an invalid
1470         WebArchive object, things started getting weird.
1471
1472         * WebView/WebArchive.mm:
1473         (-[WebArchivePrivate setCoreArchive:]): Null check the pointer before calling ->deref()
1474         (-[WebArchivePrivate dealloc]): Remove the ASSERT which is now invalid, and null check the pointer before ->deref().
1475         (-[WebArchivePrivate finalize]): Ditto
1476         (-[WebArchive initWithData:]): If the LegacyWebArchive cannot be created, return nil instead of an invalid object.
1477
1478 2009-02-11  Mark Rowe  <mrowe@apple.com>
1479
1480         Fix the build.
1481
1482         * History/WebHistory.mm:
1483         (-[WebHistoryPrivate visitedURL:withTitle:]): Use ASSERT_UNUSED in a manner that makes sense.
1484
1485 2009-02-11  Brady Eidson  <beidson@apple.com>
1486
1487         Reviewed by Mark Rowe
1488
1489         <rdar://problem/6570573> Some visit counts in History.plist have insanely high values, can roll over to negative
1490
1491         Remove the item from the date caches before registering the visit.  Otherwise it might not be successfully removed 
1492         and when we add it back later it will exist in the list twice.  This will cause the entry to be written out twice,
1493         which would lead to doubling (or more!) the visit count on next launch when these multiple items are merged.
1494
1495         * History/WebHistory.mm:
1496         (-[WebHistoryPrivate visitedURL:withTitle:]): Swap the removeItemFromDateCaches and visitedWithTitle calls.
1497         (-[WebHistoryPrivate addItem:discardDuplicate:]): Add a mode that allows the entry being added to be discarded
1498           if an entry for the URL already exists.  Use that mode when reading the History.plist so only the most
1499           recent entry for a given URL will be used.
1500         (-[WebHistoryPrivate addItems:]):
1501         (-[WebHistoryPrivate loadHistoryGutsFromURL:savedItemsCount:collectDiscardedItemsInto:error:]): 
1502
1503 2009-02-11  Dimitri Dupuis-latour  <dupuislatour@apple.com>
1504
1505         Added a preference to disable some Inspector's panels (rdar://6419624, rdar://6419645).
1506         This is controlled via the 'WebKitInspectorHiddenPanels' key; if nothing is specified, all panels are shown.
1507
1508         Reviewed by Timothy Hatcher.
1509
1510         * WebCoreSupport/WebInspectorClient.h:
1511         * WebCoreSupport/WebInspectorClient.mm:
1512         (WebInspectorClient::hiddenPanels):
1513
1514 2009-02-11  Alexey Proskuryakov  <ap@webkit.org>
1515
1516         Reviewed by Darin Adler.
1517
1518         <rdar://problem/6562920> Pasted text should be normalized to NFC
1519
1520         * Misc/WebNSURLExtras.mm: (-[NSURL _web_userVisibleString]): Route the URL string through
1521         -[NSString precomposedStringWithCanonicalMapping].
1522
1523         * WebCoreSupport/WebPasteboardHelper.mm:
1524         (WebPasteboardHelper::plainTextFromPasteboard): Ditto. 
1525
1526         * WebView/WebHTMLView.mm:
1527         (-[WebHTMLView _documentFragmentFromPasteboard:forType:inContext:subresources:]):
1528         Ditto. The affected cases are all plain text ones - RTF, RTFD and HTML are assumed to be
1529         precomposed already, and the conversion is performed outside WebKit for those anyway.
1530
1531 2009-02-10  John Sullivan  <sullivan@apple.com>
1532
1533         Reviewed by Dan Bernstein
1534         
1535         <https://bugs.webkit.org/show_bug.cgi?id=23889>, <rdar://problem/6572300>
1536         Negative visit counts stored in History.plist aren't corrected.
1537         
1538         It's not clear how a huge negative visit count ended up in History.plist, but we can't
1539         trust data read from disk so we can at least reset this to something sane. WebCore has
1540         no guard against a visit count overflowing an int, but that seems very unlikely to have
1541         caused this.
1542
1543         * History/WebHistoryItem.mm:
1544         (-[WebHistoryItem initFromDictionaryRepresentation:]):
1545         If a negative visit count is in the dictionary, replace it with 1. If a negative daily or
1546         weekly visit count is in the dictionary, replace it with 0. 
1547
1548 2009-02-10  John Sullivan  <sullivan@apple.com>
1549
1550         Reviewed by Dan Bernstein
1551         
1552         <https://bugs.webkit.org/show_bug.cgi?id=23891>
1553         [WebHistoryItem _setVisitCount:] is unused and should be removed
1554
1555         * History/WebHistoryItem.mm:
1556         (-[WebHistoryItem _setVisitCount:]):
1557         removed this unused method, which is a synonym for setVisitCount: that was introduced
1558         recently and abandoned even more recently
1559
1560         * History/WebHistoryItemInternal.h:
1561         removed declaration of _setVisitCount:
1562
1563 2009-02-10  Anders Carlsson  <andersca@apple.com>
1564
1565         Reviewed by Mark Rowe.
1566
1567         <rdar://problem/6573916> 
1568         CrashTracer: [USER] 1 crash in Safari at com.apple.WebKit • WebKit::NetscapePluginInstanceProxy::pluginHostDied + 25.
1569         
1570         * Plugins/Hosted/NetscapePluginHostManager.mm:
1571         (WebKit::NetscapePluginHostManager::instantiatePlugin):
1572         If we failed to instantiate the plug-in, invalidate the instance proxy.
1573         
1574         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
1575         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1576         (WebKit::NetscapePluginInstanceProxy::invalidate):
1577         Remove the instance from the plug-in host's set.
1578         
1579         (WebKit::NetscapePluginInstanceProxy::destroy):
1580         Call invalidate().
1581
1582 2009-02-09  Mark Rowe  <mrowe@apple.com>
1583
1584         Reviewed by Dan Bernstein.
1585
1586         Fix <https://bugs.webkit.org/show_bug.cgi?id=23863> / <rdar://problem/6571390>.
1587         Bug 23863: Reproducible crash in Mail with TOT WebKit when creating a new message
1588
1589         * WebView/WebHTMLView.mm:
1590         (-[WebHTMLView _removeMouseMovedObserverUnconditionally]): Nil-check _private as it may have not
1591         yet been initialized if this WebHTMLView was loaded from a nib.
1592         (-[WebHTMLView _removeSuperviewObservers]): Ditto.
1593
1594 2009-02-09  Eric Seidel  <eric@webkit.org>
1595
1596         Reviewed by Dave Hyatt.
1597
1598         Rename Selection to VisibleSelection to allow us to separate
1599         the selections the user works with from the ones used by
1600         the JS editing APIs.
1601         https://bugs.webkit.org/show_bug.cgi?id=23852
1602
1603         * WebView/WebFrame.mm:
1604         (-[WebFrame _selectNSRange:]):
1605         * WebView/WebView.mm:
1606         (-[WebView textIteratorForRect:]):
1607
1608 2009-02-06  Anders Carlsson  <andersca@apple.com>
1609
1610         Reviewed by Kevin Decker.
1611         
1612         Fix crash when plug-in host dies.
1613         
1614         * Plugins/Hosted/HostedNetscapePluginStream.mm:
1615         (WebKit::HostedNetscapePluginStream::didFail):
1616
1617 2009-02-05  Eric Seidel  <eric@webkit.org>
1618
1619         Reviewed by Justin Garcia.
1620
1621         DOMSelection.getRangeAt() returns a different range than the selection
1622         https://bugs.webkit.org/show_bug.cgi?id=23601
1623
1624         Rename toRange to toNormalizedRange and add new firstRange which returns an unmodified range
1625
1626         * WebView/WebFrame.mm:
1627         (-[WebFrame _rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
1628         (-[WebFrame _markDOMRange]):
1629         (-[WebFrame _replaceSelectionWithText:selectReplacement:smartReplace:]):
1630         (-[WebFrame _selectedNSRange]):
1631         * WebView/WebHTMLView.mm:
1632         (-[WebHTMLView _selectedRange]):
1633         (-[WebTextCompleteController doCompletion]):
1634         (-[WebHTMLView selectedAttributedString]):
1635         * WebView/WebView.mm:
1636         (-[WebView textIteratorForRect:]):
1637         (-[WebView selectedDOMRange]):
1638
1639 2009-02-06  Geoffrey Garen  <ggaren@apple.com>
1640
1641         Reviewed by Sam Weinig.
1642
1643         Part III of <rdar://problem/6552272>.
1644         
1645         Refactored to use the redirect data WebCore makes available, instead of
1646         tracking loading state in WebKit.
1647         
1648         * History/WebHistory.mm:
1649         (-[WebHistoryPrivate dealloc]):
1650         (-[WebHistory _visitedURL:withTitle:method:wasFailure:]):
1651         (-[WebHistory _visitedURLForRedirectWithoutHistoryItem:]):
1652         * History/WebHistoryInternal.h:
1653         * WebCoreSupport/WebFrameLoaderClient.h:
1654         * WebCoreSupport/WebFrameLoaderClient.mm:
1655         (WebFrameLoaderClient::updateGlobalHistory):
1656         (WebFrameLoaderClient::updateGlobalHistoryRedirectLinks):
1657
1658 2009-02-06  Anders Carlsson  <andersca@apple.com>
1659
1660         Reviewed by Sam Weinig.
1661
1662         <rdar://problem/6562220> 
1663         CrashTracer: [USER] 21 crashes in Safari at com.apple.WebKit • WebKit::NetscapePluginHostProxy::port
1664         
1665         Make the handling of crashes in the plug-in host more robust.
1666         
1667         * Plugins/Hosted/NetscapePluginHostProxy.h:
1668         Add m_portSet.
1669         
1670         * Plugins/Hosted/NetscapePluginHostProxy.mm:
1671         (WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy):
1672         Initialize m_portSet.
1673         
1674         (WebKit::NetscapePluginHostProxy::~NetscapePluginHostProxy):
1675         Free m_portSet.
1676         
1677         (WebKit::NetscapePluginHostProxy::processRequests):
1678         Listen for messages on the port set. If we get a message to the port death notification port,
1679         then call pluginHostDied. Otherwise, process the message.
1680         
1681         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
1682         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1683         (WebKit::NetscapePluginInstanceProxy::cleanup):
1684         Factor code that should be shared between destroy() and pluginHostDied() into cleanup.
1685         
1686         (WebKit::NetscapePluginInstanceProxy::destroy):
1687         Call cleanup().
1688         
1689         (WebKit::NetscapePluginInstanceProxy::pluginHostDied):
1690         Call cleanup().
1691         
1692         (WebKit::NetscapePluginInstanceProxy::processRequestsAndWaitForReply):
1693         Call NetscapePluginHostProxy::processRequests.
1694         
1695         * Plugins/Hosted/ProxyInstance.mm:
1696         (WebKit::ProxyInstance::invalidate):
1697         Add a null check for the host proxy.
1698
1699 2009-02-06  Dan Bernstein  <mitz@apple.com>
1700
1701         - try to fix the Tiger build
1702
1703         * Misc/WebNSArrayExtras.h:
1704
1705 2009-02-06  Anders Carlsson  <andersca@apple.com>
1706
1707         Reviewed by Dan Bernstein.
1708
1709         <rdar://problem/6563650> 
1710         Add Netscape plug-in API to tell the browser not to load streams (some plug-ins handle network loading manually)
1711                 
1712         * Plugins/WebNetscapePluginView.mm:
1713         (-[WebNetscapePluginView loadStream]):
1714         (-[WebNetscapePluginView pluginView:receivedData:]):
1715         (-[WebNetscapePluginView _shouldCancelSrcStream]):
1716
1717 2009-02-05  Maciej Stachowiak  <mjs@apple.com> and Brady Eidson  <beidson@apple.com>
1718
1719         Reviewed by Dan Bernstein and Geoff Garen.
1720
1721         - WebKit code to track per-day and per-week visit counts in history
1722
1723         For now this data is only exposed via SPI for performance reasons.
1724         
1725         * History/WebHistoryItem.mm:
1726         (-[WebHistoryItem initFromDictionaryRepresentation:]): Add parsing support
1727         for new data.
1728         (-[WebHistoryItem _recordInitialVisit]): Tell WebCore to record an initial visit.
1729         (-[WebHistoryItem dictionaryRepresentation]): Add saving support for new data.
1730         (-[WebHistoryItem _getDailyVisitCounts:]): SPI accessor.
1731         (-[WebHistoryItem _getWeeklyVisitCounts:]): SPI accessor.
1732         * History/WebHistoryItemInternal.h: Declare new methods.
1733         * History/WebHistoryItemPrivate.h: Ditto.
1734
1735         * History/WebHistory.mm:
1736         (-[WebHistoryPrivate visitedURL:withTitle:]): For the initial visit, use
1737         the new _recordInitialVisit method instead of setting visit count to 1.
1738
1739         * Misc/WebNSArrayExtras.h:
1740         * Misc/WebNSArrayExtras.m:
1741         (-[NSArray _webkit_numberAtIndex:]): Helper to retrieve an NSNumber or nil from an NSArray
1742         (-[NSArray _webkit_stringAtIndex:]): Helper to retrieve an NSString of nil from an NSArray
1743         
1744 2009-02-05  Aaron Boodman  <aa@chromium.org>
1745
1746         Reviewed by Dave Hyatt.
1747
1748         https://bugs.webkit.org/show_bug.cgi?id=23708
1749         Adds documentElementAvailable() callback to FrameLoaderClient.
1750
1751         * WebCoreSupport/WebFrameLoaderClient.h:
1752         Stub out documentElementAvailable().
1753         * WebCoreSupport/WebFrameLoaderClient.mm:
1754         Ditto.
1755
1756 2009-02-05  Dan Bernstein  <mitz@apple.com>
1757
1758         - build fix
1759
1760         * WebView/WebScriptDebugger.mm:
1761         (WebScriptDebugger::initGlobalCallFrame):
1762
1763 2009-02-05  Beth Dakin  <bdakin@apple.com>
1764
1765         Reviewed by John Sullivan and Brady Eidson.
1766
1767         Fix for <rdar://problem/6557595> REGRESSION: In Mail, selecting a 
1768         mail note message doesn't display it in Mail's preview pane
1769
1770         This was failing because revision 36962 removed a version of 
1771         setVerticalScrollingMode that mail calls. This patch simply adds 
1772         that method back.
1773
1774         * WebView/WebDynamicScrollBarsView.m:
1775         (-[WebDynamicScrollBarsView setVerticalScrollingMode:]):
1776
1777 2009-02-04  Anders Carlsson  <andersca@apple.com>
1778
1779         Build fix fix.
1780
1781         * WebView/WebScriptDebugger.mm:
1782         (WebScriptDebugger::initGlobalCallFrame):
1783
1784 2009-02-04  Anders Carlsson  <andersca@apple.com>
1785
1786         Reviewed by Sam Weinig.
1787         
1788         Change PCHasProperty, PCHasMethod and PCGetProperty into simpleroutines.
1789         
1790         Rename PHEvaluateReply to PHBooleanAndDataReply and add PHBooleanReply.
1791         
1792         * Plugins/Hosted/NetscapePluginHostProxy.mm:
1793         (WKPCEvaluate):
1794         (WKPCInvoke):
1795         (WKPCGetProperty):
1796         (WKPCHasProperty):
1797         (WKPCHasMethod):
1798         * Plugins/Hosted/WebKitPluginClient.defs:
1799         * Plugins/Hosted/WebKitPluginHost.defs:
1800
1801 2009-02-04  Anders Carlsson  <andersca@apple.com>
1802
1803         Reviewed by Mark Rowe.
1804
1805         Fix 64-bit build.
1806         
1807         * WebView/WebScriptDebugger.mm:
1808         (WebScriptDebugger::initGlobalCallFrame):
1809
1810 2009-02-04  Geoffrey Garen  <ggaren@apple.com>
1811
1812         Reviewed by Mark Rowe.
1813         
1814         Part I of <rdar://problem/6552272>.
1815
1816         Clear the redirectURLs entry when first visiting a site, so sites that
1817         only redirect you the first time you visit them can later learn that
1818         they don't redirect.
1819
1820         * History/WebHistory.mm:
1821         (-[WebHistory _visitedURL:withTitle:method:wasFailure:serverRedirectURL:isClientRedirect:]):
1822
1823 2009-02-04  Timothy Hatcher  <timothy@apple.com>
1824
1825         Change the WebSourceId typedef from int to intptr_t now that <rdar://problem/6263297> is fixed.
1826
1827         <rdar://problem/6263293> WebScriptDebugDelegate should use intptr_t for sourceId, not int
1828
1829         Reviewed by Oliver Hunt.
1830
1831         * WebView/WebScriptDebugDelegate.h:
1832
1833 2009-02-04  Timothy Hatcher  <timothy@apple.com>
1834
1835         Switched over from using the WebSafeForwarder for the Script Debug
1836         delegate and added high performance CallScriptDebugDelegate functions.
1837
1838         <rdar://problem/6508457> Launching widget in Dashcode debugger is
1839         super-slow due forwardInvocation: calling debug delegate
1840
1841         Reviewed by Oliver Hunt.
1842
1843         * DefaultDelegates/WebDefaultScriptDebugDelegate.h: Removed.
1844         * DefaultDelegates/WebDefaultScriptDebugDelegate.m: Removed.
1845         * WebView/WebScriptDebugger.mm:
1846         (WebScriptDebugger::initGlobalCallFrame): Use CallScriptDebugDelegate.
1847         (WebScriptDebugger::sourceParsed): Ditto.
1848         (WebScriptDebugger::callEvent): Ditto.
1849         (WebScriptDebugger::atStatement): Ditto.
1850         (WebScriptDebugger::returnEvent): Ditto.
1851         (WebScriptDebugger::exception): Ditto.
1852         * WebView/WebView.mm:
1853         (-[WebViewPrivate dealloc]): Removed scriptDebugDelegateForwarder.
1854         (-[WebView _cacheScriptDebugDelegateImplementations]): Added. Gets the
1855         method implementations for the script debug delegate. Also caches what
1856         didParseSource method to use.
1857         (WebViewGetScriptDebugDelegateImplementations): Added. Returns the
1858         WebScriptDebugDelegateImplementations structure.
1859         (-[WebView setScriptDebugDelegate:]): Call _cacheScriptDebugDelegateImplementations.
1860         (CallDelegate): Added more overloaded versions that take different arguments.
1861         (CallScriptDebugDelegate): Added overloaded versions that take different arguments.
1862         * WebView/WebViewInternal.h:
1863
1864 2009-02-03  Simon Fraser  <simon.fraser@apple.com>
1865
1866         Reviewed by Dave Hyatt
1867
1868         https://bugs.webkit.org/show_bug.cgi?id=23365
1869         
1870         Hook up accelerated compositing layers the native
1871         view system on Mac.
1872
1873         * WebCoreSupport/WebChromeClient.h:
1874         * WebCoreSupport/WebChromeClient.mm:
1875         (WebChromeClient::attachRootGraphicsLayer):
1876         (WebChromeClient::setNeedsOneShotDrawingSynchronization):
1877         New methods to hook up the root GraphicsLayer to the native
1878         view system, and to synchronize layer changes with view-based
1879         drawing when layers come and go.
1880
1881         * WebView/WebHTMLView.mm:
1882         (-[WebHTMLViewPrivate clear]):
1883         Clear the pointer to layerHostingView.
1884
1885         (-[WebHTMLView _setAsideSubviews]):
1886         (-[WebHTMLView willRemoveSubview:]):
1887         Keep the special layer-hosting view in the subviews even 
1888         when the rest of the subviews are ripped out for
1889         painting.
1890
1891         (-[WebHTMLView _isUsingAcceleratedCompositing]):
1892         New utility method for DumpRenderTree to know if we're
1893         hosting layers.
1894
1895         (-[WebHTMLView drawRect:]):
1896         Call -disableScreenUpdatesUntilFlush if we have to
1897         synchronize layer changes with painting.
1898
1899         (-[WebHTMLView attachRootLayer:]):
1900         (-[WebHTMLView detachRootLayer]):
1901         Attach and detach the root GraphicsLayer.
1902
1903         * WebView/WebViewInternal.h:
1904         * WebView/WebHTMLViewInternal.h:
1905         * WebView/WebHTMLViewPrivate.h:
1906         New method declarations.
1907         
1908         * WebView/WebView.mm:
1909         (-[WebView _needsOneShotDrawingSynchronization]):
1910         (-[WebView _setNeedsOneShotDrawingSynchronization:]):
1911         Set the flag to say if we need to synchronize layer
1912         changes and painting on the next -drawRect: call.
1913
1914         (-[WebView viewWillMoveToWindow:]):
1915         (-[WebView viewDidMoveToWindow]):
1916         Call new notifications that the view was added to or removed from
1917         the window, which are required by the layer hosting mechanism.
1918
1919 2009-02-02  Geoffrey Garen  <ggaren@apple.com>
1920
1921         Build fix.
1922
1923         * Plugins/WebPluginController.mm:
1924         (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
1925
1926 2009-02-02  Geoffrey Garen  <ggaren@apple.com>
1927
1928         Reviewed by Sam Weinig.
1929
1930         Track redirects in global history.
1931
1932         * History/WebHistory.mm:
1933         (-[WebHistoryPrivate dealloc]):
1934         (-[WebHistoryPrivate lastVisitedEntry]):
1935         (-[WebHistoryPrivate setLastVisitedEntry:]): Remember the last global history
1936         entry in case we're asked to add redirect information to it later.
1937
1938         (-[WebHistory _visitedURL:withTitle:method:wasFailure:serverRedirectURL:isClientRedirect:]):
1939         (-[WebHistory _visitedURLForRedirectWithoutHistoryItem:]): Record redirect
1940         information in global history.
1941
1942         * History/WebHistoryInternal.h:
1943         * WebCoreSupport/WebFrameLoaderClient.h: See above and below.
1944
1945         * WebCoreSupport/WebFrameLoaderClient.mm:
1946         (WebFrameLoaderClient::updateGlobalHistory):
1947         (WebFrameLoaderClient::updateGlobalHistoryForRedirectWithoutHistoryItem): Record redirect
1948         information in global history.
1949
1950         * WebView/WebFrame.mm:
1951         (-[WebFrame loadRequest:]):
1952         (-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
1953         * WebView/WebFramePrivate.h: Updated for rename and extra parameter.
1954
1955 2009-02-02  Anders Carlsson  <andersca@apple.com>
1956
1957         Reviewed by Dan Bernstein.
1958
1959         Work around a limitation in MIG where two functions can't have the same name even if they're
1960         not in the same subsystem.
1961         
1962         * Plugins/Hosted/NetscapePluginHostProxy.mm:
1963         (WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy):
1964         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1965         (WebKit::NetscapePluginInstanceProxy::processRequestsAndWaitForReply):
1966         * Plugins/Hosted/WebKitPluginClient.defs:
1967         * Plugins/Hosted/WebKitPluginHost.defs:
1968
1969 2009-02-02  Anders Carlsson  <andersca@apple.com>
1970
1971         Reviewed by Sam Weinig.
1972
1973         Implement WKPCGetPluginElementObject.
1974         
1975         * Plugins/Hosted/NetscapePluginHostProxy.mm:
1976         (WKPCGetPluginElementNPObject):
1977         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
1978         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1979         (WebKit::NetscapePluginInstanceProxy::getPluginElementNPObject):
1980         * Plugins/Hosted/WebKitPluginClient.defs:
1981         * Plugins/WebBaseNetscapePluginView.h:
1982         * Plugins/WebBaseNetscapePluginView.mm:
1983         (-[WebBaseNetscapePluginView WebCore::]):
1984
1985 2009-02-02  Anders Carlsson  <andersca@apple.com>
1986
1987         Build fix.
1988         
1989         * WebView/WebHTMLView.mm:
1990
1991 2009-02-02  Anders Carlsson  <andersca@apple.com>
1992
1993         Reviewed by Dan Bernstein.
1994
1995         Make WebBaseNetscapePluginView hold a reference to a HTMLPlugInElement instead of a DOMElement.
1996         
1997         * Plugins/Hosted/WebHostedNetscapePluginView.h:
1998         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
1999         (-[WebHostedNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:element:WebCore::]):
2000         * Plugins/WebBaseNetscapePluginView.h:
2001         * Plugins/WebBaseNetscapePluginView.mm:
2002         (-[WebBaseNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:element:WebCore::]):
2003         (-[WebBaseNetscapePluginView _windowClipRect]):        
2004         (-[WebBaseNetscapePluginView visibleRect]):
2005         (-[WebBaseNetscapePluginView dataSource]):
2006         * Plugins/WebKitPluginContainerView.h: Removed.
2007         * Plugins/WebKitPluginContainerView.mm: Removed.
2008         * Plugins/WebNetscapePluginView.h:
2009         * Plugins/WebNetscapePluginView.mm:
2010         (-[WebNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:element:WebCore::]):
2011         (-[WebNetscapePluginView getVariable:value:]):
2012         * WebCoreSupport/WebFrameLoaderClient.mm:
2013         (WebFrameLoaderClient::createPlugin):
2014
2015 2009-02-02  Anders Carlsson  <andersca@apple.com>
2016
2017         Reviewed by Dan Bernstein.
2018
2019         Update for changes to WebCore.
2020         
2021         * WebCoreSupport/WebFrameLoaderClient.h:
2022         * WebCoreSupport/WebFrameLoaderClient.mm:
2023         (WebFrameLoaderClient::createPlugin):
2024
2025 2009-02-02  Anders Carlsson  <andersca@apple.com>
2026
2027         Reviewed by Oliver Hunt.
2028
2029         When a new Web View was not created, report back to the plug-in host.
2030         
2031         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2032         (WebKit::NetscapePluginInstanceProxy::performRequest):
2033         * Plugins/Hosted/WebKitPluginHost.defs:
2034
2035 2009-02-02  Anders Carlsson  <andersca@apple.com>
2036
2037         Reviewed by Kevin Decker.
2038
2039         Draw the regular missing plug-in icon instead of a red rect when a plug-in has crashed.
2040         
2041         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
2042         (-[WebHostedNetscapePluginView drawRect:]):
2043
2044 2009-02-02  Holger Hans Peter Freyther  <zecke@selfish.org>
2045
2046         Reviewed by Darin Adler.
2047
2048         Move Frame::forceLayout, Frame::adjustPageHeight and Frame::forceLayoutWithPageWidthRange to FrameView
2049
2050         https://bugs.webkit.org/show_bug.cgi?id=23428
2051
2052         FrameView::forceLayout could be killed but the comment might
2053         contain a value over the the plain FrameView::layout...
2054
2055         Adjust the WebCore/WebKit consumers of these methods.
2056
2057         * WebView/WebFrame.mm:
2058         (-[WebFrame _computePageRectsWithPrintWidthScaleFactor:printHeight:]):
2059         * WebView/WebHTMLView.mm:
2060         (-[WebHTMLView layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
2061         (-[WebHTMLView adjustPageHeightNew:top:bottom:limit:]):
2062
2063 2009-01-31  John Sullivan  <sullivan@apple.com>
2064
2065         https://bugs.webkit.org/show_bug.cgi?id=23665
2066
2067         Cleaned up code to add/remove NSNotification observers, to avoid performance hit
2068         of calling removeObserver with unspecified notifications, or calling removeObserver
2069         multiple times for the same notification.
2070
2071         Reviewed by Darin Adler
2072
2073         * WebView/WebHTMLView.mm:
2074         added observingMouseMovedNotifications, observingSuperviewNotifications, and 
2075         observingWindowNotifications as BOOL ivars of _private object
2076         (-[WebHTMLView _removeMouseMovedObserverUnconditionally]):
2077         moved to file-internal section of file, added leading underscore, now bails out
2078         if we aren't observing the relevant notifications, now records that we are no longer
2079         observing the relevant notifications
2080         (-[WebHTMLView _removeSuperviewObservers]):
2081         ditto, also stores [NSNoticationCenter defaultCenter] in local var to avoid objc dispatch
2082         (-[WebHTMLView _removeWindowObservers]):
2083         ditto
2084         (-[WebHTMLView close]):
2085         replace general removeObserver: call with three specific calls for all the notifications
2086         that this class actually observes
2087         (-[WebHTMLView addMouseMovedObserver]):
2088         bail out if already observing relevant notifications, now records that we are observing
2089         the relevant notifications
2090         (-[WebHTMLView removeMouseMovedObserver]):
2091         updated for name change
2092         (-[WebHTMLView addSuperviewObservers]):
2093         bail out if already observing relevant notifications, now records that we are observing
2094         the relevant notifications; also stores [NSNoticationCenter defaultCenter] in local var 
2095         to avoid objc dispatch
2096         (-[WebHTMLView addWindowObservers]):
2097         ditto
2098         (-[WebHTMLView viewWillMoveToSuperview:]):
2099         updated for name change
2100         (-[WebHTMLView viewWillMoveToWindow:]):
2101         updated for name changes
2102
2103 2009-01-31  Darin Adler  <darin@apple.com>
2104
2105         Reviewed by Mark Rowe.
2106
2107         Fix code that assumes all command selectors end in colons.
2108         rdar://problem/6545874
2109
2110         * WebView/WebHTMLView.mm:
2111         (commandNameForSelector): Don't assert, just return a null string, when
2112         the selector doesn't end in a colon.
2113
2114 2009-01-30  Adam Barth  <abarth@webkit.org>
2115
2116         Reviewed by Sam Weinig.
2117
2118         Add a pref to disable web security.
2119
2120         * WebView/WebPreferenceKeysPrivate.h:
2121         * WebView/WebPreferencesPrivate.h:
2122         * WebView/WebPreferences.mm:
2123         (+[WebPreferences initialize]):
2124         (-[WebPreferences isWebSecurityEnabled]):
2125         (-[WebPreferences setWebSecurityEnabled:]):
2126         * WebView/WebView.mm:
2127         (-[WebView _preferencesChangedNotification:]):
2128
2129 2009-01-30  Holger Hans Peter Freyther  <zecke@selfish.org>
2130
2131         Reviewed by Darin Adler.
2132
2133         Move Frame::sendResizeEvent and Frame::sendScrollEvent to EventHandler
2134
2135         Carry out the move and catch up in two call sites.
2136
2137         * WebView/WebHTMLView.mm:
2138         (-[WebHTMLView _frameOrBoundsChanged]):
2139
2140 2009-01-30  Holger Hans Peter Freyther  <zecke@selfish.org>
2141
2142         Reviewed by Darin Adler.
2143
2144         isFrameSet was moved from Frame to Document. Update the
2145         WebKit usage.
2146
2147         * WebView/WebFrame.mm:
2148         (-[WebFrame _isFrameSet]):
2149         * WebView/WebHTMLView.mm:
2150         (-[WebHTMLView knowsPageRange:]):
2151
2152 2009-01-30  Geoffrey Garen  <ggaren@apple.com>
2153
2154         Build fix.
2155
2156         * WebView/WebFramePrivate.h:
2157
2158 2009-01-30  Geoffrey Garen  <ggaren@apple.com>
2159
2160         Reviewed by Sam Weinig.
2161
2162         Split "lockHistory" into "lockHistory" and "lockBackForwardList" in
2163         preparation for setting them differently during a redirect.
2164
2165         * WebView/WebPDFView.mm:
2166         (-[WebPDFView PDFViewWillClickOnLink:withURL:]):
2167
2168 2009-01-30  Anders Carlsson  <andersca@apple.com>
2169
2170         Reviewed by Sam Weinig.
2171
2172         Fix <rdar://problem/6544048>
2173         
2174         Have NetscapePluginInstanceProxy keep track of all the ProxyInstance objects associated.
2175         
2176         When the plug-in instance is destroyed, invalidate all proxy instances.
2177         
2178         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
2179         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2180         (WebKit::NetscapePluginInstanceProxy::destroy):
2181         (WebKit::NetscapePluginInstanceProxy::addInstance):
2182         (WebKit::NetscapePluginInstanceProxy::removeInstance):
2183         * Plugins/Hosted/ProxyInstance.h:
2184         * Plugins/Hosted/ProxyInstance.mm:
2185         (WebKit::ProxyInstance::ProxyInstance):
2186         (WebKit::ProxyInstance::~ProxyInstance):
2187         (WebKit::ProxyInstance::invalidate):
2188
2189 2009-01-30  Anders Carlsson  <andersca@apple.com>
2190
2191         Reviewed by Sam Weinig.
2192
2193         Fix <rdar://problem/6490778>.
2194         
2195         Change the NPRuntime related functions to use IdentifierRep directly, and make sure to always
2196         validate IdentifierReps before dereferencing them.
2197         
2198         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2199         (WKPCEvaluate):
2200         (WKPCGetStringIdentifier):
2201         (WKPCGetIntIdentifier):
2202         (identifierFromIdentifierRep):
2203         (WKPCInvoke):
2204         (WKPCGetProperty):
2205         (WKPCSetProperty):
2206         (WKPCRemoveProperty):
2207         (WKPCHasProperty):
2208         (WKPCHasMethod):
2209         (WKPCIdentifierInfo):
2210
2211 2009-01-30  Brady Eidson  <beidson@apple.com>
2212
2213         Reviewed by Sam Weinig
2214
2215         Remove FrameLoaderClient code that is now handled by FrameLoader itself
2216
2217         * WebCoreSupport/WebFrameLoaderClient.mm:
2218         (WebFrameLoaderClient::frameLoadCompleted):
2219
2220 2009-01-29  Stephanie Lewis <slewis@apple.com>
2221
2222         RS by Oliver Hunt.
2223
2224         Update the order files.
2225
2226         * WebKit.order:
2227
2228 2009-01-29  Sam Weinig  <sam@webkit.org>
2229
2230         Reviewed by Anders Carlsson.
2231
2232         Second step in tracking the urls a HistoryItem was redirected through
2233         Add SPI to access the array of redirect urls associated with a HistoryItem.
2234
2235         * History/WebHistoryItem.mm:
2236         (-[WebHistoryItem dictionaryRepresentation]):
2237         (-[WebHistoryItem _redirectURLs]):
2238         * History/WebHistoryItemPrivate.h:
2239
2240 2009-01-29  Anders Carlsson  <andersca@apple.com>
2241
2242         Reviewed by Dan Bernstein.
2243
2244         Always activate the plug-in host process if we're in "modal mode" and are being told to activate.
2245         
2246         * Plugins/Hosted/NetscapePluginHostProxy.h:
2247         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2248         (WebKit::NetscapePluginHostProxy::pluginHostDied):
2249         Call endModal here.
2250         
2251         (WebKit::NetscapePluginHostProxy::applicationDidBecomeActive):
2252         If we're modal, we should always bring the plug-in host process to the front.
2253         
2254         (WebKit::NetscapePluginHostProxy::beginModal):
2255         Add an observer for the NSApplicationWillBecomeActiveNotification callback.
2256         
2257         (WebKit::NetscapePluginHostProxy::endModal):
2258         Remove the observer.
2259
2260 2009-01-29  Sam Weinig  <sam@webkit.org>
2261
2262         Reviewed by Mark Rowe.
2263
2264         First step in tracking the urls a HistoryItem was redirected through.
2265
2266         * History/WebHistoryItem.mm:
2267         (-[WebHistoryItem initFromDictionaryRepresentation:]):
2268         (-[WebHistoryItem dictionaryRepresentation]):
2269         * Misc/WebNSDictionaryExtras.h:
2270         * Misc/WebNSDictionaryExtras.m:
2271         (-[NSDictionary _webkit_arrayForKey:]): Add helper.
2272
2273 2009-01-29  Anders Carlsson  <andersca@apple.com>
2274
2275         Reviewed by Sam Weinig.
2276
2277         Pass the PSN of the client to the host, and get the PSN of the host back when checking in.
2278         
2279         * Plugins/Hosted/NetscapePluginHostManager.h:
2280         * Plugins/Hosted/NetscapePluginHostManager.mm:
2281         (WebKit::NetscapePluginHostManager::hostForPackage):
2282         Get the current PSN and pass it to spawnPluginHost.
2283         
2284         (WebKit::NetscapePluginHostManager::spawnPluginHost):
2285         Pass the PSN to the "check in" function.
2286         
2287         * Plugins/Hosted/NetscapePluginHostProxy.h:
2288         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2289         (WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy):
2290         
2291         (WebKit::NetscapePluginHostProxy::pluginHostDied):
2292         Fix a bug noticed by Julien Chaffraix. Call endModal if necessary.
2293         
2294         (WebKit::NetscapePluginHostProxy::beginModal):
2295         (WebKit::NetscapePluginHostProxy::endModal):
2296         (WebKit::NetscapePluginHostProxy::setModal):
2297         Split out the code that does all of the work into beginModal and endModal methods.
2298         
2299         * Plugins/Hosted/WebKitPluginHost.defs:
2300         * Plugins/WebNetscapePluginView.mm:
2301         (-[WebNetscapePluginView loadStream]):
2302
2303 2009-01-29  David Kilzer  <ddkilzer@apple.com>
2304
2305         Remove semi-colons from the end of ObjC method implementations
2306
2307         Rubber-stamped by Adam Roben.
2308
2309         $ find WebKit -name \*.m -o -name \*.mm -exec perl -e 'undef $/; $s = <>; while ($s =~ m/[\n\r][-+].*;[\s\r\n]+\{/g) { print "$ARGV: $&\n"; }' {} \;
2310
2311         * DefaultDelegates/WebDefaultUIDelegate.m:
2312         (-[WebDefaultUIDelegate webView:setResizable:]):
2313         (-[WebDefaultUIDelegate webView:dragDestinationActionMaskForDraggingInfo:]):
2314         (-[WebDefaultUIDelegate webView:dragSourceActionMaskForPoint:]):
2315         (-[WebDefaultUIDelegate webView:willPerformDragSourceAction:fromPoint:withPasteboard:]):
2316         * History/WebBackForwardList.mm:
2317         (-[WebBackForwardList addItem:]):
2318         (-[WebBackForwardList backListWithLimit:]):
2319         (-[WebBackForwardList forwardListWithLimit:]):
2320         * History/WebHistoryItem.mm:
2321         (-[WebHistoryItem alternateTitle]):
2322         (-[WebHistoryItem setViewState:]):
2323         * Misc/WebCoreStatistics.mm:
2324         (+[WebCoreStatistics garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging:]):
2325         * Misc/WebKitNSStringExtras.m:
2326         (-[NSString _web_drawAtPoint:font:textColor:]):
2327         * Plugins/WebNetscapePluginView.mm:
2328         (-[WebNetscapePluginView setAttributeKeys:andValues:]):
2329         * WebCoreSupport/WebEditorClient.mm:
2330         (-[WebEditCommand command]):
2331         * WebView/WebFrame.mm:
2332         (-[WebFrame _getVisibleRect:]):
2333         * WebView/WebHTMLRepresentation.mm:
2334         (-[WebHTMLRepresentation _redirectDataToManualLoader:forPluginView:]):
2335         * WebView/WebHTMLView.mm:
2336         (-[WebHTMLView elementAtPoint:allowShadowContent:]):
2337         * WebView/WebPreferences.mm:
2338         (-[WebPreferences setAllowsAnimatedImages:]):
2339         (-[WebPreferences setAutosaves:]):
2340         (-[WebPreferences PDFDisplayMode]):
2341         * WebView/WebView.mm:
2342         (+[WebView _viewClass:andRepresentationClass:forMIMEType:]):
2343         (-[WebView _viewClass:andRepresentationClass:forMIMEType:]):
2344         (+[WebView _unregisterViewClassAndRepresentationClassForMIMEType:]):
2345         (+[WebView _registerViewClass:representationClass:forURLScheme:]):
2346         (-[WebView _shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
2347         (-[WebView _insertNewlineInQuotedContent]):
2348
2349 2009-01-28  Geoffrey Garen  <ggaren@apple.com>
2350
2351         Reviewed by Sam Weinig.
2352
2353         Updated for WebCore rename.
2354         
2355         * WebView/WebView.mm:
2356         (-[WebView setCustomTextEncodingName:]):
2357
2358 2009-01-28  David Kilzer  <ddkilzer@apple.com>
2359
2360         Add missing declaration for -[NSURL(WebNSURLExtras) _webkit_isFileURL]
2361
2362         Reviewed by Dan Bernstein.
2363
2364         * Misc/WebNSURLExtras.h:
2365         (-[NSURL(WebNSURLExtras) _webkit_isFileURL]): Added missing
2366         declaration after the implementation was added in r9258.
2367
2368 2009-01-28  Sam Weinig  <sam@webkit.org>
2369
2370         Reviewed by Geoff Garen.
2371
2372         Fix for <rdar://problem/6129678>
2373         REGRESSION (Safari 3-4): Local variable not accessible from Dashcode console or variables view
2374
2375         * WebView/WebScriptDebugDelegate.mm:
2376         (-[WebScriptCallFrame scopeChain]): Wrap JSActivations in DebuggerActivations.
2377
2378 2009-01-27  Anders Carlsson  <andersca@apple.com>
2379
2380         Reviewed by Oliver Hunt.
2381
2382         Fix two bugs with Core Animation based plug-ins.
2383         
2384         1. The plug-in view was marked as opaque even though it's not. 
2385            (This would leave garbage in the plug-in view).
2386         2. The plug-in layer needs to have autoresizing turned on.
2387         
2388         * Plugins/WebNetscapePluginView.mm:
2389         (-[WebNetscapePluginView setLayer:]):
2390
2391 2009-01-27  Brady Eidson  <beidson@apple.com>
2392
2393         Reviewed by Dan Bernstein
2394
2395         Rework FrameLoaderClient to work on a CachedFrame basis instead of CachedPage
2396
2397         * History/WebHistoryItem.mm:
2398
2399         * WebCoreSupport/WebFrameLoaderClient.h:
2400         * WebCoreSupport/WebFrameLoaderClient.mm:
2401         (WebFrameLoaderClient::savePlatformDataToCachedFrame):
2402         (WebFrameLoaderClient::transitionToCommittedFromCachedFrame):
2403         * WebKit.order:
2404
2405 2009-01-26  Anders Carlsson  <andersca@apple.com>
2406
2407         Reviewed by Dan Bernstein.
2408
2409         Add the ability for plug-ins to make WebKit operate in "modal mode"
2410         
2411         * Plugins/Hosted/NetscapePluginHostProxy.h:
2412         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2413         (WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy):
2414         (WebKit::NetscapePluginHostProxy::pluginHostDied):
2415         If the plug-in crashes while we're modal, make sure to leave the modal mode.
2416         
2417         (WebKit::NetscapePluginHostProxy::setModal):
2418         (WKPCSetModal):
2419         * Plugins/Hosted/WebKitPluginClient.defs:
2420
2421 2009-01-26  John Sullivan  <sullivan@apple.com>
2422
2423         fixed <rdar://problem/6530053> REGRESSION (Leopard): Shift-tab in http authentication window gets 
2424         stuck in the Name field rather than cycling around
2425
2426         Reviewed by Dan Bernstein
2427
2428         * Panels/English.lproj/WebAuthenticationPanel.nib/designable.nib:
2429         * Panels/English.lproj/WebAuthenticationPanel.nib/keyedobjects.nib:
2430         The two static text fields and the last button all had their "next key view" outlets set to the
2431         name field, which caused shift-tab from the name field to do the wrong thing. Fixed by making each
2432         selectable view have exactly one "next key view" set to it.
2433
2434 2009-01-26  Anders Carlsson  <andersca@apple.com>
2435
2436         Reviewed by Sam Weinig.
2437
2438         Add the ability for a plug-in to show or hide the menu bar.
2439         
2440         * Plugins/Hosted/NetscapePluginHostProxy.h:
2441         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2442         (WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy):
2443         (WebKit::NetscapePluginHostProxy::pluginHostDied):
2444         (WebKit::NetscapePluginHostProxy::setMenuBarVisible):
2445         (WKPCSetMenuBarVisible):
2446         * Plugins/Hosted/WebKitPluginClient.defs:
2447
2448 2009-01-26  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
2449
2450         Reviewed by Gavin Barraclough.
2451
2452         Bug 23552: Dashcode evaluator no longer works after making ExecStates actual call frames
2453         <https://bugs.webkit.org/show_bug.cgi?id=23552>
2454         <rdar://problem/6398839>
2455
2456         Dashcode will crash when using the evaluator because it saves a global call
2457         frame, even after global code has finished executing, and then uses this as
2458         a launching pad to execute new JS in the evaluator. The fix is to detect
2459         when Dashcode is attempting to do this and execute code from a global call
2460         frame instead.        
2461
2462         * ForwardingHeaders/runtime/Protect.h: Added.
2463         * WebView/WebScriptDebugDelegate.mm:
2464         (-[WebScriptCallFrame _initWithGlobalObject:debugger:caller:debuggerCallFrame:]):
2465         Added debugger, a WebScriptDebugger* argument.
2466         (-[WebScriptCallFrame evaluateWebScript:]): Detect when Dashcode is using
2467         a stale WebScriptCallFrame to execute new JS and evaluate it starting from
2468         the global object's global call frame instead.
2469         * WebView/WebScriptDebugger.h:
2470         (WebScriptDebugger::globalObject): Added.
2471         (WebScriptDebugger::globalCallFrame): Added.
2472         * WebView/WebScriptDebugger.mm:
2473         (WebScriptDebugger::WebScriptDebugger): Initialize m_globalObject.
2474         (WebScriptDebugger::initGlobalCallFrame): Created as a clone of callEvent
2475         so that the global call frame can be saved immediately after being created.
2476         (WebScriptDebugger::callEvent): Pass 'this' as the debugger argument of
2477         WebScriptCallFrame's _initWithGlobalObject method.
2478
2479 2009-01-26  Anders Carlsson  <andersca@apple.com>
2480
2481         Reviewed by Oliver Hunt.
2482
2483         Make WKPCInvoke a simpleroutine.
2484         
2485         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2486         (WKPCInvoke):
2487         * Plugins/Hosted/WebKitPluginClient.defs:
2488
2489 2009-01-26  Anders Carlsson  <andersca@apple.com>
2490
2491         Reviewed by Sam Weinig.
2492
2493         Implement using plug-in objects as constructors, and setting and getting properties from a plug-in object.
2494         
2495         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2496         (WKPCBooleanAndDataReply):
2497         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
2498         (WebKit::NetscapePluginInstanceProxy::Reply::):
2499         (WebKit::NetscapePluginInstanceProxy::BooleanAndDataReply::BooleanAndDataReply):
2500         Rename NPObjectInvokeReply to BooleanAndDataReply.
2501         
2502         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2503         (WebKit::NetscapePluginInstanceProxy::addValueToArray):
2504         Fix a cut and paste error.
2505         
2506         (WebKit::NetscapePluginInstanceProxy::demarshalValueFromArray):
2507         Handle NPObjects.
2508         
2509         * Plugins/Hosted/ProxyInstance.h:
2510         * Plugins/Hosted/ProxyInstance.mm:
2511         (WebKit::ProxyField::valueFromInstance):
2512         (WebKit::ProxyField::setValueToInstance):
2513         Call the ProxyInstance method.
2514         
2515         (WebKit::ProxyInstance::~ProxyInstance):
2516         Release the NPObject.
2517         
2518         (WebKit::ProxyInstance::supportsConstruct):
2519         Ask the plug-in host if an instance supports construct.
2520         
2521         (WebKit::ProxyInstance::fieldValue):
2522         (WebKit::ProxyInstance::setFieldValue):
2523         Call the plug-in host methods.
2524         
2525         * Plugins/Hosted/WebKitPluginHostTypes.h:
2526         Rename ObjectValueType to JSObjectValueType, and add NPObjectValueType.
2527
2528 2009-01-26  Mark Rowe  <mrowe@apple.com>
2529
2530         Fix the build.
2531
2532         Remove -Wformat=2 from the warning flags as newer versions of GCC emit
2533         warnings about non-literal format strings for uses of our UI_STRING macro.
2534
2535         * Configurations/Base.xcconfig:
2536
2537 2009-01-26  Mark Rowe  <mrowe@apple.com>
2538
2539         Rubber-stamped by Sam Weinig.
2540
2541         Clean up after r40240.
2542
2543         * Configurations/Base.xcconfig: Don't dead code strip in debug builds for now as it leads to link errors.
2544         * Plugins/Hosted/HostedNetscapePluginStream.mm: Revert change that is no longer needed now that WebKitPluginHost.defs
2545         is back in the build.
2546
2547 2009-01-25  Darin Adler  <darin@apple.com>
2548
2549         * Plugins/Hosted/HostedNetscapePluginStream.mm: Added a missing extern "C".
2550
2551 2009-01-25  Darin Adler  <darin@apple.com>
2552
2553         Discussed with Mark Rowe; not sure he reviewed it.
2554
2555         * Configurations/Base.xcconfig: Add all the same warnings as in WebCore except for
2556         -Wcast-qual and -Wunused-parameter, which both need to be off at least for now.
2557
2558 2009-01-25  Mark Rowe  <mrowe@apple.com>
2559
2560         Rubber-stamped by Dan Bernstein.
2561
2562         Improve the consistency of settings in our .xcconfig files.
2563
2564         * Configurations/Base.xcconfig: Only dead code strip the normal variant.
2565         Handle all cases in GCC_GENERATE_DEBUGGING_SYMBOLS.
2566
2567 2009-01-25  Darin Adler  <darin@apple.com>
2568
2569         Reviewed by Sam Weinig.
2570
2571         Bug 23522: use checked casts for render tree
2572         https://bugs.webkit.org/show_bug.cgi?id=23522
2573
2574         Step one: RenderText.
2575
2576         * WebView/WebRenderNode.mm:
2577         (copyRenderNode): Use toRenderText.
2578
2579 2009-01-23  Brady Eidson  <beidson@apple.com>
2580
2581         Rubberstamped by Darin Adler
2582
2583         Rename CachedPagePlatformData to CachedFramePlatformData to more accurately reflect its true role.
2584
2585         * WebCoreSupport/WebCachedFramePlatformData.h: Copied from WebKit/mac/WebCoreSupport/WebCachedPagePlatformData.h.
2586         (WebCachedFramePlatformData::WebCachedFramePlatformData):
2587         * WebCoreSupport/WebCachedPagePlatformData.h: Removed.
2588
2589         * WebCoreSupport/WebFrameLoaderClient.mm:
2590         (WebFrameLoaderClient::savePlatformDataToCachedPage):
2591         (WebFrameLoaderClient::transitionToCommittedFromCachedPage):
2592
2593         * WebKit.order:
2594
2595 2009-01-23  Adele Peterson  <adele@apple.com>
2596
2597         Build fix.
2598
2599         Use new linesBoundingBox method instead of
2600         boundingBoxWidth and boundingBoxHeight for RenderText objects.
2601
2602         * WebView/WebRenderNode.mm: (copyRenderNode):
2603
2604 2009-01-23  Anders Carlsson  <andersca@apple.com>
2605
2606         Fix 64-bit build.
2607         
2608         * Plugins/Hosted/ProxyInstance.mm:
2609         (WebKit::proxyClass):
2610
2611 2009-01-23  Anders Carlsson  <andersca@apple.com>
2612
2613         Fix GCC 4.0 build.
2614         
2615         * Configurations/Base.xcconfig:
2616
2617 2009-01-23  Anders Carlsson  <andersca@apple.com>
2618
2619         Reviewed by Sam Weinig.
2620
2621         Turn on -Wmissing-prototypes and fix the resulting warnings.
2622
2623         * Configurations/Base.xcconfig:
2624         * History/WebHistory.mm:
2625         (timeIntervalForBeginningOfDay):
2626         * History/WebHistoryItem.mm:
2627         (historyItemWrappers):
2628         * Misc/WebNSPasteboardExtras.mm:
2629         (imageFromElement):
2630         * WebView/WebFrame.mm:
2631         * WebView/WebScriptDebugger.mm:
2632         (toNSString):
2633
2634 2009-01-22  Mark Rowe  <mrowe@apple.com>
2635
2636         Rubber-stamped by Anders Carlsson.
2637
2638         Disable GCC_WARN_ABOUT_MISSING_PROTOTYPES temporarily.
2639
2640         Current versions of Xcode only respect it for C and Objective-C files,
2641         and our code doesn't currently compile if it is applied to C++ and
2642         Objective-C++ files.
2643
2644         * Configurations/Base.xcconfig:
2645
2646 2009-01-22  Anders Carlsson  <andersca@apple.com>
2647
2648         Reviewed by Sam Weinig.
2649
2650         Add support for Invoke and InvokeDefault. Clean up code.
2651         
2652         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2653         (WKPCBooleanReply):
2654         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
2655         (WebKit::NetscapePluginInstanceProxy::Reply::):
2656         (WebKit::NetscapePluginInstanceProxy::BooleanReply::BooleanReply):
2657         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2658         (WebKit::NetscapePluginInstanceProxy::demarshalValueFromArray):
2659         * Plugins/Hosted/ProxyInstance.h:
2660         * Plugins/Hosted/ProxyInstance.mm:
2661         (WebKit::ProxyInstance::invoke):
2662         (WebKit::ProxyInstance::invokeMethod):
2663         (WebKit::ProxyInstance::supportsInvokeDefaultMethod):
2664         (WebKit::ProxyInstance::invokeDefaultMethod):
2665         (WebKit::ProxyInstance::methodsNamed):
2666         (WebKit::ProxyInstance::fieldNamed):
2667         * Plugins/Hosted/WebKitPluginClient.defs:
2668         * Plugins/Hosted/WebKitPluginHost.defs:
2669         * Plugins/Hosted/WebKitPluginHostTypes.h:
2670
2671 2009-01-22  Eric Roman  <eroman@chromium.og>
2672
2673         Reviewed by Eric Seidel.
2674
2675         https://bugs.webkit.org/show_bug.cgi?id=20806
2676         Deprecate RSSFeedReferrer() and setRSSFeedReferrer().
2677
2678         * History/WebHistoryItem.mm:
2679         (-[WebHistoryItem RSSFeedReferrer]):
2680         (-[WebHistoryItem setRSSFeedReferrer:]):
2681
2682 2009-01-22  Anders Carlsson  <andersca@apple.com>
2683
2684         Reviewed by Kevin Decker.
2685
2686         Don't crash or hang when we fail to instantiate a plug-in.
2687         
2688         * Plugins/Hosted/NetscapePluginHostManager.mm:
2689         (WebKit::NetscapePluginHostManager::instantiatePlugin):
2690         Return 0 on failure.
2691         
2692         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
2693         (-[WebHostedNetscapePluginView JSC::Bindings::createPluginBindingsInstance:JSC::Bindings::]):
2694         Null check for the proxy member.
2695
2696 2009-01-21  David Hyatt  <hyatt@apple.com>
2697
2698         Devirtualize width/height/x/y on RenderObject and move the methods to RenderBox.
2699
2700         Reviewed by Eric Seidel and Darin Adler
2701
2702         * WebView/WebRenderNode.mm:
2703         (copyRenderNode):
2704
2705 2009-01-21  Anders Carlsson  <andersca@apple.com>
2706
2707         Reviewed by Sam Weinig.
2708
2709         More browser->plug-in scripting support.
2710         
2711         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2712         (WKPCNPObjectHasPropertyReply):
2713         (WKPCNPObjectHasMethodReply):
2714         (WKPCNPObjectInvokeReply):
2715         MIG reply functions.
2716         
2717         (WKPCIdentifierInfo):
2718         Return information about an identifier given its 64-bit value.
2719         
2720         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
2721         Add new reply structs.
2722         
2723         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2724         (WebKit::NetscapePluginInstanceProxy::addValueToArray):
2725         Split out code that adds values to the arrays from marshalValue.
2726         
2727         (WebKit::NetscapePluginInstanceProxy::marshalValue):
2728         Call addValueToArray.
2729     
2730         (WebKit::NetscapePluginInstanceProxy::marshalValues):
2731         Marshal a list of values.
2732         
2733         (WebKit::NetscapePluginInstanceProxy::createBindingsInstance):
2734         Actually create a proxy instance.
2735         
2736         * Plugins/Hosted/ProxyInstance.h:
2737         * Plugins/Hosted/ProxyInstance.mm:
2738         (WebKit::ProxyClass::methodsNamed):
2739         (WebKit::ProxyClass::fieldNamed):
2740         Add a proxy ProxyClass class that just forwards everything to the ProxyInstance class.
2741         
2742         (WebKit::proxyClass):
2743         Shared proxyClass getter.
2744         
2745         (WebKit::ProxyField::ProxyField):
2746         (WebKit::ProxyField::valueFromInstance):
2747         (WebKit::ProxyField::setValueToInstance):
2748         Add a proxy ProxyField class that just forwards everything to the ProxyInstance class.
2749         
2750         (WebKit::ProxyMethod::ProxyMethod):
2751         (WebKit::ProxyMethod::serverIdentifier):
2752         (WebKit::ProxyMethod::numParameters):
2753         Add a dummy ProxyMethod class.
2754         
2755         (WebKit::ProxyInstance::invokeMethod):
2756         Call _WKPHNPObjectInvoke.
2757         
2758         (WebKit::ProxyInstance::defaultValue):
2759         (WebKit::ProxyInstance::stringValue):
2760         (WebKit::ProxyInstance::numberValue):
2761         (WebKit::ProxyInstance::booleanValue):
2762         (WebKit::ProxyInstance::valueOf):
2763         Add dummy implementations (taken from CInstance).
2764         
2765         (WebKit::ProxyInstance::methodsNamed):
2766         Call _WKPHNPObjectHasMethod to determine whether a method with the given name exists.
2767         
2768         (WebKit::ProxyInstance::fieldNamed):
2769         Call _WKPHNPObjectHasProperty to determine whether a property with the given name exists.
2770         
2771         * Plugins/Hosted/WebKitPluginClient.defs:
2772         * Plugins/Hosted/WebKitPluginHost.defs:
2773         Add new MIG definitions.
2774
2775 2009-01-21  Mark Rowe  <mrowe@apple.com>
2776
2777         Reviewed by Tim Hatcher.
2778
2779         Clean up how we force invocations of API that happened on background threads over to the main thread.
2780
2781         This was previously accomplished in a somewhat ad-hoc manner using a mutable dictionary to pass arguments
2782         and return values back from the function.  The new approach is to use a proxy object that forwards an
2783         NSInvocation over to the main thread and applies it to the target object, which leads to a much cleaner
2784         call site.
2785
2786         * Misc/WebNSObjectExtras.h:
2787         * Misc/WebNSObjectExtras.mm:
2788         (-[WebMainThreadInvoker initWithTarget:]):
2789         (-[WebMainThreadInvoker forwardInvocation:]):
2790         (-[WebMainThreadInvoker methodSignatureForSelector:]):
2791         (-[WebMainThreadInvoker handleException:]):
2792         (-[NSInvocation _webkit_invokeAndHandleException:]): Execute the invocation and forward any exception that was
2793         raised back to the WebMainThreadInvoker.
2794         (-[NSObject _webkit_invokeOnMainThread]):
2795
2796         The following methods are updated to use the proxy object to forward methods to the main thread:
2797
2798         * WebView/WebArchive.mm:
2799         (-[WebArchive initWithMainResource:subresources:subframeArchives:]):
2800         (-[WebArchive mainResource]):
2801         (-[WebArchive subresources]):
2802         (-[WebArchive subframeArchives]):
2803         * WebView/WebResource.mm:
2804         (-[WebResource data]):
2805         (-[WebResource URL]):
2806         (-[WebResource MIMEType]):
2807         (-[WebResource textEncodingName]):
2808         (-[WebResource frameName]):
2809         (-[WebResource _ignoreWhenUnarchiving]):
2810         (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:]):
2811         (-[WebResource _initWithData:URL:response:]):
2812         (-[WebResource _suggestedFilename]):
2813         (-[WebResource _response]):
2814         (-[WebResource _stringValue]):
2815         * WebView/WebView.mm:
2816         (-[WebView initWithFrame:frameName:groupName:]):
2817         (-[WebView initWithCoder:]):
2818
2819 2009-01-20  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2820
2821         Reviewed by George Staikos.
2822
2823         Fixes: https://bugs.webkit.org/show_bug.cgi?id=23434 (Add WML <input> element support)
2824
2825         Protect text field related WebEditorClient.mm methods against non-HTMLElement callers.
2826         WebEditorClient.mm relies on HTMLInputElement as input element. Ignore calls from non-HTMLElement elements.
2827
2828         * WebCoreSupport/WebEditorClient.mm:
2829         (WebEditorClient::textFieldDidBeginEditing):
2830         (WebEditorClient::textFieldDidEndEditing):
2831         (WebEditorClient::textDidChangeInTextField):
2832         (WebEditorClient::doTextFieldCommandFromEvent):
2833         (WebEditorClient::textWillBeDeletedInTextField):
2834         (WebEditorClient::textDidChangeInTextArea):
2835
2836 2009-01-19  Anders Carlsson  <andersca@apple.com>
2837
2838         Reviewed by Sam Weinig.
2839
2840         Add and implement GetScriptableNPObject.
2841         
2842         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2843         (WKPCGetScriptableNPObjectReply):
2844         Create a new reply struct and set it as the current reply.
2845         
2846         (WKPCEvaluate):
2847         Get rid of an unused variable.
2848         
2849         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
2850         (WebKit::NetscapePluginInstanceProxy::Reply::):
2851         (WebKit::NetscapePluginInstanceProxy::GetScriptableNPObjectReply::GetScriptableNPObjectReply):
2852         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2853         (WebKit::NetscapePluginInstanceProxy::createBindingsInstance):
2854         Call _WKPHGetScriptableNPObject and wait for a reply.
2855         
2856         * Plugins/Hosted/ProxyInstance.h: Added.
2857         * Plugins/Hosted/ProxyInstance.mm: Added.
2858         Add empty files.
2859         
2860         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
2861         (-[WebHostedNetscapePluginView JSC::Bindings::createPluginBindingsInstance:JSC::Bindings::]):
2862         Call NetscapePluginInstanceProxy::createBindingsInstance.
2863         
2864         * Plugins/Hosted/WebKitPluginClient.defs:
2865         * Plugins/Hosted/WebKitPluginHost.defs:
2866         Add new declarations.
2867
2868 2009-01-19  Sam Weinig  <sam@webkit.org>
2869
2870         Rubber-stamped by Gavin Barraclough.
2871
2872         Remove temporary operator-> from JSValuePtr.
2873
2874         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2875         (WebKit::NetscapePluginInstanceProxy::invoke):
2876         (WebKit::NetscapePluginInstanceProxy::hasMethod):
2877         (WebKit::NetscapePluginInstanceProxy::marshalValue):
2878         * WebView/WebFrame.mm:
2879         (-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
2880         * WebView/WebView.mm:
2881         (aeDescFromJSValue):
2882
2883 2009-01-19  Anders Carlsson  <andersca@apple.com>
2884
2885         Reviewed by Sam Weinig.
2886
2887         Make Evaluate an asynchronous method that has a reply method.
2888         
2889         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2890         (WKPCEvaluate):
2891         * Plugins/Hosted/WebKitPluginClient.defs:
2892         * Plugins/Hosted/WebKitPluginHost.defs:
2893
2894 2009-01-19  Brady Eidson  <beidson@apple.com>
2895
2896         Rubberstamped by Tim Hatcher
2897
2898         Fix long standing typo.
2899
2900         * History/WebBackForwardList.h:
2901
2902 2009-01-19  Mark Rowe  <mrowe@apple.com>
2903
2904         Fix the build!
2905
2906         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2907         (WebKit::NetscapePluginInstanceProxy::demarshalValue):
2908         (WebKit::NetscapePluginInstanceProxy::demarshalValues):
2909
2910 2009-01-18  Mark Rowe  <mrowe@apple.com>
2911
2912         Reviewed by Anders Carlsson.
2913
2914         Fix <https://bugs.webkit.org/show_bug.cgi?id=23414>.
2915         Bug 23414: Reproducible crash accessing View menu with plugins disabled
2916
2917         * WebView/WebFrame.mm:
2918         (-[WebFrame _canProvideDocumentSource]): Null-check the PluginData before using it.
2919
2920 2009-01-17  David Hyatt  <hyatt@apple.com>
2921
2922         Eliminate dependencies on "backslashAsCurrencySymbol()" from WebKit, and make sure these alterations
2923         are done in WebCore instead.
2924
2925         Reviewed by Oliver Hunt
2926
2927         * WebView/WebFrame.mm:
2928         (-[WebFrame _selectedString]):
2929         (-[WebFrame _stringForRange:]):
2930
2931 2009-01-17  Eric Carlson  <eric.carlson@apple.com>
2932
2933         Reviewed by Adele Peterson
2934
2935         Complete <rdar://problem/6293969>
2936
2937         * WebCoreSupport/WebSystemInterface.m:
2938         (InitWebCoreSystemInterface): Remove UseSharedMediaUI
2939
2940 2009-01-15  Brady Eidson  <beidson@apple.com>
2941
2942         Reviewed by Dan Bernstein
2943
2944         Fix problem where a URL visited as non-GET once is flagged as non-GET forever.
2945
2946         * History/WebHistory.mm:
2947         (-[WebHistory _visitedURL:withTitle:method:wasFailure:]): Always update the HTTPNonGet
2948           flag for all loads with an HTTP Method
2949
2950 2009-01-14  Anders Carlsson  <andersca@apple.com>
2951
2952         Reviewed by Sam Weinig.
2953
2954         Implement InvokeDefault, Construct, GetProperty and SetProperty.
2955         
2956         Fully implement marshalValue.
2957         
2958         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2959         (WKPCInvokeDefault):
2960         (WKPCConstruct):
2961         (WKPCGetProperty):
2962         (WKPCSetProperty):
2963         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
2964         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2965         (WebKit::NetscapePluginInstanceProxy::evaluate):
2966         (WebKit::NetscapePluginInstanceProxy::invoke):
2967         (WebKit::NetscapePluginInstanceProxy::invokeDefault):
2968         (WebKit::NetscapePluginInstanceProxy::construct):
2969         (WebKit::NetscapePluginInstanceProxy::getProperty):
2970         (WebKit::NetscapePluginInstanceProxy::setProperty):
2971         (WebKit::NetscapePluginInstanceProxy::marshalValue):
2972         (WebKit::NetscapePluginInstanceProxy::demarshalValue):
2973         * Plugins/Hosted/WebKitPluginClient.defs:
2974
2975 2009-01-14  Anders Carlsson  <andersca@apple.com>
2976
2977         Reviewed by Sam Weinig.
2978
2979         Demarshal arguments and pass them to the JS call.
2980         
2981         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2982         (WKPCInvoke):
2983         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
2984         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2985         (WebKit::NetscapePluginInstanceProxy::invoke):
2986         (WebKit::NetscapePluginInstanceProxy::demarshalValueFromArray):
2987         (WebKit::NetscapePluginInstanceProxy::demarshalValues):
2988
2989 2009-01-14  Mark Rowe  <mrowe@apple.com>
2990
2991         Reviewed by Timothy Hatcher.
2992
2993         <rdar://problem/6496520> REGRESSION: In Mail, a crash occurs when attempting to display a mail message
2994
2995         Move WebArchive and WebResource to use the same approach for initializing themselves on the main thread
2996         that WebView uses.
2997
2998         * WebView/WebArchive.mm:
2999         (-[WebArchive initWithMainResource:subresources:subframeArchives:]): Use _webkit_performSelectorOnMainThread:withObject:.
3000         (-[WebArchive _initWithArguments:]):
3001         * WebView/WebResource.mm:
3002         (-[WebResource _initWithArguments:]): Unbox the BOOL argument.
3003
3004 2009-01-14  Darin Adler  <darin@apple.com>
3005
3006         Reviewed by Oliver Hunt.
3007
3008         Fix crash I ran into while printing. I was unable to reproduce it, but also,
3009         it's clear there's no guarantee that the frame will be non-zero in this case,
3010         so it seems fine to check it.
3011
3012         * WebView/WebHTMLView.mm: (-[WebHTMLView reapplyStyles]): Check frame for zero
3013         and don't do anything with it if it's zero.
3014
3015 2009-01-14  Dan Bernstein  <mitz@apple.com>
3016
3017         Reviewed by John Sullivan.
3018
3019         - update copyright
3020
3021         * Info.plist:
3022
3023 2009-01-12  Anders Carlsson  <andersca@apple.com>
3024
3025         Reviewed by Darin Adler.
3026
3027         Add a bunch of methods to WebKitPluginClient.defs, and implement them.
3028         
3029         * Plugins/Hosted/NetscapePluginHostProxy.mm:
3030         (WebKit::fromUTF8WithLatin1Fallback):
3031         If the length isn't specified, get it by calling strlen.
3032         
3033         (WKPCEvaluate):
3034         Evaluate doesn't take any arguments.
3035         
3036         (WKPCGetIntIdentifier):
3037         Call _NPN_GetIntIdentifier.
3038         
3039         (identifierFromServerIdentifier):
3040         New helper function that returns a JSC Identifier from an NPIdentifier.
3041         
3042         (WKPCInvoke):
3043         Call identifierFromServerIdentifier.
3044         
3045         (WKPCRemoveProperty):
3046         (WKPCHasProperty):
3047         (WKPCHasMethod):
3048         Call NetscapePluginInstanceProxy.
3049
3050         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
3051         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
3052         (WebKit::NetscapePluginInstanceProxy::removeProperty):
3053         (WebKit::NetscapePluginInstanceProxy::hasProperty):
3054         (WebKit::NetscapePluginInstanceProxy::hasMethod):
3055
3056         * Plugins/Hosted/WebKitPluginClient.defs:
3057         Add new definitions.
3058
3059 2009-01-13  Anders Carlsson  <andersca@apple.com>
3060
3061         Fix build.
3062
3063         * WebView/WebView.mm:
3064         (-[WebView _initWithArguments:]):
3065
3066 2009-01-13  Timothy Hatcher  <timothy@apple.com>
3067
3068         Adds a workaround for the flip4mac installer plugin decoding a WebView from a NIB on a secondary thread.
3069
3070         <rdar://problem/6489788> New WebKit thread checks break installation of flip4mac (thread violation)
3071
3072         Reviewed by Darin Adler.
3073
3074         * Misc/WebKitVersionChecks.h: Add WEBKIT_FIRST_VERSION_WITHOUT_WEBVIEW_INIT_THREAD_WORKAROUND.
3075         * Misc/WebNSObjectExtras.h: Add _webkit_performSelectorOnMainThread:withObject:.
3076         * Misc/WebNSObjectExtras.mm:
3077         (-[NSObject _webkit_performSelectorWithArguments:]): Renamed from _webkit_getPropertyWithArguments.
3078         Passes the optional object to the selector.
3079         (-[NSObject _webkit_performSelectorOnMainThread:withObject:]): Renamed from _webkit_getPropertyOnMainThread:.
3080         Put the optional object into the arguments dictionary.
3081         (-[NSObject _webkit_getPropertyOnMainThread:]): Call _webkit_performSelectorOnMainThread with a nil object.
3082         * WebView/WebResource.mm:
3083         (-[WebResource _ignoreWhenUnarchiving]): Use _cmd instead of making the selector again.
3084         (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:]): Use the new
3085         _webkit_performSelectorOnMainThread:withObject: method instead of performSelectorOnMainThread.
3086         * WebView/WebView.mm:
3087         (-[WebView _initWithArguments:]): Added. Pulls arguments out of the dictionary and calls the right init method.
3088         (needsWebViewInitThreadWorkaround): Checks if the thead is not the main thread and if we are in the Installer bundle.
3089         (-[WebView initWithFrame:frameName:groupName:]): Call needsWebViewInitThreadWorkaround and use _webkit_performSelectorOnMainThread
3090         to call _initWithArguments: passing the frame, frameName and groupName.
3091         (-[WebView initWithCoder:]): Ditto, except pass the coder to _initWithArguments:.
3092
3093 2009-01-12  Gavin Barraclough  <barraclough@apple.com>
3094
3095         Reviewed by Oliver Hunt.
3096
3097         Deprecate JSValuePtr::getNumber() - two ways to get a number should  be enough.
3098
3099         * WebView/WebView.mm:
3100         (aeDescFromJSValue):
3101
3102 2009-01-12  Brady Eidson  <beidson@apple.com>
3103
3104         Reviewed by Darin Adler
3105
3106         <rdar://problem/6468274> - Track Non-get requests in global history
3107
3108         * History/WebHistory.mm:
3109         (-[WebHistory _visitedURL:withTitle:method:wasFailure:]):
3110         * History/WebHistoryInternal.h:
3111
3112         * History/WebHistoryItem.mm:
3113         (-[WebHistoryItem initFromDictionaryRepresentation:]):
3114         (-[WebHistoryItem dictionaryRepresentation]):
3115         (-[WebHistoryItem _lastVisitWasHTTPNonGet]):
3116         * History/WebHistoryItemPrivate.h:
3117
3118         * WebCoreSupport/WebFrameLoaderClient.mm:
3119         (WebFrameLoaderClient::updateGlobalHistory): Only pass the method through if it was an HTTP load
3120
3121 2009-01-12  Anders Carlsson  <andersca@apple.com>
3122
3123         Reviewed by Sam Weinig.
3124
3125         Move marshalling into NetscapePluginInstanceProxy.
3126         
3127         Add support for marshallin strings.
3128         
3129         * Plugins/Hosted/NetscapePluginHostProxy.mm:
3130         (WKPCEvaluate):
3131         (WKPCInvoke):
3132         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
3133         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
3134         (WebKit::NetscapePluginInstanceProxy::evaluate):
3135         (WebKit::NetscapePluginInstanceProxy::invoke):
3136         (WebKit::NetscapePluginInstanceProxy::marshalValue):
3137         * Plugins/Hosted/WebKitPluginHostTypes.h:
3138
3139 2009-01-12  Anders Carlsson  <andersca@apple.com>
3140
3141         Reviewed by Sam Weinig.
3142
3143         Implement WKPCInvoke.
3144         
3145         * Plugins/Hosted/NetscapePluginHostProxy.mm:
3146         (WKPCEvaluate):
3147         (WKPCInvoke):
3148         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
3149         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
3150         (WebKit::NetscapePluginInstanceProxy::idForObject):
3151         (WebKit::NetscapePluginInstanceProxy::invoke):
3152         * Plugins/Hosted/WebKitPluginClient.defs:
3153
3154 2009-01-12  Anders Carlsson  <andersca@apple.com>
3155
3156         Reviewed by Sam Weinig.
3157
3158         Move marshalling code to NetscapePluginInstanceProxy. Add support for marshalling JS objects.
3159         
3160         * Plugins/Hosted/NetscapePluginHostProxy.mm:
3161         (WKPCEvaluate):
3162         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
3163         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
3164         (WebKit::NetscapePluginInstanceProxy::marshalValue):
3165         * Plugins/Hosted/WebKitPluginHostTypes.h:
3166
3167 2009-01-12  Julien Chaffraix  <jchaffraix@pleyo.com>
3168
3169         Reviewed by Darin Adler.
3170
3171         Bug 22861: Turn the FontCache into a singleton
3172         https://bugs.webkit.org/show_bug.cgi?id=22861
3173
3174         * Misc/WebCoreStatistics.mm:
3175         (+[WebCoreStatistics cachedFontDataCount]):
3176         (+[WebCoreStatistics cachedFontDataInactiveCount]):
3177         (+[WebCoreStatistics purgeInactiveFontData]):
3178         Redirected all the static calls to the global FontCache
3179         instance.
3180
3181 2009-01-11  Dmitry Titov  <dimich@chromium.org>
3182
3183         Reviewed by Darin Adler.
3184
3185         https://bugs.webkit.org/show_bug.cgi?id=23207
3186         Moved currentTime() to from WebCore to WTF.
3187
3188         * WebView/WebFrame.mm: a different header file included.
3189
3190 2009-01-10  Darin Adler  <darin@apple.com>
3191
3192         Reviewed by Sam Weinig.
3193
3194         <rdar://problem/5845089> REGRESSION (r30044): Mail custom stationery missing images
3195         because of change to -[HTMLObjectElement data]
3196
3197         * WebView/WebView.mm:
3198         (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]): Added a thread
3199         violation check because I saw this being done off the main thread while testing Mail, and it
3200         caused problems. Put all the one time initialization under a single guard to make things just
3201         a little faster other times, and to make it clearer which things are one-time. Added a call to
3202         the new patchMailRemoveAttributesMethod function.
3203         (-[WebView initWithFrame:frameName:groupName:]): Added a thread violation check here too,
3204         because I assumed it would be slightly better to have a public method name in the violation
3205         message. This calls commonInitialization later, so it will hit that one eventually.
3206         (objectElementDataAttribute): Added. Just returns the value of the "data" attribute.
3207         (recursivelyRemoveMailAttributes): Added. Patch to an internal Mail method that in turn patches
3208         a WebKit method and removes the patch again on the way out.
3209         (patchMailRemoveAttributesMethod): Added. On Leopard only, checks the Mail version, and then
3210         applies the patch that fixes this bug.
3211
3212 2009-01-09  Dan Bernstein  <mitz@apple.com>
3213
3214         Reviewed by Darin Adler.
3215
3216         - fixed <rdar://problem/6234347> Add/change conditional key
3217           bindings for changing paragraph- and character-level writing
3218           direction (to match NSTextView)
3219
3220         * WebView/WebHTMLView.mm:
3221         (-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]): Added
3222         code to validate makeBaseWritingDirectionLeftToRight: and
3223         makeBaseWritingDirectionRightToLeft:.
3224         (writingDirectionKeyBindingsEnabled): Changed this function to
3225         always return YES, except on Tiger and Leopard.
3226         (-[WebHTMLView makeBaseWritingDirectionLeftToRight:]): Renamed
3227         changeBaseWritingDirectionToLTR: to this.
3228         (-[WebHTMLView makeBaseWritingDirectionRightToLeft:]): Renamed
3229         changeBaseWritingDirectionToRTL: to this.
3230         (-[WebHTMLView changeBaseWritingDirectionToLTR:]): Now calls
3231         makeBaseWritingDirectionLeftToRight:.
3232         (-[WebHTMLView changeBaseWritingDirectionToRTL:]): Now calls
3233         makeBaseWritingDirectionRightToLeft:.
3234         * WebView/WebView.mm: Added makeBaseWritingDirectionLeftToRight
3235         and makeBaseWritingDirectionRightToLeft to
3236         FOR_EACH_RESPONDER_SELECTOR.
3237
3238 2009-01-08  Anders Carlsson  <andersca@apple.com>
3239
3240         Reviewed by Sam Weinig.
3241
3242         Add and implement WKPCGetStringIdentifier.
3243         
3244         * Plugins/Hosted/NetscapePluginHostProxy.mm:
3245         (WKPCGetStringIdentifier):
3246         * Plugins/Hosted/WebKitPluginClient.defs:
3247
3248 2009-01-08  Stephanie Lewis  <slewis@gmail.com>
3249
3250         Fix Tiger build.        
3251
3252         * WebView/WebTextIterator.mm:
3253
3254 2009-01-08  Anders Carlsson  <andersca@apple.com>
3255
3256         Reviewed by Sam Weinig.
3257
3258         Add basic support for evaluating scripts.
3259         
3260         * Plugins/Hosted/NetscapePluginHostProxy.mm:
3261         (WebKit::fromUTF8WithLatin1Fallback):
3262         (WebKit::NetscapePluginHostProxy::~NetscapePluginHostProxy):
3263         (WKPCReleaseObject):
3264         (marshalValue):
3265         (WKPCEvaluate):
3266         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
3267         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
3268         (WebKit::NetscapePluginInstanceProxy::releaseObject):
3269         (WebKit::NetscapePluginInstanceProxy::evaluate):
3270         * Plugins/Hosted/WebKitPluginClient.defs:
3271         * Plugins/Hosted/WebKitPluginHostTypes.h:
3272
3273 2009-01-08  David Hyatt  <hyatt@apple.com>
3274
3275         Fix for <rdar://problem/6465682> REGRESSION: In Mail, can't force a message to auto scroll
3276
3277         Add a new ChromeClient method for handling exposure of scrolled rects.
3278
3279         Reviewed by Oliver Hunt
3280
3281         * WebCoreSupport/WebChromeClient.h:
3282         * WebCoreSupport/WebChromeClient.mm:
3283         (WebChromeClient::scrollRectIntoView):
3284
3285 2009-01-08  Darin Adler  <darin@apple.com>
3286
3287         Reviewed by Tim Hatcher.
3288
3289         Bug 23185: add a currentRange method to the WebTextIterator SPI
3290         https://bugs.webkit.org/show_bug.cgi?id=23185
3291         rdar://problem/6455834
3292
3293         I also noticed a garbage-collection-related threading issue that I fixed, and
3294         that the SPI for getting text was unnecessarily inefficient, so I fixed that too.
3295
3296         * WebView/WebTextIterator.h: Moved currentNode and currentText into a "deprecated"
3297         category. Added currentTextPointer and currentTextLength.
3298
3299         * WebView/WebTextIterator.mm: Changed m_textIterator into an OwnPtr, and also
3300         used _textIterator to be consistent with ObjC rather than C++ naming.
3301         (+[WebTextIteratorPrivate initialize]): Added. Calls WebCoreObjCFinalizeOnMainThread,
3302         since the finalize method here works with main-thread only WebCore objects. 
3303         (-[WebTextIterator initWithRange:]): Changed since _textIterator is an OwnPtr now.
3304         (-[WebTextIterator advance]): Changed name of m_textIterator. Removed null assertion,
3305         since I don't think it provides much value.
3306         (-[WebTextIterator atEnd]): Ditto.
3307         (-[WebTextIterator currentRange]): Added.
3308         (-[WebTextIterator currentTextPointer]): Added.
3309         (-[WebTextIterator currentTextLength]): Added.
3310         (-[WebTextIterator currentNode]): Did same as above, but also put into new category.
3311         (-[WebTextIterator currentText]): Ditto.
3312
3313 2009-01-08  Eric Carlson  <eric.carlson@apple.com>
3314
3315         Reviewed by Adele Peterson.
3316
3317         Simplify Mac interfaces for drawing media controller elements
3318
3319         <rdar://problem/6293969>
3320
3321         * WebCoreSupport/WebSystemInterface.m:
3322         (InitWebCoreSystemInterface): Update for changes to media controller functions
3323
3324 2009-01-07  Anders Carlsson  <andersca@apple.com>
3325
3326         Reviewed by Dan Bernstein.
3327
3328         Fix build.
3329         
3330         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
3331         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
3332         (WebKit::NetscapePluginInstanceProxy::idForObject):
3333
3334 2009-01-07  Anders Carlsson  <andersca@apple.com>
3335
3336         Reviewed by Dan Bernstein.
3337
3338         Add a way for a plug-in to get a reference to the Window JS object.
3339
3340         * Plugins/Hosted/NetscapePluginHostProxy.mm:
3341         (WKPCGetWindowNPObject):
3342         Call the appropriate instance.
3343         
3344         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
3345         Add object ID counter.
3346         
3347         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
3348         (WebKit::NetscapePluginInstanceProxy::destroy):
3349         Clear the object ID map.
3350         
3351         (WebKit::NetscapePluginInstanceProxy::idForObject):
3352         New method that returns a unique ID for a given JS object.
3353         
3354         (WebKit::NetscapePluginInstanceProxy::getWindowNPObject):
3355         Return the object ID for the window JS object.
3356         
3357         * Plugins/Hosted/WebKitPluginClient.defs:
3358         Add GetWindowNPObject.
3359
3360 2009-01-07  Darin Adler  <darin@apple.com>
3361
3362         Reviewed by Oliver Hunt.
3363
3364         Bug 23160: add setMemoryCacheClientCallsEnabled SPI so Safari can be faster with activity window closed
3365         https://bugs.webkit.org/show_bug.cgi?id=23160
3366
3367         * WebView/WebView.mm:
3368         (-[WebView setMemoryCacheDelegateCallsEnabled:]): Added.
3369         (-[WebView areMemoryCacheDelegateCallsEnabled]): Added
3370         * WebView/WebViewPrivate.h: Ditto.
3371
3372 2009-01-05  Gavin Barraclough  <baraclough@apple.com>
3373
3374         Rubber Stamped by Oliver Hunt.
3375
3376         Replace all uses of JSValue* with new wrapper class, JSValuePtr.
3377         See JavaScriptCore/ChangeLog for more detailed description.
3378
3379         * WebView/WebFrame.mm:
3380         (-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
3381         * WebView/WebScriptDebugDelegate.mm:
3382         (-[WebScriptCallFrame _convertValueToObjcValue:]):
3383         (-[WebScriptCallFrame exception]):
3384         (-[WebScriptCallFrame evaluateWebScript:]):
3385         * WebView/WebView.mm:
3386         (aeDescFromJSValue):
3387         (-[WebView aeDescByEvaluatingJavaScriptFromString:]):
3388
3389 2009-01-06  Pierre-Olivier Latour  <pol@apple.com>
3390
3391         Reviewed by Darin Adler.
3392
3393         Exposed through WebFrame private interface the new WebCore API AnimationController::numberOfActiveAnimations() to be used by DRT.
3394
3395         https://bugs.webkit.org/show_bug.cgi?id=23126
3396
3397         * WebView/WebFrame.mm:
3398         (-[WebFrame _numberOfActiveAnimations]):
3399         * WebView/WebFramePrivate.h:
3400
3401 2009-01-05  David Kilzer  <ddkilzer@apple.com>
3402
3403         Add SPI to enable, disable and check state of WebIconDatabase
3404
3405         Reviewed by Darin Adler & Timothy Hatcher.
3406
3407         Add -[WebIconDatabase isEnabled] and -[WebIconDatabase setEnabled:]
3408         SPI to make it possible to enable, disable and check the state of
3409         the icon database.
3410
3411         * Misc/WebIconDatabase.mm:
3412         (-[WebIconDatabase init]): Extracted code into -_startUpIconDatabase.
3413         (-[WebIconDatabase iconForURL:withSize:cache:]): Switched to use
3414         -isEnabled instead of -_isEnabled.
3415         (-[WebIconDatabase iconURLForURL:]): Ditto.
3416         (-[WebIconDatabase retainIconForURL:]): Ditto.
3417         (-[WebIconDatabase releaseIconForURL:]): Ditto.
3418         (-[WebIconDatabase isEnabled]): Renamed from -_isEnabled in
3419         WebInternal category.
3420         (-[WebIconDatabase setEnabled:]): Added.  Takes care of changing
3421         the enabled/disabled state of the icon database.
3422         (-[WebIconDatabase removeAllIcons]): Switched to use -isEnabled
3423         instead of -_isEnabled.
3424         (-[WebIconDatabase _startUpIconDatabase]): Added.  Extrated from
3425         -init.
3426         (-[WebIconDatabase _shutDownIconDatabase]): Added.  Remove
3427         observers when the icon database is disabled.
3428         * Misc/WebIconDatabaseInternal.h: Added declarations for
3429         -_startUpIconDatabase and -_shutDownIconDatabase.
3430         * Misc/WebIconDatabasePrivate.h: Added declarations for
3431         -isEnabled and -setEnabled:.
3432
3433 2009-01-05  Brady Eidson  <beidson@apple.com>
3434
3435         Reviewed by Jon Honeycutt
3436
3437         Expose setting the last-visit-was-failure flag on a history items in preparation for <rdar://problem/6173319>
3438
3439         * History/WebHistoryItem.mm:
3440         (-[WebHistoryItem _setLastVisitWasFailure:]):
3441         * History/WebHistoryItemPrivate.h:
3442
3443 2009-01-05  Adam Treat  <adam.treat@torchmobile.com>
3444
3445         Another blind mac build fix
3446
3447         * WebCoreSupport/WebChromeClient.mm:
3448         (WebChromeClient::contentsSizeChanged):
3449
3450 2009-01-05  Adam Treat  <adam.treat@torchmobile.com>
3451
3452         Blind mac build fix
3453
3454         * WebCoreSupport/WebChromeClient.mm:
3455
3456 2009-01-05  Adam Treat  <adam.treat@torchmobile.com>
3457
3458         Fix mac build
3459
3460         * WebCoreSupport/WebChromeClient.h:
3461
3462 2009-01-05  Adam Treat  <adam.treat@torchmobile.com>
3463
3464         Reviewed by George Staikos.
3465
3466         Build fix for contentsSizeChanged
3467
3468         * WebCoreSupport/WebChromeClient.h:
3469         * WebCoreSupport/WebChromeClient.mm:
3470         (WebChromeClient::contentsSizeChanged):
3471
3472 2009-01-02  Darin Adler  <darin@apple.com>
3473
3474         Reviewed by Sam Weinig.
3475
3476         Bug 23072: REGRESSION (r37371): In the Dictionary application, scroll bar appears
3477         inside its web view when resizing its window
3478         https://bugs.webkit.org/show_bug.cgi?id=23072
3479         rdar://problem/6368028
3480
3481         The first attempt at fixing this did not work.
3482         This time I was able to reproduce the bug and test the fix.
3483
3484         * WebCoreSupport/WebFrameLoaderClient.mm:
3485         (applyAppleDictionaryApplicationQuirkNonInlinePart): Changed the arguments and
3486         function names around a bit to make even less code at the call site.
3487         (applyAppleDictionaryApplicationQuirk): Put the check for whether this is the
3488         Dictionary application in here.
3489         (WebFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache): Put a call to
3490         applyAppleDictionaryApplicationQuirk here. This was a case I had missed before,
3491         when the script is cached. This fixes one of the two problems with the initial
3492         patch; the other fix is in WebCore.
3493         (WebFrameLoaderClient::dispatchWillSendRequest): Changed the
3494         applyAppleDictionaryApplicationQuirk call here to work the new simpler way.
3495
3496         * WebView/WebView.mm: Had to add an include due to changes in WebCore header includes.
3497
3498 2009-01-02  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
3499
3500         Reviewed by Darin Adler.
3501
3502         Bug 23060: REGRESSION (r38629): Cannot scroll a WebHTMLView using Home/End/Page up/Page down
3503         <https://bugs.webkit.org/show_bug.cgi?id=23060>
3504         <rdar://problem/6467830>
3505
3506         After r38629, all keyboard events get sent by Editor to the EditorClient, even
3507         if the selection is not editable. If the event's command is unsupported by
3508         WebHTMLView, WebHTMLView mistakenly thinks that the event was handled when it
3509         was not. When using the page up / page down keys, the events generated are of
3510         the form scrollPageUp rather than movePageUp, so they are unsupported by
3511         WebHTMLView and cause this bug to occur.
3512
3513         * WebView/WebHTMLView.mm:
3514         (-[WebHTMLView doCommandBySelector:]):
3515
3516 2009-01-02  Darin Adler  <darin@apple.com>
3517
3518         Reviewed by Oliver Hunt.
3519
3520         Bug 23072: REGRESSION (r37371): In the Dictionary application, scroll bar appears inside its web view when resizing its window
3521         https://bugs.webkit.org/show_bug.cgi?id=23072
3522         rdar://problem/6368028
3523
3524         * WebCoreSupport/WebFrameLoaderClient.mm:
3525         (isAppleDictionaryApplication): Added.
3526         (applyAppleDictionaryApplicationQuirk): Added. Under the right conditions, sets
3527         a flag to ask HTMLFrameElementBase to ignore the scrolling attribute.
3528         (WebFrameLoaderClient::dispatchWillSendRequest): Call the two functions above to
3529         apply the quirk when the relevant script is loaded.
3530
3531 2008-12-26  Dan Bernstein  <mitz@apple.com>
3532
3533         Reviewed by Sam Weinig.
3534
3535         - fix <rdar://problem/6467608> lastVisitWasFailure flag persists in
3536           global history after a successful visit
3537
3538         * History/WebHistory.mm:
3539         (-[WebHistory _visitedURL:withTitle:wasFailure:]): Changed to always
3540         update the wasFailure flag on the HistoryItem.
3541
3542 2008-12-23  Darin Adler  <darin@apple.com>
3543
3544         Reviewed by Alexey Proskuryakov (a slightly earlier version).
3545
3546         - fix https://bugs.webkit.org/show_bug.cgi?id=22976
3547           crash due to Mail's use of WebArchive and WebResource on non-main thread
3548
3549         * Misc/WebKitLogging.h: Improved comments for ASSERT_MAIN_THREAD. Got rid of
3550         WebKitRunningOnMainThread function, which was just a cover for pthread_main_np.
3551         * Misc/WebKitLogging.m: Ditto.
3552
3553         * Misc/WebKitVersionChecks.h: Added a version after which we won't do the
3554         main thread workaround.
3555
3556         * Misc/WebNSObjectExtras.h: Added a new method, _webkit_getPropertyOnMainThread:,
3557         which performs a selector on the main thread, waits for it to complete, and then
3558         returns the value on the caller thread.
3559         * Misc/WebNSObjectExtras.mm: Added.
3560
3561         * WebView/WebArchive.mm:
3562         (-[WebArchive init]): Added WebCoreThreadViolationCheck.
3563         (-[WebArchive initWithMainResource:subresources:subframeArchives:]): Perform
3564         initialization on main thread if needMailThreadWorkaround is true.
3565         Also added WebCoreThreadViolationCheck.
3566         (-[WebArchive initWithData:]): Added WebCoreThreadViolationCheck.
3567         (-[WebArchive mainResource]): Get property on main thread if
3568         needMailThreadWorkaround is true. Also added WebCoreThreadViolationCheck.
3569         (-[WebArchive subresources]): Ditto.
3570         (-[WebArchive subframeArchives]): Ditto.
3571         (-[WebArchive data]): Ditto.
3572         (-[WebArchive _initWithCoreLegacyWebArchive:]): Added WebCoreThreadViolationCheck.
3573         (-[WebArchive _coreLegacyWebArchive]): Ditto.
3574         (-[WebArchive _initWithArguments:]): Added. Used to implement the cross-thread
3575         version of initWithMainResource above.
3576
3577         * WebView/WebResource.mm:
3578         (-[WebResource initWithCoder:]): Added WebCoreThreadViolationCheck.
3579         (-[WebResource data]): Get property on main thread if
3580         needMailThreadWorkaround is true. Also added WebCoreThreadViolationCheck.
3581         (-[WebResource URL]): Ditto.
3582         (-[WebResource MIMEType]): Ditto.
3583         (-[WebResource textEncodingName]): Ditto.
3584         (-[WebResource frameName]): Ditto.
3585         (-[WebResource _ignoreWhenUnarchiving]): Ditto.
3586         (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:]):
3587         Perform initialization on main thread if needMailThreadWorkaround is true.
3588         Also added WebCoreThreadViolationCheck.
3589         (-[WebResource _suggestedFilename]): Added. Helper for _fileWrapperRepresentation.
3590         (-[WebResource _fileWrapperRepresentation]): Rewrote to use methods instead of