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