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