2010-05-06 Anders Carlsson <andersca@apple.com>
[WebKit.git] / WebKit / mac / ChangeLog
1 2010-05-06  Anders Carlsson  <andersca@apple.com>
2
3         Reviewed by Darin Adler and Dan Bernstein..
4
5         REGRESSION (r51617): when plugins are disabled, plugins show up as garbage characters
6         https://bugs.webkit.org/show_bug.cgi?id=38698
7         <rdar://problem/7942075>
8
9         When the plug-in database is initialized, we will register all the MIME types it supports with the global
10         WebView dictionary. When plug-ins are disabled for a single web view, the MIME types still need to be 
11         in the global mapping (because other web views might still have plug-ins enabled).
12         
13         Prior to r51617 we would always look at the plug-in database to determine that the MIME type belongs to a 
14         plug-in, but now we won't even touch the plug-in database when plug-ins are disabled.
15         
16         In order to fix this, a new set of registered MIME types that are known to be plug-ins is added. When
17         +[WebView _viewClass:andRepresentationClass:forMIMEType:allowingPlugins:] is called and allowingPlugins is FALSE
18         we check if the MIME type is a known plug-in MIME type and return false in that case.
19         
20         * Plugins/WebPluginDatabase.mm:
21         (-[WebPluginDatabase refresh]):
22         (-[WebPluginDatabase _removePlugin:]):
23         * WebView/WebView.mm:
24         (knownPluginMIMETypes):
25         (+[WebView _registerPluginMIMEType:]):
26         (+[WebView _unregisterPluginMIMEType:]):
27         (+[WebView _viewClass:andRepresentationClass:forMIMEType:allowingPlugins:]):
28         * WebView/WebViewInternal.h:
29
30 2010-05-06  Dan Bernstein  <mitz@apple.com>
31
32         Reviewed by Simon Fraser.
33
34         <rdar://problem/7951285> REGRESSION (r58847): Composited iframe content obscures Safari's application chrome
35
36         Fixed this other regression from r58847. The regression was caused by overriding -visibleRect to
37         return the WebClipView’s full bounds. AppKit uses -visibleRect to determine the geometry
38         of the surface for the child WebFrameView. The fix is to restrict the special behavior of
39         -[WebClipView visibleRect] to when AppKit is consulting it for the purpose of invalidating
40         areas while scrolling.
41
42         * WebView/WebClipView.h:
43         * WebView/WebClipView.mm:
44         (-[WebClipView visibleRect]): If the WebClipView is not scrolling, always return
45         [super visibleRect]. 
46         (-[WebClipView _immediateScrollToPoint:]): Override this internal NSClipView method
47         to set a flag telling -visibleRect that the view is scrolling.
48         * WebView/WebView.mm:
49         (layerSyncRunLoopObserverCallBack): Ensure that screen updates, disabled by AppKit
50         when it thinks an upcoming window flush will re-enable them, are enabled here in
51         case the -setNeedsDisplayInRect: override has prevented the window from needing to be
52         flushed.
53
54 2010-05-06  Steve Block  <steveblock@google.com>
55
56         Reviewed by Eric Seidel.
57
58         MAC_JAVA_BRIDGE should be renamed JAVA_BRIDGE
59         https://bugs.webkit.org/show_bug.cgi?id=38544
60
61         * WebCoreSupport/WebFrameLoaderClient.h:
62         * WebCoreSupport/WebFrameLoaderClient.mm:
63
64 2010-05-05  Dan Bernstein  <mitz@apple.com>
65
66         Reviewed by Mark Rowe.
67
68         Fixed a crash when closing Top Sites after r58847.
69
70         * WebView/WebFrameView.mm:
71         (-[WebFrameView webFrame]): Null-check _private.
72
73 2010-05-05  Dan Bernstein  <mitz@apple.com>
74
75         Rubber-stamped by Mark Rowe.
76
77         Fixed test crashes after r58847.
78
79         * WebView/WebHTMLView.mm:
80         (setNeedsDisplayInRect): Null-check the frame.
81
82 2010-05-05  Dan Bernstein  <mitz@apple.com>
83
84         Reviewed by Simon Fraser.
85
86         <rdar://problem/7932072> Iframes in composited layers don’t repaint correctly (affects Yahoo! Mail with Flash Player 10.1)
87         https://bugs.webkit.org/show_bug.cgi?id=38427
88
89         * WebView/WebClipView.m: Renamed to WebClipView.mm.
90         * WebView/WebClipView.mm:
91         (-[WebClipView visibleRect]): Added this override, which for instances used for WebFrameViews in
92         composited layers, returns the clip view’s entire bounds. This prevents drawing from being clipped to
93         AppKit’s idea of what part of the view would be visible if it was drawn as part of the view hierarchy.
94         Since it is drawn into a compositing layer, that’s irrelevant, and we should not be clipping.
95         * WebView/WebHTMLView.mm:
96         (setCursor): Style tweak.
97         (setNeedsDisplayInRect): Added. Replaces the default implementation of -[NSView setNeedsDisplayInRect:],
98         so that if the receiver is a descendant of a WebFrameView that draws into a composited layer, the invalidation
99         is routed back through the WebCore FrameView, which propagates it to the layer.
100         (+[WebHTMLViewPrivate initialize]): Swizzle the setNeedsDisplayInRect: override in.
101         (-[WebHTMLView visibleRect]): Removed whitespace.
102         * WebView/WebView.mm:
103         (layerSyncRunLoopObserverCallBack): If we bailed out on syncing, due to pending layout, do an eager layout
104         in preparation for the displaying of compositing layers.
105
106 2010-05-05  John Sullivan  <sullivan@apple.com>
107
108         <rdar://problem/7942606> Output appears in Console when exiting Safari with multiple windows opened
109
110         Reviewed by Mark Rowe.
111
112         * WebView/WebView.mm:
113         (+[WebView closeAllWebViews]):
114         Make copy of allWebViewsSet to avoid mutating it while iterating through it.
115
116 2010-05-04  Simon Fraser  <simon.fraser@apple.com>
117
118         Reviewed by Dan Bernstein.
119
120         Improve check for drawing into the window that was added in r58623
121         https://bugs.webkit.org/show_bug.cgi?id=38562
122         
123         Rather than assuming that any non-bitmap context is the window's context,
124         compare the current graphics context with -[NSWindow graphicsContext] to
125         determine that we're drawing into the window.
126
127         * WebView/WebHTMLView.mm:
128         (-[WebHTMLView drawRect:]):
129
130 2010-05-04  Ada Chan  <adachan@apple.com>
131
132         Reviewed by David Kilzer.
133
134         https://bugs.webkit.org/show_bug.cgi?id=38555
135         
136         Small code refactoring: move the logic to figure out the path to the 
137         databases directory to another method.
138
139         * Storage/WebDatabaseManager.mm:
140         (databasesDirectoryPath):
141         (WebKitInitializeDatabasesIfNecessary):
142
143 2010-05-04  Beth Dakin  <bdakin@apple.com>
144
145         Reviewed by Mike Thole.
146
147         Fix for <rdar://problem/7818509> Crash occurs when exiting Safari
148
149         We can avoid this crash if we call [self _removeFromAllWebViewsSet] 
150         even in the case when we are doing a fastDocumentTeardown. This is 
151         a much safer approach.
152         * WebView/WebView.mm:
153         (-[WebView _close]):
154
155 2010-05-03  Abhishek Arya  <inferno@chromium.org>
156
157         Reviewed by Adam Barth.
158
159         Add support for controlling clipboard access from javascript.
160         Clipboard access from javascript is disabled by default.
161         https://bugs.webkit.org/show_bug.cgi?id=27751
162
163         * WebView/WebPreferenceKeysPrivate.h:
164         * WebView/WebPreferences.mm:
165         (+[WebPreferences initialize]):
166         (-[WebPreferences javaScriptCanAccessClipboard]):
167         (-[WebPreferences setJavaScriptCanAccessClipboard:]):
168         * WebView/WebPreferencesPrivate.h:
169         * WebView/WebView.mm:
170         (-[WebView _preferencesChangedNotification:]):
171
172 2010-05-03  Jens Alfke  <snej@chromium.org>
173
174         Reviewed by Darin Fisher.
175
176         [chromium] Add "willSendSubmitEvent" hook to WebFrameClient and FrameLoaderClient
177         https://bugs.webkit.org/show_bug.cgi?id=38397
178
179         No tests (functionality is exposed only through native WebKit API.)
180
181         * WebCoreSupport/WebFrameLoaderClient.h:
182         (WebFrameLoaderClient::dispatchWillSendSubmitEvent):
183
184 2010-04-30  Simon Fraser  <simon.fraser@apple.com>
185
186         Reviewed by Dan Bernstein.
187
188         <rdar://problem/7477071> REGRESSION: Bad flicker when wheel-scrolling Google Maps, iPad gallery and other sites
189
190         Sites that frequently toggle content in and out of compositing layers (like http://www.tumblr.com/boothed)
191         can cause flickering because of unsychronized compositing layer and view-based updates. There were two
192         underlying issues:
193         
194         1. On SnowLeopard, AppKit can throttle window updates, thus breaking an assumption that
195            NSView drawing will happen on the runloop cycle after a repaint. This provided a window
196            for the layerSyncRunLoopObserver to fire and commit layer changes too early.
197            
198            Fix this by having the layerSyncRunLoopObserver in WebView check to see if a display is pending,
199            and not commit layer changes in that case. We'll commit layer changes later when we
200            finally draw.
201            
202         2. The change in r49269 was wrong; it was attempting to fix an issue that was actually caused
203            by -drawRects: coming in for page snapshots. The correct approach is to avoid hitting the
204            synchronization and update disabling code in WebHTMLView for draws that are not to the screen.
205         
206         * WebView/WebHTMLView.mm:
207         (-[WebHTMLView drawRect:]):
208         * WebView/WebView.mm:
209         (layerSyncRunLoopObserverCallBack):
210         (-[WebView _scheduleCompositingLayerSync]):
211
212 2010-04-30  Anders Carlsson  <andersca@apple.com>
213
214         Part of the previous part (forgot to save).
215
216         * Plugins/WebNetscapePluginView.mm:
217         (-[WebNetscapePluginView stopTimers]):
218         (-[WebNetscapePluginView startTimers]):
219         (-[WebNetscapePluginView checkIfAllowedToLoadURL:frame:callbackFunc:context:]):
220         (-[WebNetscapePluginView _containerCheckResult:contextInfo:]):
221         (-[WebNetscapePluginView cancelCheckIfAllowedToLoadURL:]):
222         (-[WebNetscapePluginView scheduleTimerWithInterval:repeat:timerFunc:]):
223         (-[WebNetscapePluginView unscheduleTimer:]):
224         (-[WebNetscapePluginView getVariable:forURL:value:length:]):
225         (-[WebNetscapePluginView setVariable:forURL:value:length:]):
226
227 2010-04-30  Anders Carlsson  <andersca@apple.com>
228
229         Reviewed by Darin Adler.
230
231         Use C99 integer types in more places.
232
233         * Plugins/WebNetscapePluginView.mm:
234         (getNPRect):
235
236 2010-04-30  Anders Carlsson  <andersca@apple.com>
237
238         Fix Tiger build.
239
240         * Plugins/WebBaseNetscapePluginStream.h:
241         * Plugins/WebBaseNetscapePluginStream.mm:
242         (WebNetscapePluginStream::startStream):
243
244 2010-04-30  Anders Carlsson  <andersca@apple.com>
245
246         Another 32-bit build fix.
247
248         * Plugins/WebNetscapePluginView.mm:
249         (-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]):
250
251 2010-04-30  Anders Carlsson  <andersca@apple.com>
252
253         Fix 32-bit build (again).
254
255         * Plugins/WebNetscapeContainerCheckContextInfo.h:
256         * Plugins/WebNetscapeContainerCheckContextInfo.mm:
257         (-[WebNetscapeContainerCheckContextInfo initWithCheckRequestID:callbackFunc:context:]):
258         (-[WebNetscapeContainerCheckContextInfo checkRequestID]):
259         (-[WebNetscapeContainerCheckContextInfo callback]):
260         * Plugins/WebNetscapePluginPackage.h:
261
262 2010-04-30  Anders Carlsson  <andersca@apple.com>
263
264         Fix 32-bit build.
265
266         * Plugins/WebNetscapeContainerCheckContextInfo.h:
267         * Plugins/WebNetscapeContainerCheckContextInfo.mm:
268         (-[WebNetscapeContainerCheckContextInfo initWithCheckRequestID:callbackFunc:context:]):
269         * Plugins/WebNetscapeContainerCheckPrivate.h:
270         * Plugins/WebNetscapePluginPackage.mm:
271         (functionPointerForTVector):
272         * Plugins/WebNetscapePluginView.mm:
273         (PluginTimer::PluginTimer):
274         (-[WebNetscapePluginView checkIfAllowedToLoadURL:frame:callbackFunc:context:]):
275         (-[WebNetscapePluginView scheduleTimerWithInterval:repeat:timerFunc:]):
276
277 2010-04-30  Anders Carlsson  <andersca@apple.com>
278
279         Reviewed by Timothy Hatcher.
280
281         Next step towards fixing
282         
283         https://bugs.webkit.org/show_bug.cgi?id=20784
284         move npapi.h to C99 integer types
285
286         Use the C99 types everywhere. The "old" types are still around but will be removed
287         in a subsequent commit.
288
289         * Plugins/WebBaseNetscapePluginStream.h:
290         * Plugins/WebBaseNetscapePluginStream.mm:
291         (WebNetscapePluginStream::deliverData):
292         * Plugins/WebNetscapePluginView.h:
293         * Plugins/WebNetscapePluginView.mm:
294         (-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]):
295         (-[WebNetscapePluginView getAuthenticationInfoWithProtocol:host:port:scheme:realm:username:usernameLength:password:passwordLength:]):
296         * Plugins/npapi.mm:
297         (NPN_MemAlloc):
298         (NPN_MemFlush):
299         (NPN_PostURLNotify):
300         (NPN_PostURL):
301         (NPN_Write):
302         (NPN_ScheduleTimer):
303         (NPN_UnscheduleTimer):
304         (NPN_GetValueForURL):
305         (NPN_SetValueForURL):
306         (NPN_GetAuthenticationInfo):
307         (WKN_CheckIfAllowedToLoadURL):
308         (WKN_CancelCheckIfAllowedToLoadURL):
309
310 2010-04-29  Anders Carlsson  <andersca@apple.com>
311
312         Reviewed by Dan Bernstein.
313
314         First part of
315         https://bugs.webkit.org/show_bug.cgi?id=20784
316         move npapi.h to C99 integer types.
317
318         * MigrateHeaders.make:
319
320 2010-04-28  Mike Thole  <mthole@apple.com>
321
322         Reviewed by David Kilzer.
323
324         Add canAuthenticateAgainstProtectionSpace() to frame loader so that a protection space 
325         can be inspected before attempting to authenticate against it
326         https://bugs.webkit.org/show_bug.cgi?id=38271
327
328         * WebCoreSupport/WebFrameLoaderClient.h:
329         * WebCoreSupport/WebFrameLoaderClient.mm:
330         (WebFrameLoaderClient::canAuthenticateAgainstProtectionSpace):
331         Added.  If the resource load delegate implements the callback, use its answer.  If it does
332         not, then only send authentication challenges for pre-10.6 protection spaces, which matches
333         CFNetwork's default behavior.
334         * WebView/WebDelegateImplementationCaching.h:
335         * WebView/WebDelegateImplementationCaching.mm:
336         (CallResourceLoadDelegateReturningBoolean): Added case for passing three objects.
337         * WebView/WebResourceLoadDelegatePrivate.h:
338         Added private SPI definition: webView:resource:canAuthenticateAgainstProtectionSpace:forDataSource:
339         * WebView/WebView.mm:
340         (-[WebView _cacheResourceLoadDelegateImplementations]):
341
342 2010-04-28  Simon Fraser  <simon.fraser@apple.com>
343
344         Reviewed by Sam Weinig.
345
346         <rdar://problem/7918719> ASSERT(isMainThread()) from Font::setShouldUseSmoothing()
347         
348         Ensure that the WebView +initialize method initializes threading, so that things are correctly
349         initialized when the first call into the WebKit framework is via a WebView class method.
350
351         * WebView/WebView.mm:
352         (+[WebView initialize]):
353
354 2010-04-28  Darin Adler  <darin@apple.com>
355
356         Reviewed by Adele Peterson.
357
358         REGRESSION: Autoscroll does not work in Mail messages
359         https://bugs.webkit.org/show_bug.cgi?id=38267
360         rdar://problem/7559799
361
362         The machinery to make autoscrolling work on Mac OS X when a WebView is embedded in another
363         view had gotten broken in multiple ways. For some reason, a combination of bugs made it
364         partly work until around r48064. This brings it back.
365
366         * WebCoreSupport/WebChromeClient.mm:
367         (WebChromeClient::scrollRectIntoView): When converting coordinates, use the document view
368         rather than the WebView itself. This logic may not be correct for the case where
369         usesDocumentViews is NO, but that is currently an experimental mode and can be fixed later.
370
371 2010-04-27  Shinichiro Hamaji  <hamaji@chromium.org>
372
373         Reviewed by Darin Adler and Eric Seidel.
374
375         Add layoutTestController.setPrinting()
376         https://bugs.webkit.org/show_bug.cgi?id=37203
377
378         * Misc/WebCoreStatistics.h:
379         * Misc/WebCoreStatistics.mm:
380         (-[WebFrame renderTreeAsExternalRepresentationForPrinting:]):
381
382 2010-04-25  Sam Weinig  <sam@webkit.org>
383
384         Reviewed by Maciej Stachowiak.
385
386         Fix for https://bugs.webkit.org/show_bug.cgi?id=38097
387         Disentangle initializing the main thread from initializing threading
388
389         Calls initializeMainThreadToProcessMainThread since there is no way to ensure
390         that the initialize method will be called on the main thread.
391
392         * Carbon/CarbonWindowAdapter.mm:
393         (+[CarbonWindowAdapter initialize]): Add call to initializeMainThreadToProcessMainThread.
394         * History/WebBackForwardList.mm:
395         (+[WebBackForwardList initialize]): Ditto.
396         * History/WebHistoryItem.mm:
397         (+[WebHistoryItem initialize]): Ditto.
398         * Misc/WebElementDictionary.mm:
399         (+[WebElementDictionary initialize]): Ditto.
400         * Misc/WebIconDatabase.mm:
401         (+[WebIconDatabase initialize]): Ditto.
402         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
403         (+[WebHostedNetscapePluginView initialize]): Ditto.
404         * Plugins/WebBaseNetscapePluginView.mm:
405         (+[WebBaseNetscapePluginView initialize]): Ditto.
406         * Plugins/WebBasePluginPackage.mm:
407         (+[WebBasePluginPackage initialize]): Ditto.
408         * Plugins/WebNetscapePluginView.mm:
409         (+[WebNetscapePluginView initialize]): Ditto.
410         * WebCoreSupport/WebEditorClient.mm:
411         (+[WebEditCommand initialize]): Ditto.
412         * WebCoreSupport/WebFrameLoaderClient.mm: 
413         (+[WebFramePolicyListener initialize]): Ditto.
414         * WebView/WebArchive.mm:
415         (+[WebArchivePrivate initialize]): Ditto.
416         * WebView/WebDataSource.mm:
417         (+[WebDataSourcePrivate initialize]): Ditto.
418         * WebView/WebHTMLView.mm:
419         (+[WebHTMLViewPrivate initialize]): Ditto.
420         (+[WebHTMLView initialize]): Ditto.
421         * WebView/WebResource.mm:
422         (+[WebResourcePrivate initialize]): Ditto.
423         * WebView/WebTextIterator.mm:
424         (+[WebTextIteratorPrivate initialize]): Ditto.
425         * WebView/WebView.mm:
426         * WebView/WebViewData.mm: Ditto.
427         (+[WebViewPrivate initialize]): Ditto.
428
429 2010-04-24  Dan Bernstein  <mitz@apple.com>
430
431         Reviewed by Darin Adler.
432
433         <rdar://problem/7903728> REGRESSION (r51617): WebView fails to load plug-in MIME types
434         https://bugs.webkit.org/show_bug.cgi?id=38085
435
436         WebView was calling -_webView in a few places where it should have just used itself. It never
437         makes sense for WebView to call -_webView on itself, and these calls look like they were copied
438         from similar code in WebHTMLView, WebFrameView and WebDataSource, where -_webView has a different,
439         useful meaning.
440
441         * WebView/WebView.mm:
442         (-[WebView drawSingleRect:]): Replaced [self _webView] with self.
443         (-[WebView _viewClass:andRepresentationClass:forMIMEType:]): Replaced [[self _webView] preferences]
444         with _private->preferences.
445         (-[WebView _canShowMIMEType:]): Ditto.
446
447 2010-04-23  Simon Fraser  <simon.fraser@apple.com>
448
449         Reviewed by Anders Carlsson.
450
451         <rdar://problem/7894489> When printing Flash, send a drawRect event, rather than NPPrint
452         
453         When printing Flash plug-ins in 32-bit, send a drawRect event with a CGContextRef, rather than calling
454         NPPrint with a GWorldPtr, since Flash prefers the CGContext path.
455
456         * Plugins/WebNetscapePluginView.mm:
457         (-[WebNetscapePluginView drawRect:]):
458
459 2010-04-22  David Kilzer  <ddkilzer@apple.com>
460
461         <http://webkit.org/b/38029> +[WebTextIteratorPrivate initialize] is missing call to JSC::initializeThreading()
462
463         Reviewed by Timothy Hatcher.
464
465         Every other Objective-C class that calls
466         WebCoreObjCFinalizeOnMainThread(self) in +initialize also calls
467         JSC::initializeThreading().  The WebTextIteratorPrivate class
468         was the only one missing this call.
469
470         * WebView/WebTextIterator.mm:
471         (+[WebTextIteratorPrivate initialize]): Added call to
472         JSC::initializeThreading().
473
474 2010-04-22  Alexey Proskuryakov  <ap@apple.com>
475
476         Rubber-stamped by Mark Rowe.
477
478         <rdar://problem/7805969> REGRESSION: iTunes unable to play trailers
479
480         Undo the changes made for https://bugs.webkit.org/show_bug.cgi?id=35215 (<rdar://problem/7673157>)
481         for now. Clients rely on the old behavior, so a fix that changes it will need to account for
482         those.
483
484         * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::createPlugin): Pass pluginURL
485         instead of baseURL again.
486
487 2010-04-22  Dave Moore  <davemoore@chromium.org>
488
489         Reviewed by Dimitri Glazkov.
490
491         Added notification when the favicons for a page are changed
492         from a script.
493         The Document object will notify the frame loader, which will
494         notify the client. Implementations of FrameLoaderClient will
495         have to add one method; dispatchDidChangeIcons().
496
497         https://bugs.webkit.org/show_bug.cgi?id=33812
498
499         * WebCoreSupport/WebFrameLoaderClient.h:
500         * WebCoreSupport/WebFrameLoaderClient.mm:
501         (WebFrameLoaderClient::dispatchDidChangeIcons):
502
503 2010-04-22  Adam Barth  <abarth@webkit.org>
504
505         Unreviewed, rolling out r58069.
506         http://trac.webkit.org/changeset/58069
507         https://bugs.webkit.org/show_bug.cgi?id=27751
508
509         Broke compile on Windows.
510
511         * WebView/WebPreferenceKeysPrivate.h:
512         * WebView/WebPreferences.mm:
513         (+[WebPreferences initialize]):
514         * WebView/WebPreferencesPrivate.h:
515         * WebView/WebView.mm:
516         (-[WebView _preferencesChangedNotification:]):
517
518 2010-04-22  Abhishek Arya  <inferno@chromium.org>
519
520         Reviewed by Adam Barth.
521
522         Add support for controlling clipboard access from javascript.
523         Clipboard access from javascript is disabled by default.
524         https://bugs.webkit.org/show_bug.cgi?id=27751
525
526         * WebView/WebPreferenceKeysPrivate.h:
527         * WebView/WebPreferences.mm:
528         (+[WebPreferences initialize]):
529         (-[WebPreferences javaScriptCanAccessClipboard]):
530         (-[WebPreferences setJavaScriptCanAccessClipboard:]):
531         * WebView/WebPreferencesPrivate.h:
532         * WebView/WebView.mm:
533         (-[WebView _preferencesChangedNotification:]):
534
535 2010-04-21  Alexey Proskuryakov  <ap@apple.com>
536
537         Reviewed by Shinichiro Hamaji.
538
539         https://bugs.webkit.org/show_bug.cgi?id=37964
540         Fix a typo in comments - Korean encoding name is windows-949, not windows-939
541
542         * WebView/WebPreferences.mm: (+[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]):
543
544 2010-04-21  Mark Rowe  <mrowe@apple.com>
545
546         Tiger build fix.
547
548         * Plugins/WebPluginController.mm: Add an #import that is necessary on Tiger.
549
550 2010-04-21  Mark Rowe  <mrowe@apple.com>
551
552         Reviewed by Eric Carlson.
553
554         <rdar://problem/7313430> Many crashes in Safari inside Flip4Mac below -[NSAlert didEndAlert:returnCode:contextInfo:]
555
556         Existing versions of the Flip4Mac WebKit plug-in have an object lifetime bug related to an NSAlert that is
557         used to notify the user about updates to the plug-in. This bug can result in Safari crashing if the page
558         containing the plug-in navigates while the alert is displayed (<rdar://problem/7313430>).
559
560         The gist of the bug is thus: Flip4Mac sets an instance of the TSUpdateCheck class as the modal delegate of the
561         NSAlert instance. This TSUpdateCheck instance itself has a delegate. The delegate is set to the WmvPlugin
562         instance which is the NSView subclass that is exposed to WebKit as the plug-in view. Since this relationship
563         is that of delegates the TSUpdateCheck does not retain the WmvPlugin. This leads to a bug if the WmvPlugin
564         instance is destroyed before the TSUpdateCheck instance as the TSUpdateCheck instance will be left with a
565         pointer to a stale object. This will happen if a page containing the Flip4Mac plug-in triggers a navigation
566         while the update sheet is visible as the WmvPlugin instance is removed from the view hierarchy and there are
567         no other references to keep the object alive.
568
569         We work around this bug by patching the following two messages:
570
571         1) -[NSAlert beginSheetModalForWindow:modalDelegate:didEndSelector:contextInfo:]
572         2) -[TSUpdateCheck alertDidEnd:returnCode:contextInfo:]
573
574         Our override of 1) detects whether it is Flip4Mac's update sheet triggering the alert by checking whether the
575         modal delegate is an instance of TSUpdateCheck. If it is, it retains the modal delegate's delegate.
576
577         Our override of 2) then autoreleases the delegate, balancing the retain we added in 1).
578
579         These two overrides have the effect of ensuring that the WmvPlugin instance will always outlive the TSUpdateCheck
580         instance, preventing the TSUpdateCheck instance from accessing a stale delegate pointer and crashing the application.
581
582         * Plugins/WebPluginController.mm:
583         (-[WebPluginController addPlugin:]): Check whether the plug-in being instantiated is the Flip4Mac plug-in and
584         install our workaround if it is.
585         (isKindOfClass): Helper function that checks whether the given object is an instance of the named class.
586         (WebKit_TSUpdateCheck_alertDidEnd_returnCode_contextInfo_): Autorelease the delegate.
587         (WebKit_NSAlert_beginSheetModalForWindow_modalDelegate_didEndSelector_contextInfo_): Retain the modal delegate's
588         delegate if this NSAlert belongs to the Flip4Mac plug-in.
589         (installFlip4MacPlugInWorkaroundIfNecessary): Swizzle the necessary methods.  We swizzle the TSUpdateCheck methods
590         first since it is possible that in some versions of Flip4Mac the TSUpdateCheck class may not exist or may not have
591         the method we're interested in.  In that case we want to bail out before patching any methods.
592
593 2010-04-20  Mark Rowe  <mrowe@apple.com>
594
595         Reviewed by Maciej Stachowiak.
596
597         <rdar://problem/7856151> REGRESSION: NPP_Destroy is not called when page navigates when plug-in is displaying modal dialog
598
599         An interaction between the plug-in host and WebKit was resulting in WKPCSetModal being called while
600         NetscapePluginInstanceProxy was waiting on a reply to the GetScriptableNPObject message. This resulted
601         in calls to stop the plug-in being deferred due to the presence of plug-in code up the stack.  This
602         could lead to crashes as it was possible for the plug-in view to be deallocated during the modal runloop.
603
604         * Plugins/Hosted/NetscapePluginHostProxy.mm:
605         (WKPCInvalidateRect):
606         (WKPCSetModal): Defer the handling of setModal until the next runloop iteration if the host proxy
607         is already processing requests.  This ensures that there will be no plug-in code on the stack when
608         the modal runloop is entered, which allows the plug-in to be stopped when the page is navigated while
609         a modal dialog is displayed.
610
611 2010-04-20  Adam Barth  <abarth@webkit.org>
612
613         Reviewed by Eric Seidel.
614
615         Factor DocumentWriter out of FrameLoader
616         https://bugs.webkit.org/show_bug.cgi?id=37175
617
618         Update these callsites because the method moved to DocumentWriter.
619
620         * WebView/WebFrame.mm:
621         (-[WebFrame _canProvideDocumentSource]):
622         (-[WebFrame _receivedData:textEncodingName:]):
623
624 2010-04-20  Kent Tamura  <tkent@chromium.org>
625
626         Reviewed by Darin Adler.
627
628         Change a parameter type of chooseIconForFiles()
629         https://bugs.webkit.org/show_bug.cgi?id=37504
630
631         * WebCoreSupport/WebChromeClient.h:
632         * WebCoreSupport/WebChromeClient.mm:
633         (WebChromeClient::chooseIconForFiles):
634
635 2010-04-20  Sheriff Bot  <webkit.review.bot@gmail.com>
636
637         Unreviewed, rolling out r57892.
638         http://trac.webkit.org/changeset/57892
639         https://bugs.webkit.org/show_bug.cgi?id=37864
640
641         Caused an assertion in Mac builds (Requested by smfr on
642         #webkit).
643
644         * WebView/WebFrame.mm:
645         (-[WebFrame _getVisibleRect:]):
646         * WebView/WebFrameView.mm:
647         (-[WebFrameView _install]):
648
649 2010-04-20  Simon Fraser  <simon.fraser@apple.com>
650
651         Reviewed by Dan Bernstein.
652
653         Clean up RenderPart/RenderPartObject/RenderFrame/RenderEmbeddedObject
654         https://bugs.webkit.org/show_bug.cgi?id=37741
655         
656         Make Frame::ownerRenderer() return a RenderFrameBase* rather than a
657         RenderPart*, and add the necessary toRenderFrameBase() and isRenderFrameBase().
658
659         * WebView/WebFrame.mm:
660         (-[WebFrame _getVisibleRect:]):
661         * WebView/WebFrameView.mm:
662         (-[WebFrameView _install]):
663
664 2010-04-19  Dan Bernstein  <mitz@apple.com>
665
666         Reviewed by Sam Weinig.
667
668         Finish exposing extremal shrink factors WebHTMLView uses when shrinking pages to fit in the
669         printing width as SPI.
670
671         * WebKit.exp: Export _WebHTMLViewPrintingMinimumShrinkFactor and _WebHTMLViewPrintingMaximumShrinkFactor.
672
673 2010-04-15  Gavin Barraclough  <barraclough@apple.com>
674
675         Reviewed by Sam Weinig & Oliver Hunt.
676
677         https://bugs.webkit.org/show_bug.cgi?id=37675
678         Remove casts/constructors to/from JSC::UString type from WebCore::String
679         
680         WebCore's strings should not know about JSC::UString, this should be abstracted
681         away in the bindings.  Add explicit conversion methods rather than relying on
682         overloaded cast operators / constructors being implicitly called.
683
684         This patch only changes the class String, once this has landed StringImpl, and
685         hopefully AtomicString too, should follow suit.
686
687         * Plugins/Hosted/NetscapePluginHostProxy.mm:
688         (identifierFromIdentifierRep):
689         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
690         (WebKit::NetscapePluginInstanceProxy::addValueToArray):
691         (WebKit::NetscapePluginInstanceProxy::moveGlobalExceptionToExecState):
692         * Plugins/Hosted/ProxyInstance.mm:
693         (WebKit::ProxyInstance::getPropertyNames):
694         * WebView/WebFrame.mm:
695         (-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
696         (-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]):
697         * WebView/WebScriptDebugDelegate.mm:
698         (-[WebScriptCallFrame evaluateWebScript:]):
699         * WebView/WebScriptDebugger.mm:
700         (toNSURL):
701         * WebView/WebView.mm:
702         (aeDescFromJSValue):
703
704 2010-04-16  Dan Bernstein  <mitz@apple.com>
705
706         Reviewed by John Sullivan.
707
708         Expose the extremal shrink factors WebHTMLView uses when shrinking pages to fit in the
709         printing width as SPI.
710
711         * WebView/WebHTMLView.mm:
712         Replaced two macros with constants.
713         (-[WebHTMLView _beginPrintModeWithPageWidth:shrinkToFit:]): Changed to use the constants.
714         (-[WebHTMLView _scaleFactorForPrintOperation:]): Ditto.
715         * WebView/WebHTMLViewPrivate.h: Declared _WebHTMLViewPrintingMinimumShrinkFactor and
716         _WebHTMLViewPrintingMaximumShrinkFactor.
717
718 2010-04-15  Mark Rowe  <mrowe@apple.com>
719
720         Reviewed by Sam Weinig.
721
722         <rdar://problem/7870651> WebDynamicScrollBarsView.h generates compile errors when included in plain Objective-C files.
723
724         * WebView/WebDynamicScrollBarsView.h:
725
726 2010-04-15  Adam Roben  <aroben@apple.com>
727
728         Export WebUserContentURLPattern from WebKit
729
730         Rubber-stamped by Mark Rowe.
731
732         * WebKit.exp:
733
734 2010-04-15  Dan Bernstein  <mitz@apple.com>
735
736         Reviewed by Simon Fraser.
737
738         Made consecutive calls to -[WebHTMLView _beginPrintModeWithPageWidth:shrinkToFit:] work
739         without intermediate calls -[WebHTMLView _endPrintMode].
740
741         * WebView/WebHTMLView.mm:
742         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
743
744 2010-04-15  Adam Roben  <aroben@apple.com>
745
746         Expose UserContentURLPattern as WebKit SPI
747
748         Fixes <http://webkit.org/b/37354>.
749
750         Reviewed by Tim Hatcher.
751
752         * Misc/WebUserContentURLPattern.h: Added.
753
754         * Misc/WebUserContentURLPattern.mm: Added.
755         (-[WebUserContentURLPattern initWithPatternString:]): Initialize
756         _private and then parse the passed-in string into a
757         UserContentURLPattern.
758         (-[WebUserContentURLPattern dealloc]): Release _private.
759
760         (-[WebUserContentURLPattern isValid]):
761         (-[WebUserContentURLPattern scheme]):
762         (-[WebUserContentURLPattern host]):
763         (-[WebUserContentURLPattern matchesSubdomains]):
764         Call through to UserContentURLPattern.
765
766 2010-04-13  Geoffrey Garen  <ggaren@apple.com>
767
768         Reviewed by Oliver Hunt.
769
770         Separated a DOMWrapperWorld's behavior of keeping wrappers alive from
771         its own lifetime, so a DOMWrapperWorld's controller can throw away
772         its wrappers even before its refcount reaches 0.
773
774         * WebView/WebScriptWorld.h:
775         * WebView/WebScriptWorld.mm:
776         (-[WebScriptWorld unregisterWorld]): Exported this function through WebKit.
777
778 2010-04-12  Timothy Hatcher  <timothy@apple.com>
779
780         SecurityOrigin needs a way to remove individual OriginAccessEntries
781         https://bugs.webkit.org/show_bug.cgi?id=37449
782
783         Reviewed by Dave Hyatt.
784
785         * WebView/WebView.mm:
786         (+[WebView _removeOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]):
787         Call SecurityOrigin::removeOriginAccessWhitelistEntry.
788         * WebView/WebViewPrivate.h: Added _removeOriginAccessWhitelistEntryWithSourceOrigin.
789
790 2010-04-13  Timothy Hatcher  <timothy@apple.com>
791
792         Rename SecurityOrigin::whiteListAccessFromOrigin to addOriginAccessWhitelistEntry.
793         And SecurityOrigin::resetOriginAccessWhiteLists to resetOriginAccessWhitelists.
794
795         SecurityOrigin needs a way to remove individual OriginAccessEntries
796         https://bugs.webkit.org/show_bug.cgi?id=37449
797
798         Reviewed by Dave Hyatt.
799
800         * WebView/WebView.mm:
801         (+[WebView _addOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]):
802         (+[WebView _resetOriginAccessWhitelists]):
803         * WebView/WebViewPrivate.h:
804
805 2010-04-11  Sheriff Bot  <webkit.review.bot@gmail.com>
806
807         Unreviewed, rolling out r57468.
808         http://trac.webkit.org/changeset/57468
809         https://bugs.webkit.org/show_bug.cgi?id=37433
810
811         Broke the world...  Must have applied the patch wrong
812         (Requested by abarth on #webkit).
813
814         * WebView/WebFrame.mm:
815         (-[WebFrame _canProvideDocumentSource]):
816         (-[WebFrame _receivedData:textEncodingName:]):
817
818 2010-04-11  Adam Barth  <abarth@webkit.org>
819
820         Reviewed by Eric Seidel.
821
822         Factor DocumentWriter out of FrameLoader
823         https://bugs.webkit.org/show_bug.cgi?id=37175
824
825         Update these callsites because the method moved to DocumentWriter.
826
827         * WebView/WebFrame.mm:
828         (-[WebFrame _canProvideDocumentSource]):
829         (-[WebFrame _receivedData:textEncodingName:]):
830
831 2010-04-10  Mark Rowe  <mrowe@apple.com>
832
833         Reviewed by Dan Bernstein.
834
835         <rdar://problem/7845305> Further adoption of formal protocols for delegates.
836
837         Move EmptyProtocolDefinitions.h down in to WebCore, and add the new protocols. Adopt the protocols in the appropriate places.
838
839         * Misc/EmptyProtocolDefinitions.h: Removed.
840         * Misc/WebDownload.mm:
841         * WebKitPrefix.h:
842
843 2010-04-09  Jer Noble  <jer.noble@apple.com>
844
845         Reviewed by Darin Adler.
846
847         Work around QTMovieView bug (<rdar://problem/7712713>) by using a QTMovieLayer instead.
848         https://bugs.webkit.org/show_bug.cgi?id=37311 / <rdar://problem/7749993>
849
850         * WebView/WebVideoFullscreenController.mm:
851         (-[WebVideoFullscreenController windowDidLoad]):
852         (-[WebVideoFullscreenController setMediaElement:WebCore::]):
853
854 2010-04-09  Alexey Proskuryakov  <ap@apple.com>
855
856         Reviewed by Maciej Stachowiak.
857
858         https://bugs.webkit.org/show_bug.cgi?id=24572
859         XMLHttpRequest.statusText returns always "OK" on Mac
860
861         * WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface):
862
863 2010-04-09  Eric Seidel  <eric@webkit.org>
864
865         Unreviewed, rolling out r57343.
866         http://trac.webkit.org/changeset/57343
867         https://bugs.webkit.org/show_bug.cgi?id=37311
868
869         Broke Tiger compile.
870
871         * WebView/WebVideoFullscreenController.mm:
872         (-[WebVideoFullscreenController windowDidLoad]):
873         (-[WebVideoFullscreenController setMediaElement:WebCore::]):
874
875 2010-04-09  Dan Bernstein  <mitz@apple.com>
876
877         Reviewed by Darin Adler.
878
879         <rdar://problem/7846015> REGRESSION (r57332) - Crash in [WebDynamicScrollBarsView(WebInternal) reflectScrolledClipView:] when opening the Downloads window
880
881         * WebView/WebDynamicScrollBarsView.mm:
882         (-[WebDynamicScrollBarsView initWithCoder:]): Added. Calls super and then initializes _private.
883
884 2010-04-09  Jer Noble  <jer.noble@apple.com>
885
886         Reviewed by Darin Adler.
887
888         Work around QTMovieView bug (<rdar://problem/7712713>) by using a QTMovieLayer instead.
889         https://bugs.webkit.org/show_bug.cgi?id=37311 / <rdar://problem/7749993>
890
891         * WebView/WebVideoFullscreenController.mm:
892         (-[WebVideoFullscreenController windowDidLoad]):
893         (-[WebVideoFullscreenController setMediaElement:WebCore::]):
894
895 2010-04-08  Mark Rowe  <mrowe@apple.com>
896
897         Reviewed by John Sullivan.
898
899         <rdar://problem/7814899> REGRESSION(r56008): iTunes crashes on quit inside -[NSScrollView dealloc]
900
901         In r56008 new instance variables were added to WebDynamicScrollBarsView, increasing its size.
902         This causes problems for 32-bit applications that derive from WebDynamicScrollBarsView, as the
903         size and layout of their subclasses is baked in at compile time.  This results in instances
904         being allocated that are smaller than the new code expects, and may result in the new instance
905         variables sharing the same memory space as any instance variables that the subclass defines.
906
907         We can avoid this problem by having the class contain only a single member that acts as a pointer
908         to a heap-allocated structure that acts as storage for the real instance variables.  This makes
909         us free to add instance variables in the future without risk of changing the size of the class.
910         To ensure that 32-bit applications that are built against this new WebDynamicScrollBarsView header
911         are able to run against older versions of WebKit we pad the class out to its previous size.  This
912         results in any subclasses of WebDynamicScrollBarsView being created with a layout that is compatible
913         with both versions of the code.
914
915         This change could potentially break a subclass of WebDynamicScrollBarsView that directly accesses
916         instance variables of its superclass.  However, this is a private header and no known subclasses
917         of WebDynamicScrollBarsView access superclass instance variables in this fashion.
918
919         * WebView/WebDynamicScrollBarsView.h:
920         * WebView/WebDynamicScrollBarsView.mm:
921         (-[WebDynamicScrollBarsView initWithFrame:]):
922         (-[WebDynamicScrollBarsView dealloc]):
923         (-[WebDynamicScrollBarsView finalize]):
924         (-[WebDynamicScrollBarsView setAllowsHorizontalScrolling:]):
925         (-[WebDynamicScrollBarsView setAllowsScrollersToOverlapContent:]):
926         (-[WebDynamicScrollBarsView setAlwaysHideHorizontalScroller:]):
927         (-[WebDynamicScrollBarsView setAlwaysHideVerticalScroller:]):
928         (-[WebDynamicScrollBarsView horizontalScrollingAllowed]):
929         (-[WebDynamicScrollBarsView verticalScrollingAllowed]):
930         (-[WebDynamicScrollBarsView contentViewFrame]):
931         (-[WebDynamicScrollBarsView tile]):
932         (-[WebDynamicScrollBarsView setSuppressLayout:]):
933         (-[WebDynamicScrollBarsView setScrollBarsSuppressed:repaintOnUnsuppress:]):
934         (-[WebDynamicScrollBarsView updateScrollers]):
935         (-[WebDynamicScrollBarsView reflectScrolledClipView:]):
936         (-[WebDynamicScrollBarsView allowsHorizontalScrolling]):
937         (-[WebDynamicScrollBarsView allowsVerticalScrolling]):
938         (-[WebDynamicScrollBarsView scrollingModes:WebCore::vertical:WebCore::]):
939         (-[WebDynamicScrollBarsView horizontalScrollingMode]):
940         (-[WebDynamicScrollBarsView verticalScrollingMode]):
941         (-[WebDynamicScrollBarsView setScrollingModes:vertical:andLock:]):
942         (-[WebDynamicScrollBarsView setHorizontalScrollingModeLocked:]):
943         (-[WebDynamicScrollBarsView setVerticalScrollingModeLocked:]):
944         (-[WebDynamicScrollBarsView setScrollingModesLocked:]):
945         (-[WebDynamicScrollBarsView horizontalScrollingModeLocked]):
946         (-[WebDynamicScrollBarsView verticalScrollingModeLocked]):
947         (-[WebDynamicScrollBarsView scrollWheel:]):
948
949 2010-04-07  David Hyatt  <hyatt@apple.com>
950
951         Reviewed by Oliver Hunt.
952
953         https://bugs.webkit.org/show_bug.cgi?id=24300, don't expose history info via CSS
954
955         Add SPI so that layout tests can access computed style including :visited information.
956
957         * WebView/WebRenderNode.mm:
958         (copyRenderNode):
959         * WebView/WebView.mm:
960         (-[WebView _computedStyleIncludingVisitedInfo:forElement:]):
961         * WebView/WebViewInternal.h:
962         * WebView/WebViewPrivate.h:
963
964 2010-04-07  Dan Bernstein  <mitz@apple.com>
965
966         Reviewed by Adele Peterson.
967
968         Refactor WebHTMLView printing code and add private methods to enter and exit printing mode.
969         https://bugs.webkit.org/show_bug.cgi?id=37246
970
971         * Misc/WebNSPrintOperationExtras.h: Declared -_web_availablePaperWidth and -_web_availablePaperHeight.
972         * Misc/WebNSPrintOperationExtras.m:
973         (-[NSPrintOperation _web_availablePaperWidth]): Turned -[WebHTMLView _availablePaperWidthForPrintOperation:]
974         into this method.
975         (-[NSPrintOperation _web_availablePaperHeight]): Turned -[WebHTMLView _calculatePrintHeight] into this
976         method.
977         * WebView/WebHTMLView.mm:
978         (-[WebHTMLView _isInPrintMode]): Added this accessor.
979         (-[WebHTMLView _beginPrintModeWithPageWidth:shrinkToFit:]): Added. Moved the code from -knowsPageRange: that
980         computes the layout widths and enters printing mode into this private method.
981         (-[WebHTMLView _endPrintMode]): New private method (the old -_endPrintMode has been renamed).
982         (-[WebHTMLView _scaleFactorForPrintOperation:]): Use -[NSPrintOperation _web_availablePaperWidth].
983         (-[WebHTMLView _endPrintModeAndRestoreWindowAutodisplay]): Renamed -_endPrintMode to this, changed it to call
984         _endPrintMode.
985         (-[WebHTMLView _delayedEndPrintMode:]): Updated for rename.
986         (-[WebHTMLView knowsPageRange:]): Use -_beginPrintModeWithPageWidth:shrintToFit:,
987         -[NSPrintOperation _web_availablePaperWidth], and -[NSPrintOperation _web_availablePaperHeight]. Updated for
988         rename.
989         (-[WebHTMLView beginDocument]): Updated for rename.
990         (-[WebHTMLView endDocument]): Ditto.
991         * WebView/WebHTMLViewPrivate.h: Declared new private methods -_isInPrintMode,
992         -_beginPrintModeWithPageWidth:shrinkToFit: and -_endPrintMode.
993
994 2010-04-07  Andrey Kosyakov  <caseq@chromium.org>
995
996         Reviewed by Yury Semikhatsky.
997
998         Removed redundant FrameLoaderClient::dispatchDidLoadResourceByXMLHttpRequest()
999         https://bugs.webkit.org/show_bug.cgi?id=36949
1000
1001         * WebCoreSupport/WebFrameLoaderClient.h:
1002         * WebCoreSupport/WebFrameLoaderClient.mm:
1003
1004 2010-04-06  Dan Bernstein  <mitz@apple.com>
1005
1006         Tiger build fix after r57184.
1007
1008         * WebView/WebHTMLViewPrivate.h:
1009
1010 2010-04-06  Dan Bernstein  <mitz@apple.com>
1011
1012         Tiger build fix after r57184.
1013
1014         * WebView/WebHTMLViewPrivate.h:
1015
1016 2010-04-06  Adam Barth  <abarth@webkit.org>
1017
1018         Unreviewed.
1019
1020         Speculative build fix for Tiger.
1021
1022         * WebView/WebHTMLViewPrivate.h:
1023
1024 2010-04-06  Dan Bernstein  <mitz@apple.com>
1025
1026         Reviewed by Sam Weinig and Anders Carlsson.
1027
1028         Expose WebHTMLView’s page breaking logic as SPI.
1029
1030         * WebView/WebHTMLView.mm:
1031         (-[WebHTMLView _adjustedBottomOfPageWithTop:bottom:limit:]): Factored out of -adjustPageHeightNew:top:bottom:limit:
1032         (-[WebHTMLView adjustPageHeightNew:top:bottom:limit:]): Call -_adjustedBottomOfPageWithTop:bottom:limit:
1033         * WebView/WebHTMLViewPrivate.h: Declared -_adjustedBottomOfPageWithTop:bottom:limit:
1034
1035 2010-04-06  Mark Rowe  <mrowe@apple.com>
1036
1037         Add an #if in order to make Tiger happy.
1038
1039         * WebView/WebViewData.mm:
1040         (-[WebViewPrivate init]):
1041
1042 2010-04-06  Mark Rowe  <mrowe@apple.com>
1043
1044         Build fix.
1045
1046         * WebView/WebViewData.mm:
1047         (-[WebViewPrivate init]): Use objc_collectingEnabled like we do elsewhere in WebKit.
1048
1049 2010-04-05  Mark Rowe  <mrowe@apple.com>
1050
1051         Reviewed by Adele Peterson.
1052
1053         Test case for <http://webkit.org/b/37115> / <rdar://problem/7829331>.
1054         REGRESSION(r56989): Crash in Mail in WebCore::Position::isCandidate when deleting block using block deletion UI
1055
1056         * WebView/WebHTMLView.mm:
1057         (-[WebHTMLView _updateFontPanel]): Ask the window whether it is the key window rather than doing the comparison
1058         manually.  This allows DumpRenderTree's override of isKeyWindow to force this code path to be taken during tests.
1059
1060 2010-04-05  Alexey Proskuryakov  <ap@apple.com>
1061
1062         Reviewed by Darin Adler.
1063
1064         https://bugs.webkit.org/show_bug.cgi?id=37111
1065         <rdar://problem/7790327> Draw replacement text when plug-in host crashes
1066
1067         * Plugins/Hosted/WebHostedNetscapePluginView.h: Removed _pluginDied - it was only used
1068         for drawing replacement icon, and this information is now in WebCore.
1069         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
1070         (-[WebHostedNetscapePluginView pluginHostDied]): Tell RenderEmbeddedObject that the plug-in
1071         has crashed.
1072         (-[WebHostedNetscapePluginView drawRect:]): Removed the case for crashed plug-in host. It is
1073         handled by WebCore now.
1074
1075         * WebCoreSupport/WebViewFactory.mm: (-[WebViewFactory crashedPluginText]): Added a string
1076         for plug-in failure.        
1077
1078 2010-04-03  yael aharon  <yael.aharon@nokia.com>
1079
1080         Reviewed by Darin Adler.
1081
1082         Enable HTMLProgressElement for Safari on OSX
1083         https://bugs.webkit.org/show_bug.cgi?id=36961
1084
1085         * Configurations/FeatureDefines.xcconfig:
1086
1087 2010-04-02  Jer Noble  <jer.noble@apple.com>
1088
1089         Reviewed by Eric Carlson.
1090
1091         https://bugs.webkit.org/show_bug.cgi?id=36624
1092         Add an INIT macro for the WebKitSystemInterface function wkQTMovieSelectPreferredAlternates.
1093
1094         * WebCoreSupport/WebSystemInterface.m:
1095         (InitWebCoreSystemInterface):
1096
1097 2010-04-02  Alexey Proskuryakov  <ap@apple.com>
1098
1099         Reviewed by Darin Adler.
1100
1101         https://bugs.webkit.org/show_bug.cgi?id=37043
1102         Java regression tests spam stderr about being unable to set status message
1103
1104         With this change, there is still spam about "Attempt to access JavaScript from destroyed
1105         applet, type 9." I haven't investigated if that indicates a problem or not.
1106
1107         * Plugins/WebPluginController.mm: (-[WebPluginController webPlugInContainerShowStatus:]):
1108         Removed check for _documentView. We don't seem to care.
1109
1110 2010-04-01  Kinuko Yasuda  <kinuko@chromium.org>
1111
1112         Reviewed by Dmitry Titov.
1113
1114         Add FileThread for async file operation support in FileReader and FileWriter
1115         https://bugs.webkit.org/show_bug.cgi?id=36896
1116
1117         Add FILE_READER or FILE_WRITER feature defines.
1118
1119         * Configurations/FeatureDefines.xcconfig:
1120
1121 2010-04-01  Ada Chan  <adachan@apple.com>
1122
1123         Reviewed by Darin Adler.
1124
1125         Change WebDatabaseManager::deleteOrigin() to return true if there are no errors in deleting the origin.
1126         Ditto for WebDatabaseManager::deleteDatabase().
1127         
1128         https://bugs.webkit.org/show_bug.cgi?id=36988
1129
1130         * Storage/WebDatabaseManager.mm:
1131         (-[WebDatabaseManager deleteOrigin:]):
1132         (-[WebDatabaseManager deleteDatabase:withOrigin:]):
1133         * Storage/WebDatabaseManagerPrivate.h:
1134
1135 2010-04-01  Alexey Proskuryakov  <ap@apple.com>
1136
1137         Reviewed by Darin Adler.
1138
1139         https://bugs.webkit.org/show_bug.cgi?id=36976
1140         <rdar://problem/7817498>
1141         REGRESSION(r54783): Silverlight plug-in causes Safari to crash if JavaScript is disabled
1142
1143         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1144         (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::get): The HashTable assertions aren't
1145         there to catch potential future attempts to store empty/deleted values before these happen -
1146         it's actually wrong to try to look up these values. Added an early return.
1147         (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::forget): Ditto.
1148
1149 2010-04-01  Chris Marrin  <cmarrin@apple.com>
1150
1151         Reviewed by Simon Fraser.
1152
1153         Added layerTreeAsText function to DRT (for Mac)
1154         https://bugs.webkit.org/show_bug.cgi?id=36782
1155
1156         This is the WebKit side for Mac. It plumbs the
1157         call from WebCore to DRT.
1158
1159         * WebView/WebFrame.mm:WebKit (Mac) side of plumbing
1160         (-[WebFrame _layerTreeAsText]):
1161         * WebView/WebFramePrivate.h:
1162
1163 2010-04-01  Alexey Proskuryakov  <ap@apple.com>
1164
1165         Reviewed by Oliver Hunt.
1166
1167         https://bugs.webkit.org/show_bug.cgi?id=36976
1168         <rdar://problem/7817498>
1169         REGRESSION(r54783): Silverlight plug-in causes Safari to crash if JavaScript is disabled
1170
1171         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1172         (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::get): Use find() instead of get(),
1173         because the latter fails with an assertion when looking up 0 or -1.
1174         (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::forget): Be prepared for unexpected
1175         object IDs coming from plug-in host.
1176
1177 2010-03-31  Chris Fleizach  <cfleizach@apple.com>
1178
1179         Reviewed by Darin Adler.
1180
1181         Bug 36845 - AX: need a way to set the label of a AXWebArea through WebKit
1182         https://bugs.webkit.org/show_bug.cgi?id=36845
1183
1184         Provide a way through WebKit to set an accessible label that describes the web area.    
1185
1186         * WebView/WebFrame.mm:
1187         (-[WebFrame setAccessibleName:]):
1188         * WebView/WebFramePrivate.h:
1189
1190 2010-03-31  Marcus Bulach  <bulach@chromium.org>
1191
1192         Reviewed by Jeremy Orlow.
1193
1194         Adds Geolocation param for cancelGeolocationPermissionRequestForFrame.
1195         https://bugs.webkit.org/show_bug.cgi?id=35031
1196
1197         * WebCoreSupport/WebChromeClient.h:
1198         (WebChromeClient::cancelGeolocationPermissionRequestForFrame):
1199
1200 2010-03-30  Gavin Barraclough  <barraclough@apple.com>
1201
1202         Rubber stamped by Sam Weinig.
1203
1204         https://bugs.webkit.org/show_bug.cgi?id=36866
1205         Move CString to WTF
1206
1207         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1208         (WebKit::NetscapePluginInstanceProxy::getCookies):
1209         (WebKit::NetscapePluginInstanceProxy::getProxy):
1210         (WebKit::NetscapePluginInstanceProxy::getAuthenticationInfo):
1211         (WebKit::NetscapePluginInstanceProxy::resolveURL):
1212         * Plugins/WebBaseNetscapePluginView.h:
1213         * Plugins/WebBaseNetscapePluginView.mm:
1214         * Plugins/WebNetscapePluginView.mm:
1215         (-[WebNetscapePluginView resolveURL:forTarget:]):
1216
1217 2010-03-30  John Sullivan  <sullivan@apple.com>
1218
1219         Reviewed by Dan Bernstein.
1220
1221         https://bugs.webkit.org/show_bug.cgi?id=36848
1222         <rdar://problem/7362913>
1223         Menu items appropriate only for rich-content editing can appear in plain-text contexts
1224
1225         * WebView/WebHTMLView.mm:
1226         (-[WebHTMLView validRequestorForSendType:returnType:]):
1227         Don't return self for non-string content if _canEditRichly is false.
1228
1229 2010-03-29  Alexey Proskuryakov  <ap@apple.com>
1230
1231         Reviewed by Darin Adler.
1232
1233         https://bugs.webkit.org/show_bug.cgi?id=36791
1234         Add assertions for instance proxy validity
1235
1236         Add some assertions that the instance proxy hasn't been deleted. We sometimes keep a raw
1237         pointer to one across complicated function calls, relying on the caller to protect the
1238         reference.
1239
1240         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
1241         (WebKit::NetscapePluginInstanceProxy::renderContextID):
1242         (WebKit::NetscapePluginInstanceProxy::pluginView):
1243         (WebKit::NetscapePluginInstanceProxy::hostProxy):
1244
1245 2010-03-30  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
1246
1247         Reviewed by David Kilzer.
1248
1249         Explicit guards for ENABLE_GEOLOCATION
1250         https://bugs.webkit.org/show_bug.cgi?id=25756
1251
1252         * WebCoreSupport/WebGeolocationMock.mm:
1253         (-[WebGeolocationMock setError:code:]): Make the body conditional on 
1254         ENABLE(GEOLOCATION)
1255         (-[WebGeolocationMock setPosition:]): Ditto.
1256
1257 2010-03-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1258
1259         Reviewed by Antti Koivisto.
1260
1261         Change method name due to it dealing with both flattening
1262         of frame sets and inner frames.
1263
1264         * WebView/WebPreferenceKeysPrivate.h:
1265         * WebView/WebPreferences.mm:
1266         (+[WebPreferences initialize]):
1267         (-[WebPreferences isFrameFlatteningEnabled]):
1268         (-[WebPreferences setFrameFlatteningEnabled:]):
1269         * WebView/WebPreferencesPrivate.h:
1270         * WebView/WebView.mm:
1271         (-[WebView _preferencesChangedNotification:]):
1272
1273 2010-03-27  Darin Adler  <darin@apple.com>
1274
1275         * Misc/WebNSFileManagerExtras.m:
1276         (-[NSFileManager _webkit_pathWithUniqueFilenameForPath:]):
1277         Removed stray "!". How did that get in there?
1278
1279 2010-03-27  Darin Adler  <darin@apple.com>
1280
1281         Reviewed by Mark Rowe.
1282
1283         WebKit NSFileManager methods don't handle broken symlinks correctly.
1284         Part of <rdar://problem/7574046>.
1285
1286         * Misc/WebNSFileManagerExtras.h: Removed unused defines and methods.
1287         * Misc/WebNSFileManagerExtras.m: Removed unused methods.
1288         (fileExists): Added. For use instead of fileExistsAtPath: for cases where we'd like
1289         to treat a broken symlink as a file that does indeed exist.
1290         (-[NSFileManager _webkit_pathWithUniqueFilenameForPath:]): Use fileExists.
1291
1292 2010-03-25  Alexey Proskuryakov  <ap@apple.com>
1293
1294         Reviewed by Mark Rowe.
1295
1296         * Plugins/Hosted/NetscapePluginHostProxy.mm: (WKPCRunSyncOpenPanel): Re-fetch host proxy in
1297         a way that works in a function that doesn't have a pluginID argument for some reason.
1298
1299 2010-03-25  Simon Fraser  <simon.fraser@apple.com>
1300
1301         Build fix: no review.
1302         
1303         Another c_str() -> data().
1304         
1305         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1306         (WebKit::NetscapePluginInstanceProxy::enumerate):
1307
1308 2010-03-25  Alexey Proskuryakov  <ap@apple.com>
1309
1310         Reviewed by Mark Rowe.
1311
1312         Correctness fix after r56493.
1313
1314         * Plugins/Hosted/NetscapePluginHostProxy.mm: (WKPCRunSyncOpenPanel): We still need to update
1315         our hostProxy reference, even though we didn't use to have instanceProxy. Nothing guarantees
1316         that the host proxy won't go away while the open panel is up.
1317
1318 2010-03-24  Mark Rowe  <mrowe@apple.com>
1319
1320         Build fix after r56474.
1321
1322         * Plugins/Hosted/NetscapePluginHostProxy.mm:
1323         (WKPCRunSyncOpenPanel):
1324
1325 2010-03-24  Alexey Proskuryakov  <ap@apple.com>
1326
1327         Reviewed by Anders Carlsson.
1328
1329         https://bugs.webkit.org/show_bug.cgi?id=36563
1330         A plug-in makes Safari crash on http://www.itscodingtime.com/
1331
1332         * Plugins/Hosted/NetscapePluginHostProxy.h:
1333         (WebKit::NetscapePluginHostProxy::port): Assert that the object is still alive. This isn't
1334         beautifully systemic, but helped catch a bug, and may help catch more.
1335         (WebKit::NetscapePluginHostProxy::clientPort): Ditto.
1336         (WebKit::NetscapePluginHostProxy::isProcessingRequests): Changed m_processingRequests to a
1337         static. This doesn't change behavior much, but helps avoid writing into deallocated memory.
1338
1339         * Plugins/Hosted/NetscapePluginHostProxy.mm:
1340         (WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy): Changed m_processingRequests
1341         to a static.
1342         (WebKit::NetscapePluginHostProxy::processRequests): Ditto. Changing m_processingRequests
1343         after destroying the object in pluginHostDied() was wrong, but reasonably harmless, as there
1344         wasn't much time for some other object to be allocated at this address.
1345         (WKPCEvaluate): Refetch host proxy, as it may have been destroyed.
1346         (WKPCInvoke): Ditto.
1347         (WKPCInvokeDefault): Ditto.
1348         (WKPCGetProperty): Ditto.
1349         (WKPCSetProperty): Ditto.
1350         (WKPCRemoveProperty): Ditto.
1351         (WKPCHasProperty): Ditto.
1352         (WKPCHasMethod): Ditto.
1353         (WKPCEnumerate): Ditto.
1354         (WKPCRunSyncOpenPanel): Ditto.
1355
1356         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1357         (WebKit::NetscapePluginInstanceProxy::processRequestsAndWaitForReply): Bail out of the 
1358         "event loop" if host proxy went away while processing a request.
1359
1360 2010-03-24  Hayato Ito  <hayato@chromium.org>
1361
1362         Reviewed by Shinichiro Hamaji.
1363
1364         Refactor computePageRects so that Mac can make use of it.
1365         https://bugs.webkit.org/show_bug.cgi?id=36159
1366
1367         Refactoring only, so no new tests.
1368
1369         * WebView/WebFrame.mm:
1370         (-[WebFrame _computePageRectsWithPrintWidthScaleFactor:printHeight:]):
1371
1372 2010-03-24  Kent Tamura  <tkent@chromium.org>
1373
1374         Reviewed by Darin Adler.
1375
1376         Make Icon::createIconForFiles() optional.
1377         https://bugs.webkit.org/show_bug.cgi?id=35072
1378
1379         - Rename iconForFiles() to chooseIconForFiles().
1380         - Call Icon::createIconForFiles() from chooseIconForFiles().
1381
1382         * WebCoreSupport/WebChromeClient.h:
1383         * WebCoreSupport/WebChromeClient.mm:
1384         (WebChromeClient::chooseIconForFiles):
1385
1386 2010-03-23  Dan Bernstein  <mitz@apple.com>
1387
1388         Reverted accidental change from r56429.
1389
1390         * WebCoreSupport/WebContextMenuClient.mm:
1391         (WebContextMenuClient::getCustomMenuFromDefaultItems):
1392
1393 2010-03-23  Dan Bernstein  <mitz@apple.com>
1394
1395         Reviewed by John Sullivan.
1396
1397         WebKit part of
1398         <rdar://problem/7197736> Plug-in clip rect does not update when overflow
1399         clip changes
1400         https://bugs.webkit.org/show_bug.cgi?id=36479.
1401
1402         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
1403         (-[WebHostedNetscapePluginView visibleRectDidChange]): Added. Calls
1404         WKSyncSurfaceToView().
1405         * Plugins/WebBaseNetscapePluginView.h:
1406         * Plugins/WebBaseNetscapePluginView.mm:
1407         (-[WebBaseNetscapePluginView _windowClipRect]): Changed to use Widget::windowClipRect().
1408         (-[WebBaseNetscapePluginView visibleRectDidChange]): Added. Invokes -renewGState.
1409
1410 2010-03-22  Kevin Decker  <kdecker@apple.com>
1411
1412         Reviewed by Simon Fraser.
1413
1414         https://bugs.webkit.org/show_bug.cgi?id=36328
1415
1416         This patch entirely WebNullPluginView.
1417         
1418         * Plugins/WebNetscapePluginView.mm:
1419         * Plugins/WebNullPluginView.h: Removed.
1420         * Plugins/WebNullPluginView.mm: Removed.
1421         * Resources/nullplugin.tiff: Removed.
1422         * WebCoreSupport/WebFrameLoaderClient.mm:
1423         (WebFrameLoaderClient::createPlugin): Invoke the resource load delegate if the plug-in failed to load.
1424
1425 2010-03-22  Alexey Proskuryakov  <ap@apple.com>
1426
1427         Reviewed by John Sullivan.
1428
1429         https://bugs.webkit.org/show_bug.cgi?id=36455
1430         Make WebKit more resistant against plug-in crashes
1431
1432         No tests, because crashing on build bots isn't good, even if it's only helper processes
1433         that crash.
1434
1435         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
1436         (WebKit::NetscapePluginInstanceProxy::waitForReply): Protect "this", because this function
1437         needs it after waiting for reply. Some callers used to do this, but not all, and we really
1438         shouldn't depend on callers here.
1439
1440         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1441         (WebKit::NetscapePluginInstanceProxy::wheelEvent): Don't protect the plug-in instance proxy,
1442         because this function doesn't use it after waiting for reply.
1443         (WebKit::NetscapePluginInstanceProxy::createBindingsInstance): Ditto.
1444
1445         * Plugins/Hosted/ProxyInstance.mm: (WebKit::ProxyInstance::invoke): Added an m_instanceProxy
1446         null check for another code path.
1447
1448 2010-03-22  Kevin Decker  <kdecker@apple.com>
1449
1450         Reviewed by John Sullivan.
1451
1452         https://bugs.webkit.org/show_bug.cgi?id=36328
1453
1454         * WebCoreSupport/WebViewFactory.mm:
1455         (-[WebViewFactory missingPluginText]): Added.
1456
1457 2010-03-18  Alexey Proskuryakov  <ap@apple.com>
1458
1459         Reviewed by Darin Adler.
1460
1461         https://bugs.webkit.org/show_bug.cgi?id=36337
1462         Log an error when an OOP plug-in sends an unknown object id
1463
1464         Making these LOG_ERROR and not ASSERTs, because I don't want early returns to look
1465         temporary or redundant.
1466
1467         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1468         (WebKit::NetscapePluginInstanceProxy::evaluate):
1469         (WebKit::NetscapePluginInstanceProxy::invoke):
1470         (WebKit::NetscapePluginInstanceProxy::invokeDefault):
1471         (WebKit::NetscapePluginInstanceProxy::construct):
1472         (WebKit::NetscapePluginInstanceProxy::getProperty):
1473         (WebKit::NetscapePluginInstanceProxy::setProperty):
1474         (WebKit::NetscapePluginInstanceProxy::removeProperty):
1475         (WebKit::NetscapePluginInstanceProxy::hasProperty):
1476         (WebKit::NetscapePluginInstanceProxy::hasMethod):
1477         (WebKit::NetscapePluginInstanceProxy::enumerate):
1478
1479 2010-03-16  Alexey Proskuryakov  <ap@apple.com>
1480
1481         Reviewed by Darin Adler.
1482
1483         https://bugs.webkit.org/show_bug.cgi?id=36184
1484         YouTube video resizing doesn't work with OOP plug-ins
1485
1486         Test: plugins/resize-from-plugin.html
1487
1488         We were calling _WKPHResizePluginInstance synchronously or asynchronously, depending on
1489         whether the size has changed. But sync and async messages are not necessarily delivered in
1490         order - plug-in host listens only to the former while waiting for a response to a message it
1491         sent (a call to invoke() in this case).
1492
1493         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
1494         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1495         (WebKit::NetscapePluginInstanceProxy::resize):
1496         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
1497         (-[WebHostedNetscapePluginView updateAndSetWindow]):
1498
1499 2010-03-16  Yury Semikhatsky <yurys@chromium.org>
1500
1501         Reviewed by Pavel Feldman.
1502
1503         Introduce InspectorFrontendClient that provides InspectorFrontend with an interface to the embedder. InspectorClient now serves as a delegate for InspectorController and does not contain methods for managing inspector frontend window. That allows to create remote InspectorFrontendHost.
1504
1505         Introduce InspectorFrontendClient that would provide InspectorFrontend with an interface to the embedder
1506         https://bugs.webkit.org/show_bug.cgi?id=35036
1507
1508         * WebCoreSupport/WebInspectorClient.h:
1509         * WebCoreSupport/WebInspectorClient.mm:
1510         (WebInspectorClient::WebInspectorClient):
1511         (WebInspectorClient::inspectorDestroyed):
1512         (WebInspectorClient::openInspectorFrontend):
1513         (WebInspectorClient::highlight):
1514         (WebInspectorClient::hideHighlight):
1515         (WebInspectorFrontendClient::WebInspectorFrontendClient):
1516         (WebInspectorFrontendClient::frontendLoaded):
1517         (WebInspectorFrontendClient::localizedStringsURL):
1518         (WebInspectorFrontendClient::hiddenPanels):
1519         (WebInspectorFrontendClient::bringToFront):
1520         (WebInspectorFrontendClient::closeWindow):
1521         (WebInspectorFrontendClient::attachWindow):
1522         (WebInspectorFrontendClient::detachWindow):
1523         (WebInspectorFrontendClient::setAttachedWindowHeight):
1524         (WebInspectorFrontendClient::inspectedURLChanged):
1525         (WebInspectorFrontendClient::updateWindowTitle):
1526         (-[WebInspectorWindowController dealloc]):
1527         (-[WebInspectorWindowController windowShouldClose:]):
1528         (-[WebInspectorWindowController close]):
1529         (-[WebInspectorWindowController showWindow:]):
1530         (-[WebInspectorWindowController attach]):
1531         (-[WebInspectorWindowController detach]):
1532         (-[WebInspectorWindowController attached]):
1533         (-[WebInspectorWindowController setFrontendClient:]):
1534         (-[WebInspectorWindowController destroyInspectorView]):
1535         (-[WebNodeHighlighter initWithInspectedWebView:]):
1536         (-[WebNodeHighlighter dealloc]):
1537         (-[WebNodeHighlighter highlightNode:]):
1538         (-[WebNodeHighlighter hideHighlight]):
1539         (-[WebNodeHighlighter didAttachWebNodeHighlight:]):
1540         (-[WebNodeHighlighter willDetachWebNodeHighlight:]):
1541         * WebInspector/WebInspector.mm:
1542         (-[WebInspector attach:]):
1543         (-[WebInspector detach:]):
1544
1545 2010-03-15  Andy Estes  <aestes@apple.com>
1546
1547         Reviewed by John Sullivan.
1548
1549         Updated call to WKGetWheelEventDeltas() to match new method signature.
1550
1551         https://bugs.webkit.org/show_bug.cgi?id=29601
1552         <rdar://problem/7453254>
1553
1554         * WebView/WebDynamicScrollBarsView.mm:
1555         (-[WebDynamicScrollBarsView scrollWheel:]):
1556
1557 2010-03-15  John Sullivan  <sullivan@apple.com>
1558
1559         Reviewed by Adam Roben.
1560         
1561         -[WebFrame setAlwaysHideHorizontal/VerticalScroller:] prevents keyboard scrolling
1562         <https://bugs.webkit.org/show_bug.cgi?id=36125>
1563
1564         * WebView/WebDynamicScrollBarsView.h:
1565         Added instance variables horizontalScrollingAllowedButScrollerHidden and
1566         verticalScrollingAllowedButScrollerHidden. Renamed instance variables 
1567         hideHorizontal/VerticalScroller to alwaysHideHorizontal/VerticalScroller for clarity.
1568         Declared methods -horizontalScrollingAllowed and -verticalScrollingAllowed.
1569         Added comments.
1570         
1571         * WebView/WebDynamicScrollBarsView.mm:
1572         (-[WebDynamicScrollBarsView setAlwaysHideHorizontalScroller:]):
1573         Updated for instance variable renaming.
1574         (-[WebDynamicScrollBarsView setAlwaysHideVerticalScroller:]):
1575         Ditto.
1576         (-[WebDynamicScrollBarsView horizontalScrollingAllowed]):
1577         New method, returns YES if the scroller is showing or the only reason that the scroller
1578         is not showing is that setAlwaysHideHorizontalScrolling has been called.
1579         (-[WebDynamicScrollBarsView verticalScrollingAllowed]):
1580         New method, returns YES if the scroller is showing or the only reason that the scroller
1581         is not showing is that setAlwaysHideVerticalScrolling has been called.
1582         (-[WebDynamicScrollBarsView updateScrollers]):
1583         Updated for instance variable renamings. Now updates horizontalScrollingAllowedButScrollerHidden
1584         and verticalScrollingAllowedButScrollerHidden. Now takes the always-hidden state into account
1585         in the early-return code path, to avoid taking it into account twice in the regular code path.
1586         
1587         * WebView/WebFrameView.mm:
1588         (-[WebFrameView _scrollToBeginningOfDocument]):
1589         Use _isScrollable instead of _hasScrollBars.
1590         (-[WebFrameView _scrollToEndOfDocument]):
1591         Ditto.
1592         (-[WebFrameView scrollToBeginningOfDocument:]):
1593         Use _largestScrollableChild instead of _largestChildWithScrollBars.
1594         (-[WebFrameView scrollToEndOfDocument:]):
1595         Ditto.
1596         (-[WebFrameView _pageVertically:]):
1597         Use _isScrollable and _largestScrollableChild instead of _hasScrollBars
1598         and _largestChildWithScrollBars.
1599         (-[WebFrameView _pageHorizontally:]):
1600         Ditto.
1601         (-[WebFrameView _scrollLineVertically:]):
1602         Ditto.
1603         (-[WebFrameView _scrollLineHorizontally:]):
1604         Ditto.
1605         (-[WebFrameView keyDown:]):
1606         Use _largestScrollableChild instead of _largestChildWithScrollBars.
1607         (-[WebFrameView _isScrollable]):
1608         New method, calls -[WebDynamicScrollBarsView horizontalScrollingAllowed] and
1609         -[WebDynamicScrollBarsView verticalScrollingAllowed]
1610         (-[WebFrameView _largestScrollableChild]):
1611         New method, like _largestChildWithScrollBars but uses _isScrollable.
1612         (-[WebFrameView _hasScrollBars]):
1613         Added a comment that this is no longer used by Safari, and can thus probably be
1614         deleted once we no longer want to support it for nightly build compatibility with
1615         old versions of Safari.
1616         (-[WebFrameView _largestChildWithScrollBars]):
1617         Ditto.
1618         
1619         * WebView/WebFrameViewPrivate.h:
1620         Declared -_isScrollable and -_largestScrollableChild. Added comments to
1621         _hasScrollBars and _largestChildWithScrollBars saying that they are no longer
1622         used by Safari, and can thus probably be deleted once we no longer want to 
1623         support them for nightly build compatibility with old versions of Safari.
1624
1625 2010-03-15  John Sullivan  <sullivan@apple.com>
1626
1627         Method name and parameter name mistakes from recent SPI addition
1628         <https://bugs.webkit.org/show_bug.cgi?id=36119>
1629
1630         Reviewed by Dan Bernstein.
1631
1632         * WebView/WebDynamicScrollBarsView.h:
1633         Renamed instance variable and method name from "setAllowXXX" to "setAllowsXXX".
1634         
1635         * WebView/WebDynamicScrollBarsView.mm:
1636         (-[WebDynamicScrollBarsView setAllowsScrollersToOverlapContent:]):
1637         Updated for renamed instance variable and method.
1638         (-[WebDynamicScrollBarsView setAlwaysHideHorizontalScroller:]):
1639         Changed parameter name from shouldBeVisible to shouldBeHidden.
1640         (-[WebDynamicScrollBarsView setAlwaysHideVerticalScroller:]):
1641         Ditto.
1642         (-[WebDynamicScrollBarsView contentViewFrame]):
1643         Updated for renamed instance variable.
1644         (-[WebDynamicScrollBarsView tile]):
1645         Ditto.
1646         (-[WebDynamicScrollBarsView reflectScrolledClipView:]):
1647         Ditto.
1648
1649         * WebView/WebFrame.mm:
1650         (-[WebFrame setAllowsScrollersToOverlapContent:]):
1651         Renamed method from setAllowXXX, and updated for same change in WebDynamicScrollBarsView.
1652
1653         * WebView/WebFramePrivate.h:
1654         Renamed method name from "setAllowXXX" to "setAllowsXXX".
1655
1656 2010-03-14  Darin Adler  <darin@apple.com>
1657
1658         Reviewed by Mark Rowe.
1659
1660         Remove unneeded dependency on non-string identifier for an NSTableColumn
1661         https://bugs.webkit.org/show_bug.cgi?id=36106
1662
1663         * WebView/WebTextCompletionController.mm:
1664         (-[WebTextCompletionController _buildUI]): Use init instead of initWithIdentifier:
1665         because the table has only one column and that column does not need an identifier.
1666
1667 2010-03-12  Beth Dakin  <bdakin@apple.com>
1668
1669         Reviewed by Simon Fraser.
1670
1671         Fix for https://bugs.webkit.org/show_bug.cgi?id=34942 Fullscreen 
1672         API naming is inconsistent
1673         -and corresponding-
1674         <rdar://problem/7729165>
1675
1676         This patch changes all occurrences of "fullScreen" to the more 
1677         popular "fullscreen."
1678
1679         * Plugins/Hosted/NetscapePluginHostProxy.h:
1680         (WebKit::NetscapePluginHostProxy::isFullscreenWindowShowing):
1681         * Plugins/Hosted/NetscapePluginHostProxy.mm:
1682         (WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy):
1683         (WebKit::NetscapePluginHostProxy::didEnterFullscreen):
1684         (WebKit::NetscapePluginHostProxy::didExitFullscreen):
1685         (WebKit::NetscapePluginHostProxy::setFullscreenWindowIsShowing):
1686         (WKPCSetFullscreenWindowIsShowing):
1687         * Plugins/Hosted/WebKitPluginClient.defs:
1688         * Plugins/WebNetscapePluginView.mm:
1689         (-[WebNetscapePluginView _workaroundSilverlightFullscreenBug:]):
1690         (-[WebNetscapePluginView _createPlugin]):
1691         (-[WebNetscapePluginView _destroyPlugin]):
1692         * WebView/WebVideoFullscreenHUDWindowController.mm:
1693         (-[WebVideoFullscreenHUDWindowController windowDidLoad]):
1694
1695 2010-03-12  Andy Estes  <aestes@apple.com>
1696
1697         Reviewed by Brady Eidson.
1698
1699         Expose WebPDFView's underlying PDFDocument.
1700
1701         https://bugs.webkit.org/show_bug.cgi?id=36045
1702
1703         * WebView/WebDocumentPrivate.h: Create a new protocol called
1704         WebDocumentPDF.
1705         * WebView/WebPDFView.h: Have WebPDFView implement said protocol.
1706         * WebView/WebPDFView.mm:
1707         (-[WebPDFView PDFDocument]): Expose WebPDFView's underlying
1708         PDFDocument by implementing -(PDFDocument*)PDFDocument from
1709         WebDocumentPDF.
1710
1711 2010-03-12  Andy Estes  <aestes@apple.com>
1712
1713         Reviewed by Brady Eidson.
1714
1715         Remove an unused method.
1716
1717         https://bugs.webkit.org/show_bug.cgi?id=35940
1718
1719         * Plugins/WebPluginController.mm:
1720         removed - (void)showURL:(NSURL *) inFrame:(NSString *)
1721
1722 2010-03-11  Mark Rowe  <mrowe@apple.com>
1723
1724         Reviewed by David Kilzer.
1725
1726         <rdar://problem/7745082> Make it possible to build WebKit for older Mac OS X versions from the current Mac OS X version
1727
1728         Default to using the appropriate SDK if the target Mac OS X version is not the current Mac OS X version.
1729
1730         * Configurations/Base.xcconfig:
1731
1732 2010-03-11  Mark Rowe  <mrowe@apple.com>
1733
1734         Reviewed by Tim Hatcher.
1735
1736         <rdar://problem/7745082> Make it possible to build WebKit for older Mac OS X versions from the current Mac OS X version
1737
1738         Introduce TARGET_MAC_OS_X_VERSION_MAJOR to represent the Mac OS X version that is being targeted.  It defaults to the
1739         current Mac OS X version unless otherwise specified.
1740
1741         Key off TARGET_MAC_OS_X_VERSION_MAJOR where we'd previously been keying off MAC_OS_X_VERSION_MAJOR.
1742
1743         Explicitly map from the target Mac OS X version to the preferred compiler since Xcode's default compiler choice
1744         may not be usable when targetting a different Mac OS X version.
1745
1746         Key off TARGET_GCC_VERSION rather than MAC_OS_X_VERSION_MAJOR in locations where we'd previously been keying off
1747         MAC_OS_X_VERSION_MAJOR but the decision is really related to the compiler version being used.
1748
1749         * Configurations/Base.xcconfig:
1750         * Configurations/DebugRelease.xcconfig:
1751         * Configurations/FeatureDefines.xcconfig:
1752         * Configurations/Version.xcconfig:
1753
1754 2010-03-11  Anders Carlsson  <andersca@apple.com>
1755
1756         Reviewed by David Hyatt.
1757
1758         Remove invalidateContents, it isn't used and it never makes sense to only invalidate the contents.
1759
1760         * WebCoreSupport/WebChromeClient.h:
1761         * WebCoreSupport/WebChromeClient.mm:
1762
1763 2010-03-11  Alexey Proskuryakov  <ap@apple.com>
1764
1765         Reviewed by Geoff Garen.
1766
1767         https://bugs.webkit.org/show_bug.cgi?id=35965
1768         <rdar://problem/7742771> Crash when passing an object returned from plug-in back to the plug-in
1769
1770         Test: plugins/round-trip-npobject.html
1771
1772         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1773         (WebKit::NetscapePluginInstanceProxy::retainLocalObject): Corrected the check - there is
1774         now a separate ProxyRuntimeObject class for proxy pbjects.
1775         (WebKit::NetscapePluginInstanceProxy::releaseLocalObject): Ditto.
1776
1777         * Plugins/Hosted/ProxyInstance.mm:
1778         (WebKit::ProxyInstance::invoke): Check if m_instanceProxy is still non-zero. The plug-in
1779         could have crashed while we were waiting for response.
1780         (WebKit::ProxyInstance::setFieldValue): Ditto.
1781
1782 2010-03-10  Simon Fraser  <simon.fraser@apple.com>
1783
1784         Reviewed by Darin Adler.
1785
1786         https://bugs.webkit.org/show_bug.cgi?id=35975
1787         <rdar://problem/7739922> Flash 10.1b crashes when generating snapshots
1788
1789         Do a version check before sending a drawRect event to a Flash plugin,
1790         since 10.1.d51 has a bug that crashes when called this way.
1791         
1792         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
1793         (-[WebHostedNetscapePluginView drawRect:]):
1794         * Plugins/WebBaseNetscapePluginView.h:
1795         * Plugins/WebBaseNetscapePluginView.mm:
1796         (-[WebBaseNetscapePluginView supportsSnapshotting]):
1797         * Plugins/WebNetscapePluginView.mm:
1798         (-[WebNetscapePluginView drawRect:]):
1799
1800 2010-03-10  John Sullivan  <sullivan@apple.com>
1801
1802         Reviewed by Tim Hatcher.
1803
1804         <rdar://problem/7735387> input type other than text won't work with autofill
1805         <https://bugs.webkit.org/show_bug.cgi?id=35963>
1806
1807         * WebView/WebHTMLRepresentation.mm:
1808         (-[WebHTMLRepresentation elementDoesAutoComplete:]):
1809         Return true for any text field that's not a password, rather than only
1810         for TEXT type.
1811
1812 2010-03-09  Brady Eidson  <beidson@apple.com>
1813
1814         Reviewed by Tim Hatcher.
1815
1816         REGRESSION: WebInspector docking busted on Windows
1817         <rdar://problem/7728433> and https://bugs.webkit.org/show_bug.cgi?id=35953
1818
1819         * WebCoreSupport/WebInspectorClient.mm:
1820         (-[WebInspectorWindowController showWindow:]): Use the InspectorController:: copy of the should attach settings key.
1821         (-[WebInspectorWindowController attach]): Ditto.
1822         (-[WebInspectorWindowController detach]): Ditto.
1823
1824 2010-03-09  Geoffrey Garen  <ggaren@apple.com>
1825
1826         Reviewed by Darin Adler.
1827
1828         Updated for FastMalloc reporting changes.
1829         
1830         * Misc/WebCoreStatistics.mm:
1831         (+[WebCoreStatistics memoryStatistics]):
1832
1833 2010-03-08  Simon Fraser  <simon.fraser@apple.com>
1834
1835         Reviewed by Mark Rowe.
1836
1837         Move the new method to the end of the MIG definitions file, to avoid breaking
1838         compatibility between WebKit and older versions of WebKitPluginHost.
1839
1840         * Plugins/Hosted/WebKitPluginHost.defs:
1841
1842 2010-03-08  Simon Fraser  <simon.fraser@apple.com>
1843
1844         Reviewed by Kevin Decker.
1845
1846         <rdar://problem/7714340> Need to grab image snapshot of Core Animation plugins
1847         
1848         Allow plug-ins using the Core Animation drawing model to be captured when doing a flattening paint,
1849         by sending them a drawRect event as if they were software-painting.
1850
1851         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
1852         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
1853         (WebKit::NetscapePluginInstanceProxy::snapshot):
1854         New snapshot() method that calls over to the plugin host, and then draws the image that comes back.
1855         
1856         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
1857         (-[WebHostedNetscapePluginView drawRect:]): If we don't have a software renderer, but we're doing
1858         a flattening paint, then call the snapshot method.
1859         
1860         * Plugins/Hosted/WebKitPluginHost.defs: Added snapshot method.
1861         
1862         * Plugins/WebBaseNetscapePluginView.h:
1863         * Plugins/WebBaseNetscapePluginView.mm:
1864         (-[WebBaseNetscapePluginView inFlatteningPaint]):
1865         New utility method that asks the FrameView whether the current paint behavior is
1866         flattening.
1867         
1868         * Plugins/WebNetscapePluginView.mm:
1869         (-[WebNetscapePluginView drawRect:]): If the plug-in is using CA but this is a flattening
1870         paint, go ahead and send a drawRect event to the plug-in.
1871
1872 2010-03-08  Darin Adler  <darin@apple.com>
1873
1874         Reviewed by Dan Bernstein.
1875
1876         Fix crash when you quit inside an unload handler.
1877         rdar://problem/6958347
1878
1879         Test: manual-tests/quit-inside-unload.html
1880
1881         * WebView/WebView.mm:
1882         (-[WebView _closeWithFastTeardown]): Removed code to set
1883         _private->closed since _close now does this earlier, before
1884         calling this method.
1885         (-[WebView _close]): Moved code to set _private->closed to the
1886         top of this method.
1887         (-[WebView setHostWindow:]): Rewrote the code that forbade
1888         setting the host window after closing so that it only forbids
1889         non-nil host windows. That way, the code to clear away the host
1890         window can run safely after setting _private->closed, yet client
1891         code cannot set a new host window after closing.
1892
1893 2010-03-08  Darin Adler  <darin@apple.com>
1894
1895         Roll out a file I checked in by accident.
1896
1897         * WebView/WebView.mm: Back to previous version.
1898
1899 2010-03-08  Chris Marrin  <cmarrin@apple.com>
1900
1901         Reviewed by Darin Adler.
1902
1903         Turn on HW accel on Leopard even if coreVideoHas7228836Fix() is false, when WebGL is enabled
1904         https://bugs.webkit.org/show_bug.cgi?id=35759
1905
1906         This allows WebGL to work on Leopard without the fix. It exposes these users to the crash
1907         that happens because of the CoreVideo bug, but it limits the exposure to those who have 
1908         chosen to enable WebGL.
1909
1910         * WebView/WebView.mm:
1911         (-[WebView _preferencesChangedNotification:]):
1912
1913 2010-03-02  Adam Treat  <atreat@rim.com>
1914
1915         Reviewed by Dave Hyatt.
1916
1917         Adapt the mac port to the refactoring of repaint methods.
1918
1919         https://bugs.webkit.org/show_bug.cgi?id=34214
1920
1921         * WebCoreSupport/WebChromeClient.h:
1922         * WebCoreSupport/WebChromeClient.mm:
1923         (WebChromeClient::invalidateContents):
1924         (WebChromeClient::invalidateWindow):
1925         (WebChromeClient::invalidateContentsAndWindow):
1926         (WebChromeClient::invalidateContentsForSlowScroll):
1927
1928 2010-03-08  Jian Li  <jianli@chromium.org>
1929
1930         Reviewed by Dmitry Titov.
1931
1932         Blob.slice support.
1933         https://bugs.webkit.org/show_bug.cgi?id=32993
1934
1935         Add ENABLE_BLOB_SLICE feature define.
1936
1937         * Configurations/FeatureDefines.xcconfig:
1938
1939 2010-03-08  Eric Uhrhane  <ericu@chromium.org>
1940
1941         Reviewed by David Levin.
1942
1943         Remove the now-redundant Settings fields for the Database
1944         https://bugs.webkit.org/show_bug.cgi?id=35763
1945
1946         No new tests; this code isn't called.
1947
1948         * WebView/WebView.mm: Remove the call into Settings.
1949         (-[WebView _preferencesChangedNotification:]):
1950
1951 2010-03-07  Mark Rowe  <mrowe@apple.com>
1952
1953         Rubber-stamped by Cameron Zwarich.
1954
1955         Remove unnecessary includes from header files, adding them to the handful of implementation files that need them.
1956
1957         * Misc/WebIconDatabase.mm:
1958
1959 2010-03-07  Mark Rowe  <mrowe@apple.com>
1960
1961         Rubber-stamped by Cameron Zwarich.
1962
1963         Remove unnecessary includes from header files, adding them to the handful of implementation files that need them.
1964
1965         * Misc/WebNSPasteboardExtras.mm:
1966
1967 2010-03-04  Mark Rowe  <mrowe@apple.com>
1968
1969         Reviewed by Sam Weinig.
1970
1971         <rdar://problem/7717249> DOMSVG.h includes a non-existent DOMSVGFEMorphologyElement.h
1972
1973         * MigrateHeaders.make: Migrate DOMSVGFEMorphologyElement.h and DOMSVGFEMorphologyElementInternal.h.
1974
1975 2010-03-04  Mark Rowe  <mrowe@apple.com>
1976
1977         Reviewed by Sam Weinig.
1978
1979         Use a framework-style include to pull in WebInspector.h for consistency
1980         with other parts of WebKit.
1981
1982         * WebInspector/WebInspectorPrivate.h:
1983
1984 2010-03-04  Brady Eidson  <beidson@apple.com>
1985
1986         Reviewed by Geoff Garen.
1987
1988         REGRESSION (31281): -[WebArchive initWithCoder:] leaks
1989         <rdar://problem/7702420> and https://bugs.webkit.org/show_bug.cgi?id=35534
1990
1991         * WebView/WebArchive.mm:
1992         (-[WebArchive initWithCoder:]): Don't retain objects we don't own.
1993
1994 2010-03-03  Alexey Proskuryakov  <ap@apple.com>
1995
1996         Reviewed by Timothy Hatcher.
1997
1998         https://bugs.webkit.org/show_bug.cgi?id=35692
1999         <rdar://problem/7703622> Crash when calling abort() on an XHR while in a windowless WebView
2000
2001         * Panels/WebAuthenticationPanel.m: (-[WebAuthenticationPanel runAsModalDialogWithChallenge:]):
2002         Retain the challenge, just like it's done for sheet.
2003
2004 2010-03-02  Eric Uhrhane  <ericu@chromium.org>
2005
2006         Reviewed by David Levin.
2007
2008         Move database enable bit fully out of settings
2009         This is stage one of a three-stage commit [webkit, then chromium, then
2010         webkit again].  In this change I'm adding calls to
2011         Database::setIsAvailable inside Settings::setDatabaseEnabled and
2012         anywhere else that called it, and switching webkit fully over to using
2013         that flag [added in a previous checkin].  Phase two will remove
2014         Chromium's use of Settings for the Database, and phase three will remove
2015         the Setting for the Database enable entirely, leaving only
2016         Database::isAvailable/setIsAvailable.
2017
2018         No new tests; tested by existing storage tests.
2019
2020         https://bugs.webkit.org/show_bug.cgi?id=35310
2021
2022         * WebView/WebView.mm:  Added a call to Database::setIsAvailable.
2023         (-[WebView _preferencesChangedNotification:]):
2024
2025 2010-03-02  Adam Roben  <aroben@apple.com>
2026
2027         Add -[WebView _registerURLSchemeAsSecure:]
2028
2029         Fixes <http://webkit.org/b/35580> <rdar://problem/7706407> Expose
2030         SecurityOrigin::registerURLSchemeAsSecure as WebKit SPI
2031
2032         Reviewed by Tim Hatcher.
2033
2034         * WebView/WebView.mm:
2035         (+[WebView _registerURLSchemeAsSecure:]):
2036         * WebView/WebViewPrivate.h:
2037         Added. Calls through to SecurityOrigin::registerURLSchemeAsSecure.
2038
2039 2010-03-01  Jakob Petsovits  <jpetsovits@rim.com>
2040
2041         Reviewed by Adam Barth.
2042
2043         Adapt to the new ZoomMode enum.
2044         https://bugs.webkit.org/show_bug.cgi?id=35347
2045
2046         * WebView/WebView.mm:
2047         (-[WebView _preferencesChangedNotification:]):
2048         (-[WebView _setZoomMultiplier:isTextOnly:]):
2049         (-[WebView _realZoomMultiplierIsTextOnly]):
2050
2051 2010-02-27  Jing Jin  <jjin@apple.com>
2052
2053         Reviewed by Timothy Hatcher.
2054
2055         Move implementation of Bug 35449 into WebFramePrivate.
2056
2057         * WebView/WebFrame.h:
2058         * WebView/WebFrame.mm:
2059         (-[WebFrame setAllowScrollersToOverlapContent:]):
2060         (-[WebFrame setAlwaysHideHorizontalScroller:]):
2061         (-[WebFrame setAlwaysHideVerticalScroller:]):
2062         * WebView/WebFramePrivate.h:
2063
2064 2010-02-26  Jing Jin  <jjin@apple.com>
2065
2066         Reviewed by Timothy Hatcher.
2067
2068         https://bugs.webkit.org/show_bug.cgi?id=35449
2069         Add ability to hide WebFrame scrollbars and to allow scrollbars to overlap with content.
2070
2071         * WebView/WebDynamicScrollBarsView.h:
2072         * WebView/WebDynamicScrollBarsView.mm:
2073         (-[WebDynamicScrollBarsView setAllowScrollersToOverlapContent:]): Allows scrollbars to 
2074         overlap with the document and re-layouts the document.
2075         (-[WebDynamicScrollBarsView setAlwaysHideHorizontalScroller:]): Hides the horizontal scrollbar.
2076         (-[WebDynamicScrollBarsView setAlwaysHideVerticalScroller:]): Hides the vertical scrollbar.
2077         (-[WebDynamicScrollBarsView contentViewFrame]): Calculates the appropriate frame based
2078         on allowScrollersToOverlapContent.
2079         (-[WebDynamicScrollBarsView tile]): If allowScrollersToOverlapContent is YES, set the
2080         contentView's frame so it overlaps with the scrollbar.
2081         (-[WebDynamicScrollBarsView updateScrollers]): Take into account hideHorizontalScroller
2082         and hideVerticalScroller.
2083         (-[WebDynamicScrollBarsView reflectScrolledClipView:]): set drawsBackground to NO when
2084         scrollbars are overlapping with content, so we don't get trails during scrollbar draw updates.
2085         * WebView/WebDynamicScrollBarsViewInternal.h:
2086         * WebView/WebFrame.h:
2087         * WebView/WebFrame.mm:
2088         (-[WebFrame setAllowScrollersToOverlapContent:]): Hook for [WebDynamicScrollBarsView setAllowScrollersToOverlapContent:]
2089         (-[WebFrame setAlwaysHideHorizontalScroller:]): Hook for [WebDynamicScrollBarsView setAlwaysHideHorizontalScroller:]
2090         (-[WebFrame setAlwaysHideVerticalScroller:]): Hook for [WebDynamicScrollBarsView setAlwaysHideVerticalScroller:]
2091
2092 2010-02-26  Gavin Barraclough  <barraclough@apple.com>
2093
2094         Reviewed by Alexey Proskuryakov.
2095
2096         Bug 35401 - Fix handling of errors in handling calls over bridge,
2097         where base object bridge-type does not match method bridge-type.
2098
2099         The code assumes users will only attempt to invoke a Java method
2100         on a Java base object, etc.
2101         Add language specific subclasses of RuntimeMethod, and pass the
2102         RuntimeMethod into invokeMethod, so we can typecheck before
2103         casting.  Throw an exception on type mismatch.
2104
2105         * Plugins/Hosted/ProxyInstance.h:
2106         * Plugins/Hosted/ProxyInstance.mm:
2107         (WebKit::PluginRuntimeMethod::PluginRuntimeMethod): new class to distinguish this type of RuntimeMethod.
2108         (WebKit::ProxyInstance::getMethod): create an appropriate sublclass of RuntimeMethod.
2109         (WebKit::ProxyInstance::invokeMethod): dynamically check the type of the RuntimeMethod.
2110
2111 2010-02-25  Alexey Proskuryakov  <ap@apple.com>
2112
2113         Reviewed by Geoffrey Garen.
2114
2115         https://bugs.webkit.org/show_bug.cgi?id=35394
2116         <rdar://problem/7685262> Make passing objects between Java and plug-ins work
2117
2118         Added a ProxyInstance implementation of RuntimeObject.
2119
2120         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2121         (WebKit::NetscapePluginInstanceProxy::addValueToArray):
2122         * Plugins/Hosted/ProxyInstance.h:
2123         * Plugins/Hosted/ProxyInstance.mm:
2124         (WebKit::ProxyInstance::newRuntimeObject):
2125         (WebKit::ProxyInstance::getClass):
2126         * Plugins/Hosted/ProxyRuntimeObject.h: Added.
2127         (WebKit::ProxyRuntimeObject::classInfo):
2128         * Plugins/Hosted/ProxyRuntimeObject.mm: Added.
2129         (WebKit::ProxyRuntimeObject::ProxyRuntimeObject):
2130         (WebKit::ProxyRuntimeObject::~ProxyRuntimeObject):
2131         (WebKit::ProxyRuntimeObject::getInternalProxyInstance):
2132
2133 2010-02-24  Adam Barth  <abarth@webkit.org>
2134
2135         Reviewed by Darin Fisher.
2136
2137         [Chromium API] Disambiguate allowJavaScript from didNotAllowScript
2138         https://bugs.webkit.org/show_bug.cgi?id=35205
2139
2140         Make these two callsites explicit about not running script immediately.
2141
2142         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2143         (WebKit::NetscapePluginInstanceProxy::getWindowNPObject):
2144         (WebKit::NetscapePluginInstanceProxy::demarshalValueFromArray):
2145
2146 2010-02-23  Brady Eidson  <beidson@apple.com>
2147
2148         Reviewed by Tim Hatcher and Pavel Feldman.
2149
2150         Regression (r55107) - WebInspector docking is busted.
2151         https://bugs.webkit.org/show_bug.cgi?id=35274
2152
2153         * WebCoreSupport/WebInspectorClient.mm:
2154         (-[WebInspectorWindowController showWindow:]): Swap the order of the "should attach?" check
2155           to get the expected behavior.
2156
2157 2010-02-23  Dan Bernstein  <mitz@apple.com>
2158
2159         Reviewed by Simon Fraser.
2160
2161         <rdar://problem/7611158> Incomplete repaint of YouTube timeline thumb while scrolling
2162         https://bugs.webkit.org/show_bug.cgi?id=34381
2163
2164         Test: fast/repaint/repaint-during-scroll.html
2165
2166         NSClipView offsets any rects marked as needing display during scrolling
2167         by the scroll offset. Compensate for this when -setNeedsDisplay: is called
2168         during scrolling.
2169
2170         * WebView/WebHTMLView.mm:
2171         (-[WebHTMLView _frameOrBoundsChanged]): Set inScrollPositionChanged to YES
2172         around to call to FrameView::scrollPositionChanged().
2173         (-[WebHTMLView setNeedsDisplayInRect:]): When called beneath
2174         scrollPositionChanged(), adjust the rect by the inverse of the scroll offset.
2175
2176 2010-02-23  Steve Block  <steveblock@google.com>
2177
2178         Reviewed by Darin Adler.
2179
2180         Adds ChromeClient::cancelGeolocationPermissionRequestForFrame
2181         https://bugs.webkit.org/show_bug.cgi?id=34962
2182
2183         This method is required so that a Geolocation object can cancel an
2184         asynchronous permission request. This allows the chrome client to cancel
2185         any UI it is showing for the permission request.
2186
2187         * WebCoreSupport/WebChromeClient.h:
2188         (WebChromeClient::cancelGeolocationPermissionRequestForFrame):
2189
2190 2010-02-22  Alexey Proskuryakov  <ap@apple.com>
2191
2192         Rubber-stamped by Geoff Garen.
2193
2194         Rename RuntimeObjectImp to RuntimeObject.
2195
2196         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2197         (WebKit::NetscapePluginInstanceProxy::addValueToArray):
2198         (WebKit::NetscapePluginInstanceProxy::retainLocalObject):
2199         (WebKit::NetscapePluginInstanceProxy::releaseLocalObject):
2200
2201 2010-02-22  Brady Eidson  <beidson@apple.com>
2202
2203         Reviewed by Tim Hatcher.
2204
2205         Disable WebView docking to views that are too small.
2206         <rdar://problem/7248409> and https://bugs.webkit.org/show_bug.cgi?id=35254
2207
2208         * WebCoreSupport/WebInspectorClient.mm:
2209         (-[WebInspectorWindowController showWindow:]): No matter the preference, don't open the inspector 
2210           window attached if WebCore says it shouldn't be attached.
2211
2212 2010-02-22  Simon Fraser  <simon.fraser@apple.com>
2213
2214         Reviewed by John Sullivan.
2215
2216         <rdar://problem/7285392> 
2217         On Leopard, we have to disable hardware acceleration if we detect that the
2218         installed Core Video framework has bug <rdar://problem/7228836>.
2219         
2220         * WebView/WebView.mm:
2221         (coreVideoHas7228836Fix):
2222         (-[WebView _preferencesChangedNotification:]):
2223
2224 2010-02-21  Dan Bernstein  <mitz@apple.com>
2225
2226         Reviewed by Darin Adler.
2227
2228         False warnings about needing layout in
2229         -[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
2230         https://bugs.webkit.org/show_bug.cgi?id=35218
2231
2232         * WebView/WebHTMLView.mm:
2233         (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
2234         Suppress the warning and the forced layout if the view is not being drawn
2235         in this display operation.
2236
2237 2010-02-21  Kevin Decker  <kdecker@apple.com>
2238
2239         Reviewed by Sam Weinig.
2240
2241         plugInViewWithArguments: API sends wrong parameter for WebPlugInBaseURLKey
2242         https://bugs.webkit.org/show_bug.cgi?id=35215
2243         <rdar://problem/7673157>
2244         
2245         The plugInViewWithArguments: API passes a dictionary of plugin arguments. One of the parameters
2246         is WebPlugInBaseURLKey, which is a key that represents the base URL of the document containing
2247         the plug-in's view. Instead of sending the base URL, code in  WebFrameLoaderClient::createPlugin
2248         would incorrectly pass the source URL of the plug-in resource.
2249
2250         * WebCoreSupport/WebFrameLoaderClient.mm:
2251         (WebFrameLoaderClient::createPlugin): When building the plug-in arguments dictionary, pass the
2252         real base URL for the WebPlugInBaseURLKey key.
2253
2254 2010-02-19  Maciej Stachowiak  <mjs@apple.com>
2255
2256         Reviewed by David Levin.
2257
2258         Add an ENABLE flag for sandboxed iframes to make it possible to disable it in releases
2259         https://bugs.webkit.org/show_bug.cgi?id=35147
2260
2261         * Configurations/FeatureDefines.xcconfig:
2262
2263 2010-02-19  Alexey Proskuryakov  <ap@apple.com>
2264
2265         Reviewed by Maciej Stachowiak.
2266
2267         https://bugs.webkit.org/show_bug.cgi?id=35132
2268         <rdar://problem/7664353> Mouse cursor sometimes flickers over Flash content (35132)
2269
2270         * Plugins/WebNetscapePluginEventHandlerCarbon.mm:
2271         (WebNetscapePluginEventHandlerCarbon::mouseMoved): Send adjustCursor events on every mouse
2272         move. This matches Firefox, and is actually required for plug-ins to manipulate cursor wihout
2273         resorting to techniques such as fast firing timers.
2274
2275         * Plugins/WebNetscapePluginView.mm:
2276         (-[WebNetscapePluginView handleMouseEntered:]): Some plug-ins handle mouse cursor internally,
2277         but those that don't just need to get an arrow cursor (matching Firefox). This means that
2278         e.g. a plugin inside <A> won't get a finger mouse pointer.
2279
2280         * Plugins/WebHostedNetscapePluginView.mm:
2281         (-[WebNetscapePluginView handleMouseEntered:]):
2282         (-[WebNetscapePluginView handleMouseExited:]):
2283         Implement this behavior here, too. Also, out of process code didn't reset mouse pointer on
2284         mouse exit, which it needed to do.
2285
2286         * WebView/WebHTMLView.mm:
2287         (needsCursorRectsSupportAtPoint):
2288         (setCursor):
2289         (resetCursorRects):
2290         Make sure that the same workaround we have for Web content also applies to Netscape plug-ins,
2291         as AppKit would reset the mouse pointer to arrow if given a chance.
2292         (+[WebHTMLViewPrivate initialize]): Renamed setCursorIMP on Leopard and higher to prevent
2293         confusion - the method we override is completely different.
2294         (-[WebHTMLView hitTest:]): Added a FIXME about a likely bug.
2295
2296 2010-02-19  Simon Fraser  <simon.fraser@apple.com>
2297
2298         Reviewed by Dan Bernstein.
2299
2300         <rdar://problem/7535894> Page contents missing from snapshot on Newsweek.com article
2301         
2302         Followup to avoid capturing compositing layers twice in snapshots. Add private
2303         methods to WebView to specify whether drawing the WebView into an image will
2304         include flattened compositing layers (the default behavior) or not.
2305
2306         * WebView/WebFrame.mm:
2307         (-[WebFrame _drawRect:contentsOnly:]): Consult the WebView flag to see if we
2308         want flattening.
2309         
2310         * WebView/WebViewPrivate.h: New methods.
2311         * WebView/WebView.mm: Ditto.
2312         (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]):
2313         (-[WebView _setIncludesFlattenedCompositingLayersWhenDrawingToBitmap:]):
2314         (-[WebView _includesFlattenedCompositingLayersWhenDrawingToBitmap]):
2315
2316         * WebView/WebViewData.h: New member variable.
2317
2318 2010-02-19  Alexey Proskuryakov  <ap@apple.com>
2319
2320         Reviewed by Dan Bernstein.
2321
2322         https://bugs.webkit.org/show_bug.cgi?id=35165
2323         plugins/set-status.html fails on Windows bot
2324
2325         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2326         (WebKit::NetscapePluginInstanceProxy::status):
2327         * Plugins/WebNetscapePluginView.mm:
2328         (-[WebNetscapePluginView status:]):
2329         Match Windows port behavior (and also Firefox one, in a way) - pass null status messages as
2330         empty ones to chrome.
2331
2332 2010-02-18  Simon Fraser  <simon.fraser@apple.com>
2333
2334         Reviewed by Dan Bernstein.
2335
2336         <rdar://problem/7535894> Page contents missing from snapshot on Newsweek.com article
2337
2338         Add logic to determine when painting via the software rendering path will give an equivalent
2339         result to the accelerated compositing presentation. This tests for the presence of 3D transforms.
2340
2341         Also have -[WebFrame _drawRect:contentsOnly:] set the PaintBehaviorFlattenCompositingLayers
2342         paint behavior when painting into a bitmap context, so that snapshots contain composited layers.
2343
2344         * WebView/WebFrame.mm:
2345         (-[WebFrame _drawRect:contentsOnly:]): Set the PaintBehaviorFlattenCompositingLayers flag
2346         when painting into a bitmap context.
2347         * WebView/WebView.mm:
2348         (-[WebView _isSoftwareRenderable]): Returns YES if all frames can be software-rendered.
2349         * WebView/WebViewPrivate.h: New _isSoftwareRenderable method.
2350
2351 2010-02-18  Alexey Proskuryakov  <ap@apple.com>
2352
2353         Reviewed by Dan Bernstein.
2354
2355         https://bugs.webkit.org/show_bug.cgi?id=35134
2356         <rdar://problem/7246280> Crash when a plugin calls NPN_SetStatus(0)
2357
2358         Test: plugins/set-status.html
2359
2360         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2361         (WebKit::NetscapePluginInstanceProxy::status):
2362         (WebKit::NetscapePluginInstanceProxy::loadURL):
2363         Added null checks for CFStringCreateWithCString arguments.
2364
2365 2010-02-17  Dmitry Titov  <dimich@chromium.org>
2366
2367         Reviewed by David Levin, Darin Fisher, Simon Hausmann.
2368
2369         When a live iframe element is moved between pages, it still depends on the old page.
2370         https://bugs.webkit.org/show_bug.cgi?id=34382
2371
2372         * WebCoreSupport/WebFrameLoaderClient.h:
2373         * WebCoreSupport/WebFrameLoaderClient.mm:
2374         Added empty implementation of a new virtual method.
2375
2376         (WebFrameLoaderClient::didTransferChildFrameToNewDocument):
2377
2378 2010-02-17  Kent Tamura  <tkent@chromium.org>
2379
2380         Reviewed by Eric Seidel.
2381
2382         Introduces new Icon loading interface in order to support
2383         asynchronous loading.
2384         https://bugs.webkit.org/show_bug.cgi?id=32054
2385
2386         Add an empty implementation of ChromeClient::iconForFiles().
2387
2388         * WebCoreSupport/WebChromeClient.h:
2389         * WebCoreSupport/WebChromeClient.mm:
2390         (WebChromeClient::iconForFiles):
2391
2392 2010-02-17  Timothy Hatcher  <timothy@apple.com>
2393
2394         Add a way for WebView and its dependancies to be selectively included
2395         in WebKitStatistics leak tracking. By default WebView is not included and
2396         you need to subclass WebView and implement +isIncludedInWebKitStatistics
2397         to be included.
2398
2399         rdar://problem/7567677&7572900
2400         https://webkit.org/b/35045
2401
2402         Reviewed by Adam Roben.
2403
2404         * WebView/WebDataSource.mm:
2405         (-[WebDataSource _initWithDocumentLoader:]): Increment WebDataSourceCount if the WebFrame is included in statistics.
2406         (-[WebDataSource dealloc]): Only --WebDataSourceCount if _private->includedInWebKitStatistics is YES.
2407         (-[WebDataSource finalize]): Ditto.
2408         * WebView/WebFrame.mm:
2409         (-[WebFrame _isIncludedInWebKitStatistics]): Return _private->includedInWebKitStatistics.
2410         (-[WebFrame _initWithWebFrameView:webView:]): Increment WebFrameCount if the WebView's class is included in statistics.
2411         (-[WebFrame dealloc]): Only --WebFrameCount if _private->includedInWebKitStatistics is YES.
2412         (-[WebFrame finalize]): Ditto.
2413         * WebView/WebFrameInternal.h:
2414         * WebView/WebFrameView.mm:
2415         (-[WebFrameView _setWebFrame:]): Increment WebFrameViewCount if the WebFrame is included in statistics.
2416         (-[WebFrameView initWithFrame:]): Move ++WebFrameViewCount from here since we don't
2417         know what WebFrame we belong to yet.
2418         (-[WebFrameView dealloc]): Only --WebFrameViewCount if _private->includedInWebKitStatistics is YES.
2419         (-[WebFrameView finalize]): Ditto.
2420         * WebView/WebHTMLRepresentation.mm:
2421         (-[WebHTMLRepresentation init]): Move ++WebHTMLRepresentationCount from here since we don't
2422         know what WebFrame we belong to yet.
2423         (-[WebHTMLRepresentation dealloc]): Only --WebHTMLRepresentationCount if _private->includedInWebKitStatistics is YES.
2424         (-[WebHTMLRepresentation finalize]): Ditto.
2425         (-[WebHTMLRepresentation setDataSource:]): Increment WebHTMLRepresentationCount if the WebFrame of the dataSource is
2426         included in statistics.
2427         * WebView/WebView.mm:
2428         (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]):
2429         (-[WebView dealloc]):
2430         (+[WebView shouldIncludeInWebKitStatistics]): Return NO, so any WebView wont be included.
2431         Subclasses that care can return YES to be included.
2432         * WebView/WebViewInternal.h:
2433
2434 2010-02-16  Darin Adler  <darin@apple.com>
2435
2436         Reviewed by Sam Weinig.
2437
2438         Generalize delayed plug-in start for background tabs for use for other media
2439         https://bugs.webkit.org/show_bug.cgi?id=34981
2440
2441         * WebView/WebHTMLView.mm:
2442         (-[WebHTMLView viewWillMoveToWindow:]): Added comment.
2443         (-[WebHTMLView viewDidMoveToWindow]): Ditto.
2444
2445         * WebView/WebView.mm:
2446         (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]):
2447         Call setCanStartMedia right away so that if this view is not in a window, it
2448         will not start any media.
2449         (-[WebView viewWillMoveToWindow:]): Call setCanStartMedia(false) when moving
2450         to a window of nil.
2451         (-[WebView viewDidMoveToWindow]): Call setCanStartMedia(true) when moved to
2452         a window that is non-nil.
2453
2454 2010-02-16  Eric Carlson  <eric.carlson@apple.com>
2455
2456         Reviewed by Simon Fraser.
2457
2458         https://bugs.webkit.org/show_bug.cgi?id=34988
2459         WebHTMLView.mm has two -willRemoveSubview: methods
2460
2461         * WebView/WebHTMLView.mm:
2462         (-[WebHTMLView willRemoveSubview:]): Consolidate the two copies of this method.
2463
2464 2010-02-16  Alexey Proskuryakov  <ap@apple.com>
2465
2466         Reviewed by Geoffrey Garen and Kevin Decker.
2467
2468         https://bugs.webkit.org/show_bug.cgi?id=34989
2469         <rdar://problem/7417965> Cursor disappears on scroll bars that are over plugin content
2470
2471         This fixes event dispatch for both Cocoa and Carbon event models (mouseEntered/mouseExited
2472         in the former case, and adjustCursor in the latter).
2473
2474         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
2475         (-[WebHostedNetscapePluginView handleMouseEntered:]):
2476         (-[WebHostedNetscapePluginView handleMouseExited:]):
2477         * Plugins/WebBaseNetscapePluginView.h:
2478         * Plugins/WebBaseNetscapePluginView.mm:
2479         (-[WebBaseNetscapePluginView handleMouseEntered:]):
2480         (-[WebBaseNetscapePluginView handleMouseExited:]):
2481         * Plugins/WebNetscapePluginView.h:
2482         * Plugins/WebNetscapePluginView.mm:
2483         (-[WebNetscapePluginView handleMouseEntered:]):
2484         (-[WebNetscapePluginView handleMouseExited:]):
2485         AppKit cannot reliably dispatch events for overlapping views. We are now asking WebCore to
2486         notify plug-in views of mouse entered/exited as part of DOM event dispatch.
2487
2488         * WebCoreSupport/WebFrameLoaderClient.mm: (NetscapePluginWidget::handleEvent): Besides
2489         mouse moved, dispatch plugin mouse entered/exit events in HTMLPlugInElement default event
2490         handler. Other mouse events are passed down by EventHandler.
2491
2492 2010-02-15  Alexey Proskuryakov  <ap@apple.com>
2493
2494         More build fixing (for what is actually a 64-bit failure, as 32-bit apparently includes
2495         headers that aren't included in 64-bit).
2496
2497         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
2498         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2499         (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::contains):
2500         (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::get):
2501         Move inline functions to .cpp; also made the class Noncopyable.
2502
2503 2010-02-15  Alexey Proskuryakov  <ap@apple.com>
2504
2505         Mac release build fix attempt.
2506
2507         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
2508         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2509         (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::~LocalObjectMap):
2510         Implement destructor in .cpp file, where necessary headers are already included.
2511
2512 2010-02-12  Alexey Proskuryakov  <ap@apple.com>
2513
2514         Reviewed by Kevin Decker.
2515
2516         <rdar://problem/7130641> Browser objects identity is not preserved by Safari
2517
2518         Out of process part.
2519
2520         To avoid excessive IPC, plugin process doesn't send each NPObject release/retain call to
2521         Safari. It only sends one when the last one is removed, and it can destroy the proxy
2522         NPObject.
2523
2524         However, the browser may be sending the same object out to plug-in as a function call
2525         argument at the same time - neither side can know what the other one is up to. The solution
2526         is to make the "destroying object" call return a boolean result, making it possible for 
2527         the browser to make plugin host keep the proxy with zero refcount for a little longer.
2528
2529         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2530         (WKPCForgetBrowserObject): This function (that used to be named ReleaseObject) is only
2531         called when plug-in releases all of its references, so renamed it. Its boolean result
2532         is returned as call success or failure.
2533
2534         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
2535         (WebKit::NetscapePluginInstanceProxy::LocalObjectMap): Made the numeric ID to JSObject map
2536         two-way.
2537
2538         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2539         (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::idForObject): This method is tricky
2540         in that it creates objects with refcount of 1, but doesn't increase refcount when returning
2541         found objects. This extra count accounts for the "reference" kept by plugin process.
2542         (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::retain): Only retaining for the
2543         duration of calls out to plug-in, which means that refcount is almost always equal to 1.
2544         Note that we can't use "++" here, due to how std::pair works!
2545         (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::release): Ditto.
2546         (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::clear): Clear all references when
2547         stopping plug-in.
2548         (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::forget): Like release(), but only
2549         functional when recount is 1 (meaning that the object is not being sent out to plug-in at
2550         the moment).
2551         (WebKit::NetscapePluginInstanceProxy::NetscapePluginInstanceProxy): Updated for other changes.
2552         (WebKit::NetscapePluginInstanceProxy::cleanup): Ditto.
2553         (WebKit::NetscapePluginInstanceProxy::getWindowNPObject): Ditto.
2554         (WebKit::NetscapePluginInstanceProxy::getPluginElementNPObject): Ditto.
2555         (WebKit::NetscapePluginInstanceProxy::forgetBrowserObjectID): Ditto.
2556         (WebKit::NetscapePluginInstanceProxy::evaluate): Ditto.
2557         (WebKit::NetscapePluginInstanceProxy::invoke): Ditto.
2558         (WebKit::NetscapePluginInstanceProxy::invokeDefault): Ditto.
2559         (WebKit::NetscapePluginInstanceProxy::construct): Ditto.
2560         (WebKit::NetscapePluginInstanceProxy::getProperty): Ditto.
2561         (WebKit::NetscapePluginInstanceProxy::setProperty): Ditto.
2562         (WebKit::NetscapePluginInstanceProxy::removeProperty): Ditto.
2563         (WebKit::NetscapePluginInstanceProxy::hasProperty): Ditto.
2564         (WebKit::NetscapePluginInstanceProxy::hasMethod): Ditto.
2565         (WebKit::NetscapePluginInstanceProxy::enumerate): Ditto.
2566         (WebKit::NetscapePluginInstanceProxy::addValueToArray): Ditto.
2567         (WebKit::NetscapePluginInstanceProxy::demarshalValueFromArray): Ditto.
2568         (WebKit::NetscapePluginInstanceProxy::retainLocalObject): Helper for calling retain when
2569         making calls out to plug-in. No-op for objects that aren't wrapped to be sent (i.e. for
2570         objects wrapping ProxyInstance wrappers for plug-in objects being sent bak).
2571         (WebKit::NetscapePluginInstanceProxy::releaseLocalObject): Ditto.
2572
2573         * Plugins/Hosted/ProxyInstance.mm:
2574         (WebKit::ProxyInstance::invoke): Retain/release arguments during call. 
2575         (WebKit::ProxyInstance::setFieldValue): Ditto.
2576
2577         * Plugins/Hosted/WebKitPluginClient.defs: Renamed PCReleaseObject to PCForgetBrowserObject.
2578
2579 2010-02-12  Darin Adler  <darin@apple.com>
2580
2581         Reviewed by Sam Weinig.
2582
2583         Removed unneeded custom implementation of isDescendantOf.
2584
2585         * Plugins/WebBaseNetscapePluginView.mm:
2586         (-[WebBaseNetscapePluginView shouldClipOutPlugin]): Use the
2587         -[NSView isDescendantOf:] method instead of our own method
2588         named superviewsHaveSuperviews.
2589
2590 2010-02-12  Dan Bernstein  <mitz@apple.com>
2591
2592         Reviewed by Darin Adler.
2593
2594         <rdar://problem/7615234> REGRESSION (r48586): Loading an HTML page causes
2595         PDFKit to be loaded
2596
2597         * WebView/WebPDFDocumentExtras.h: Removed the category declaration and
2598         addWebPDFDocumentExtras(). Declare allScriptsInPDFDocument().
2599         * WebView/WebPDFDocumentExtras.mm:
2600         (allScriptsInPDFDocument): Changed the -_web_allScripts method into this function.
2601         * WebView/WebPDFRepresentation.mm: Removed +initialize.
2602         (-[WebPDFRepresentation finishedLoadingWithDataSource:]): Use
2603         allScriptsInPDFDocument() instead of -_web_allScripts.
2604
2605 2010-02-10  Geoffrey Garen  <ggaren@apple.com>
2606
2607         Reviewed by Oliver Hunt.
2608
2609         Exported some new JavaScript heap introspection.
2610
2611         * Misc/WebCoreStatistics.h:
2612         * Misc/WebCoreStatistics.mm:
2613         (+[WebCoreStatistics javaScriptObjectTypeCounts]): Just like
2614         javaScriptProtectedObjectTypeCounts, except this function enumerates all
2615         live objects, not just protected objects.
2616
2617 2010-02-08  Maciej Stachowiak  <mjs@apple.com>
2618
2619         Reviewed by Cameron Zwarich.
2620
2621         Restore ENABLE_RUBY flag so vendors can ship with Ruby disabled if they choose.
2622         https://bugs.webkit.org/show_bug.cgi?id=34698
2623
2624         * Configurations/FeatureDefines.xcconfig:
2625
2626 2010-02-09  Alexey Proskuryakov  <ap@apple.com>
2627
2628         Reviewed by Geoffrey Garen.
2629
2630         https://bugs.webkit.org/show_bug.cgi?id=34490
2631         WebCore::ImageEventSender::dispatchPendingEvents() crashes in certain conditions
2632
2633         * ForwardingHeaders/wtf/ValueCheck.h: Added.
2634
2635 2010-02-10  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
2636
2637         Reviewed by Kenneth Rohde Christiansen.
2638
2639         Support frameset flattening
2640         https://bugs.webkit.org/show_bug.cgi?id=32717
2641
2642         Add support for enabling/disabling FrameSet Flattening on the Mac port.
2643
2644         * WebView/WebPreferenceKeysPrivate.h:
2645         * WebView/WebPreferences.mm:
2646         (+[WebPreferences initialize]):
2647         (-[WebPreferences isFrameSetFlatteningEnabled]):
2648         (-[WebPreferences setFrameSetFlatteningEnabled:]):
2649         * WebView/WebPreferencesPrivate.h:
2650         * WebView/WebView.mm:
2651         (-[WebView _preferencesChangedNotification:]):
2652
2653 2010-02-09  Alexey Proskuryakov  <ap@apple.com>
2654
2655         Reviewed by Anders Carlsson.
2656
2657         https://bugs.webkit.org/show_bug.cgi?id=34771
2658         A stray mouse moved event is sent to plug-ins after mouse exit
2659
2660         * WebCoreSupport/WebFrameLoaderClient.mm: (NetscapePluginWidget::handleEvent): A mouseout
2661         DOM event is dispatched while handling NSMouseMoved - but we shouldn't be sending a
2662         mouse moved event to plug-ins at this point.
2663
2664 2010-02-09  Shinichiro Hamaji  <hamaji@chromium.org>
2665
2666         Reviewed by Darin Adler.
2667
2668         Provide a way to get total number of pages to be printed
2669         https://bugs.webkit.org/show_bug.cgi?id=34699
2670
2671         * Misc/WebCoreStatistics.h:
2672         * Misc/WebCoreStatistics.mm:
2673         (-[WebFrame numberOfPages:pageWidthInPixels:]):
2674
2675 2010-02-08  Alexey Proskuryakov  <ap@apple.com>
2676
2677         Reviewed by Darin Adler.
2678
2679         https://bugs.webkit.org/show_bug.cgi?id=34727
2680         Assertion crashes and freezes when plug-in property access results in an exception
2681
2682         * Plugins/Hosted/WebKitPluginClient.defs: Made PCSetProperty and PCRemoveProperty async.
2683         A plug-in can call back whil processing this call (e.g. for NPN_SetException), so we need
2684         to listen for messages while waiting for reply.
2685
2686         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2687         (WKPCEvaluate): If there is no instance proxy, return KERN_FAILURE. This improves consistency
2688         between method implementations, and leaves us with one less IPC call to make in failure case
2689         (returning false with KERN_SUCCESS and returning KERN_FAILURE looks the same from plugin
2690         host code).
2691         (WKPCInvoke): Ditto.
2692         (WKPCInvokeDefault): Ditto.
2693         (WKPCGetProperty): Ditto.
2694         (WKPCSetProperty): Send a reply once done.
2695         (WKPCRemoveProperty): Ditto.
2696         (WKPCHasProperty): If there is no instance proxy, return KERN_FAILURE.
2697         (WKPCHasMethod): Ditto.
2698         (WKPCEnumerate): Ditto.
2699
2700 2010-02-08  Alexey Proskuryakov  <ap@apple.com>
2701
2702         Reviewed by Anders Carlsson.
2703
2704         <rdar://problem/6530010> OOP: Support NPN_SetException
2705
2706         Tested by plugins/netscape-throw-exception.html (removed it from skipped list).
2707
2708         * Plugins/Hosted/NetscapePluginHostProxy.mm:
2709         (WKPCSetException):
2710         * Plugins/Hosted/NetscapePluginInstanceProxy.h:
2711         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2712         (WebKit::globalExceptionString):
2713         (WebKit::NetscapePluginInstanceProxy::setGlobalException):
2714         (WebKit::NetscapePluginInstanceProxy::moveGlobalExceptionToExecState):
2715         * Plugins/Hosted/ProxyInstance.mm:
2716         (WebKit::ProxyInstance::invoke):
2717         (WebKit::ProxyInstance::getPropertyNames):
2718         (WebKit::ProxyInstance::fieldValue):
2719         (WebKit::ProxyInstance::setFieldValue):
2720         * Plugins/Hosted/WebKitPluginClient.defs:
2721         Route exception string to a global that's checked after calling into plug-in (just like in
2722         in-process case).
2723
2724 2010-02-05  Kevin Decker  <kdecker@apple.com>
2725
2726         Reviewed by Mark Rowe.
2727
2728         https://bugs.webkit.org/show_bug.cgi?id=34661
2729         <rdar://problem/7614067> REGRESSION (Safari 4.0-> Safari 4.0.4): NPP_SetWindow no longer sets a clipRect of (0,0,0,0) when it becomes hidden
2730         
2731         * Plugins/Hosted/WebHostedNetscapePluginView.mm:
2732         (-[WebHostedNetscapePluginView updateAndSetWindow]): When clipping out NPDrawingModelCoreAnimation plug-ins, provide a zero'd out clipRect.
2733         * Plugins/WebBaseNetscapePluginView.h: Moved superviewsHaveSuperviews to the base class.
2734         * Plugins/WebBaseNetscapePluginView.mm:
2735         (-[WebBaseNetscapePluginView superviewsHaveSuperviews]): Added to the base class; extracted from WebNetscapePluginView.
2736         (-[WebBaseNetscapePluginView shouldClipOutPlugin]): Added new method with code extracted from WebNetscapePluginView.
2737         * Plugins/WebNetscapePluginView.mm:
2738         (-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]): When clipping out NPDrawingModelCoreAnimation plug-ins, provide a zero'd out clipRect.
2739
2740 2010-02-04  Mark Rowe  <mrowe@apple.com>
2741
2742         Rubber-stamped by Dan Bernstein.
2743
2744         Fix the ability to #include <WebKit/DOMFile.h>.
2745
2746         * MigrateHeaders.make: Mark DOMBlob.h as a public header since the already-public DOMFile.h depends on it.
2747
2748 2010-02-04  John Sullivan  <sullivan@apple.com>
2749
2750         https://bugs.webkit.org/show_bug.cgi?id=34611
2751         WebLocalizedString() could use an assertion that it is being called on the main thread
2752
2753         Reviewed by Tim Hatcher.
2754
2755         * Misc/WebLocalizableStrings.m: Removed.
2756         * Misc/WebLocalizableStrings.mm: Copied from mac/Misc/WebLocalizableStrings.m.
2757         Renamed to use .mm extension so it can include a C++ header.
2758         (WebLocalizedString):
2759         Added an assertion that this is being called on the main thread.
2760
2761 2010-02-04  Dan Bernstein  <mitz@apple.com>
2762
2763         Reviewed by Simon Fraser.
2764
2765         REGRESSION (r53718): When scrolling a tall window by page, the overlap between pages is too big
2766         https://bugs.webkit.org/show_bug.cgi?id=34371
2767
2768         * WebView/WebFrameView.mm:
2769         (-[WebFrameView _verticalPageScrollDistance]): Use Scrollbar methods instead of
2770         constants, and cap the scroll distance.
2771         (-[WebFrameView initWithFrame:]): Use Scrollbar::pixelsPerLineStep() instead of
2772         cScrollbarPixelsPerLineStep.
2773         (-[WebFrameView _horizontalPageScrollDistance]):Use Scrollbar methods instead of
2774         constants, and cap the scroll distance.
2775
2776 2010-02-01  Shinichiro Hamaji  <hamaji@chromium.org>
2777
2778         Reviewed by Eric Seidel.
2779
2780         Provide a way to get page number with layoutTestController
2781         https://bugs.webkit.org/show_bug.cgi?id=33840
2782
2783         * Misc/WebCoreStatistics.h:
2784         * Misc/WebCoreStatistics.mm:
2785         (-[WebFrame pageNumberForElement:element:pageWidth:]):
2786
2787 2010-01-29  Gavin Barraclough  <barraclough@apple.com>
2788
2789         Reviewed by Sam Weinig + Oliver Hunt.
2790
2791         Bug 34346 - With JSC bindings, make processingUserGesture work with events in Isolated Worlds
2792
2793         Pass processeing user gensture flag to media play/pause methods.
2794
2795         * WebView/WebVideoFullscreenHUDWindowController.mm:
2796         (-[WebVideoFullscreenHUDWindowController setPlaying:]):
2797
2798 2010-02-01  Dan Bernstein  <mitz@apple.com>
2799
2800         Reviewed by Anders Carlsson.
2801
2802         <rdar://problem/7044385> Crash at NetscapePlugInStreamLoader::didReceiveResponse()
2803
2804         The crash was caused by having two streams with a streamID of 1.
2805
2806         * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
2807         (WebKit::NetscapePluginInstanceProxy::NetscapePluginInstanceProxy): Fixed a typo. Now
2808         correctly increments m_currentURLRequestID to account for the manual stream.
2809         (WebKit::NetscapePluginInstanceProxy::disconnectStream): If the stream is the manual stream,
2810         null it out instead of trying to remove it from the map. Added an assertion.
2811         (WebKit::NetscapePluginInstanceProxy::loadRequest): Added an assertion.
2812
2813 == Rolled over to ChangeLog-2010-01-29 ==